掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明属于有源噪声控制(ANC)技术领域,更为具体地讲,涉及一种基于递推最小鲁棒估计的低复杂度有源脉冲噪声控制方法。

背景技术

有源噪声控制(Active Noise Control,简称ANC),或称为主动噪声控制,是一种通过引入可控的次级声源来衰减不必要的低频干扰的方法。该技术已被广泛用于各种应用中以降低有害噪声,如机舱和飞行甲板的宽带噪声、窄带变压器噪声、管道中的噪声以及生活和工作环境中的不适噪声。被控制的噪声源称为初级噪声或参考噪声。滤波输入最小均方(FxLMS)算法是有源噪声控制中最常用的自适应算法,因为它在大多数情况下是有效的,且计算复杂度低,易于实现。

脉冲噪声广泛存在于各种声环境中,例如车间内工件的敲击声、打桩机产生的噪音、战场上的枪炮声、鞭炮爆竹声、门的砰砰声、物体掉落的击地声等等。这类噪声比正态分布的噪音更有可能出现尖锐的尖峰或异常值。针对脉冲噪声的有源控制,研究人员已经开发了大量的自适应算法,如改进的滤波输入最小均方(FxLMS)算法、滤波最小平均p范数算法(FxLMP)、对数变换的FxlogLMS算法、基于M估计器的FxLMS算法、基于递归最小二乘(RLS)的FxlogRLS算法、基于Hampel函数的FxRLM算法、基于状态检测的后滤波算法、带有后自适应滤波器和变步长的IVSSPFFxAPSA算法以及基于FxLMS和FxRLS类的混合方法。在这些方法中,FxlogRLS算法利用对数函数衰减脉冲噪声,并考虑换项误差以避免自适应滤波器的不稳定,因此受到了极大的关注。然而,该算法具有较高的计算复杂度。

发明内容

本发明的目的在于克服现有技术的不足,提供一种基于递推最小鲁棒估计的低复杂度有源脉冲噪声控制方法,在获得良好降噪性能的同时,降低计算复杂度。

为实现上述发明目的,本发明基于递推最小鲁棒估计的低复杂度有源脉冲噪声控制方法,其特征在于,包括以下步骤:

(1)、初始化

首先构建第一组P个长度为L

w

w

其中,参数η在大于0小于等于1的范围内选取即可,P<min{L

初始化0时刻的两组相关逆矩阵Q

其中,

(2)、对参考脉冲噪声进行采集,得到采样值x(n),并构建n时刻的参考脉冲噪声信号向量x(n):

x(n)=[x(n)x(n-1) … x(n-L+1)]

其中,L=L

参考脉冲噪声经过初级路径P(z)后的信号为初级噪声d(n);

(3)、时刻n=1开始,自适应计算自适应滤波器W(z)在n时刻的系数向量w(n)

3.1)、计算滤波参考信号x

其中,

3.2)、计算子滤波器向量w

3.2.1)、计算子滤波参考信号

其中,

这样,得到合成的子滤波参考信号向量

3.2.2)、计算子滤波信号x

这样,得到合成的子滤波信号向量x

3.2.3)、计算子滤波误差信号e

3.2.4)、计算加权因子γ

其中ξ

3.2.5)、计算卡尔曼滤波增益子向量k

其中λ

3.2.6)、计算换项误差

3.2.7)、计算子滤波器向量w

3.2.8)、更新相关逆矩阵,即计算相关逆矩阵Q

3.3)、计算子滤波器向量w

3.3.1)、计算子滤波参考信号

这样,得到合成的子滤波参考信号向量

3.3.2)、计算子滤波信号x

这样,得到合成的子滤波信号向量x

3.3.3)、计算子滤波误差信号e

3.3.4)、计算加权因子γ

其中ξ

3.3.5)、计算卡尔曼滤波增益子向量k

其中λ

3.3.6)、计算换项误差

3.3.7)、计算子滤波器向量w

3.3.8)、更新相关逆矩阵,即计算相关逆矩阵Q

3.4)、计算n时刻的滤波器系数向量w(n)

(4)、将各个时刻n得到的系数向量w(n)发送控制滤波器W(z),控制滤波器对参考脉冲噪声进行滤波,产生滤波信号y(n),推动扬声器产生抵消信号y′(n)以衰减初级噪声d(n),实现对脉冲噪声的有源控制。

本发明的发明目的是这样实现的:

本发明基于递推最小鲁棒估计的低复杂度有源脉冲噪声控制方法,对FxlogRLS算法进行了扩展,基于最近克罗内克积的滤波输入递归最小M估计算法(简称FxRLM-NKP)对脉冲噪声进行有源控制。利用克罗内克积将自适应控制器的系数向量w(n)分解成两组短的子滤波器向量w

