新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 多項式擬合在log-add算法單元中的應用及其FPGA實現

        多項式擬合在log-add算法單元中的應用及其FPGA實現

        作者: 時間:2017-06-05 來源:網絡 收藏

        在多路實時語音處理系統中,基于高斯混合概率模型[1,2]的系統后端運算量非常大,采用可以簡化運算,提高運算效率。其函數形式為[3]:

        查表法可以認為是多項式次數為0的情況,隨著精度要求的增加,查找表會變得很大[5]。函數逼近可以采用,首先根據所需要的精度確定多項式次數和分段的大小,然后計算每一段的多項式系數。

        本文引用地址:http://www.104case.com/article/201706/349199.htm

        設分段的大小為d(d=2-k,k=0,1,2…),計算各段系數時,各段函數平移到區間[0,d),如圖2所示。用Matlab進行依次得到各段系數。由此可以得出各段的擬合多項式為:

        這樣實現時可以把二進制的定點數x分為MSBs和LSBs兩段。MSBs對應段標號i,由段標號取出系數ci0,ci1,ci2…;LSBs對應浮點數xl,代表段內偏移值。由圖3可以計算出f(x)。

        MSBs和LSBs應該這樣選取,例如定標為Q32.f,選擇d=1/2,則MSBs為高32-(f-1)位,LSBs為低f-1位;選擇d=1/4, 則MSBs為高32-(f-2)位,LSBs為低f-2位……;如果MSBs為32或31,則變成了查表法。

        2 的實現方案

        2.1 多項式次數與分段大小、精度的關系

        用Matlab進行仿真,表1列出了各種精度要求下各次多項式所需的分段大小(d),其中?啄為精度要求,?茁為多項式的次數。

        由表1可以看出,相同次數的情況下,精度要求越高,分段大小d越小;而相同精度的情況下,次數越高,分段大小d越大。另外,次數越低,精度越高,分段大小d下降的數量級越快。

        表2列出各次多項式在不同精度要求下,所需要系數個數(n)的分布情況。

        由表2可以看出,其結果與表1趨于一致。相同次數下,精度要求越高,所需要的系數個數n越多;而相同精度下,次數越高,所需要系數個數n越少。n隨著次數的降低和精度的提高迅速增大。

        與n相反,多項式的計算量隨著多項式次數的增加而增加。根據horner算法[3]多項式的表達式如下:

        式(6)表明,多項式次數增加1次,計算多項式的函數值增加1次乘法和1次加法。多項式系數存儲量與多項式的計算量是其實現時互相制約的兩個因素。

        3 仿真結果

        為了取得面積與速度的平衡,根據測試結果及實際系統的要求,選擇δ=10-4、β=1來實現。本文采用Xilinx ISE Design Suite 10.1進行仿真測試。定標取Q32.23,其硬件實現計算流程如圖4,輸入為定點數x,由MSBs和LBSs取得系數和xl,經過reg系數寄存器及1次乘法和1次加法,輸出y。

        時序仿真結果結果如圖5。輸入x是32 bit的無符號定點數,輸出為y;clk是時鐘;reset為復位信號;MSBs是x的高位,用于得到多項式系數;LSBs是x的低位即自變量;temp是用于緩存中間結果,coef[...]是多項式系數。輸出延遲3個時鐘周期,流水線填滿后,每個時鐘周期輸出一個結果。

        例如輸入32’h00333333(浮點數0.4),從圖中可以看出其輸出y為24’h41aba5,與實際函數值24’h41aa7c存在誤差。其實現結果與浮點結果比較誤差如圖6。可以看出定點數誤差在800以內,也就是浮點數約10-4以內,誤差范圍與表1相一致。

        使用ISE軟件的XST工具綜合,選擇設備為Xilinx公司Virtex5系列的XC5VFX100T(speed-2)。其資源占用情況如表3,其中Xilinx公司的乘加硬件設備DSP48E用于算法中的乘法運算及加法運算[6]。

        可以對比δ=10-4,β=0,1,2,3四種實現方式的硬件開銷,如表4。

        由表4可以看出,雖然多項式次數為0時使用寄存器(Registers)和查找表(LUTs)最少,且乘法和加法次數(DSP48Es)為0,但由于其使用了24×40 960 ROM,占用存儲面積較大;而一次多項式擬合雖然所占用查找表(LUTs)一項相對較多,但綜合考慮,其他資源占用都比較均衡。其整體的資源開銷要好于其他方案。

        作為高斯混合概率模型實現的基本算法單元,能夠簡化運算、提高運算效率。在系統精度要求10-4的情況下,采用一次多項式擬合能夠有效地節省硬件開銷,實現簡單快速,為大規模實時處理多路語音數據提供了重要保證。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 广昌县| 通江县| 巧家县| 白山市| 沙坪坝区| 遂溪县| 孝昌县| 巴林左旗| 杂多县| 全南县| 兖州市| 永安市| 剑河县| 五峰| 棋牌| 连山| 色达县| 大厂| 苗栗县| 且末县| 精河县| 大关县| 西藏| 丹巴县| 靖江市| 杭锦后旗| 天祝| 东兴市| 阜南县| 瑞丽市| 龙泉市| 巴楚县| 邵武市| 区。| 北票市| 弋阳县| 麻城市| 佛坪县| 黑山县| 上杭县| 上蔡县|