本发明属于数字信号处理领域,具体涉及到一种基于fpga的df_rdlms滤波器的设计方法。
背景技术:
1、随着经济的发展和技术的不断进步,主动噪声控制系统(anc)已经成为国内外振动工程界的研究热点。主动噪声控制系统(anc)的核心部分是控制算法,该控制算法的选择是否恰当直接关系到最终的效果,目前存在许多的控制算法,其中的自适应滤波器的声音对消是常用的方法。其中自适应算法主要包括fxlms(filtered-x least mean square)算法,递推最小二乘法(rls)和快速横向滤波算法(ftf)等,其中fxlms算法是应用最多的算法,这是因为fxlms算法物理机理明晰、运算量小、实现简单。
2、但传统的fxlms算法的收敛速度慢且对滤波器长度有较高的要求,l.j.eriksson提出采用iir滤波器进行主动噪声控制,利用递归lms算法对滤波器权值系数进行自适应更新,被称为filtered-urlms。由于furlms算法中1/s(z)导致系统存在极点,使得系统不稳定。因此本发明的创新点在于采用全局稳定方程误差算法来改善自适应fxlms滤波器的收敛速度和降噪性能,在次级路径突然注入白噪声时,仅需迭代100次即可达到收敛的状态,最大降噪量相比传统的fxlms算法大18dba。
技术实现思路
1、本发明旨在解决以上现有技术的问题。提出了一种基于fpga的df_rdlms滤波器的设计方法。本发明的技术方案如下:
2、一种基于fpga的df_rdlms滤波器的设计方法,其包括以下步骤:
3、首先进行自适应fxlms(滤波-x最小均方)滤波器的设计,通过乘法器和加法器中插入延迟来获得更短的关键路径,即引入直接形式重定时延迟最小均方(df_rdlms)算法,利用递归lms算法对滤波器权值系数进行自适应更新;
4、最后进行全局稳定方程误差算法滤波器的设计,与自适应fxlms(滤波-x最小均方)滤波器不同的是,全局稳定方程误差算法滤波器的输出信号是非递归的,保证了系统的稳定性。系统中滤波器的步长仅受次级路径延迟和滤波器长度的影响。
5、进一步的,所述进行自适应fxlms滤波器的设计步骤具体包括:
6、(1)参考和误差麦克风分别采集参考噪声信号x(n)和误差信号e(n);
7、(2)计算滤波器w(z)的输出信号u(n);其中:u(n)=wt(n)x(n)式中,w(n)表示权值系数;
8、(3)输出信号u(n)驱动扬声器;
9、(4)计算滤波-x信号xf(n);其中:式中,si表示n时刻次级路径的估计值的第i个脉冲响应系数;
10、(5)采用fxlms算法进行w(z)的权系数更新;w(n+1)=w(n)-μe(n)xf(n),式中,μ表示fxlms算法的步长;
11、(6)继续重复上面的过程,使得误差信号e(n)满足预设值为止。
12、进一步的,所述利用递归lms算法对滤波器权值系数进行自适应更新,具体包括:将待处理数字信号降噪处理后得到的数字信号,采用如下公式进行降噪处理:
13、误差信号表示为:e(n)=d(n)-s(n)*y(n),
14、式中,d(n)为期望信号,s(n)表示次级路径s(z)的脉冲响应,y(n)表示输出信号,
15、输出信号表示为:
16、式中,ai(n)(i=0,1,...,na-1)和bj(n)(j=0,1,...,nb)是自适应滤波器a(z)和b(z)的系数,na和nb分别为他们的滤波器长度,x(n-i)为第n-i个参考噪声信号,y(n-j)为第n-j个输出信号,
17、权值系数更新方程为:a(n+1)=a(n)+μx′(n)e(n),
18、
19、式中,μ表示步长因子,决定系统收敛速度,x′(n)表示为
20、其中,x(n)=[x(n)x(n-1)…x(n-na+1)]t,
21、y(n-1)=[y(n-1)y(n-2)…y(n-nb)]t。
22、进一步的,对步长因子的约束具体为:
23、
24、
25、其中μa,μb为fxlms算法的步长因子;px',分别表示x'(n),的功率;δeq表示次级路径延迟。
26、进一步的,全局稳定方程误差算法滤波器具体包括:
27、自适应滤波模块,用于实现权值系数与输入信号x(n)乘法运算,全局稳定方程误差算法自适应滤波迭代计算公式是输出信号由非递归项组成,同时,当误差信号最优时,满足:其中a(z)、b(z)、c(z)为三个横向滤波器;
28、权值更新模块,由进位加法器组成,用来更新权值系数,最佳权值向量和的计算公式可对均方误差求偏导得:
29、
30、
31、
32、式中,rx′x′=e[x′(n)x′t(n)],pdx′=e[d(n)x′(n)],
33、次级路径模块,采用lms最小均方算法fir滤波器进行模型的自适应辨识,来修正lms算法的误差梯度估计值,全局稳定方程误差算法次级路径迭代运算公式是x'(n)=s(n)*x(n),其中s(n)表示次级信号,*表示卷积运算。
34、进一步的,假设参考信号x(n)是一个白噪声信号,此时的均值为0,方差为1;a(z)、b(z)、c(z)的步长因子μa、μb、μc被表示为:
35、
36、式中,px',分别表示x'(n)、y'(n)、d'(n)的功率,δeq可以表示为:
37、
38、最大步长仅受次级路径延迟δeq和滤波器长度的影响;此时,改进的全局稳定方程误差算法的均方误差表示如下:
39、
40、进一步的,全局稳定方程误差算法步骤具体包括:
41、(1)参考和误差麦克风分别采集参考噪声信号x(n)和误差信号e(n);
42、(2)计算滤波器w(z)的输出信号y(n);
43、(3)输出信号y(n)驱动扬声器;
44、(4)计算最小均方误差ξ′ee(n);
45、(5)对最小均方函数ξ′ee(n)求偏导,得到权值向量,权值向量的收敛过程可以看作自适应滤波器迭代过程中的权值系数更新过程;
46、(6)继续重复上面的过程,使得误差信号e(n)满足预设值为止。
47、一种电子设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如任一项所述基于fpga的df_rdlms滤波器的设计方法。
48、一种非暂态计算机可读存储介质,其上存储有计算机程序,其所述计算机程序被处理器执行时实现如任一项所述基于fpga的df_rdlms滤波器的设计方法。
49、一种计算机程序产品,包括计算机程序,其所述计算机程序被处理器执行时实现如任一项所述基于fpga的df_rdlms滤波器的设计方法。
50、本发明的优点及有益效果如下:
51、1、本发明提出的方程误差算法的输出信号是非递归的,保证了系统的稳定性,在迭代次数为55次时系统达到稳定,相比较fxlms算法和furlms算法收敛速度有了很大提升。本发明在次级路径中加入了横向滤波器c(z),改变了次级路径建模方式,在应对次级路径突变方面有了进一步的提升,次级路径突然注入白噪声时,本发明提出的全局稳定方程误差算法在迭代次数为130次时,仍然可以趋于稳定,且所用迭代次数仅为另外两种算法的一半。
52、2、本发明提出的方程误差算法滤波器使用一种新的df-rdlms算法结构,不仅缩短了关键路径延迟,当滤波器的长度为n时,在保证关键路径延迟为一个乘法器单元的同时仅需要5n+5个延迟单元,消耗的乘法和加法个数相较于fxlms算法和furlms算法更少,有着更少的硬件资源消耗。
53、3、本发明提出的方程误差算法滤波器对低频噪声具有良好的降噪效果。使用matlab2019a软件对fxlms算法、furlms算法以及全局稳定方程误差算法进行仿真和验证。本次仿真设置系统采样频率为48khz,将燃气站压缩机噪声作为初始噪声信号x(n)。实验结果表明在频率为0hz~2khz这一范围时,全局稳定方程误差算法的最大降噪量可达22dba,而fxlms算法的最大降噪量为15dba,furlms算法的最大降噪量为18dba。显然,本发明提出的全局稳定方程误差算法滤波器具有更好的降噪效果。
1.一种基于fpga的df_rdlms滤波器的设计方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于fpga的df_rdlms滤波器的设计方法,其特征在于,所述进行自适应fxlms滤波器的设计步骤具体包括:
3.根据权利要求2所述的一种基于fpga的df_rdlms滤波器的设计方法,其特征在于,所述利用递归lms算法对滤波器权值系数进行自适应更新,具体包括:将待处理数字信号降噪处理后得到的数字信号,采用如下公式进行降噪处理:
4.根据权利要求3所述的一种基于fpga的df_rdlms滤波器的设计方法,其特征在于,对步长因子的约束具体为:
5.根据权利要求4所述的一种基于fpga的df_rdlms滤波器的设计方法,其特征在于,全局稳定方程误差算法滤波器具体包括:
6.根据权利要求5所述的一种基于fpga的df_rdlms滤波器的设计方法,其特征在于,假设参考信号x(n)是一个白噪声信号,此时的均值为0,方差为1;a(z)、b(z)、c(z)的步长因子μa、μb、μc被表示为:
7.根据权利要求4所述的一种基于fpga的df_rdlms滤波器的设计方法,其特征在于,所述全局稳定方程误差算法步骤具体包括:
8.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至6任一项所述基于fpga的df_rdlms滤波器的设计方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述基于fpga的df_rdlms滤波器的设计方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述基于fpga的df_rdlms滤波器的设计方法。