附图说明

图1是单通道前馈有源噪声控制(ANC)系统的原理示意图;

图2是本发明基于递推最小鲁棒估计的低复杂度有源脉冲噪声控制方法一种具体实施方式的流程图;

图3是FxlogRLS、FxRLM和FxRLM-NKP算法(本发明)的计算复杂度随参数P的变化图;

图4是FxlogRLS、FxRLM和FxRLM-NKP算法(本发明)的计算复杂度随自适应滤波器长度L的变化图;

图5是P=10,脉冲噪声模型参数α=1.5时的仿真实验结果:(a)原始初级脉冲噪声,(b)FxLMS算法的残留噪声,(c)FxlogRLS算法的残留噪声,(d)FxRLM算法的残留噪声,(e)FxRLM-NKP算法的残留噪声;

图6是P=5,脉冲噪声模型参数α=1.8时的仿真实验结果:(a)原始初级脉冲噪声,(b)FxLMS算法的残留噪声,(c)FxlogRLS算法的残留噪声,(d)FxRLM算法的残留噪声,(e)FxRLM-NKP算法的残留噪声。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

1、信号模型与优化准则

图1是单通道前馈有源噪声控制(ANC)系统的原理示意图。如图1所示,它由用于拾取参考噪声即需要控制的脉冲噪声≤(n)的参考麦克风、用于测量残留噪声e(n)的误差麦克风和用于产生抵消信号y′(n)以衰减初级噪声d(n)的次级声源组成。其中,P(z)是初级路径,W(z)是控制滤波器,S(z)是次级路径,其估计量

由图1可知,有源噪声控制系统在n时刻的误差信号e(n)可表示成:

