国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

插值查找表:實(shí)現(xiàn)DSP功能的簡(jiǎn)便方法

發(fā)布時(shí)間:2010-4-8 15:50    發(fā)布者:嵌入式公社
關(guān)鍵詞: dsp , 插值 , 功能
如果數(shù)字信號(hào)處理器內(nèi)核沒(méi)有您需要的確切功能,可使用插值查找表(ILUT)來(lái)解決這一問(wèn)題。

作為賽靈思的現(xiàn)場(chǎng)工程師,我常常問(wèn)這樣的問(wèn)題:我們是否能夠提供一款其功能可滿(mǎn)足客戶(hù)所有獨(dú)特設(shè)計(jì)要求的DSP內(nèi)核。有時(shí)候內(nèi)核會(huì)太大,太小或者不夠快。有時(shí),我們會(huì)開(kāi)發(fā)一款能確切滿(mǎn)足客戶(hù)需求的內(nèi)核,并迅速以CORE Generator商標(biāo)推出。不過(guò)即便在這種情況下,客戶(hù)仍然想要一套特定的DSP功能,而且刻不容緩。在這些情況下,我常常建議他們使用我們器件中的插值查找表來(lái)定制他們的DSP功能。

查找表(LUT)實(shí)質(zhì)上是一個(gè)存儲(chǔ)元件,能夠根據(jù)任何給定的輸入狀態(tài)組合,“查找”輸出,以確保每個(gè)輸入都有確切的輸出。采用LUT來(lái)實(shí)現(xiàn)DSP功能具有一些重大優(yōu)勢(shì):

● 可用諸如MATLAB或Simulink等高抽象層編程語(yǔ)言改變LUT內(nèi)容。

● 可以設(shè)計(jì)一項(xiàng)DSP功能來(lái)運(yùn)行那些采用離散邏輯運(yùn)算將極度困難的數(shù)學(xué)函數(shù),比如y=log(x)、y=exp(x)、y=1/x、y=sin(x)等。

● LUT還可輕松執(zhí)行在可配置邏輯塊(CLB)芯片,以及嵌入式乘法單元或DSP48可編程乘法累加(MAC)單元方面可能要求過(guò)多FPGA資源的復(fù)雜數(shù)學(xué)函數(shù)。

不過(guò),以這種方式使用LUT當(dāng)然也會(huì)存在一些弊端。當(dāng)您使用LUT來(lái)實(shí)現(xiàn)DSP功能時(shí),您必須使用塊RAM(BRAM)元件。若執(zhí)行函數(shù)y=sqrt(x)(其中x表示16位輸入,y表示18位輸出),每個(gè)變量則需要約64個(gè)18KB BRAM單元。如果,比如說(shuō),您的目標(biāo)是實(shí)現(xiàn)小型化Spartan器件,或者您有太多的運(yùn)算需要執(zhí)行,無(wú)法為每個(gè)變量省出64個(gè)BRAM單元,建議您放棄這種需要如此大量BRAM單元的方法,從系統(tǒng)架構(gòu)的角度來(lái)看,這種方法代價(jià)太大。

插值LUT方法不僅具有LUT方法在實(shí)現(xiàn)DSP功能時(shí)所帶來(lái)的各種優(yōu)勢(shì),而且無(wú)需使用太多BRAM單元。采用這種方法,您可以使用來(lái)自容量較小的LUT(比如,1000字LUT)的連續(xù)輸出,線性地對(duì)其內(nèi)插,以模擬更大容量的LUT。這樣,您就可以實(shí)現(xiàn)比1000字LUT更高的數(shù)值分辨率。此外,通過(guò)這種方法,僅需1個(gè)BRAM、1個(gè)嵌入式乘法器(或DSP48),以及少數(shù)幾個(gè)CLB芯片便可實(shí)施控制邏輯,因此LUT的使用成本變得更加合理化。而且,從信噪比的角度來(lái)看,其數(shù)值精度也是非常讓人滿(mǎn)意。

