当前位置:首页  音频新闻  厂商动态  声学视听音频正文

主动噪声控制的线性算法优劣比较

发布时间:08-01 编辑:音频应用

人们常说“掩耳盗铃”一词,但是捂住耳朵并不能保证我们就听不见外界的噪音。其实无论是在人耳处,还是在声源处或者传播路径上隔音,都属于被动降噪,效果是有限的。为了能够主动的消除噪音,早在1936年,德国科学家保罗·卢格就提出了ANC(Active Noise Control,主动噪声控制)的概念。如今,ANC已经被证明是减少电机噪声的有效方法,并被广泛应用于耳机、助听器、汽车等消费电子领域。

作者:唐灿、徐晨阳、郑康




人们常说“掩耳盗铃”一词,但是捂住耳朵并不能保证我们就听不见外界的噪音。其实无论是在人耳处,还是在声源处或者传播路径上隔音,都属于被动降噪,效果是有限的。为了能够主动的消除噪音,早在1936年,德国科学家保罗·卢格就提出了ANC(Active Noise Control,主动噪声控制)的概念。如今,ANC已经被证明是减少电机噪声的有效方法,并被广泛应用于耳机、助听器、汽车等消费电子领域。


一、基于FIR和IIR滤波器的ANC算法


基于有限脉冲响应(FIR)和无限脉冲响应(IIR)滤波器的ANC算法在过去十年中得到了广泛的研究,其中最著名的莫过于基于滤波x最小均方(FxLMS)的算法。基于FIR和IIR滤波器的ANC算法主要可以分为三大类:基于滤波x、滤波e和滤波u的算法。


 640 (10).png


图1 ANC算法模型


1.filtered-x ANC


FxLMS(Filtered-x Least Mean Square)算法:该算法是基于次级通道是滑动平均过程和随机输入信号的假设,它克服了确定性输入信号的限制,具有较低的计算复杂度,该算法是许多ANC算法的基础。它可以用于前馈、反馈和混合ANC系统,在窄带噪声抑制、主动脉冲噪声控制等方面有广泛的应用。


FxRLS(Filter-x Recursive Least Squares)算法:标准FxRLS算法可以比FxLMS算法更快地收敛,但代价是复杂性增加。


FxAP(Filter-x Affine Projection)算法:AP算法在多个输入向量的基础上更新权值,以加快由强相关的输入信号驱动的收敛速度。


子带ANC算法:为了处理ANC系统中的长信道响应和有色输入,并可以快速收敛和降低计算复杂度。


FxGAL(Filtered-x Gradient Adaptive Lattice)算法:梯度自适应格型(GAL)算法用于ANC系统中能够控制多个正弦干扰,性能可靠。


 640 (11).png

图2 filtered-x ANC算法模型


2.filtered-e ANC


FeLMS(Filtered-e Least Mean Square)算法:FxLMS算法在受噪声干扰的前馈ANC结构中会收敛于有偏解,并且FxLMS算法受次级通道S(z)的影响收敛速度会变慢。为了克服这些缺点,FeLMS算法采用误差滤波器对误差信号进行预处理,再通过自适应滤波器。


FxFeLMS(Filtered-x Filtered-e Least Mean Square)算法:加入两个滤波器H(z)对参考信号与误差信号都进行预处理,能够克服FxLMS针对正弦噪声收敛速度慢的问题。


FeAP(Filter-e Affine Projection)算法:AP算法在多个输入向量的基础上更新权值,以加快由高度相关的输入信号驱动的收敛速度。可以很好地替代LMS型算法。


 640 (12).png

图3 filtered-e ANC算法模型


 640 (13).png

图4 FxFeLMS ANC算法模型


3.filtered-u ANC


FuLMS(Filtered-u Least Mean Square)算法:FuLMS算法通常用于更新IIR滤波器的权重向量,从振动结构响应中提取参考信号,同时能够抑制振动反馈可能带来控制系统不稳定,并具有较低阶滤波器结构的优点。


