自适应滤波器MATLAB仿真

自适应滤波器MATLAB仿真
自适应滤波器MATLAB仿真

自适应滤波器 MATLAB仿真

摘要 : 本文介绍了自适应滤波器的工作原理,以及推导了著名的LMS( Least mean squares )算法。以一个例子演示了自适应滤波器的滤波效果。实验结果表明,该滤波器滤波效果较好。

关键词:自适应滤波器 MATLAB7.0 LMS 算法

Simulate of adaptive filter based on MATLAB7.0

Abstract: This article described the working principle of adaptive filter and deduced the well-known LMS algorithm. Take an example to demonstrate the adaptive filters filtering effects. The results show that the filter has an effective way to filter single.

Key words: LMS algorithm Adaptive Filter Matlab7.0

1引言

由 Widrow B 等提出的自适应滤波理论,是在维纳滤波、卡尔曼滤波等线性滤波基础上发展起来的一种最佳滤波方法。由于它具有更强的适应性和更优的滤波性能,从而广泛应用于通信、系统辨识、回波消除、自适应谱线增强、自适应信道均衡、语音线性预测和自适应天线阵等诸多领域[1]。自适应滤波器最大的优点在于不需要知道信号和噪声的统计特性的先验知识就可以实现信号的最佳滤波处理。本文通过一个具体例子和结果论证了自适应滤波器的滤波效果。

2自适应滤波原理及 LMS算法

2.1 自适应滤波原理

图 1 自适应滤波原理图

在自适应滤波器中,参数可调的数字滤波器一般为 FIR 数字滤波器, IIR 数字滤波器或格型数字滤波器。自适应滤波分 2 个过程。第一,输入信号想 x(n) 通过参数可调的数字滤波器后得输出信号 y(n) ,y(n) 与参考信号 d(n) 进行比较得误差信号 e(n) ;第二,通过一种自适应算法和 x(n) 和 e(n) 的值来调节参数可调的数字滤波器的参数,即加权系

数,使之达到最佳滤波效果。

2.2 LMS 算法及相关参数的选择

LMS 算法最核心的思想是用平方误差代替均方误差 [2] 。因此该算法简化了计算量。 在自适应噪音抵消系统中 ,如自适应滤波器参数选择不当 ,就达不到应有的滤波效果 , 而 且还可能得到适得其反的效果。 因此针对不同的信号和噪声应选择相应的参数 [3]

。可见, 参数的选择对滤波效果是至关重要的。下面仅以 L 阶加权自适应横向滤波器为例,推导 LMS 算法的公式。 L 阶加权自适应横向滤波器,如图 2 所示。 LMS 算法公式推导:

而最陡下降法迭代计算全矢量公式: w n 1 w n

公式( 4)中 为控制稳定性和收敛速度的参数。

由公式( 3)和公式( 4)得: w n 1 w n 2 e n x 公式( 5)说明了 LMS 算法的核心是用每次迭代的粗略估计值代替了实际的精确值, 这样大大简化了计算量,但是不可否认,加权系数不可能准确的沿着理想的最陡下降路 径来调整自身的参数,而加权系数与 μ有着密切的关系。因此,适当的选择自适应滤波 器性能参数 μ显得格外重要。

w n w 0 n w 1 w L n

;其中 x n 为输入信号, w n 为加权系数。 误差信 号: e n d n y n d(n) x T n w n d(n)

w T

n xn (1) 公式( 1)中 d (n ) 为参考信号, y (n ) 为输出信号。

误差信号均方值: 号, n E e 2 n (2)

由公式( 1)和公式 2)得:

均方误差性能曲面的梯度: n

2e w en n 2e n x n w (3)

(4) (5)

图 2 L 阶加权自适应横向滤波

3MATLAB7.0 仿真

本例通过设计一个二阶加权系数自适应横向 FIR 滤波器,对一正弦信号加噪声信号进行滤波[4]。为了实现该功能,得先生成一个标准正弦波信号 s(n) 和一个随机噪声信号n(n), 然后将 s(n) 与 n(n) 相加就得到了加噪后的正弦信号 x(n), 再依照由 LMS算法推导出来的公式( 5),设计自适应滤波算法,对噪声干扰信号进行滤波,最后得到滤波后的信号e(n), 实现程序代码如下:

clear

t=0:1/10000:1-0.0001;% 设置迭代次数

s=sin(2*pi*t);% 标准正弦信号

n=randn(size(t));% 与时间 t 等长随机信号

x=s+n;%加噪信号

w=[0,0.5];% 初始 2 阶加权系数

u=0.00026;%最佳参数

for i=1:9999;% 自适应算法

y(i+1)=n(i:i+1)*w';

e(i+1)=x(i+1)-y(i+1);

w=w+2*u*e(i+1)*n(i:i+1);

end;

%画图程序

figure(1)

subplot(4,1,1)

plot(t,n);

title('Noise signal');xlabel('t');ylabel('n(t)');

subplot(4,1,2)

plot(t,s);

title('Sinusoidal signal');xlabel('t');ylabel('s(t)');

subplot(4,1,3)

plot(t,x);

title('Sinusoidal signal with noise');xlabel('t');ylabel('x(t)');

subplot(4,1,4)

plot(t,e);

title('the result of filtering');xlabel('t');ylabel('e(t)');

图3 μ取0.00026 时的滤波效果图

当 μ取 0.00026 时得到的效果较好。 前面一段时间较模糊是因为滤波器参数还没有 调整到最佳,如图 3 所示。由图可知当 t 取 0.5 时,已经找到了最佳加权系数。

图4 μ取0.000026时的滤波效果图

当 μ取 0.000026 时,滤波结果几乎呈直线,而且线条很粗,说明寻找加权系数

的 速度太慢了,如图 4 所示。

图5 μ取0.26 时的滤波效果图

当 μ取 0.26 时,结果也是呈直线状,而且线条很细,有的地方还有毛刺,说明系 统参数变化太快,系统还没有调整到最佳加权系数,如图 5 所示

图 6 μ取 1 时的滤波效果图

当 μ取 1 时,系统输出混乱,如图 6 所示。

实验结果表明:不同的 μ值得到的滤波效果是不同的。通过实验数据观察得出:μ 偏大时, 自适应时间越短 ,自适应过程越快 , 但它引起的失调也越大 ,所以导致滤波结果

很模糊,输出信号变化较大,当μ大于某个值时 , 系统输出混乱 ;μ偏小时 ,系统比较稳 定,输出信号变化小,失调也小 , 但自适应过程却相应加长了 ,因此参数μ的选择应从整 个系统要求出发 , 在满足精度要求的前提下 , 尽量减少自适应时间。

最后,通过取合适的 μ,改变w(n) 的初始值,总可以找到最佳的加权系数。本程序 中迭代次数为 10000。因此,得出结论:当 μ一定,迭代次数很大时,加权系数总可以 找到最优解。

以下是 W(n)初始值变化时的图像。

图 11 W(n)= [0.5 ,

0.5]

图 7 W(n)=[0 , 0]

图9 W(n)= [0 ,1]

图 10 W(n)= [0.5 , 0]

图 13 W(n)= [1 , 0]

图 15 W(n)= [1 , 1]

4 总结 通过这个例子,使我了解了自适应滤波器的工作原理,以及如何使用自适应滤波 器去做信号处理的工作。 MATLA 在B 数字信号处理仿真方面有着强大的功能,通过这次实 验,再次温习了一些指令的用法。这个实验中还有一个问题是值得注意的,那就是如何 寻找μ。FIR 滤波器以其稳定和容易实现严格的线性相位,使信号处理后不产生相位畸 变,而在实际中获得广泛的应用 [5]

。 参考文献

[1] 叶华,吴伯修.变步长自适应滤波算法的研究 [J]. 电子学报 , 1990,18(4):63-69.

[2] 姚天任 ,孙洪.现代数字信号处理 [M]. 武汉:华中科技大学出版社 ,1999.

[3] 吴轶刚 ,范猛.自适应滤波器参数选择和仿真结果 [J].吉林工学院学报 ,2001,22(2):25-29.

[4] 罗军辉等 .MATLAB7.0 在数字信号处理中的应用 [M]. 北京:机械工业出版社, 2005.

[5] 张亚妮 .小波视频图像处理技术 [J]. 辽宁工程技术大学学报

, 2004,23(2): 230-232.

相关主题
相关文档
最新文档