基于RLS算法的多麦克风降噪(保证正确)

武汉理工大学《信息处理课群综合训练与设计》报告

式中,M≤N。

简短的表示滤波器的代价函数,将上式有关项定义为以下参数:

(1)确定性相关函数表示输入信号在抽头k与抽头m之间两信号的相关性,

?(N,k,m)??x(i?k)x(i?m);i?1Nk,m?0,1,?,M?1.

(2)确定性互相关函数表示期望响应与在抽头k输入型号之间的互相关性:

?(N,k)??d(i)x(i?k);i?1Nk?0,1,?,M?1.

(3)期望响应序列的能量为: Ed(n)??d2(i)

i?1N将上述定义的三个参数代入式③中,得:

J(n)?Ed(n)?2?wk(n)?(N;k?1)???wk(n)wm(n)?(N;k?1,m?1) ④

k?1k?1m?1MMM为了估算滤波器的最佳滤波系数,把式④对滤波系数(权系数)wk(n)微分一次,并令其导数等于0:

M?J(n)??2?(N;k?1)?2?wm(n)?(N;k?1,m?1)?0;?wk(n)m?1k?1,2,?,M. ⑤

得:

?wm?1Mm(n)?(N;k?1,m?1)??(N;k?1);k?1,2,?,M. ⑥

这是最小二乘法自适应滤波的正则方程。 RLS递推计算公式为:

?(n)?w?(n?1)?K(n)[d(n)?xT(n)w?(n?1)]?w?(n?1)?K(n)?(n) w式中K(n)为增益矢量,它等于相关矩阵?(n)的逆矩阵与延迟线抽头输入阵

X(n)的乘积。?(n)是真正的估计误差,它等于:

?(n?1) ?(n)?d(n)?xT(n)w自适应递归最小二乘算法的信号流程图如图3:

8

武汉理工大学《信息处理课群综合训练与设计》报告

图3-2 RLS算法信号流程图

RLS算法的计算步序如图4:

图3-3 RLS算法步序

3.2 RLS算法程序程序设计

在理解RLS算法的基本原理后,我决定自行编写RLS算法程序块,RLS算法可以理解为将输出反馈给滤波器来调整相关参数,达到校正误差的目的。算法实现模块代码如下所示:

Worder=32; %滤波器阶数 lambda=1 ; % 设置遗忘因子 Delta=0.001 ;

p=(1/Delta) * eye ( Worder,Worder ) ; w=zeros(Worder,1);

output=primary; %主语音输出 loopsize=max(size(primary));

for i=1+Worder:loopsize %写RLS算法公式

9

武汉理工大学《信息处理课群综合训练与设计》报告

z=primary(i)-w'*(fref(i-Worder+1:i))'; n2=fref(i-Worder+1:i)'; k=(1/lambda)*p*n2; K=k/(1+n2'*k); w = w + K*z; p0=K*n2';

p= (p-p0*p)/lambda; output(i-Worder)=z; disp(i); end;

10

武汉理工大学《信息处理课群综合训练与设计》报告

4 RLS算法滤波方案实现

4.1信号的获取

本次课程设计对我们自行处理和灵活运用的能力提出了很高的要求。首先,设计中未要求所需要用到的语音信号;其次,录制噪声和被噪声污染的语音信号也是一个的问题。

经过考虑,原始音频信号选择从网上下载的一段WAV格式的5秒铃声,然后用randn(length(source),1)函数输出作为噪声,记做RLSrefns.wav。将这两段语音信号叠加并保存下来记做RLSprimsp.wav。

4.2读取语音文件

主麦克风录制的语音信号是RLSprimsp.wav,参考麦克风录制的参考噪声是RLSrefns.wav,都是.wav格式,用waveread指令读取音频信号;

指令写为如下:

primary = wavread('RLSprimsp.wav'); primary = primary';

ref = wavread('RLSrefns.wav'); fref = fref';

4.3RLS算法实现

RLS算法的收敛特性较LMS算法优越,但相应的复杂度也要高许多,考虑到收敛时间的影响,从起始时间到收敛时间经滤波器处理得到到输出误差依然很大,故直接将前32项去掉,先通过两输入作差得到预期值,再将所有预期值与对应时刻的实际输出值作差求平方,将这些平方值相加可以得到一个变量为W的函数,取W是函数的值最小。另外,显然距离n最近的量与Y(n)最接近,引入遗忘因子使得从n-1到0,相关程度逐渐减小。最后求得相关偏差,反馈给滤波器以矫正输出,达到减小误差的目的。

% 初始化

Worder=32; %滤波器阶数 Delta=0.001 ; p=(1/Delta) * eye ( Worder,Worder ) ;

11

联系客服:779662525#qq.com(#替换为@)