基于fpga的主动噪声控制系统模块化设计方法

文档序号:1447782 发布日期:2020-02-18 浏览:21次 >En<

阅读说明:本技术 基于fpga的主动噪声控制系统模块化设计方法 (Active noise control system modular design method based on FPGA ) 是由 袁军 吕韦喜 王巍 张涛 李军 于 2019-11-11 设计创作,主要内容包括:本发明请求保护基于现场可编辑门阵列(FPGA)的主动噪声控制系统模块化设计方法。主要包括6个模块:白噪声信号发生器、卷积模块3、权值更新模块2、卷积模块2、权值更新模块1以及卷积模块1。本发明目的在于提高ANC系统的运算速度。创新点在于为了解决在实际的噪声环境下,最小均方(LMS)算法的收敛速度较慢,提出了基于动量最小均方(MLMS)算法主动噪声控制系统。使用1个权值更新模块和2个卷积模块实现ANC系统中动量LMS算法,为了对次级路径进行实时的建模使用1个权值更新模块和1个卷积模块实现动量LMS算法。这种模块化的ANC设计方法实现了一个快速的设计,具有快速收敛,为了提高系统的运算速度以及系统对数据的吞吐量,采用并行的处理方式进行主动噪声控制系统的设计。(The invention discloses a modular design method of an active noise control system based on a Field Programmable Gate Array (FPGA). Mainly include 6 modules: the white noise signal generator comprises a white noise signal generator, a convolution module 3, a weight updating module 2, a convolution module 2, a weight updating module 1 and a convolution module 1. The invention aims to improve the operation speed of an ANC system. The innovation point is that in order to solve the problem that the convergence speed of a Least Mean Square (LMS) algorithm is low in an actual noise environment, an active noise control system based on a Momentum Least Mean Square (MLMS) algorithm is provided. And the momentum LMS algorithm in the ANC system is realized by using 1 weight updating module and 2 convolution modules, and the momentum LMS algorithm is realized by using 1 weight updating module and 1 convolution module for carrying out real-time modeling on a secondary path. The modularized ANC design method realizes a rapid design, has rapid convergence, and adopts a parallel processing mode to design an active noise control system in order to improve the operation speed of the system and the throughput of the system to data.)

基于FPGA的主动噪声控制系统模块化设计方法

技术领域

本发明属于噪声消除技术领域,尤其涉及到基于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),进行移位计算后得到与Sn(n)相累加,将累加后的结果与α(Sn(n)-Sn-1(n))得到更新后的权系数Sn(n+1),α代表动量因子,|α|<1;第一权值更新模块对次级路径S(z)进行估计从而得到滤波器

Figure BDA0002268285880000022

的权系数;

第二卷积模块:用于对参考噪声信号进行滤波得到

Figure BDA0002268285880000023

第二权值更新模块:对控制滤波器W(z)的权值进行更新,输出更新后W(z)的权值,具体包括:输入高斯白噪声信号x′n(n),输入误差信号fn(n)相乘得到fn(n)x′n(n),x′n(n)代表噪声源xn(n)信号通过建模滤波器

Figure BDA0002268285880000024

得来的滤波信号,进行移位计算后得到

Figure BDA0002268285880000025

与wn(n)相累后的结果与动量项α(wn(n)-wn-1(n))相加得到更新后的权系数Sn(n+1),α代表动量因子,|α|<1;

第三卷积模块:对参考噪声信号进行滤波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。引入的动量项目可以使得权系数收敛的更快、更平稳的作用。

进一步的,抗噪声信号数据可以根据如下公式反映出其降噪性能的大小和次级通道建模的精确度:

Figure BDA0002268285880000031

其中R:ANC系统的降噪性能的好坏;e(n):ANC系统主控制自适应滤波器的误差函数;d(n):ANC系统主控制自适应滤波器的期望信号;ΔS:ANC系统中次级通道建模的精确度大小;Si(n):ANC系统中实际次级通道的路径函数;