FuRLS(Filter-u Recursive Least Squares)算法:为了提高FuLMS算法的收敛速度,考虑基于RLS的IIR滤波器,该算法可应用于有源噪声控制和有源振动控制。


640 (14).png

 图5 filtered-u ANC算法模型


4.各种算法的复杂度比较


 640 (15).png

表1 基于FIR和IIR滤波器的ANC算法


表中Ls为次级通道模型的长度、Lp为次级通道模型(伪)逆的长度,La表示分析和合成滤波器的长度、Lf表示IIR滤波器的前向长度,Lb表示IIR滤波器的后向长度。从该表中可以看出,与其他算法相比,基于LMS的算法需要的计算复杂度最小,而基于RLS型算法的计算复杂度最大。


二、新型线性ANC算法


1.心理声学ANC(Psychoacoustic ANC/PANC)系统


该算法主要考虑人耳对不同频率声音的敏感性来设计控制器的频率响应,PANC系统与FxFeLMS算法结构类似,通过对参考和误差信号进行加权建立的,但是误差滤波器H(z)设计不同。此外,PANC倾向于用响度来衡量性能,而不是用声压级 (SPL) 和平均降噪量(ANR)。在V. Belyi和W.-S Gan研究中,提出了一种将子带PANC和心理声学掩蔽效应相结合的新方法,从而降低了计算成本,提高了感知音质和高频降噪水平。


2.稀疏ANC(Sparse ANC)算法


该算法利用ANC系统中可能存在的稀疏性来提高性能,例如FxIPNLMS(filtered-x improved proportionate NLMS)算法是通过将比例算法扩展到前馈ANC系统中设计而来的,研究表明,FxIPNLMS算法与高斯噪声源的凸组合方案兼容,在不同稀疏度下具有更好的性能。


3.凸组合ANC(Convex combination ANC)算法


该算法是一种解决固定步长导致的快速收敛速度和小噪声残留之间折衷方案,其利用滤波器组来提高性能。算法示意图如下所示,e₁(n)、y₁(n)、w₁(n)是快滤波器(步长较大滤波器)的误差信号、输出以及权重向量;e₂(n)、y₂(n)、w₂(n)则是慢滤波器(步长较小滤波器)的参数,引入混合参数λ(n)∈[0,1],使用凸组合方案可得到误差信号和输出信号为:


640 (16).png


目前,凸组合方案已应用于单通道和多通道ANC系统中,M.T. Akhtar为了处理脉冲噪声,在改进的FxLMP算法中引入了凸组合,该算法的步长基于凸组合自适应,避免了小残余噪声与收敛速度之间的矛盾。

640 (17).png

 

图6 凸组合算法示意图


4.分数阶ANC(Fractional-order ANC)算法


分数阶的一些性质促进了现有ANC算法的有效组合,研究表明,使用GL(Grünwald–Letnikov)算子和RL(Riemann–Liouville)算子有助于提高降噪性能,尤其适用于控制高斯噪声。分数阶傅里叶变换(FrFT)是一种统一的时频变换,反映了信号的时域和频域信息,L. Durak和S. Aldirmaz已经将这种变换应用于解决ANC问题,针对各种线性调频(LFM)信号,可以获得更小的误差和更快的收敛。



5.三维空间的ANC算法


三维ANC算法一直是技术的难点,N.V.George和A.Gonzalez提出了一种新的ANC算法来控制三维空间中的声音其传递函数为:


  


其中ω为角频率,  为位置参数,i是虚数单位,c是声速,a是球体半径, 是m阶球贝塞尔函数。误差可以被近似为:


