一种混合频域自适应算法的制作方法

文档序号:17473062发布日期:2019-04-20 05:56阅读:269来源:国知局
一种混合频域自适应算法的制作方法

本发明涉及一种混合频域自适应算法,属于音频处理技术领域。



背景技术:

自适应滤波被广泛应用于语音增强、回声消除、有源噪声控制和通信系统等。最小均方(lms)算法由于算法简单、稳定性好而被自适应滤波广泛使用,但是当lms算法的参考信号自相关矩阵特征值分布差异较大时,它的收敛速度将变慢,且它的运算随着自适应滤波器长度的增加而显著增加。

为了减少自适应滤波的运算量,人们通常使用频域块最小均方(fblms)算法。当自适应滤波每个频带的步长被对应频带参考信号功率归一化时,fblms算法的收敛速度明显加快。虽然归一化fblms(nfblms)算法的收敛速度很快(farhang-boroujeny,b.,andchan,k.s.,analysisofthefrequency-domainblocklmsalgorithm,ieeetrans.signalprocess.,48(8),2332–2342,(2000).),但是当自适应滤波器长度不足或者系统非因果时,它的均方误差(mse)稳态值会增加(wu,m.,yang,j.,xu,y.,andqiu,x.j.,steady-statesolutionofthedeficientlengthconstrainedfblmsalgorithm,ieeetrans.signalprocess.,60,6681–6687,(2012).)。修正fblms(mfblms)算法在增加少量运算量的前提下使得均方误差收敛到维纳解(lu,j.,qiu,x.j.,andzou,h.s.,amodifiedfrequency-domainblocklmsalgorithmwithguaranteedoptimalsteady-stateperformance,signalprocess.,104,27–32,(2014).),但mfblms算法的收敛速度慢于nfblms算法(lu,j.,chen,k.,andqiu,x.j.,convergenceanalysisofthemodifiedfrequency-domainblocklmsalgorithmwithguaranteedoptimalsteadystateperformance,signalprocess.,132,165–169,(2017).)。



技术实现要素:

发明目的:为了克服现有技术中存在的不足,本发明提供一种混合频域算法,将nfblms和mfblms算法结合起来,分析了它们的收敛特性,提出了算法切换参数,在不同的时刻使用不同的算法,混合算法结合很快收敛到维纳解。

技术方案:为实现上述目的,本发明采用的技术方案为:

一种混合频域自适应算法,包括以下步骤:

步骤1,通过分析nfblms和mfblms算法的误差收敛轨迹图,得到在nfblms和mfblms算法之间的最佳切换参数为误差能量。

步骤2,在收敛初期或声环境发生变化时执行nfblms算法以便快速收敛;通过分析计算nfblms算法在收敛初期的收敛速度,然后对误差总能量j(k)期望值jm(k)的收敛曲线进行拟合估计;当jm(k)降低幅度小于预定阈值时,从nfblms算法切换到mfblms算法,然后收敛到维纳解。

步骤3,当声环境发生变化时,将误差能量与参考信号能量的比值ξ(k)作为从mfblms算法向nfblms算法切换的参数;定义混合算法在执行nfblms算法时稳态条件下的ζ(k)为ζn,执行mfblms算法时稳态条件下的ζ(k)为ζm;通过混合算法在nfblms和mfblms算法之间二次收敛,实现了参数阈值ζthr自适应调整为ζmthrn;当ζ(k)由ζ(k)<ζthr变为ζ(k)>ζthr时,代表声环境发生了改变,需要切换到nfblms算法。

本发明相比现有技术,具有以下有益效果:

1、通过混合算法的三种收敛情况选取误差总能量作为nfblms算法向mfblms算法切换的参数,运算量小。

2、mfblms算法向nfblms算法切换参数阈值ζthr可以跟随环境参数自适应调整,保证了混合算法的普遍适应性。

3、混合算法与nfblms和mfblms算法相比,只增加了少量的状态设置和判断,增加的运算量很小。

附图说明

图1为nfblms和mfblms算法的收敛轨迹。

图2为混合算法切换流程图。

图3实施例所使用的传递函数冲激响应。

图4自适应系统三种算法收敛对比图。

具体实施方式

下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。

一种混合频域自适应算法,包括以下步骤:

1.通过分析nfblms和mfblms算法的误差收敛轨迹图,得到混合算法在nfblms和mfblms算法之间的最佳切换参数为误差能量。

2.混合算法在收敛初期或声环境发生变化时执行nfblms算法以便快速收敛。通过分析可以计算nfblms算法在收敛初期的收敛速度,然后对误差总能量j(k)期望值jm(k)的收敛曲线进行拟合估计。当jm(k)几乎不再降低时,混合算法从nfblms算法切换到mfblms算法,然后收敛到维纳解。

