注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

易拉罐的博客

心静自然凉

 
 
 

日志

 
 

转 自适应滤波  

2014-10-29 09:20:40|  分类: 神经网络 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

      自适应滤波器具有在未知环境下良好的运作并跟踪输入统计量随时间变化的能力。尽管对于不同的应用有不同的实现结构,但是他们都有一个基本的特征:输入向量X(n)和期望响应d(n)被用来计算估计误差e(n),即e(n)=d(n)-X(n),并利用此误差信号构造一个自适应算法的性能函数(比如均方误差MSE),并随数据的不断输入自适应地更新此性能函数,目标是最小化此性能函数,在此过程中不断地更新调整滤波器的滤波参数,使得这个参数在前面的最小化性能函数所使用的准则下最优,从而达到滤波效果,实现自适应过程。自适应滤波器主要应用有:预测、辨识、反建模、干扰抵消。

       实现自适应滤波器的算法有很多,比较经典的有:LMS,RLS。其中LMS算法是属于梯度类算法,在1996年被Hassibi等证明了在准则下为最优,失调系数和收敛性可以通过合理的选取收敛因子u,但是如果输入相关矩阵的特征值比较分散时,算法的收敛性变差,故而后来又出现一些改进算法,比如NLMS。RLS是递推算法,准则是最小二乘准则,属于精确分析,相对于LMS滤波,RLS对于非平稳信号的适应性要强很多。

    自适应滤波器可以由不同的结构来实现。目前主要有两种结构:FIR、IIR。前者也可以称为横向结构,易于实现,但是存在收敛性差的问题,后者主要是存在系统可能不稳定的问题。

      根据一些matlab书籍上的例程做了一个LMS算法:

clear;
clc;
N=150;
length=10000;
t=0:1/(N+length):1-1/(N+length);
s=sin(4*pi*t);
n=randn(size(t));
x=s+n;
w=zeros(1,N);
e=zeros(1,length);
E=zeros(1,length);
u=0.00174;
for i=1:length
    y(i)=x(i:i+N-1)*w';
    e(i)=s(i)-y(i);
    w=w+2*u*e(i)*x(i:i+N-1);
    E(i)=e(i)*e(i);
end
figure(1);
subplot(3,1,1);
plot(t,x);
axis([0 1 -5 5]);
title('带噪声信号');
subplot(3,1,2);
plot(t,s);
axis([0 1 -1.1 1.1]);
title('期望信号');
subplot(3,1,3);
plot(0:1/(N+length):(length-1)/(N+length),y);
axis([0 1 -1.1 1.1]);
title('滤波后信号');
figure(2);
plot((1:length),E);
axis([0 10000 0 0.1]);
title('误差')

结果如下:

转 自适应滤波 - 易拉罐bb - 易拉罐的博客
转 自适应滤波 - 易拉罐bb - 易拉罐的博客
 
 
这里使用的是150个抽头的FIR,主要是因为我的DE2-70的cycloneiiEP2C70 FPGA内嵌的是150个硬乘法器,故而一般就以150作为抽头指标,现在的实验对后续的研究会有一些帮助。一般抽头数是越多越好,但是最少都要有两位数要不得不到好的滤波效果。上图可以看出,此自适应滤波器有良好的滤波效果。
 
      对于一些事先并不知道所需要进行操作的参数的应用,例如一些噪声信号的特性,要求使用自适应的系数进行处理。在这种情况下,通常使用自适应滤波器,自适应滤波器使用期望和反馈来综合调整滤波器系数以及频率响应。常用来去除工频干扰,分离胎儿ECG信号,增强P波,去掉心电图中伪迹等。
 
       通常情况下,理想滤波的基本前提是,得到信号和干扰的特性,通常假定两种信号稳定或者广义上稳定。

       常用的自适应滤波技术有:最小均方(LMS)自适应滤波器、递推最小二乘(RLS)滤波器、格型滤波器和无限冲激响应(IIR)滤波器等。这些自适应滤波技术的应用又包括:自适应噪声抵消、自适应谱线增强和陷波等。首先介绍最小均方(LMS)自适应滤波器原理。

       结构框图:
下面图示的框图是最小均方滤波器(LMS)和递归最小平方en:Recursive least squares filter,RLS)这些特殊自适应滤波器实现的基础。框图的理论基础是可变滤波器能够得到所要信号的估计。
转 自适应滤波 - 易拉罐bb - 易拉罐的博客
 在开始讨论结构框图之前,我们做以下假设:
  • 输入信号是所要信号 转 自适应滤波 - 易拉罐bb - 易拉罐的博客 和干扰噪声转 自适应滤波 - 易拉罐bb - 易拉罐的博客  之和
     x(n) = d(n)+v(n)
    • 可变滤波器有有限脉冲响应结构,这样结构的脉冲响应等于滤波器系数。转 自适应滤波 - 易拉罐bb - 易拉罐的博客 阶滤波器的系数定义为
    \mathbf{w}_{n}=\left[w_{n}(0),\,w_{n}(1),\, ...,\,w_{n}(p)\right]^{T}.
    • 误差信号或者叫作代价函数,是所要信号与估计信号之差
     e(n) = d(n)-\hat{d}(n)

    可变滤波器通过将输入信号与脉冲响应作卷积估计所要信号,用向量表示为

     \hat{d}(n) = \mathbf{w}_{n}^{T}\mathbf{x}(n)

    其中

     \mathbf{x}(n)=\left[x(n),\,x(n-1),\,...,\,x(n-p)\right]^{T}

    是输入信号向量。另外,可变滤波器每次都会马上改变滤波器系数

     \mathbf{w}_{n+1} = \mathbf{w}_{n}+\Delta\mathbf{w}_{n}

    其中转 自适应滤波 - 易拉罐bb - 易拉罐的博客是滤波器系数的校正因子。自适应算法根据输入信号与误差信号生成这个校正因子,LMS 和 RLS 是两种不同的系数更新算法。

     

    LMS算法原理:

    LMS自适应滤波器是使滤波器的输出信号与期望响应之间的误差的均方值为最小,因此称为最小均方(LMS)自适应滤波器。

  •  
     
     
     

     【参考文献】
      [1] 丁玉美,阔永红,高新波 A . 数字信号处理-时域离散随机信号处理 [M] .西安:西安电子科技大学出版社, 2002. 
          [2] 万建伟,王玲. 信号处理仿真技术 [M] .长沙:国防科技大学出版社, 2008 .
      [3] 薛年喜. MATLAB在数字信号处理中的应用(第2版) [M] .北京:清华大学出版社, 2008 .

     

     

     

    http://www.cnblogs.com/iqstudy/articles/1805482.html

     http://blog.csdn.net/app_12062011/article/details/7927833

    http://wenku.baidu.com/link?url=PBrSNIdrn3bSrduIuOLby5vfhMRkBqsocagwR_cC6QhF8JphdwDsQwswWmNCZ_SMWX-W0DPlgM_sxjjQff94Tf8v1jD-w6ItKjFH-Wx0l4u

      评论这张
     
    阅读(293)| 评论(0)
    推荐 转载

    历史上的今天

    在LOFTER的更多文章

    评论

    <#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    页脚

    网易公司版权所有 ©1997-2017