e(z)=d(z)+w(z)[(H(z)(S'(z)-S(z))+S'(z)]


仿真和实验证明了此算法在任意形状静区(不仅适用于球形安静区)都是有效的。然而,针对多个噪声源(如混沌噪声和脉冲噪声)的3D-ANC算法仍急需研究。


 640 (18).png

图7 三维空间ANC算法结构


6.选择性ANC(Selective ANC/SANC)系统


与传统的实时计算控制滤波器系数不同,SANC系统基于入射声的时频特性从一组预调整好的滤波器中选择合适的控制滤波器。因此SANC系统具有鲁棒的控制滤波器及低计算复杂度。



7.分布式ANC算法


在实际中,常常会遇到噪声源与误差点相距较远且噪声场非常复杂的场景。因此,需要使用多个参考麦克风、多个误差麦克风以及多个次级声源构成的多通道ANC系统。多通道ANC系统的成本及要求很高,原因如下:




(1)需要足够多的参考麦克风以实现参考信号与误差信号之间足够的相干性以及时间提前;


(2)多通道ANC系统的计算复杂度很高,需要付出额外的成本降低计算复杂度。




传统的多通道ANC系统使用的是集中估计方法,但是这种方法计算复杂且缺乏可扩展性,很难在三维空间降噪中取得良好效果。一种有效的解决办法是引入由分布式自适应滤波器驱动的ANC系统。与集中式相比,分布式ANC系统消耗的能量和通信资源更少,且可以有效控制区域噪声。




1)增量算法




Ferrer等人(2015年)最早提出了分布式ANC系统,该系统是基于增量算法实现的。下图为基于增量协作策略的分布式ANC系统结构。


 640 (19).png

图8 具有增量协作策略的分布式ANC系统图




分布式ANC系统考虑K个节点,用下标k∈{1,...,k}表示。n时刻每个节点拾取的噪声为 ,  ,由参考信号x(n)通过第k个估计次级通道所得的滤波参考信号。  为节点k处的噪声,  为节点k处的残余噪声。传统增量FxLMS(IFxLMS)算法的网络更新公式为: 


 为节点k处的步长,  为节点k处的权向量,w(n)为第n次迭代的最终结果。




2)扩散算法




对于增量算法,需要在节点上定义循环路径且该方法对节点连接故障很敏感。而扩散算法是一种更适合WASN(无线声传感器网络)实际实现的方法。


  640 (20).png


图9 具有扩散协作策略的分布式ANC系统图




在这种方法中,每一个节点与其所有邻近节点的子集(  )进行通信。其最大的优势在于无论网络是怎样的拓扑结构,算法都能保持稳定。J.-M.Song等人(2016年)针对多通道ANC系统提出了扩散FxNLMS(DFxNLMS)算法,更新公式如下:




   

微信图片_20220801212656.png



  代表  范数,  表示相邻节点  的局部估计;  表示权重系数,且满足如下条件:  且 。



过去十年中,线性ANC算法得到了广泛的研究。无论是从基本的模型框架,如LMS、RLS或者AP等,还是从广义输入信号的角度,都存在系统性的研究成果,并在模型复杂度和性能上做出了各自的取舍,以基于功能链接人工神经网络(FLANN)为代表的非线性方法也获得了一定的重视。但是,实际应用场景中存在的痛点问题还在不断出现,对于结合学科交叉知识的更全面的解决方案的需求不会消失。如今,ANC技术已经走进消费者的身边,来自各国的研究机构和企业也正在构建自己的科技堡垒,这同时带来了机遇和挑战,市场也在期待着更多科技成果的涌现。


参考文献:

Lu Lu, Kai-Li Yin, Rodrigo C. de Lamare, Zongsheng Zheng, Yi Yu, Xiaomin Yang, Badong Chen, A survey on active noise control in the past decade—Part I: Linear systems, Signal Processing, Volume 183, 2021, 108039, ISSN 0165-1684.



  关于我们  


21dB声学人是中国科学院声学研究所苏州电声产业化基地旗下科技媒体,专注于声学新技术、音频测试与分析、声学市场调研、声学学习社群建设等。


声明:该文观点仅代表作者本人,音频应用信息发布平台,官网仅提供信息存储空间服务。
最新音频交流