Figure BDA0002268285880000033

ANC系统中模拟次级通道的路径函数。

进一步的,所述次级路径在线更新自适应滤波器

Figure BDA0002268285880000034

用来对信道S(z)进行建模,其中使用动量LMS算法进行权系数的更新,us

Figure BDA0002268285880000036

的步长参数,建模滤波器的误差信号

Figure BDA0002268285880000037

主要噪声d(n)=p(n)*x(n),抗噪声信号y′(n)=s(n)*y(n),y(n)=w(n)*x(n)是滤波器W(z)的输出信号,v′(n)=s(n)*v(n)是白噪声信号v(n)通过建模滤波器

Figure BDA0002268285880000038

的输出信号,v(n)是用于建模的输入信号加性白噪声,*代表线性卷积,P(z),S(z)和W(z)的单位脉冲响应分别表示为p(n),s(n),w(n),其中主动噪声控制滤波器W(z)使用动量LMS算法进行权值的更新,uw为W(z)的迭代步长,

Figure BDA0002268285880000041

是参考信号x(n)通过滤波而来,g(n)=e(n)=[d(n)-y′(n)+v′(n)]为控制滤波器W(z)的误差信号。

本发明的优点及有益效果如下:

本发明结合上述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)通过次级建模滤波器

Figure BDA0002268285880000043

为了解决次级路径随时间变化,必须在线的对次级建模滤波器进行估计,为此需要使用与参考信号不相关的随机噪声注入到次级路径里面,白噪声发生器产生这样一组随机信号v(n),v(n)通过次级路径产生建模信号v’(n),另外一端v(n)通过建模滤波器

Figure BDA0002268285880000051

产生建模信号v’(n),参与误差信号e(n)与建模信号做差产生误差信号f(n)。f(n)作为动量LMS算法和动量LMS算法的误差信号。

本发明在一定程度上提高了ANC系统在对低频噪声的降噪时候整个系统的性能,具有如下突出的优点:

1.收敛速度快,动量LMS只比LMS算法增加了一个由于权系数相关而引入的动量项,在权系数变化较大的情况下,则目前的权系数就会增加,可以起到加速梯度下降,使权系数均值收敛的更快更平稳的作用。采用动量LMS算法后,其收敛系数的取值较LMS算法有所增加,来降低步长对参考信号自相关矩阵的特征值分散程度的敏感性,从而加速控制滤波器的收敛速度。

2.运行频率高,易于系统的迁移,本文针对整个主动噪声控制系统采用的是模块化的设计,动量LMS(MLMS)算法的主动噪声控制系统分为五个模块化的设计,三个相同的卷积模块,两个权值更新模块,这种设计方法使得提高了整个系统的运算速度,减少了系统设计的周期,提高了系统的吞吐量,此FPGA实现获得的频率为120MHz,该ANC系统的模块化实施使得整个系统获得更快的收敛速度。

3.所述基于FPGA的主动噪声控制系统模块化设计方法,对于控制滤波器使用以下算法进行更新权值。

Figure BDA0002268285880000052

方程式中:α为动量因子,取|α|<1,uw表示控制滤波器的步长参数。

附图说明

图1是本发明提供优选实施例提出的次级路径在线建模系统框图;

图2为次级路径在线辨识ANC系统硬件实现结构框图;

图3为ANC系统综合仿真结果图,图3(a)表示输出残余误差与在MATLAB上仿真后的残余误差进行对比;图3(b)表示硬件代码的MODELSIM仿真与算法的理论残余误差对比图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方法进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。

本发明解决上述技术问题的技术方法是:

本发明提出的ANC系统采用QuartusⅡ进行仿真。

如附图1所示首先将参考信号通过次级路径S(z)进行滤波,然后将滤波后的信号x′(n)进行对自适应滤波器W(z)的权系数进行更新。次级路径在线更新自适应滤波器

Figure BDA0002268285880000061