當(dāng)然,應(yīng)用插值LUT(ILUT)方法需要一定的技巧。舉例來(lái)說(shuō),采用該方法執(zhí)行y=sqrt(x)函數(shù)時(shí),可以清楚地顯示ILUT在空間占用、時(shí)序和數(shù)值精度方面的性能。我們先大致看一下這個(gè)示例,然后我再講解部分實(shí)例,說(shuō)明如何使用這種方法來(lái)滿(mǎn)足客戶(hù)截然不同的需求,比如讓傳遞函數(shù)呈非線性的傳感器實(shí)現(xiàn)線性化,以及實(shí)施自適應(yīng)有限脈沖響應(yīng)(FIR)濾波器以消除合成孔徑雷達(dá)(SAR)圖像上的斑點(diǎn)噪聲。

使用System Generator for DSP進(jìn)行設(shè)計(jì)

為在賽靈思FPGA上實(shí)施DPS算法,我借助了采用MathWorks Simulink基于模型設(shè)計(jì)方法的System Generator for DSP設(shè)計(jì)與綜合工具。 System Generator得益于賽靈思在Simulink環(huán)境中的DSP模塊組,可自動(dòng)調(diào)用CORE Generator為DSP構(gòu)建塊生成高度優(yōu)化的網(wǎng)表。Simulink是一種雙精度浮點(diǎn)設(shè)計(jì)工具,而System Generator則是一款定點(diǎn)運(yùn)算工具。不管怎樣,您只要將這兩種工具協(xié)同使用,就可以定義每個(gè)信號(hào)的總位數(shù)以及每個(gè)信號(hào)的二進(jìn)制位置,從而在定點(diǎn)運(yùn)算中巧妙處理分?jǐn)?shù)。仿真結(jié)果周期精確、位真,因此您可以方便地將它們與MATLAB腳本或Simulink模塊生成的浮點(diǎn)參考值相比較,以檢查量化誤差。

圖1顯示了System Generator中ILUT方案的頂層結(jié)構(gòu)圖。為讓這個(gè)方法盡可能一般化,假設(shè)nx=16位中的輸入變量x的取值范圍為0≤x<1,因此其格式為 “無(wú)符號(hào)16位加上二進(jìn)制點(diǎn)右邊的16位”,也稱(chēng)為Ufix_16_16格式。最高有效位(MSB)和最低有效位(LSB)模塊分別對(duì)應(yīng)輸入數(shù)據(jù) nb=10的最高位和nx-nb=6的最低位。這些信號(hào)被命名為x0和dx。y=sqrt(x)輸出則以ny=17位二進(jìn)制數(shù)表示,格式為:Ufix_17_17。



圖2顯示了1000字小容量LUT通過(guò)雙端口RAM模塊的部署步驟。由于該模塊系只讀存儲(chǔ)器,布爾常數(shù)模塊We_const強(qiáng)制將寫(xiě)入歸零。信號(hào)X0和X0+1則用作ROM表上后續(xù)的兩個(gè)地址。Data_const模塊的零常數(shù)定義了任何ROM字的大小(即本例中的ny)。



下面的公式顯示了以x0為x的最高有效位的情況下,如何在兩個(gè)已知點(diǎn)(x0,y0)和(x1,y1)之間插入坐標(biāo)為(x,y)的點(diǎn):



注意X1和X0是這個(gè)小容量LUT的相鄰地址,它們之間只隔了一個(gè)最低有效位。由于這個(gè)小容量LUT的地址空間為nb位,那么該LSB的值為 2-nb。內(nèi)插步驟見(jiàn)圖3。“Reinterpret”模塊在不改變二進(jìn)制表示法的情況下,可改變dx=x-x0信號(hào)。其重置了二進(jìn)制小數(shù)點(diǎn)(從 UFix_6_0到UFix_6_6格式),并輸出nx-nb位二進(jìn)制數(shù)的一個(gè)分?jǐn)?shù),從而計(jì)算出(x-x0)/2-nb的值。



