自适应滤波器MATLAB仿真.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
- PAGE 1 - 自适应滤波器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 自适应滤波原理 自适应滤波原理图[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所示。 图2 L阶加权自适应横向滤波器 LMS算法公式推导: 设; ;其中为输入信号,为加权系数。 误差信号: (1) 公式(1)中d(n)为参考信号,y(n) 为输出信号。 误差信号均方值: (2) 由公式(1)和公式(2)得: 均方误差性能曲面的梯度: (3) 而最陡下降法迭代计算全矢量公式: (4) 公式(4)中为控制稳定性和收敛速度的参数。 由公式(3)和公式(4)得: (5) 公式(5)说明了LMS算法的核心是用每次迭代的粗略估计值代替了实际的精确值,这样大大简化了计算量,但是不可否认,加权系数不可能准确的沿着理想的最陡下降路径来调整自身的参数,而加权系数与μ有着密切的关系。因此,适当的选择自适应滤波器性能参数μ显得格外重要。 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;

文档评论(0)

135****6041 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档