本发明属于噪声消除技术领域,尤其涉及到基于fpga的主动噪声控制系统模块化设计方法的研究。
背景技术:
噪声污染在大中型城市逐渐演变成一个亟待解决的问题,尤其是在住宅建筑和主干道距离很近的区域。长期暴露在这种噪声环境下,会对人的生理和心理造成严重的危害,一般性的噪声干扰则会影响人们的正常工作和生活。解决现代都市噪声污染的主要途径是安装全密封隔声窗以及双层玻璃窗等,这种措施在城市的高层建筑中会随着楼层的增加成本呈现指数性增长,并且只能阻挡中高频段的噪声,对低频段的噪声控制效果很差。然而在炎热的夏天或者在热带高温地区,长时间的关闭窗户又无法通风换气,这样即影响室内空气质量,又无法降低室内温度,导致室内居住舒适度降低。因此在保持足够通风条件下,研究有效的应用于高层住宅主动噪声控制(anc)是现实中的迫切需要。
传统的通风隔声窗在针对中高频段的噪声效果显著,而针对低频段的声音效果不佳,并且造价昂贵,体积笨重。在针对低频段的噪声,主动噪声控制系统被广泛使用。
主动噪声控制系统一般采用横向自适应滤波器进行数字信号处理,由于需要快速的浮点数运算,传统上都是使用数字信号处理器(dsp)来实现。随着fpga芯片集成度越来越高以及嵌入式数字信号处理模块的不断集成与发展,fpga器件已经在主动噪声控制领域成为有力的竞争者。
在使用dsp进行主动噪声控制的硬件设计中,由于前期需要执行固有的软件程序,因此会降低系统的运行效率。与此相反,使用fpga对主动噪声控制系统进行设计,由于直接是面向硬件进行设计会得到比dsp方法更高的效率。本文介绍了基于fpga的主动噪声控制系统模块化设计方法的实现方法。
技术实现要素:
本发明旨在解决以上现有技术的问题。提出了基于fpga的主动噪声控制系统模块化设计方法。本发明的技术方法如下:
基于fpga的主动噪声控制系统模块化设计方法,用于fpga开发板,其包括:白噪声信号发生器、第一卷积模块、第一权值更新模块、第二卷积模块、第二权值更新模块以及第三卷积模块;所述白噪声信号发生器分别和第一卷积模块、第一权值更新模块相连接,所述第一权值更新模块和第二卷积模块相连接,第二卷积模块和第一卷积模块还均与第二权值更新模块相连接,所述第二权值更新模块和第三卷积模块相连接,噪声源的输入信号分别与第三卷积模块、第二卷积模块相连接;
白噪声发生器模块:用于产生高斯白噪声vn(n),vn(n)在次级路径中注入输入信号与噪声源产生不想关的信号,为了解决这个问题对使用白噪声发生器对次级路径产生白噪声信号。
第一卷积模块:用于对输入的信号高斯白噪声vn(n)经过实权值为n的fir滤波器sn(n)进行滤波得到建模滤波器的输出信号,生成v′(n)=s(n)*v(n);
第一权值更新模块:用于输入高斯白噪声信号vn(n),输入重构的误差信号f(n)=e(n)-v′(n),相乘得到fn(n)vn(n),进行移位计算后得到
第二卷积模块:用于对参考噪声信号进行滤波得到
第二权值更新模块:对控制滤波器w(z)的权值进行更新,输出更新后w(z)的权值,具体包括:输入高斯白噪声信号x′n(n),输入误差信号fn(n)相乘得到fn(n)x′n(n),x′n(n)代表噪声源xn(n)信号通过建模滤波器
第三卷积模块:对参考噪声信号进行滤波y(n)=w(n)*x(n),滤波后的信号y(n)与白噪声信号v(n)相叠加从而得出抗噪声信号y(n)-v(n)。
将主动噪声控制系统分为五个模块化的设计,三个相同的卷积模块,两个权值更新模块,这种设计方法使得提高了整个系统的运算速度,减少了系统设计的周期。
动量lms算法在原有的lms算法上添加了动量项:
w(n+1)=w(n)-2μe(n)x′(n)+α[w(n)-w(n-1)]
其中α为动量因子,|α|<1。引入的动量项目可以使得权系数收敛的更快、更平稳的作用。
进一步的,抗噪声信号数据可以根据如下公式反映出其降噪性能的大小和次级通道建模的精确度:
其中r:anc系统的降噪性能的好坏;e(n):anc系统主控制自适应滤波器的误差函数;d(n):anc系统主控制自适应滤波器的期望信号;δs:anc系统中次级通道建模的精确度大小;si(n):anc系统中实际次级通道的路径函数;
进一步的,所述次级路径在线更新自适应滤波器
本发明的优点及有益效果如下:
本发明结合上述anc系统中的问题提出基于fpga的主动噪声控制系统模块化设计方法的实现,能够降低lms算法由于参考信号的自相关矩阵的特征值分散程度的敏感性使得控制滤波器的收敛时间大大降低,并且由于次级路径采用的变步长算法,使得整个anc系统的收敛时间大大降低。
主动噪声控制(anc)主要是基于声叠加原理,利用机电组合来抑制声学噪声信号的方法。与传统的被动噪声控制(pnc)方法相比,传统的噪声控制方法只可以降低频段较窄的低频信号并且需要的装置或者体积庞大而且笨重,应用的场景受限。而anc系统在低频噪声的降噪、安装的便利、工作性能的稳定等方面有着很好的效果并且还可以通过控制参数来抵消不同特性的噪声。
而基于fpga的主动噪声控制系统模块化设计方法,将动量lms(mlms)算法的主动噪声控制系统分为五个模块化的设计,三个相同的卷积模块,两个权值更新模块,这种设计方法使得提高了整个系统的运算速度,减少了系统设计的周期,提高了系统的吞吐量。
本技术重点难点在于为了解决传统的使用dsp进行主动噪声控制的硬件设计中,由于前期需要执行固有的软件程序,因此会降低系统的运行效率,使用fpga对主动噪声进行设计,由于直接面向硬件进行设计会得到比dsp更高的运行效率。
噪声源产生的参考信号x(n)通过主通道产生干扰信号d(n),为了产生抗噪声信号y’(n),参考信号通过控制滤波器w(z),产生输出信号y(n),y(n)通过次级路径产生抗噪声信号y’(n),为了使得动量lms算法对控制滤波器权值更新的稳定性,必须让参考信号x(n)通过次级建模滤波器
本发明在一定程度上提高了anc系统在对低频噪声的降噪时候整个系统的性能,具有如下突出的优点:
1.收敛速度快,动量lms只比lms算法增加了一个由于权系数相关而引入的动量项,在权系数变化较大的情况下,则目前的权系数就会增加,可以起到加速梯度下降,使权系数均值收敛的更快更平稳的作用。采用动量lms算法后,其收敛系数的取值较lms算法有所增加,来降低步长对参考信号自相关矩阵的特征值分散程度的敏感性,从而加速控制滤波器的收敛速度。
2.运行频率高,易于系统的迁移,本文针对整个主动噪声控制系统采用的是模块化的设计,动量lms(mlms)算法的主动噪声控制系统分为五个模块化的设计,三个相同的卷积模块,两个权值更新模块,这种设计方法使得提高了整个系统的运算速度,减少了系统设计的周期,提高了系统的吞吐量,此fpga实现获得的频率为120mhz,该anc系统的模块化实施使得整个系统获得更快的收敛速度。
3.所述基于fpga的主动噪声控制系统模块化设计方法,对于控制滤波器使用以下算法进行更新权值。
方程式中:α为动量因子,取|α|<1,uw表示控制滤波器的步长参数。
附图说明
图1是本发明提供优选实施例提出的次级路径在线建模系统框图;
图2为次级路径在线辨识anc系统硬件实现结构框图;
图3为anc系统综合仿真结果图,图3(a)表示输出残余误差与在matlab上仿真后的残余误差进行对比;图3(b)表示硬件代码的modelsim仿真与算法的理论残余误差对比图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方法进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
本发明解决上述技术问题的技术方法是:
本发明提出的anc系统采用quartusⅱ进行仿真。
如附图1所示首先将参考信号通过次级路径s(z)进行滤波,然后将滤波后的信号x′(n)进行对自适应滤波器w(z)的权系数进行更新。次级路径在线更新自适应滤波器
如附图2所示,本发明提出基于fpga的主动噪声控制系统模块化设计方法,主要包括6个模块:(1)白噪声信号发生器、(2)卷积模块1、(3)权值更新模块1、(4)卷积模块2、(5)权值更新模块2以及(6)卷积模块3。
白噪声发生器模块(1),用于产生高斯白噪声vn(n),vn(n)在次级路径中注入输入信号与噪声源产生不想关的信号,为了解决这个问题对使用白噪声发生器对次级路径产生白噪声信号。
卷积模块1:输入信号高斯白噪声vn(n),经过实权值为n的fir滤波器sn(n)进行滤波得到建模滤波器的输出信号。
权值更新模块1:用于输入高斯白噪声信号vn(n),输入重构的误差信号f(n)=e(n)-v′(n),相乘得到fn(n)vn(n),进行移位计算后得到
卷积模块2:输入信号高斯白噪声xn(n),经过实权值为n的fir滤波器sn(n)进行滤波xn(n)得到滤波器的输出信号。
权值更新模块2:对控制滤波器w(z)的权值进行更新,输出更新后w(z)的权值,具体包括:输入高斯白噪声信号x′n(n),输入误差信号fn(n)相乘得到fn(n)x′n(n),x′n(n)代表噪声源xn(n)信号通过建模滤波器
卷积模块3:输入信号高斯白噪声xn(n),经过实权值为n的fir滤波器wn(n)进行滤波xn(n)得到滤波器的输出信号yn(n)。
加法器2:输入信号yn(n)与加性高斯白噪声vn(n)相减产生抗噪声信号输出。
anc系统的模块化设计分为5个模块,3个卷积模块,和2个lms算法权值更新模块。如图2所示,第1个卷积模块生成v′(n)=s(n)*v(n),通过加法器输出重构的误差信号f(n)=e(n)-v′(n),第1个lms权值更新模块对次级路径s(z)进行估计从而得到滤波器
最后得到的数据可以根据如下公式反映出其降噪性能的大小和次级通道建模的精确度:
其中r:anc系统的降噪性能的好坏;
e(n):anc系统主控制自适应滤波器的误差函数;
d(n):anc系统主控制自适应滤波器的期望信号;
δs:anc系统中次级通道建模的精确度大小;
si(n):anc系统中实际次级通道的路径函数;
如附图3(a)所示,实现的anc系统的残余误差e(n)仿真对比,将上述算法通过matlab仿真,将上述设计方法通过quartusⅱ和modelsim联合仿真实现,将仿真输出残余误差与在matlab上仿真后的残余误差进行对比,可以看出基于模块化的主动噪声设计在quartusⅱ上的仿真结果与理论值相同,保证本算法的正确性。
如附图3(b)所示,可以看出硬件代码的modelsim仿真与算法的理论残余误差基本一致。从图中可以看出次级路径在线辨识主动噪声控制系统fpga设计进行自适应降噪,经过一段时间的稳定运行,达到预期的降噪效果,说明上述设计思路的正确性。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。