![](http://www.21ic.com/d/file/201104/b0b86c6ae6c9df2a0e446ee7d8bda6b1.gif)
![](http://www.21ic.com/d/file/201104/13ebda945f1d7a2d60998091d9887d39.gif)
设分段的大小为d(d=2-k,k=0,1,2…),计算各段系数时,各段函数平移到区间[0,d),如图2所示。用Matlab进行多项式拟合依次得到各段系数。由此可以得出各段的拟合多项式为:
![](http://www.21ic.com/d/file/201104/4c23cd7d78023fe30ab6d47688568c21.gif)
![](http://www.21ic.com/d/file/201104/7afa12bcbbc386f083568f9a40adf102.gif)
![](http://www.21ic.com/d/file/201104/842de7338e637b81f29317e0427f3165.gif)
2 多项式拟合的实现方案
2.1 多项式次数与分段大小、精度的关系
用Matlab进行仿真,表1列出了各种精度要求下各次多项式所需的分段大小(d),其中?啄为精度要求,?茁为多项式的次数。
由表1可以看出,相同次数的情况下,精度要求越高,分段大小d越小;而相同精度的情况下,次数越高,分段大小d越大。另外,次数越低,精度越高,分段大小d下降的数量级越快。
![](http://www.21ic.com/d/file/201104/3441b2c54a3de18efb4362937e1eb594.gif)
![](http://www.21ic.com/d/file/201104/ec06af93bc67ca473fd6c13beaa722aa.gif)
表2列出各次多项式在不同精度要求下,所需要系数个数(n)的分布情况。
![](http://www.21ic.com/d/file/201104/5a70a586abf1a258997ff61fa4f97f53.gif)
与n相反,多项式的计算量随着多项式次数的增加而增加。根据horner算法[3]多项式的表达式如下:
![](http://www.21ic.com/d/file/201104/3406da37087d304b645e42da178532d8.gif)
式(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。
![](http://www.21ic.com/d/file/201104/f3183c80661249696abc01bed4ba1003.gif)
![](http://www.21ic.com/d/file/201104/e2a7c3c91acaddeb31404f6709ef1241.gif)
![](http://www.21ic.com/d/file/201104/3d8dea2a260a5ac0a946f1fa5d1a5d59.gif)
![](http://www.21ic.com/d/file/201104/e25475a630353b690d1de512b39d8be0.gif)
![](http://www.21ic.com/d/file/201104/ac8eb0896d09a93b2d00401f2ca484da.gif)
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.