3.当声环境发生变化时,将误差能量与参考信号能量的比值ξ(k)作为混合算法从mfblms算法向nfblms算法切换的参数。定义混合算法在执行nfblms算法时稳态条件下的ζ(k)为ζn,执行mfblms算法时稳态条件下的ζ(k)为ζm。通过混合算法在nfblms和mfblms算法之间二次收敛,实现了参数阈值ζthr自适应调整为ζmthrn。当ζ(k)由ζ(k)<ζthr变为ζ(k)>ζthr时,代表声环境发生了改变,需要切换到nfblms算法。

1、误差能量作为nfblms算法向mfblms算法切换的参数

nfblms算法常见的迭代公式为

自适应滤波器长度为l,频域迭代块的长度为n,通常设置l=n,上标h代表共轭转置运算,xf(k)=diag[xf(k)],diag代表对角矩阵,xf(k)为频域参考信号,wf(k)为频域自适应滤波器,ef(k)为频域误差,μ0为归一化步长,mf=diag[ξ],ξ为频带归一化因子组成的矢量,qn,0=fgn,0f-1,f代表(l+n)×(l+n)阶离散傅里叶变换(dft)矩阵,

mfblms算法自适应滤波器迭代公式为

mfblms算法的收敛速度已被证明低于nfblms算法,不过它在自适应滤波器长度不足或者系统非因果时依然可以完美收敛至维纳解。

nfblms和mfblms算法的误差均可以表示为

ef(k)=fg0,lf-1[df(k)-xf(k)wf(k)](4)

图1以一个示例来说明两种算法中自适应滤波器在误差曲面上的收敛轨迹。参考信号为白噪声通过传递函数h(z)=[(1-0.5z-1)]15/[(1-0.6z-1)]5,期望信号为参考信号通过3阶滤波器[-4;0;2],自适应滤波器{wn,n=1,2}的阶数为2阶,小于实际滤波器阶数。两种算法的步长均设为最大值以保证最快的收敛速度。wn-opt和wm-opt分别是nfblms和mfblms算法的稳态滤波器,其中wm-opt即算法的维纳解,wcase1(0)、wcase2(0)和wcase3(0)分别为三种不同情况对应的自适应滤波器初始值。图中的收敛轨迹为300次独立仿真取平均。

根据图1中两种算法的收敛轨迹可以发现,混合算法在三种情况下的算法切换流程如下:在情况1中,混合算法在初始阶段执行nfblms算法,使得自适应滤波器快速更新至wn-opt附近,然后执行mfblms算法使得自适应滤波器更新至wm-opt;在情况2中,混合算法在初始阶段执行nfblms算法,当自适应滤波器更新到wm-opt附近时,误差将开始增大,此时应执行mfblns算法使得自适应滤波器更新至wm-opt;在情况3中,混合算法应该从始至终执行mfblms算法使得自适应滤波器更新至wm-opt。上述三种情况下的共同点为当误差增加时,nfblms算法应该切换至mfblms算法。

2、nfblms算法中误差能量期望值轨迹拟合

对于nfblms算法,

其中vf(k)=wf(k)-wf,o(k),wf,o(k)为频域稳态自适应滤波器系数,ef,o(k)为频域稳态误差。由于且当l+n足够大时,qn,0≈0.5i,q0,l≈0.5i。假设参考信号的频域分量满足高斯白噪声分布,且各频谱分量互不相关,则参考信号各个频谱分量的能量满足卡方分布。由于参考信号的功率谱为

各个频谱分量满足归一化后的卡方分布χ2,即

假设的波动组成的矢量为γ(k)/2,将式(7)带入式(5)化简可得

vf(k+1)=(i-μ0χ2)vf(k)+μ0γ(k)(8)

当滤波器初值距离稳态值足够远时,在滤波器迭代初期,μ0γ相对于vf(k)来说很小,可以忽略不计。则式(8)可化简为

vf(k+1)=(i-μ0χ2)vf(k)(9)

由式(4)可知

当控制滤波器初始值距离稳态值足够远时,在滤波器迭代初期,ef(k)-q0,lef,o(k)≈ef(k),则式(10)可化简为

ef(k)=-q0,lxf(k)vf(k)(11)

根据独立性假设,假设vf(k)只与k时刻前的参数有关,与k时刻的参数无关。对式(11)两边求模可得

对于χ2,有

令jm(k)=e[ef(k)hef(k)],将式(6)、式(9)和式(13)带入到式(12)并两边求期望可得

