Active control of workspace noise based on ChFxLMS algorithm
-
摘要:
为改善滤波x最小均方(Filter-x Least Mean Square,FxLMS)算法不能同时兼顾稳态误差与收敛速度的不足,提出一种基于cosh函数的变步长FxLMS(Cosh-FxLMS,ChFxLMS)算法. 通过cosh函数建立误差信号与步长因子间的联系,使得步长因子按照cosh函数特性实时调整;分析不同参数对ChFxLMS算法性能的影响,为算法参数选取作指导;分别将正弦信号和实测织机信号作为输入信号,对ChFxLMS算法性能进行验证,并与FxLMS算法、基于sigmoid函数的变步长FxLMS(Sigmoid-FxLMS,SFFxLMS)算法进行对比. 仿真结果表明,ChFxLMS算法性能在时域和频域上都取得较好的控制效果. 分析结果表明,该算法能较大地降低稳态误差和提高收敛速度. 该研究成果可为工作空间噪声主动控制提供一种新思路.
Abstract:To improve the deficiency that the traditional filter-x least mean square (FxLMS) algorithm can not take into account the steady-state error and convergence speed, a variable step size FxLMS (Cosh-FxLMS, ChFxLMS) algorithm based on cosh function was proposed. The relationship between the error signal and the step factor was established by using the cosh function, so that step factor could adjust continuously according to the characteristics of the cosh function. The influence of different parameters on the performance of ChFxLMS algorithm was analyzed to provide guidance for the selection of algorithm parameters. And the sinusoidal signal and measured loom signal were used as input signals to verify the performance of ChFxLMS algorithm. It was compared with FxLMS algorithm and variable step size FxLMS algorithm based on sigmoid function (Sigmoid-FXLMS, SFFxLMS algorithm). The simulation results show that the performance of ChFxLMS algorithm has achieved good control results in time domain and frequency domain. Through comparative analysis, the algorithm can greatly reduce the steady-state error and improve the convergence speed. The research results will provide a new idea for active noise control in workspace.
-
Key words:
- active noise control /
- ChFxLMS algorithm /
- steady-state error /
- convergence speed
-
主动噪声控制(Active Noise Control,ANC)利用相消干涉原理实现自适应降噪目的,因其低复杂度、高稳定性以及易于实现等优点被广泛关注[1-2]. 最小均方(Least Mean Square,LMS)算法最早应用于ANC系统,其具有低计算量、易实现等优点[3-4],但该算法忽略了由次级通道产生的时延问题[5],控制效果不理想. 针对这一不足, 滤波x最小均方(Filter-x Least Mean Square,FxLMS)算法被提出,并引入对次级通道的估计,很大程度上弥补了LMS算法的缺陷[6-7]. 但由于FxLMS算法采用固定步长,无法兼顾收敛速度和稳态误差,因此变步长算法应运而生. 张帅等[8]提出基于归一化频域块的变步长LMS算法,计算效率得到大幅提升. Huang 等[9]提出一种收敛速度快、跟踪能力高、稳态误差小的VSS−FxLMS算法,性能远超FxLMS算法. Meng等[10]提出一种广义修正自适应FxLMS算法,对高脉冲噪声的控制效果非常好. 现有的变步长算法虽在一定程度上改善了固定步长FxLMS算法不能兼顾收敛速度与稳态误差的缺点,但是在收敛速度与稳态误差方面还需进一步提升. 本研究提出一种基于cosh函数的变步长FxLMS算法(ChFxLMS算法),使误差信号按照cosh函数特性对算法步长进行调整,以改善FxLMS算法收敛速度与稳态误差不能兼顾的不足. 最后通过正弦信号与织机信号控制仿真,验证算法的有效性.
1. FxLMS算法
FxLMS算法以均方误差为目标函数,不断对自适应滤波器权值进行调整更新,使系统获得最佳抵消信号[11]. 图1为FxLMS算法框图. 其中
H1(z) 、H2(z) 分别为初级通道与次级通道的声学传递函数;W(z )为用来生成抵消信号的线性滤波器,其权值通过FxLMS算法进行调整;H2′(z) 为次级通道的估计,该部分的引入是为改善LMS算法存在的时延问题.FxLMS算法整体流程如下[12].
1)获取期望信号d(n),计算公式为
{\boldsymbol{d}}(n) = {{\boldsymbol{H}}_1}(n) * {\boldsymbol{x}}(n) (1) 式中:x(n)为需要降噪的噪声信号;
{{\boldsymbol{H}}_1}(n) 为{H_1}(z) 的脉冲响应;*为线性卷积运算.2)生成抵消信号y(n),计算公式为
{\boldsymbol{x}}'(n) = {{\boldsymbol{H}}_2}'(n) * {\boldsymbol{x}}(n) (2) {\boldsymbol{b}}(n) = {{{\boldsymbol{W}}}^{\text{T}}}(n){\boldsymbol{x}}'(n) (3) {\boldsymbol{y}}(n) = {{\boldsymbol{H}}_2}(n) * {\boldsymbol{b}}(n) (4) 式中:
{\boldsymbol{x}}'(n) 为x(n)经过{H_2}'(z) 滤波的信号,主要用来参与生成抵消信号b(n);T为转置运算符号;{{{\boldsymbol{W}}}} (n) 为线性自适应滤波器W(z )的脉冲响应;{{\boldsymbol{H}}_2}(n) 为{H_2}(z) 的脉冲响应;y(n)为抵消信号b(n)经过次级通道{H_2}(z) 得到的次级信号,主要用于抵消期望信号d(n). 次级信号y(n)生成的主要过程为:参考信号x(n)先经过{H_2}'(z) 滤波,再通过滤波器{W}(z) ,接着通过次级通道{H_2}(z) 得到次级信号y(n).3)获取误差信号e(n)以及滤波器
{{W}}(z) 权值更新,计算公式为{\boldsymbol{e}}(n) = {\boldsymbol{d}}(n) - {\boldsymbol{y}}(n) (5) {\boldsymbol{w}}(n + 1) = {\boldsymbol{w}}(n) - 2\mu {e}(n){\boldsymbol{x}}'(n) (6) 式中:µ为迭代过程中的步长因子,其取值会影响算法收敛的快慢以及稳态误差的大小.
2. ChFxLMS算法
2.1 ChFxLMS算法原理
在FxLMS算法中步长无法改变. 采用较大步长µ时,系统快速收敛于一个稳定值,但稳态误差会随µ的增大而增大;采用较小步长µ时,系统稳态误差小,但系统收敛速度会随µ的减小而降低. 因此,收敛速度与稳态误差存在相互制约关系. 若在系统运行的每个时间点,步长能根据误差信号进行实时更新,使系统能够在快速收敛的同时具有较小的稳态误差,算法就会具有较好的性能. 考虑到cosh函数的曲线形状,用其建立步长因子µ(n)与误差信号e(n)的函数关系,得到µ(n)更新公式为
\mu (n) = \beta \cosh (\alpha {\text{|}}{e}−(n){{\text{|}}^m}) (7) 式中:α、β、m为待调参数. α控制函数µ(n)的取值范围,β、m控制函数µ(n)的曲线形状,当α = 1、β = 1、m = 2时,步长随误差信号变化曲线如图2所示.
由图可知,当系统误差e(n)较小时,对应步长µ(n)也为一较小值,系统在稳定时便能获得更小的误差值. 而系统误差e(n)较大时,对应步长µ(n)随之变大,系统快速收敛,符合变步长FxLMS算法要求. 此时,滤波器的权值更新公式为
{\boldsymbol{W}}(n + 1) = {\boldsymbol{W}}(n)- 2\beta \cosh (\alpha |e(n){|^m})e(n){\boldsymbol{x}}'(n) (8) 2.2 参数对算法性能的影响
为分析参数α、β和m对算法控制效果的影响,在Matlab中搭建ChFxLMS算法模型,改变其中一个参数,固定另外两个参数,观察控制后误差信号. 仿真时间2 s,输入噪声信号为振幅1、频率100 Hz的正弦信号. 参数分析前,调试得到α、β和m的取值范围分别为0~47.4、0~49、1~5.
首先,分析α对ChFxLMS算法性能的影响. 设β = 1,m = 1,α分别为1、10、40,仿真得到α取不同值时误差信号曲线,如图3所示. 由图可知,α与算法的收敛速度呈正相关,即随着α值增大,系统越快收敛到一个稳定值. 因此,α应尽量取较大值.
然后,分析β对ChFxLMS算法性能的影响. 设α = 1,m = 2,β分别为1、5、10,仿真得到β取不同值时误差信号曲线,如图4所示. 由图可知,算法的收敛速度和稳态误差都会受到β值的影响. 当β=1时,误差信号没有收敛到一个定值;β = 5时,误差信号在1.2 s处收敛到一个定值;β = 10时,误差信号在0.8 s处收敛到一个定值. 随着β值不断增大,算法的收敛速度随之加快,稳态误差随之减少. 因此,β应尽量取较大值.
最后,分析m对ChFxLMS算法性能的影响. 设α = 1,β = 1,m分别为1、2、3,仿真得到m取不同值时误差信号曲线,如图5所示. 由图可知,当m取不同值时,算法收敛速度与稳态误差无明显变化,但随着m值持续增大,计算量会随着幂指数的增大而大幅增加. 因此,综合考虑计算量与稳态误差,m应选取较小值.
3. 算法性能验证
3.1 不同变步长FxLMS算法对比
为验证本研究提出的ChFxLMS算法性能,将ChFxLMS算法与FxLMS算法和基于sigmoid函数的改进变步长FxLMS(Sigmoid-FxLMS,SFFxLMS)算法进行对比. 其中,SFFxLMS算法中步长更新公式为
\mu (n) = {\beta _1}\frac{{|e(n){|^{{m_1}}}}}{{{\alpha _1}|e(n){|^{{m_1}}} + 1}} (9) 式中:
{\alpha _1} 、{\beta _1} 和{m_1} 为曲线形状调控参数.设置噪声信号为幅值为1,频率为300 Hz的正弦信号,仿真时间取2 s,FxLMS算法取µ = 0.1,根据调试,并结合2.2节中参数选取原则,得到SFFxLMS和ChFxLMS算法参数,见表1.
表 1 正弦信号输入时各算法参数值Table 1. Parameter values of each algorithm when sinusoidal signal is input参数 SFFxLMS算法 ChFxLMS算法 {\alpha _1} {\beta _1} {m_1} \alpha \beta m 值 4 6 1 40 10 1 通过仿真,3种算法误差曲线如图6所示. 由图可知,对于正弦输入信号, ChFxLMS的稳态误差最小,SFFxLMS算法次之,FxLMS算法最大. 本研究提出的ChFxLMS算法控制效果优于另外两种算法.
为更清晰地比较不同算法的收敛速度,引入均方误差(Mean Square Error,MSE),计算公式为
{\text{MSE = }}\frac{1}{L}\sum\nolimits_{t = 1}^L {{e^2}(t)} (10) 式中:L为信号长度.
3种算法的均方误差曲线如图7所示. 由图可知,FxLMS算法在1.0 s处收敛,SFFxLMS算法在0.5 s处收敛,ChFxLMS算法在0.03 s处收敛. 因此,对正弦信号进行控制时,本研究提出ChFxLMS算法在收敛速度和稳态误差方面均有较好的效果.
3.2 织机噪声控制仿真
大型机械工作空间如纺织车间,在机械运行时会持续产生高强度噪音,这会对工人造成一定的损伤. 徐洋等[13]通过对簇绒地毯织机噪声源进行识别,发现其噪声主要集中在0~500 Hz. 因此,本研究用ChFxLMS、FxLMS、SFFxLMS算法对纺织机械簇绒地毯织机低频噪声进行仿真控制,验证3种算法对织机噪声的控制效果. 实测簇绒地毯织机噪声信号波形图,如图8所示.
仿真参数同样依据2.2节中的选取原则进行选取,FxLMS算法取µ = 0.1,SFFxLMS和ChFxLMS算法选取参数值见表2. 仿真得到3种算法误差曲线对比图如图9所示. 均方误差曲线如图10所示. 由图9可知,对织机噪声进行控制时,FxLMS算法控制后的误差最大,其次是SFFxLMS算法,本研究提出的ChFxLMS算法控制后误差最小. 由图10可知,ChFxLMS算法最快收敛,其次是SFFxLMS算法,FxLMS算法收敛最慢.
表 2 织机噪声控制时各算法参数值Table 2. Parameter values of each algorithm when loom noise is input参数 SFFxLMS算法 ChFxLMS算法 {\alpha _1} {\beta _1} {m_1} \alpha \beta m 值 4 0.9 1 20 5 1 进一步比较3种算法的频域控制效果,如图11所示. 通过计算在0~500 Hz频段的平均降噪量可得,ChFxLMS算法的平均降噪量为21.9 dB,SFFxLMS算法的平均降噪量为7.2 dB,FxLMS算法的平均降噪量为6.9 dB. 因此,ChFxLMS算法在0~500 Hz频段的降噪上取得较好的控制效果.
4. 结 语
基于cosh函数特性,提出变步长ChFxLMS算法,该算法步长µ取值根据误差信号不断调整更新,改善了传统FxLMS算法不能兼顾收敛速度与稳态误差的缺点. 深入分析各个参数值对ChFxLMS算法性能的影响,并对正弦信号以及织机信号进行控制仿真. 仿真结果表明,对正弦信号控制时,ChFxLMS算法收敛最快、稳态误差最小,对织机噪声控制时,ChFxLMS算法同样收敛最快,且取得21.9 dB的平均降噪量,有较好的控制效果.
-
表 1 正弦信号输入时各算法参数值
Table 1. Parameter values of each algorithm when sinusoidal signal is input
参数 SFFxLMS算法 ChFxLMS算法 {\alpha _1} {\beta _1} {m_1} \alpha \beta m 值 4 6 1 40 10 1 表 2 织机噪声控制时各算法参数值
Table 2. Parameter values of each algorithm when loom noise is input
参数 SFFxLMS算法 ChFxLMS算法 {\alpha _1} {\beta _1} {m_1} \alpha \beta m 值 4 0.9 1 20 5 1 -
[1] 胡异丁, 王凤森, 杨敏, 等. 一种改进变步长LMS自适应滤波算法[J] . 计算机仿真,2020,37(7):291 − 295. doi: 10.3969/j.issn.1006-9348.2020.07.057 [2] 韩啸, 陈钟荣. 一种改进反正切函数的变步长LMS算法[J] . 中国科技论文,2019,14(7):759 − 764,772. doi: 10.3969/j.issn.2095-2783.2019.07.010 [3] 吴瑶, 张海霞. 一种变步长LMS自适应滤波的改进算法[J] . 通信技术,2021,54(2):307 − 311. [4] 洪丹枫, 苗俊, 苏健, 等. 一种变步长凸组合LMS自适应滤波算法改进及分析[J] . 电子学报,2014,42(11):2225 − 2230. doi: 10.3969/j.issn.0372-2112.2014.11.015 [5] 陆森林, 默超. 车内ANC系统次级通道辨识及仿真研究[J] . 重庆理工大学学报(自然科学),2016,30(3):22 − 27. [6] GUO H, WANG Y S, LIU N N, et al. Active interior noise control for rail vehicle using a variable step-size median-LMS algorithm[J] . Mechanical Systems and Signal Processing,2018,109:15 − 26. doi: 10.1016/j.ymssp.2018.02.040 [7] 束建华, 付志浩. 改进FxLMS算法在主动振动控制中的应用[J] . 计算机工程与应用,2015,51(12):230 − 234. doi: 10.3778/j.issn.1002-8331.1411-0325 [8] 张帅, 王岩松, 张心光. 汽车车内噪声主动控制变步长NFB−LMS算法[J] . 声学技术,2019,38(6):680 − 685. [9] HUANG B Y, XIAO Y G, SUN J W, et al. A variable step-size FXLMS algorithm for narrowband active noise control[J] . Speech & language processing,2013,21(2):301 − 312. [10] MENG H, CHEN S M. A modified adaptive weight-constrained FxLMS algorithm for feedforward active noise control systems[J] . Applied Acoustics,2020,164:1 − 8. [11] 褚轶景, 麦卓明, 蔡陈之, 等. 一种新型基于分布式FxLMS的主动噪声控制算法与空间平滑[J] . 南京大学学报(自然科学),2021,54(4):683 − 688. [12] ZHU W Z, LUO L, XIE A T, et al. A novel FELMS-based narrowband active noise control system and its convergence analysis[J] . Applied Acoustics,2019,156:229 − 245. doi: 10.1016/j.apacoust.2019.07.003 [13] 徐洋, 张晓蕾, 盛晓伟, 等. 基于MEEMD−AIC的簇绒地毯织机噪声源识别方法[J] . 振动、测试与诊断,2018,38(6):1176 − 1181,1292. 期刊类型引用(1)
1. 牛贇靓. 基于主动噪声控制技术的校园房屋建筑减噪装置. 科技创新与应用. 2024(01): 147-151 . 百度学术
其他类型引用(0)
-