• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 插值查找表:實現DSP功能的簡便方法

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

    作者:DanieleBagni 賽靈思公司DSP專家兼現場應用工程師 時間:2010-03-02 來源:電子產品世界 收藏

    本文引用地址:http://www.czjhyjcfj.com/article/106456.htm

      圖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所示的原理相去甚遠。

    合成孔徑雷達相關文章:合成孔徑雷達原理


    關鍵詞: Xilinx DSP 插值查找表

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 怀集县| 寿宁县| 河池市| 铜鼓县| 林口县| 海晏县| 曲阜市| 和林格尔县| 福贡县| 新蔡县| 中牟县| 昌邑市| 界首市| 通河县| 六安市| 大同市| 平利县| 齐河县| 满城县| 深圳市| 曲水县| 盈江县| 包头市| 万州区| 井研县| 盐源县| 巫山县| 凌云县| 东方市| 察隅县| 新乡县| 大城县| 象州县| 沙雅县| 台江县| 霞浦县| 越西县| 鹤庆县| 桂平市| 托里县| 利辛县|