《電子技術應用》
您所在的位置:首頁 > 可编程逻辑 > 设计应用 > 多项式拟合在log-add算法单元中的应用及其FPGA实现
多项式拟合在log-add算法单元中的应用及其FPGA实现
来源:电子技术应用2011年第2期
魏开容,吉立新,杨镇西
国家数字交换系统工程技术研究中心,河南 郑州450002
摘要: 综合考虑面积和速度等因素,采用一次多项式拟合实现了简单快速的log-add算法单元。实验结果表明,在相同的精度要求下,其FPGA实现资源占用合理,硬件开销好于其他次数的多项式拟合实现方案。
中圖分類號: TN402
文獻標識碼: A
文章編號: 0258-7998(2011)02-0046-03
Application and FPGA implementation of polynomial fitting in log-add algorithm
Wei Kairong,Ji Lixin,Yang Zhenxi
National Digital Switch System Engineering & Technological R&D Center, Zhengzhou 450002,China
Abstract: This paper is about using one order polynomial fitting to implement the log-add algorithm for simple and fast units, considering factors such as size and speed. Experimental results show that the resource utilization of FPGA implementation is reasonable and hardware cost is better than other orders of the polynomial fitting in the same accuracy requirement.
Key words : polynomial fitting;log-add algorithm;FPGA implementation


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

   查表法可以認為是多項式次數為0的情況,隨著精度要求的增加,查找表會變得很大[5]。函數逼近可以采用多項式擬合,首先根據所需要的精度確定多項式次數和分段的大小,然后計算每一段的多項式系數。
    設分段的大小為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次加法。多項式系數存儲量與多項式的計算量是其FPGA實現時互相制約的兩個因素。
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)一項相對較多,但綜合考慮,其他資源占用都比較均衡。其整體的資源開銷要好于其他方案。
    log-add算法單元作為高斯混合概率模型FPGA實現的基本算法單元,能夠簡化運算、提高運算效率。在系統精度要求10-4的情況下,采用一次多項式擬合能夠有效地節省硬件開銷,實現簡單快速log-add算法單元,為大規模實時處理多路語音數據提供了重要保證。
參考文獻
[1] Douglas A.Reynolds,THOMAS E.Quatieri,Robert B.Dunn. Speaker verification using adapted gaussian mixture models[J].Digital Signal Processing,2000(10).
[2] Kazuo Miura,Hiroki Noguchi,Hiroshi Kawaguchi,et al.A  low memory bandwidth gaussian mixture model(GMM)  processor for 20,000-word real-time speech recognition FPGA system[J].ICECE Technology,2008.FPT.2008.
[3] MELNIKOFF S J,FQUIGLEY S.Implementing the Log-add  Algorithm in Hardware[J].Electronics Letters,2003.
[4] LEE B R,BURGESS N.A pallrallel Look-up logarithmic number system addition subtraction scheme for FPGA[J]. Proc.FPT,2003.
[5] 李煒,沈緒榜.對數數值系統的研究[J].微電子學與計算機,2004.
[6] 胡彬.Xilinx ISE Design Suite 10.x FPGA開發指南—邏輯設計篇[M].北京:人民郵電出版社,2008.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 久久精品在线视频| 日本高清久久一区二区三区| 久久九九国产视频| 亚洲高清在线观看一区| 国产成人综合精品| 久久久久久久久久久av| 99在线视频首页| 亚洲欧美日韩综合一区| www日韩av| 91久久久久久久一区二区| 99视频在线免费| 伊人久久在线观看| 午夜精品美女久久久久av福利 | 91久久国产精品| 一区二区三区欧美在线| 日本久久亚洲电影| 欧美日韩一区二区三区在线视频| 日本欧美国产在线| 91国产一区在线| 久久天天躁狠狠躁夜夜躁2014| 日韩av第一页| 久久婷婷国产精品| 国产精品久久久一区| 欧美日韩国产成人| 国产精品视频中文字幕91 | 人人妻人人澡人人爽精品欧美一区 | 福利视频久久| 欧美综合在线第二页| 国产精品天天狠天天看| 一区二区三区四区久久| 亚洲国产精品日韩| 久久久久久午夜| 韩国日本不卡在线| 亚洲综合在线播放| 国产精品美女在线观看| 欧洲精品久久久| 99精品一级欧美片免费播放| 欧美亚洲第一页| 国产剧情日韩欧美| 日韩国产精品毛片| 午夜精品视频在线观看一区二区 |