自适应滤波器MATLAB仿真

文章介绍了自适应滤波器的基本原理,重点讨论了LMS算法及其参数选择的重要性,并通过MATLAB仿真展示了如何使用LMS算法对加噪信号进行滤波。实验结果表明参数μ的选择对滤波效果有显著影响,需在满足精度和自适应时间间取得平衡。
摘要由CSDN通过智能技术生成

1 引言

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

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

2.1 自适应滤波原理

自适应滤波原理图[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所示。

3 MATLAB7.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)初始值变化时的图像。

4 总结

    通过这个例子,使我了解了自适应滤波器的工作原理,以及如何使用自适应滤波器去做信号处理的工作。MATLAB在数字信号处理仿真方面有着强大的功能,通过这次实验,再次温习了一些指令的用法。这个实验中还有一个问题是值得注意的,那就是如何寻找µ。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.

  • 15
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值