一种基于ANC系统中FxLMS改进算法的FPGA硬件结构的制作方法

文档序号:17394635发布日期:2019-04-13 00:43阅读:793来源:国知局
一种基于ANC系统中FxLMS改进算法的FPGA硬件结构的制作方法

本发明属于一种anc系统硬件结构实现领域,尤其涉及到一种基于fpga的fxlms改进算法在主动噪声控制系统(anc)中次级通道建模方法的研究。



背景技术:

主动噪声控制(anc)是由lueg于1936年提出的一种噪声消除技术,它通过向主通道路径添加一个频率相同、幅度相反的抗噪声信号来消除不必要的噪声。同时anc是一个完全自适应系统,可以根据信号的变化不断调整滤波器系数以最小化误差信号达到降低噪声的效果。

近年来,功能强大的数字信号处理(dsp)设备的开发使具有广泛应用的实时anc系统成为可能。针对宽带、窄带、和自适应前馈控制分支中的单通道和多通道anc系统开发了dsp算法,并介绍了使用tms320c25dsp处理器的anc系统的硬件实现。然而,随着嵌入式数字信号处理模块的不断发展,fpga因其在系统中的高速处理已逐渐成为信号处理市场的重要竞争者。一方面,fpga可以提供不同的硬件功能模块,例如嵌入式mac、音频转换器和其他有用资源;另一方面,fpga可以提供数字信号并行处理和灵活性的良好组合。

fxlms算法通过处理误差麦克风接收的误差信号连续调整滤波器系数。但是在fxlms算法中次级通道路径会对anc系统的降噪性能有很大影响。因此,为了改进fxlms算法,应该设计具有与次级通道路径路径特征相对应的结构的次级通道模拟路径并通过fpga硬件来实现。



技术实现要素:

本发明旨在解决以上现有技术的问题。提出了一种实现了对anc系统更高的降噪性能和收敛速度的基于anc系统中fxlms改进算法的fpga硬件结构。本发明的技术方案如下:

一种基于anc系统中fxlms改进算法的fpga硬件结构,其包括:权值更新模块(1)、fir(有限单位脉冲响应)滤波器模块(2)、控制信号模块(3)、变功率白噪声产生器(4)、性能监视模块(5)及wm8731音频编解码器(6),其中,

权值更新模块(1),用于通过输入信号x’(n)、误差信号f(n)和μw计算主通道控制滤波器系数,以及通过随机白噪声v(n)、误差信号f(n)和μs(n)计算次级通道控制滤波器系数;

fir滤波器模块(2),用于产生主通道滤波器的输出y(n)、次级通道滤波器的输出和参考噪声信号的滤波信号x’(n);

控制信号模块(3),用于产生包括读写寄存器地址在内的控制信号来处理fxlms(滤波x最小均方算法)的运行;fxlms滤波x最小均方算法改进主要在于通过变功率白噪声产生器和性能监视模块实现次级通道在线和离线建模的相互转换;

变功率白噪声产生器模块(4),用于产生anc系统中次级通道的训练信号即随机白噪声,并对其功率进行分配调度,然后注入到次级通道中;

性能监视模块(5),采用μsmax-μs<α和20log10|f(n)|<0两个等式对次级通道辅助随机白噪声的连续注入进行控制,μsmax表示次级通道步长参数的最大值,μs表示次级通道步长参数,|f(n)|表示次级通道误差信号,n表示迭代次数,1×10-5<α<1×10-3,进而使得次级通道可以进行在线建模和离线建模的相互转换;

wm8731音频编解码器模块(6),用于对参考噪声信号和误差麦克风信号进行模数转换,从而传进到fxlms算法中,同时该音频编解码器模块有输入和输出两个端口,并且在输入端口有两路声道,用来接收参考噪声信号和误差麦克风信号;

输入初始参考噪声信号x(n)和误差麦克风信号e(n)分别经过wm8731音频编解码器模块(6)、权值更新模块(1)和次级通道模拟滤波器s’(z)从而产生主通道自适应滤波器的期望信号d(n)、输出信号y(n)和滤波信号x’(n),其中s’(z)是由次级通道建模滤波器模拟次级通道路径产生,与此同时,通过模块控制信号模块(3))产生的信号控制变功率白噪声产生器模块(4)发出随机白噪声信号v(n)与主控制自适应滤波器的输出信号y(n)结合,并一起注入到次级通道路径中,产生的信号再与期望信号d(n)相减,得到误差信号e(n),而e(n)就是表示anc系统降噪性能的物理量。

