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

插值查找表:實現DSP功能的簡便方法

發布時間:2010-4-8 15:50    發布者:嵌入式公社
關鍵詞: dsp , 插值 , 功能
如果數字信號處理器內核沒有您需要的確切功能,可使用插值查找表(ILUT)來解決這一問題。

作為賽靈思的現場工程師,我常常問這樣的問題:我們是否能夠提供一款其功能可滿足客戶所有獨特設計要求的DSP內核。有時候內核會太大,太小或者不夠快。有時,我們會開發一款能確切滿足客戶需求的內核,并迅速以CORE Generator商標推出。不過即便在這種情況下,客戶仍然想要一套特定的DSP功能,而且刻不容緩。在這些情況下,我常常建議他們使用我們器件中的插值查找表來定制他們的DSP功能。

查找表(LUT)實質上是一個存儲元件,能夠根據任何給定的輸入狀態組合,“查找”輸出,以確保每個輸入都有確切的輸出。采用LUT來實現DSP功能具有一些重大優勢:

● 可用諸如MATLAB或Simulink等高抽象層編程語言改變LUT內容。

● 可以設計一項DSP功能來運行那些采用離散邏輯運算將極度困難的數學函數,比如y=log(x)、y=exp(x)、y=1/x、y=sin(x)等。

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

不過,以這種方式使用LUT當然也會存在一些弊端。當您使用LUT來實現DSP功能時,您必須使用塊RAM(BRAM)元件。若執行函數y=sqrt(x)(其中x表示16位輸入,y表示18位輸出),每個變量則需要約64個18KB BRAM單元。如果,比如說,您的目標是實現小型化Spartan器件,或者您有太多的運算需要執行,無法為每個變量省出64個BRAM單元,建議您放棄這種需要如此大量BRAM單元的方法,從系統架構的角度來看,這種方法代價太大。

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

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

使用System Generator for DSP進行設計

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

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



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



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



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



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

線性化非線性傳感器

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



智能傳感器的目的是將物理量(如電機中的電流)轉化為數字電路能夠處理的數字信號。構建這類傳感器所采用的技術及組件的某些特性通常會導致諸如失調、增益和非線性等誤差,進而導致總體傳遞函數呈非線性。

一般來說,客戶會校正他們產品中運行的DSP子系統所出現的上述誤差。如果y=f(x)是來自傳感器和ADC級聯的數字輸出信號,那么DSP必須執行其反函數 g(y)=f-1(y)來補償非線性函數,這樣總體輸出z即為:



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

最簡單的線性化方法是LUT法,采用存儲在ROM中的傳感器校準點。不過,對16位的ADC來說,ROM顯得過大了,且需要64個BRAM單元。而內插LUT則不然,是一個良好的解決方案。

舉例來說,我們假定非線性傳遞函數是一條拋物線。下一MATLAB分段碼說明了如何生成最終直線的m和b參數,以及如何計算g(y)(即 f(x)的反函數)。圖5用三種顏色顯示了三條不同曲線。請注意在計算f(x)的反函數g(y)過程中會丟失一些值。這是因為有幾個y值相同的點對應著不同的x點。因此,需要對g(y)進行平滑化,填補所有缺失的點。為精確起見,我沒有把這部分運算包括在MATLAB分段碼中,見代碼清單。

我采用非常類似于圖3的設計,在SystemGeneratorforDSP中運行基于定點周期的仿真,在非線性傳感器的總體輸出范圍內得到了92.48dB的信噪比。

斑點噪聲消除

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

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



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



R1的取值范圍在0和1之間。根據實驗發現要取得良好的數值精度,R1可以使用16位至20位二進制數來表示。

我在system Generator for DSP中設計R1計算步驟后,我決定通過內插LUT來實施濾波系數的歸一化。LUT的內容以下列MATLAB代碼表示:

圖6顯示的是歸一化后的系數沿R1輸入信號分布的曲線。這里只有三條曲線,因為Tij矩陣在系數ij=22的中心像素周圍呈對稱分布。根據曲線,與純浮點參考模型相比,數值結果顯示信噪比介于81.28至83.38dB之間。

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

作者:賽靈思公司DSP專家兼現場應用工程師DanieleBagni
來源:電子產品世界 2010-03
本文地址:http://m.qingdxww.cn/thread-10255-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 青青操视频在线免费观看 | 嗯啊潮乱喷肉失禁高h | 肉视频在线观看 | 国产高清精品一区 | 青青青青在线成人视99 | 韩日精品视频 | 美女的隐私视频网站蜜桃视频 | 青娱乐自拍视频 | 国产成人精品三级 | 亚洲精品国产精品国自产观看 | 色综合天天综合给合国产 | 日韩一级特黄毛片在线看 | 亚洲人性生活视频 | 欧美一区二区在线观看 | 欧美视频日韩视频 | 国产精品国产亚洲精品不卡 | 一级二级黄色片 | 精品一区二区三区中文 | 色丁香婷婷 | 欧美成人tv | 日韩毛片在线 | 国产亚洲欧美在线 | 老鸭窝欧美一级一区二区 | 亚洲色图视频在线观看 | 欧美一区永久视频免费观看 | 国产一二三区精品 | 国产亚洲人成网站天堂岛 | 伊人俺去久久涩五月综合 | 一二三四在线视频社区8 | 在线观看a网站 | 久久精品国产999大香线焦 | 免费视频日韩 | 欧美人在线| 国产午夜精品一区二区三区小说 | 欧美视频在线观看视频 | 亚洲成片观看四虎永久 | 欧美日韩国产高清一区二区三区 | 婷婷久久五月天 | 99久久免费国内精品 | 免费精品国产福利片 | 免费亚洲视频在线观看 |