e(n)=d(n)+s(n)*[w

式中,s(n)是次级路径S(z)对应的脉冲响应,*表示线性卷积,上标

w(n)=[w

是长度为L的自适应滤波器W(z)在n时刻的系数向量,且:

x(n)=[x(n) x(n-1) … x(n-L+1)]

是n时刻的参考脉冲噪声信号向量。在实际的有源噪声控制系统应用中,S(z)是未知的,必须进行估计。因此,将参考信号传递通过估计的次级路径予以产生滤波参考信号。于是,误差信号可重写为:

式中:

是滤波参考信号;

是/>

在脉冲噪声的有源控制中,大量实验表明误差信号也具有脉冲特性。参考信号和误差信号的这种特性导致滤波器的系数向量也具有脉冲特性,这意味着由滤波器系数向量短化的一组向量所表示的矩阵是低秩的。本发明使用一个与一组短向量间的克罗内克积相关的低秩模型近似滤波器的系数向量。因此,可利用克罗内克积将自适应滤波器系数向量分解成:

式中w

式中

式中:

为了平滑由脉冲噪声中的强脉冲引起的瞬时波动,降低脉冲特性对自适应滤波器的不利影响,采用一种稳健的M估计器定义一组代价函数如下:

式中0<λ

是i时刻的后验误差,ρ(·)是柯西估计器,定义为:

利用ε

值得一提的是,本发明中提出的算法与对数变换方法有很大不同。前者算法利用柯西估计器建立代价函数,以自适应方式估计其参数,由此更好地跟踪脉冲噪声。更重要的是,本发明所提算法利用克罗内克积将自适应滤波器的系数向量分解为两组较短的子滤波器,可以在很大程度上降低自适应算法的计算复杂度。

2、自适应算法

基于公式(17),

式中ρ′(·)是ρ(·)的一阶导数。令

并令公式(21)等于0,可获得一个正则方程如下:

R

式中

以类似的方式,可根据公式(17)推导出另一个正则方程如下:

R

式中:

基于公式(20),γ

基于公式(23)-(25),(26),(27)和公式(29),可推导出完整的FxRLM-NKP算法,其流程总结如图2所示。注意到在算法实现中,使用具有w

ANC系统的信号流路径不同于典型的推导过程,这种差异导致了误差信号中的换项误差。在脉冲噪声的有源控制中,由于其快速突变,这种换项误差不能被忽略。因此,必须将换项误差纳入所提算法的更新方程以应对其不利影响。为此,我们根据公式(1),(9)和公式(10)中的误差公式,将初级噪声d(n)和次级路径的估计值表示成以下两种等价形式:

式中:

将公式(31)和(32)的估计量分别代入公式(9)和(10),并将原始的e

具体来讲,如图2所示,本发明基于递推最小鲁棒估计的低复杂度有源脉冲噪声控制方法包括以下步骤:

步骤S1:初始化

首先构建第一组P个长度为L

w

w

其中,参数η在大于0小于等于1的范围内选取即可,P<min{L

初始化0时刻的两组相关逆矩阵Q

其中,

步骤S2:构建参考脉冲噪声信号向量

对参考脉冲噪声进行采集,得到采样值x(n),并构建n时刻的参考脉冲噪声信号向量x(n):

x(n)=[x(n) x(n-1) … x(n-L+1)]

其中,L=L

参考脉冲噪声经过初级路径P(z)后的信号为初级噪声d(n);

步骤S3:自适应计算自适应滤波器系数向量

从时刻n=1开始,自适应计算自适应滤波器W(z)在n时刻的系数向量w(n),具体为:

步骤S3.1:计算滤波参考信号x

其中,

步骤S3.2:计算子滤波器向量w

步骤S3.2.1:计算子滤波参考信号

其中,

这样,得到合成的子滤波参考信号向量

步骤S3.2.2:计算子滤波信号x

这样,得到合成的子滤波信号向量x

步骤S3.2.3:计算子滤波误差信号e

步骤S3.2.4:计算加权因子γ

其中ξ

步骤S3.2.5:计算卡尔曼滤波增益子向量k

其中λ

步骤S3.2.6:计算换项误差

/>

步骤S3.2.7:计算子滤波器向量w

步骤S3.2.8:更新相关逆矩阵,即计算相关逆矩阵Q

步骤S3.3:计算子滤波器向量w

步骤S3.3.1:计算子滤波参考信号

这样,得到合成的子滤波参考信号向量

步骤S3.3.2:计算子滤波信号x

这样,得到合成的子滤波信号向量x

步骤S3.3.3:计算子滤波误差信号e

步骤S3.3.4:计算加权因子γ

其中ξ

步骤S3.3.5:计算卡尔曼滤波增益子向量k

其中λ

步骤S3.3.6:计算换项误差

步骤S3.3.7:计算子滤波器向量w

步骤S3.3.8:更新相关逆矩阵,即计算相关逆矩阵Q

步骤S3.4:计算n时刻的滤波器系数向量w(n)

步骤S4:将系数向量发送给控制滤波器

将各个时刻n得到的系数向量w(n)发送控制滤波器W(z),控制滤波器对参考脉冲噪声进行滤波,产生滤波信号y(n),推动扬声器产生抵消信号y′(n)以衰减初级噪声d(n),实现对脉冲噪声的有源控制。

3、实验验证

利用实验验证本发明所提出的基于递推最小鲁棒估计的低复杂度有源脉冲噪声控制方法(FxRLM-NKP算法)的有效性,并与FxLMS、FxlogRLS、FxRLM算法进行了比较。初级路径P(z)和次级路径S(z)被建模成长度分别为1536和512的FIR滤波器,并假设次级路径S(z)是先验已知的,即

计算复杂度是根据实现有源噪声控制(ANC)算法所需的乘法/除法次数来评估的。加法和减法操作对应的计算量并未被考虑,因为它们在大多数通用硬件平台上计算起来要快得多。图3绘制了FxlogRLS、FxRLM和FxRLM-NKP算法的计算复杂度随参数P的变化情况,其中自适应滤波器的长度L=1024。由图可知,随着P值的增大,所提出的FxRLM-NKP算法的计算复杂度增加。如果P≤22时,其计算量低于其它两种算法。

图4绘制了FxlogRLS、FxRLM和FxRLM-NKP算法(本发明)的计算复杂度随自适应滤波器长度L的变化曲线,其中参数P分别取5和10。可以看出,随着自适应滤波器长度L的增大,几种算法的计算复杂度都增加。相比之下,本发明提出的FxRLM-NKP算法的计算量远小于其它两种算法的计算量,尤其是对于较大的L,这表明在计算效率方面,本发明提出的算法是三种对比算法中最有效的。

图5和图6比较了四种算法的降噪性能。可以看出,对于实验用的两种类型脉冲噪声,FxLMS算法由于缺乏鲁棒性而表现得最差。FxlogRLS算法采用对数函数定义代价函数,避免了滤波器系数的大幅波动,获得了良好的控制性能。由于鲁棒估计器对脉冲噪声的不敏感性,FxRLM算法获得了良好的降噪性能。本发明所提的FxRLM-NKP算法获得了与FxRLM算法类似的控制性能,但前者的计算复杂度低得多。在所比较的三种鲁棒控制算法中,FxRLM-NKP算法的计算复杂度最低。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

技术分类

06120115925234