进一步的,在整个anc系统运行期间,所述次级通道通过性能监视模块(5)不断的在线建模和离线建模调整,实现和次级通道训练信号即辅助随机白噪声的相互转换。

进一步的,所述anc系统根据如下公式反映出其降噪性能的大小和次级通道建模的精确度:

其中r:anc系统的降噪性能的好坏;e(n):anc系统主控制自适应滤波器的误差函数;d(n):anc系统主控制自适应滤波器的期望信号;△s:anc系统中次级通道建模的精确度大小;si(n):anc系统中实际次级通道的路径函数;anc系统中模拟次级通道的路径函数;m表示次级通道滤波器阶数;

进一步的,所述权值更新模块通过输入信号x’(n)、误差信号f(n)和μw计算主通道控制滤波器系数,以及通过随机白噪声v(n)、误差信号f(n)和μs(n)计算次级通道控制滤波器系数,具体公式为:

ω(n+1)表示主通道抽头系数更新值μω(n)表示主通道步长参数;

μs(n)表示次级通道步长参数表示模拟次级通道滤波器;

进一步的,所述fir滤波器模块,用于产生主通道滤波器的输出y(n)、次级通道滤波器的输出和参考噪声信号的滤波信号x’(n),具体公式为:

y(n)=ωt(n)*x(n)

其中是对anc系统中的次级通道的模拟,x(n)表示参考噪声信号,主通道滤波器w(z)和次级通道模拟滤波器滤波器均通过控制信号模块(3)实现。

进一步的,所述控制信号模块(3)包含两个输入:coef_o是保存在dp_ram中的更新块的输出信号;xi(n)是系统中前一个模块的输出信号。

进一步的,所述控制信号模块通过两个并行输入控制信号:(1)adc_full是来自音频编解码器adc的输出信号;当参考麦克风接收输入信号样本时,它会被激活;(2)通过up_counter块生成了cnt_max,当计数器达到最大值时,系统激活cnt_max信号。

进一步的,所述anc系统在进行次级通道建模的一开始,采用在线建模,使其能够准确的跟踪次级通道的变化,而当噪声降低到anc系统趋于稳定时,关闭次级通道的在线建模即停止辅助白噪声的注入,采用离线建模。

进一步的,所述fxlms改进算法具体步骤为:fxlms改进算法具体步骤为:首先通过计算次级通道建模滤波器的步长参数大小,当步长参数收敛到一定值时,认为anc系统以及达到收敛,从而停止辅助白噪声的注入。之后,如果anc系统突然受到环境的变化,导致次级通道变化,从而使得次级通道建模的精度下降,致使anc系统不稳定,再通过计算f(n)的大小,重新注入辅助随机白噪声进入次级通道建模。

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

本发明结合上述anc系统中的问题提出一种基于anc系统中fxlms改进算法的fpga硬件结构设计,利用模块(3)产生控制信号对anc系统中各个模块的运行进行控制。另外在硬件中加入对次级通道在线建模和离线建模相互转换和次级通道训练信号(辅助随机白噪声)的功率调度模块,实现了对anc系统更高的降噪性能和收敛速度。

主动噪声控制(anc)主要是基于声叠加原理,通过控制扬声器在指定的区域发出相对应的消声信号来控制初始噪声信号的一种噪声控制方法。与传统的被动噪声控制(pnc)方法相比,anc系统在低频噪声的降噪、安装的便利、工作性能的稳定等方面有着很好的效果并且还可以通过控制参数来抵消不同特性的噪声。

而基于fxlms算法的次级通道建模的anc系统,等效于用另外一个自适应滤波器对anc系统中的次级路径进行模拟跟踪,使得初始参考噪声信号通过模拟次级路径的自适应滤波器产生滤波器信号注入到主通道的自适应滤波器中,从而达到使lms算法稳定的目的进而提高anc系统的稳定降噪性能。

本发明在一定程度上降低了anc系统中fxlms算法硬件实现的复杂度以及提高了anc系统的收敛速度和降噪性能,具有如下突出的优点:

1.结构简单,易适应环境变化。通过模块(3)产生的信号控制整个fxlms改进算法中各个模块的运行,简化了硬件结构实现的复杂度以及减少了硬件资源的消耗;另外在该算法结构中加入对次级通道在线建模和离线建模相互转换和次级通道训练信号(辅助随机白噪声)的功率调度模块,使得anc系统能更好适应环境的突然变化以及提高次级通道建模的精度。