從硬件角度來(lái)看,這些模塊什么都不占用。總的來(lái)說(shuō)(且根據(jù)我們通過(guò)ILUT方法應(yīng)用的函數(shù)類(lèi)型),如果y1=0且y0=0,我們可以強(qiáng)制y1- y0=1,這樣我們就可以得到1/2-nb而不是0。我們采用Mux、Rational、Constant和Constant1模塊來(lái)執(zhí)行這項(xiàng)工作。剩下的Mult、Add和Sub模塊則執(zhí)行線性?xún)?nèi)插公式。在本例中,我強(qiáng)制Mult模塊的輸出信號(hào)為17位分辨率,而非理論上要求的23位,因?yàn)榭傮w數(shù)值精度對(duì)本試驗(yàn)來(lái)說(shuō)已經(jīng)足夠。此外,由于y=sqrt(x)函數(shù)呈單調(diào)遞增,因此所有結(jié)果都無(wú)符號(hào)。換句話說(shuō),不同的函數(shù)需要對(duì)數(shù)據(jù)類(lèi)型進(jìn)行不同的精心調(diào)整,但不會(huì)與圖3所示的原理相去甚遠(yuǎn)。

線性化非線性傳感器

目前許多企業(yè)在工業(yè)控制系統(tǒng)中使用“智能傳感器”,以滿(mǎn)足低占用空間、低功耗、高性能、最低成本以及最短開(kāi)發(fā)時(shí)間等要求。通用智能傳感器可視為一個(gè)由傳感器及其信號(hào)控制線路、模數(shù)轉(zhuǎn)換器(ADC)、帶或不帶嵌入式處理器的相關(guān)DSP子系統(tǒng)組成的功能組件,所有這些功能塊都集成在的同一器件上,如圖4所示。



智能傳感器的目的是將物理量(如電機(jī)中的電流)轉(zhuǎn)化為數(shù)字電路能夠處理的數(shù)字信號(hào)。構(gòu)建這類(lèi)傳感器所采用的技術(shù)及組件的某些特性通常會(huì)導(dǎo)致諸如失調(diào)、增益和非線性等誤差,進(jìn)而導(dǎo)致總體傳遞函數(shù)呈非線性。

一般來(lái)說(shuō),客戶(hù)會(huì)校正他們產(chǎn)品中運(yùn)行的DSP子系統(tǒng)所出現(xiàn)的上述誤差。如果y=f(x)是來(lái)自傳感器和ADC級(jí)聯(lián)的數(shù)字輸出信號(hào),那么DSP必須執(zhí)行其反函數(shù) g(y)=f-1(y)來(lái)補(bǔ)償非線性函數(shù),這樣總體輸出z即為:



這是直線方程,其斜率為m,縱截距為b。

最簡(jiǎn)單的線性化方法是LUT法,采用存儲(chǔ)在ROM中的傳感器校準(zhǔn)點(diǎn)。不過(guò),對(duì)16位的ADC來(lái)說(shuō),ROM顯得過(guò)大了,且需要64個(gè)BRAM單元。而內(nèi)插LUT則不然,是一個(gè)良好的解決方案。

舉例來(lái)說(shuō),我們假定非線性傳遞函數(shù)是一條拋物線。下一MATLAB分段碼說(shuō)明了如何生成最終直線的m和b參數(shù),以及如何計(jì)算g(y)(即 f(x)的反函數(shù))。圖5用三種顏色顯示了三條不同曲線。請(qǐng)注意在計(jì)算f(x)的反函數(shù)g(y)過(guò)程中會(huì)丟失一些值。這是因?yàn)橛袔讉(gè)y值相同的點(diǎn)對(duì)應(yīng)著不同的x點(diǎn)。因此,需要對(duì)g(y)進(jìn)行平滑化,填補(bǔ)所有缺失的點(diǎn)。為精確起見(jiàn),我沒(méi)有把這部分運(yùn)算包括在MATLAB分段碼中,見(jiàn)代碼清單。

我采用非常類(lèi)似于圖3的設(shè)計(jì),在SystemGeneratorforDSP中運(yùn)行基于定點(diǎn)周期的仿真,在非線性傳感器的總體輸出范圍內(nèi)得到了92.48dB的信噪比。

斑點(diǎn)噪聲消除

跟蹤高速運(yùn)動(dòng)系統(tǒng)的目標(biāo)物體(比如導(dǎo)彈)是一項(xiàng)極富挑戰(zhàn)性的工作,需要非常復(fù)雜的DSP算法以及諸如合成孔徑雷達(dá)(SAR)等各種不同類(lèi)型的探測(cè)介質(zhì)。作為典型的相干電磁源(如激光),SAR成像器件也受斑點(diǎn)噪聲的影響。因此,任何基于SAR的DSP鏈的第一級(jí)都是二維(2D)自適應(yīng)FIR濾波器,用以降低這種噪聲(但不可能完全消除)。