用来对信道S(z)进行建模,其中使用动量LMS算法进行权系数的更新,us

Figure BDA0002268285880000063

的步长参数,建模滤波器的误差信号

Figure BDA0002268285880000064

Figure BDA0002268285880000065

主要噪声d(n)=p(n)*x(n),抗噪声信号y′(n)=s(n)*y(n),y(n)=w(n)*x(n)是滤波器W(z)的输出信号,v′(n)=s(n)*v(n)是白噪声信号v(n)通过建模滤波器

Figure BDA0002268285880000066

的输出信号,v(n)是用于建模的输入信号加性白噪声,*代表线性卷积,P(z),S(z)和W(z)的单位脉冲响应分别表示为p(n),s(n),w(n)。其中主动噪声控制滤波器W(z)使用动量LMS算法进行权值的更新。uw为W(z)的迭代步长,

Figure BDA0002268285880000067

是参考信号x(n)通过

Figure BDA0002268285880000068

滤波而来,g(n)=e(n)=[d(n)-y′(n)+v′(n)]为控制滤波器W(z)的误差信号。试验中采用了参考噪声拾音器,误差拾音器,以及对消扬声器,以及Artix7系列FPGA开发板,开发板中使用了两块WM8731音频编解码器,一路WM8731芯片对参考噪声信号进行音频采集,另外一路WM8731芯片对误差拾音器进行音频采集,以及将对消噪声信号经过解码传进对消扬声器。

如附图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),进行移位计算后得到

Figure BDA0002268285880000071

与Sn(n)相累加,将累加后的结果与α(Sn(n)-Sn-1(n))得到更新后的权系数Sn(n+1),α代表动量因子,|α|<1;第一权值更新模块对次级路径S(z)进行估计从而得到滤波器

Figure BDA0002268285880000072

的权系数;

卷积模块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)信号通过建模滤波器

Figure BDA0002268285880000076

得来的滤波信号,进行移位计算后得到

Figure BDA0002268285880000073

与wn(n)相累后的结果与动量项α(wn(n)-wn-1(n))相加得到更新后的权系数Sn(n+1),α代表动量因子,|α|<1;

卷积模块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)进行估计从而得到滤波器

Figure BDA0002268285880000074

的权系数,第2个卷积模块对参考噪声信号进行滤波得到第2个LMS权值更新模块对控制滤波器W(z)的权值进行更新,输出更新后W(z)的权值,第3个卷积模块对参考噪声信号进行滤波y(n)=w(n)*x(n),滤波后的信号y(n)与白噪声信号v(n)相叠加从而得出抗噪声信号y(n)-v(n)。

最后得到的数据可以根据如下公式反映出其降噪性能的大小和次级通道建模的精确度:

Figure BDA0002268285880000081

Figure BDA0002268285880000082

其中R:ANC系统的降噪性能的好坏;

e(n):ANC系统主控制自适应滤波器的误差函数;

d(n):ANC系统主控制自适应滤波器的期望信号;

ΔS:ANC系统中次级通道建模的精确度大小;

Si(n):ANC系统中实际次级通道的路径函数;

ANC系统中模拟次级通道的路径函数

如附图3(a)所示,实现的ANC系统的残余误差e(n)仿真对比,将上述算法通过MATLAB仿真,将上述设计方法通过QUARTUSⅡ和MODELSIM联合仿真实现,将仿真输出残余误差与在MATLAB上仿真后的残余误差进行对比,可以看出基于模块化的主动噪声设计在QuartusⅡ上的仿真结果与理论值相同,保证本算法的正确性。

如附图3(b)所示,可以看出硬件代码的MODELSIM仿真与算法的理论残余误差基本一致。从图中可以看出次级路径在线辨识主动噪声控制系统FPGA设计进行自适应降噪,经过一段时间的稳定运行,达到预期的降噪效果,说明上述设计思路的正确性。

以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于LSTM的电声门图语音转换方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!