2.采用变步长算法和辅助噪声功率调度用于更新次级通道建模滤波器的抽头系数,提高了次级通道建模精度和鲁棒性。

附图说明

图1是本发明提供优选实施例anc系统硬件结构示意图;

图2为权值更新模块示意图;

图3为fir滤波器模块示意图;

图4为控制信号模块示意图;

图5为anc系统硬件实现仿真结果图。

具体实施方式

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

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

本发明提出的anc系统fpga硬件结构采用quartusii和modelsim联合进行仿真。

如附图1所示参考噪声信号x(n)和误差麦克风信号e(n)由wm8731音频编解码器输入端口采集,经过wm8731音频编解码器中adc进行模数转换,再将数字信号送入到fxlms改进算法结构中,控制系统处理后产生控制信号y(n),y(n)与次级通道辅助随机白噪声v(n)相结合后再通过wm8731音频编解码器中dac进行数模转换驱动扬声器发出次级信号。如果扬声器发出消声信号的频率与参考噪声信号的频率相同且幅值相反,它们之间就会相互抵消,从而达到降噪的效果。本发明提出一种基于anc系统中fxlms改进算法的fpga硬件结构设计主要包括6个模块:(1)抽头系数更新、(2)fir滤波器、(3)控制信号、(4)变功率白噪声产生器、(5)性能监视及(6)wm8731音频编解码器,且所有模块都在quartusii内编程实现。

如附图2所示,权值更新模块。目的在于通过输入信号x’(n)、误差信号f(n)和μw计算主通道控制滤波器系数以及通过随机白噪声v(n)、误差信号f(n)和μs(n)计算次级通道控制滤波器系数;:

实际上,来自模块(4)的输出信号是ram的输入。此外,anc系统通过模块(3)激活we_c控制信号在dp_ram中保存新的滤波器系数,up_counter产生滤波器系数的“读地址”。en_cnt_cr是用于从dp_ram读取地址的控制信号。en_cnt_cw用于在dp_ram中生成“写地址”。系统将误差信号和步长相乘,并通过激活en_reg_emue控制信号将它们存储在寄存器中。

如附图3所示,fir滤波器模块。用于产生主通道滤波器的输出y(n)、次级通道滤波器的输出和参考噪声信号的滤波信号x’(n):

y(n)=ωt(n)*x(n)

其中是对anc系统中的次级通道的模拟。主通道滤波器w(z)和次级通道模拟滤波器滤波器均通过模块(3)实现。该模块包含两个输入:coef_o是保存在dp_ram中的更新块的输出信号;xi(n)是系统中前一个模块的输出信号。anc系统中有两个ram块:(1)双端口ram(dp_ram)被分配用于同时计算fir滤波器系数和输出;(2)输入信号ram块保存用于wm8731音频编解码器输入端口接收的参考信号。图3显示了fir滤波器模块的框图。

如附图4所示,控制信号模块。用于产生控制信号来处理fxlms算法的运行。通过两个并行输入控制信号:(1)adc_full是来自音频编解码器adc的输出信号。当参考麦克风接收输入信号样本时,它会被激活。(2)通过up_counter块生成了cnt_max,当计数器达到最大值时,系统激活cnt_max信号。

变功率白噪声产生器模块用于产生anc系统中次级通道的训练信号(随机白噪声),并对其功率进行分配调度,然后通过性能监视模块让anc系统中次级通道进行在线建模和离线建模的相互转换。

图5反映了anc系统的降噪性能。对该anc系统中fxlms改进算法结构用quartusⅱ对veriloghdl实现进行降噪和收敛性能的仿真。在线辅助路径使用fir滤波器,其中s(z)的抽头系数为16,p(z)为48。主通道控制滤波器和次级通道建模滤波器的阶数分别为32和16的fir滤波器,系统频率为48khz。从图中可以看出随着anc系统迭代次数的不断增加,对初始参考噪声信号x(n)的降噪效果也在不断的提高。当迭代次数达到400次时,该anc系统的降噪性能基本收敛,并且降噪效果明显。

次级通道变步长参数μs(n)的参数如图5(b)所示。从图中可以看出,步长参数一开始较低是为了防止anc系统的发散。随着anc系统逐渐稳定,步长参数逐渐增加到最大值,从而加快anc系统的降噪速度。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1