斑點(diǎn)噪聲是一種倍增噪聲,呈指數(shù)分布,完全由其方差值σ決定。因此,廣泛使用的抗斑點(diǎn)噪聲的方法就是Frost濾波器(由發(fā)明者 V.S.Frost的名字命名而來(lái))。在一個(gè)3x3的矩陣中,可以用下列公式進(jìn)行建模:



其中xij和yij分別代表Frost濾波器的輸入和輸出采樣。K是控制濾波強(qiáng)度的增益系數(shù)(為方便起見(jiàn),下面假定K=1),m1和s分別是 2D內(nèi)核的平均值和方差值,Tij是中心輸出像素(系數(shù)ij=22)及所有周邊像素的距離矩陣。下面的等式說(shuō)明實(shí)施這個(gè)濾波器的關(guān)鍵因素是R1,即3×3 矩陣中的一階m1和二階m2之間的比值:



R1的取值范圍在0和1之間。根據(jù)實(shí)驗(yàn)發(fā)現(xiàn)要取得良好的數(shù)值精度,R1可以使用16位至20位二進(jìn)制數(shù)來(lái)表示。

我在system Generator for DSP中設(shè)計(jì)R1計(jì)算步驟后,我決定通過(guò)內(nèi)插LUT來(lái)實(shí)施濾波系數(shù)的歸一化。LUT的內(nèi)容以下列MATLAB代碼表示:

圖6顯示的是歸一化后的系數(shù)沿R1輸入信號(hào)分布的曲線。這里只有三條曲線,因?yàn)門(mén)ij矩陣在系數(shù)ij=22的中心像素周?chē)蕦?duì)稱(chēng)分布。根據(jù)曲線,與純浮點(diǎn)參考模型相比,數(shù)值結(jié)果顯示信噪比介于81.28至83.38dB之間。

簡(jiǎn)言之,這些例子說(shuō)明插值查找表是實(shí)施賽靈思FPGA的DSP功能的簡(jiǎn)便而強(qiáng)大的方法。插值查找表可幫助您在保持空間占用相對(duì)較低的情況下實(shí)現(xiàn)極高數(shù)值精度(SNR)和高數(shù)據(jù)速率。

作者:賽靈思公司DSP專(zhuān)家兼現(xiàn)場(chǎng)應(yīng)用工程師DanieleBagni
來(lái)源:電子產(chǎn)品世界 2010-03
本文地址:http://m.qingdxww.cn/thread-10255-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專(zhuān)區(qū)
  • 使用SAM-IoT Wx v2開(kāi)發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開(kāi)發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專(zhuān)區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99热这里只有精 | 久久成人毛片 | 日本不卡视频一区二区 | 国产一级做a爰片... | 五十路亲子中出中文字幕 | 特级深夜a级毛片免费观看 特级全黄一级毛片视频 | 日本不卡在线观看 | 欧美黑人巨大xxxxx视频 | 搓逼视频| 日韩一级片免费在线观看 | 国产精品13页 | 四虎永久在线 | 亚洲一级视频在线观看 | 美女隐私下部无遮挡免费视频 | 麻豆精品永久免费视频 | 91精品综合久久久久久五月天 | 欧美成人免费xxx大片 | 国产精品麻豆一区二区三区 | 麻豆成人久久精品二区三 | 亚洲男人的天堂久久精品 | 欧美在线看片a免费观看 | 夜夜超b天天 | 色综合97天天综合网 | 羞羞色男人的天堂伊人久久 | 一区二区三区在线免费视频 | 免费h漫 | 91麻豆高清国产在线播放 | 日韩在线播放一区 | 热er99久久6国产精品免费 | 国产成人免费片在线观看 | 最近最新2019年中文字幕 | 伊人丁香| 欧美日韩91 | 激情小说 校园春色 | 伊人婷婷色香五月综合缴激情 | 91欧美视频| 日本国产在线视频 | 日韩在线视频不卡一区二区三区 | 日本伊人精品一区二区三区 | 亚洲欧美日韩伦中文 | 在线一区免费播放 |