《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 多項(xiàng)式擬合在log-add算法單元中的應(yīng)用及其FPGA實(shí)現(xiàn)
多項(xiàng)式擬合在log-add算法單元中的應(yīng)用及其FPGA實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2011年第2期
魏開容,吉立新,楊鎮(zhèn)西
國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心,河南 鄭州450002
摘要: 綜合考慮面積和速度等因素,采用一次多項(xiàng)式擬合實(shí)現(xiàn)了簡(jiǎn)單快速的log-add算法單元。實(shí)驗(yàn)結(jié)果表明,在相同的精度要求下,其FPGA實(shí)現(xiàn)資源占用合理,硬件開銷好于其他次數(shù)的多項(xiàng)式擬合實(shí)現(xiàn)方案。
中圖分類號(hào): TN402
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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


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

   查表法可以認(rèn)為是多項(xiàng)式次數(shù)為0的情況,隨著精度要求的增加,查找表會(huì)變得很大[5]。函數(shù)逼近可以采用多項(xiàng)式擬合,首先根據(jù)所需要的精度確定多項(xiàng)式次數(shù)和分段的大小,然后計(jì)算每一段的多項(xiàng)式系數(shù)。
    設(shè)分段的大小為d(d=2-k,k=0,1,2…),計(jì)算各段系數(shù)時(shí),各段函數(shù)平移到區(qū)間[0,d),如圖2所示。用Matlab進(jìn)行多項(xiàng)式擬合依次得到各段系數(shù)。由此可以得出各段的擬合多項(xiàng)式為:

    這樣實(shí)現(xiàn)時(shí)可以把二進(jìn)制的定點(diǎn)數(shù)x分為MSBs和LSBs兩段。MSBs對(duì)應(yīng)段標(biāo)號(hào)i,由段標(biāo)號(hào)取出系數(shù)ci0,ci1,ci2…;LSBs對(duì)應(yīng)浮點(diǎn)數(shù)xl,代表段內(nèi)偏移值。由圖3可以計(jì)算出f(x)。

    MSBs和LSBs應(yīng)該這樣選取,例如定標(biāo)為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 多項(xiàng)式擬合的實(shí)現(xiàn)方案
2.1 多項(xiàng)式次數(shù)與分段大小、精度的關(guān)系

    用Matlab進(jìn)行仿真,表1列出了各種精度要求下各次多項(xiàng)式所需的分段大小(d),其中?啄為精度要求,?茁為多項(xiàng)式的次數(shù)。
    由表1可以看出,相同次數(shù)的情況下,精度要求越高,分段大小d越?。欢嗤鹊那闆r下,次數(shù)越高,分段大小d越大。另外,次數(shù)越低,精度越高,分段大小d下降的數(shù)量級(jí)越快。



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

    由表2可以看出,其結(jié)果與表1趨于一致。相同次數(shù)下,精度要求越高,所需要的系數(shù)個(gè)數(shù)n越多;而相同精度下,次數(shù)越高,所需要系數(shù)個(gè)數(shù)n越少。n隨著次數(shù)的降低和精度的提高迅速增大。
    與n相反,多項(xiàng)式的計(jì)算量隨著多項(xiàng)式次數(shù)的增加而增加。根據(jù)horner算法[3]多項(xiàng)式的表達(dá)式如下:
  
    式(6)表明,多項(xiàng)式次數(shù)增加1次,計(jì)算多項(xiàng)式的函數(shù)值增加1次乘法和1次加法。多項(xiàng)式系數(shù)存儲(chǔ)量與多項(xiàng)式的計(jì)算量是其FPGA實(shí)現(xiàn)時(shí)互相制約的兩個(gè)因素。
3 仿真結(jié)果
    為了取得面積與速度的平衡,根據(jù)測(cè)試結(jié)果及實(shí)際系統(tǒng)的要求,選擇δ=10-4、β=1來實(shí)現(xiàn)。本文采用Xilinx ISE Design Suite 10.1進(jìn)行仿真測(cè)試。定標(biāo)取Q32.23,其硬件實(shí)現(xiàn)計(jì)算流程如圖4,輸入為定點(diǎn)數(shù)x,由MSBs和LBSs取得系數(shù)和xl,經(jīng)過reg系數(shù)寄存器及1次乘法和1次加法,輸出y。

    時(shí)序仿真結(jié)果結(jié)果如圖5。輸入x是32 bit的無(wú)符號(hào)定點(diǎn)數(shù),輸出為y;clk是時(shí)鐘;reset為復(fù)位信號(hào);MSBs是x的高位,用于得到多項(xiàng)式系數(shù);LSBs是x的低位即自變量;temp是用于緩存中間結(jié)果,coef[...]是多項(xiàng)式系數(shù)。輸出延遲3個(gè)時(shí)鐘周期,流水線填滿后,每個(gè)時(shí)鐘周期輸出一個(gè)結(jié)果。

    例如輸入32’h00333333(浮點(diǎn)數(shù)0.4),從圖中可以看出其輸出y為24’h41aba5,與實(shí)際函數(shù)值24’h41aa7c存在誤差。其實(shí)現(xiàn)結(jié)果與浮點(diǎn)結(jié)果比較誤差如圖6??梢钥闯龆c(diǎn)數(shù)誤差在800以內(nèi),也就是浮點(diǎn)數(shù)約10-4以內(nèi),誤差范圍與表1相一致。

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

    可以對(duì)比δ=10-4,β=0,1,2,3四種實(shí)現(xiàn)方式的硬件開銷,如表4。

    由表4可以看出,雖然多項(xiàng)式次數(shù)為0時(shí)使用寄存器(Registers)和查找表(LUTs)最少,且乘法和加法次數(shù)(DSP48Es)為0,但由于其使用了24×40 960 ROM,占用存儲(chǔ)面積較大;而一次多項(xiàng)式擬合雖然所占用查找表(LUTs)一項(xiàng)相對(duì)較多,但綜合考慮,其他資源占用都比較均衡。其整體的資源開銷要好于其他方案。
    log-add算法單元作為高斯混合概率模型FPGA實(shí)現(xiàn)的基本算法單元,能夠簡(jiǎn)化運(yùn)算、提高運(yùn)算效率。在系統(tǒng)精度要求10-4的情況下,采用一次多項(xiàng)式擬合能夠有效地節(jié)省硬件開銷,實(shí)現(xiàn)簡(jiǎn)單快速log-add算法單元,為大規(guī)模實(shí)時(shí)處理多路語(yǔ)音數(shù)據(jù)提供了重要保證。
參考文獻(xiàn)
[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,F(xiàn)QUIGLEY 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] 李煒,沈緒榜.對(duì)數(shù)數(shù)值系統(tǒng)的研究[J].微電子學(xué)與計(jì)算機(jī),2004.
[6] 胡彬.Xilinx ISE Design Suite 10.x FPGA開發(fā)指南—邏輯設(shè)計(jì)篇[M].北京:人民郵電出版社,2008.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。