由式(14)可知,在nfblms算法的初始阶段,均方误差mse呈指数模型衰减,衰减因子b=(1-μ0)2+2μ02

令j(k)=ef(k)hef(k),jm(k)与j(k)的关系如下所示

j(k)=jm(k)+ν1(k)(15)

其中,ν1(k)为j(k)在k时刻的波动。由于式(14)为近似推导,因此衰减因子b具有少量误差,因此可以根据下式对jm(k)进行更新迭代

其中k为一系数,用来平衡算法的稳定性和快速追踪性。当jm(n)开始不再减小时,即jm(k-1)-jm(k)<η时,η为很小的正值,mse虽然还没有收敛到极小值,但可认为nfblms算法误差快速收敛阶段已结束,混合算法可以切换至mfblms算法。

3、将ξ(k)作为mfblms算法向nfblms算法切换的参数

假设参考信号不变,实际系统的传递函数的冲激响应为

wl+s的长度为(l+s)。wl+s被分为两部分,wl的长度与自适应滤波器长度一致,ws的长度为s。当滤波器长度不足时,自适应滤波器的维纳解为

其中,

xl(n)=[x(n)x(n-1)…x(n-l+1)]t(19)

xs(n)=[x(n)x(n-1)…x(n-s+1)]t(20)

xll(n)=[xl(n-l+1)xl(n-l+2)…xl(n)](21)

xsl(n)=[xs(n-l+1)xs(n-l+2)…xs(n)](22)

令e{xllxtll}-1e{xllxtsl}=h,[xs(n-l+1)-xl(n)h]=θ,则θ只与参考信号有关。稳态条件下的误差为

当真实通路传递函数的冲激响应发生变化时,例如

则变化的瞬时误差为

enew(n)=xl(n)tδwlt(ws+δws)(25)

比较式(23)和式(25)可知,只有当自适应滤波器的因果性部分明显小于非因果部分,且声环境变化导致wl+s的非因果性明显减小时,有可能|enew(n)|<|e(n)|。在大部分情况下,真实通路传递函数的冲激响应发生变化时,误差能量会突然变大。

当声环境变化表现为参考信号幅值发生变化时,误差信号会发生等幅值的变化,此时自适应滤波器不需要更新。因此令

由于mfblms算法在收敛过程中误差能量一直是减小的,ζ(k)会逐渐减小到ζm。在大部分情况下,当声环境发声变化时,ζ(k)会由ζm突然变大。

4、混合算法切换策略

混合算法切换策略流程图如图2所示,其主要参数如表1所示。

表1混合算法切换策略流程图参数

下面对图2中混合算法运算流程进行介绍:

(1)设置好初始参数km、m1、m2、η、j、jm后混合算法开始执行nfblms算法并迭代jm(k)。从m1个频域块后,判断当前是否处于二次循环:如果是,则切换到mfblms算法并修改二次循环参数δ;如果否,则混合算法执行nfblms算法至jm(k-1)-jm(k)<η,认为当前nfblms算法快速收敛阶段已结束,应跳转执行mfblms算法,清零阈值ζthr并修改二次循环参数δ。

(2)当混合算法开始执行mfblms算法时,从m2个频域块后,判断是否需要二次循环:如果否,代表当前循环可以计算ζthr的值,将当前时刻的ζ(k)赋值给ζthr作为参数阈值,并修改二次循环参数;如果是,代表ζthr=0,当混合算法执行mfblms算法收敛至稳定状态后必然ζ(k)>ζthr=0,则执行nfblms算法进行二次循环;如果是,代表ζthr已设置好,此时不需要二次循环了。当混合算法执行mfblms算法收敛至稳定状态后,如果ζ(k)>ζthr,认为声环境发声了变化,则混合算法应切换至nfblms算法。

案例

通过具体案例来比较nfblms、mfblms和混合算法的性能。自适应滤波器的阶数l为64,参考信号为高斯白噪声通过传递函数h(z)=[(1-0.5z-1)]15/[(1-0.6z-1)]5。期望信号为参考信号通过不同通路wl+s1和wl+s1得到的信号,期望信号被均分为3部分,其中第1和第3部分为参考信号通过wl+s1得到,第2部分为参考信号通过wl+s2得到。收敛步长均设置到最大值附近以保证最快的收敛速度,仿真结果均为300次独立仿真结果求平均。初级通路和次级通路传递函数冲激响应如图3所示。三种算法收敛对比图如4如所示。

从上述仿真结果图可以看到,混合算法有着nfblms算法快速收敛和mfblms算法稳态误差最优的特性。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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