自适应滤波算法原理及其应用_第1页
自适应滤波算法原理及其应用_第2页
自适应滤波算法原理及其应用_第3页
自适应滤波算法原理及其应用_第4页
自适应滤波算法原理及其应用_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上自适应滤波算法原理与应用经典的滤波算法包括,维纳滤波,卡尔曼滤波,自适应滤波。维纳滤波与卡尔曼滤波能够满足一些工程问题的需求,得到较好的滤波效果。但是他们也存在局限性,对于维纳滤波来说,需要得到足够多的数据样本时,才能获得较为准确的自相关函数估计值,一旦系统设计完毕,滤波器的长度就不能再改变,这难以满足信号处理的实时性要求;对于卡尔曼滤波,需要提前对信号的噪声功率进行估计,参数估计的准确性直接影响到滤波的效果。在实际的信号处理中,如果系统参数能够随着输入信号的变化进行自动调整,不需要提前估计信号与噪声的参数,实现对信号的自适应滤波,这样的系统就是自适应滤波系统。1.基

2、本自适应滤波算法自适应滤波算法的基本思想是根据输入信号的特性自适应调整滤波器的系数,实现最优滤波。图1 自适应滤波结构框图若自适应滤波的阶数为,滤波器系数为,输入信号序列为,则输出为:( 1)( 2)其中为期望信号,为误差信号。( 3)( 4)则滤波器的输出可以写成矩阵形式:( 5)( 6)定义代价函数:( 7)当使上式中的代价函数取到最小值时,认为实现最优滤波,这样的自适应滤波成为最小均方自适应滤波(LMS)。对于最小均方自适应滤波,需要确定使得均方误差最小的滤波器系数,一般使用梯度下降法求解这类问题。滤波器系数向量的迭代公式为:( 8)式中,为步长因子,为代价函数的梯度。( 9)因为瞬时梯

3、度为真实梯度值的无偏估计,实际应用中可使用瞬时梯度代替真实梯度,即有:( 10)( 11)通过逐步迭代,即可得到最优的滤波器系数,实现对输入信号的自适应滤波。2.自适应滤波的工程应用为了比较不同滤波算法的滤波效果,这里仍然采用前面用到的二维圆周运动轨迹追踪的问题作为工程背景。自适应滤波算法的程序设计思路如图 2所示。图 2 自适应滤波算法流程图迭代步长时,得到的滤波结果为:图 3 X方向自适应滤波结果-基本自适应滤波图 4 Y方向自适应滤波结果-基本自适应滤波从X与Y方向上的位移变化曲线与方差变化曲线上可以看出,滤波结果出现了发现,最终得到的结果并没有达到最优解。分析其原因,可能是迭代步长太大

4、,将迭代步长减小之后,取,得到较为理想的滤波结果,示于图 5和 6.图 5 X方向自适应滤波结果-基本自适应滤波图 6 Y方向自适应滤波结果-基本自适应滤波可以看出,减小步长因子之后,两个方向上的滤波轨迹与期望的轨迹之间的误差明显减小,证明了自适应滤波的有效性。3.自适应滤波的收敛性分析在上一节的讨论中,迭代步长选择对于算法的收敛性具有决定性作用,步长值的微小改变即可对算法的收敛效果产生明显影响,因此如何确定合适的步长值是自适应滤波算法中重要的内容。( 12)( 13)系统的最小均方误差最小时,有:则下式成立:( 14) 对于滤波器系数的迭代过程,有:( 15)对自相关矩阵进行分解,即:( 1

5、6)则相邻两次迭代过程的滤波器系数之间满足关系式:( 17)( 18)当迭代次数为无穷大时,理论上可以实现最优滤波,即迭代步长应该满足:( 19)从而有:( 20)式 20即为确保算法收敛迭代步长应满足的条件。得到步长的收敛性条件,即可在满足要求的范围内调整步长因子,选择最佳的步长,在确保算法收敛的前提下,提高收敛速度。对于二维轨迹追踪问题,取步长因子为,得到的滤波结果如图 7至 9所示。图 7 X方向自适应滤波结果-基本自适应滤波图 8 Y方向自适应滤波结果-基本自适应滤波图 9 二维圆周运动轨迹滤波结果-基本自适应滤波从X方向,Y方向上的滤波结果可以看出,滤波轨迹在起初的一段时间内与期望轨

6、迹存在较大的误差,但随着迭代次数增加,两者的误差逐渐减小,最终得到误差的最小值。二维轨迹图上也能得到类似的结论。4.变步长自适应滤波在满足收敛性条件的要求下选择迭代步长,可以确保最终得到收敛的结果,但是这一步长在整个过程中是固定的。然而,更为理想的情况是在滤波的初始阶段,误差值很大时,迭代步长可以取较大的值,以取得较快的收敛速度,随着误差减小,逐渐接近最优目标时,迭代步长也相应减小,从而得到较好的收敛精度,这就是变步长自适应滤波算法。变步长的自适应滤波算法已经有了较长时间的发展,前人发展了很多有效的变步长算法,这里仅选择两种常用的方法。(1)归一化变步长自适应滤波算法其中,为常数,且满足。归一

7、化的变步长滤波算法使用输入信号的能量对步长因子进行归一化,确保其取到合适的值。(2)Sigmod函数变步长自适应滤波算法其中,为常数,且满足。Sigmod函数使用滤波器的输出误差对迭代步长进行控制,从表达式中可以看出,误差较大时,步长因子的值较大,误差减小时,步长因子的值也会相应减小。图 10 变步长自适应滤波算法程序设计流程图采用变步长的自适应滤波算法对二维圆周运动的轨迹进行追踪,滤波结果示于图 11至 13。其中参数。图 11 X方向自适应滤波结果-变步长自适应滤波图 12 Y方向自适应滤波结果-变步长自适应滤波图 13 二维圆周运动轨迹滤波结果-变步长自适应滤波从X方向与Y方向上的滤波曲

8、线可以看出,变步长的自适应滤波输出结果与期望信号之间的误差更小,固定步长时起始阶段的大幅度波动也消失了,对运动轨迹的追踪效果也更好。5.解相关自适应滤波当输入信号之间具有较强的相关性时,自适应滤波的效果并不理想,因此改进自适应滤波算法的一个方法就是消除相邻输入信号序列的相关性,称为解相关自适应滤波。解相关自适应滤波算法的实现过程为:该算法通过求解相邻两个输入信号序列的相关系数,在当前输入信号中减去与上一输入信号的相关部分,作为当前的输入信号,实现解相关的自适应滤波。图 14给出了解相关自适应滤波算法的程序设计流程。图 14 解相关自适应滤波算法流程图将该算法应用于二维圆周运动的轨迹追踪问题,所

9、得结果示于图 15至 17。图 15 X方向自适应滤波结果-解相关自适应滤波 图 16 Y方向自适应滤波结果-解相关自适应滤波 图 17 二维圆周运动轨迹滤波结果-解相关自适应滤波图 15, 16, 17显示了应用解相关自适应滤波算法对二维圆周运动轨迹进行滤波后的结果。X与Y方向上的信号均与期望信号符合的很好,并且最小均方误差的变化曲线也呈现较快的收敛趋势。在二维轨迹图上,滤波轨迹的波动性大大降低,仅在初始阶段存在轻微的波动,但总体上取得了理想的滤波结果,能够满足实际应用的需求。6.变换域自适应滤波从解相关自适应滤波算法结果看出,如果能够消除输入信号的相关性,自适应滤波的效果将得到极大的改进,

10、在此基础上,有发展出了变换域的自适应滤波算法。其基本思想是使用一组正交基,将时域信号变换到对应的变换域上,则在变换域上,信号的相关性就会降低,对信号进行归一化后,自相关矩阵特征值的分散度就会降价,从而提高算法的收敛性。基本的变换包括频率域变换,余弦变换,小波变换,分数阶Fourier变换。(1) 基于频域的自适应滤波将输入信号和期望信号分别形成N点数据块,然后做N点离散Fourier变换,权系数每N个样点更新一次。对信号进行变换与反变换时,可以利用快速Fourier正变换与逆变换算法,能够有效提高运算速度。(2) 基于余弦变换域的自适应滤波算法余弦变换能够较好地近似理想正交变换,基于余弦变换域

11、的LMS自适应滤波算法不仅减小了输入信号的自相关程度,明显提高了收敛速度,减小了权失调噪声,而且该算法的计算量也大大减小。(3) 基于小波变换域的自适应滤波算法对自适应滤波器的输入信号进行正交变换,利用小波的时频局部特性,将输入向量正交分解到多尺度空间 。减小了自适应滤波器输入向量自相关阵的谱动态范围,大大增加了算法的收敛步长,提高了收敛速度和稳定性。(4) 基于分数阶Fourier域的自适应滤波算法分数阶Fourier变换是一种时频分析工具和旋转算子,信号在分数Fourier域上的表示同时融合了信号在时域和频域的信息。基于分数阶傅里叶变换域的自适应滤波利用前一时刻已获得的滤波器参数等结果,自

12、动调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。图 18 变换域自适应滤波算法流程图参考文献1李方伟,张浩. 一种新的变步长LMS自适应滤波算法及其仿真J. 重庆邮电大学学报(自然科学版),2009,(05):591-594. 2齐林,周丽晓. 变换域自适应滤波算法的研究J. 郑州大学学报(理学版),2007,(01):61-66. 3冯存前,张永顺. 变步长频域快速自适应收发隔离算法研究J. 电子对抗技术,2004,(05):22-25+45. 4Deherty J, Porayath R. A robust echo canceler for ac

13、oustic environments. IEEE Trans. Circuits and Systems, II, 1997, 44:389-398.5张贤达. 现代信号处理(第三版).北京:清华大学出版社,2015.6高西全,丁玉美. 数字信号处理-时域离散随机信号处理. 西安:西安电子科技大学出版社, 2002.代码:自适应滤波算法:%该程序实现对二维圆周运动轨迹的自适应滤波%该程序为主函数,调用不同的子函数实现不同的滤波方法%子函数1:fun_fplms_filter2-固定步长自适应滤波%子函数2:fun_cplms_filter2-变步长自适应滤波%子函数3:fun_lms_fil

14、ter_der2-解相关自适应滤波clear close allN=2000;theta=linspace(0,2*pi,N); %极坐标参数e_x=cos(theta); %x,y方向上的期望信号e_y=sin(theta);no_x=normrnd(0,sqrt(0.08),1,N); %高斯白噪声no_y=normrnd(0,sqrt(0.12),1,N);m_x=e_x+no_x; %观测信号m_y=e_y+no_y;%fixed step% Err_x,f_x=fun_fplms_filter2(e_x,m_x,N,10);% Err_y,f_y=fun_fplms_filter2(

15、e_y,m_y,N,10);%changed step% Err_x,f_x=fun_cplms_filter2(e_x,m_x,N,10);% Err_y,f_y=fun_cplms_filter2(e_y,m_y,N,10);%decorrelation Err_x,f_x=fun_lms_filter_der2(e_x,m_x,N,10);Err_y,f_y=fun_lms_filter_der2(e_y,m_y,N,10);figureplot(e_x,e_y,'k','linewidth',2)hold onplot(m_x,m_y,'b

16、9;)hold onplot(f_x,f_y,'r-')title('LMS自适应滤波圆周运动轨迹追踪')legend('期望轨迹','观测轨迹','滤波轨迹')figuresubplot(211)plot(e_x,'k')hold onplot(m_x,'b')hold onplot(f_x,'r')title('x方向上信号滤波效果对比')legend('期望信号','观测信号','滤波信号',4)s

17、ubplot(212)plot(Err_x,'k')title('x方向上滤波方差变化曲线')figuresubplot(211)plot(e_y,'k')hold onplot(m_y,'b')hold onplot(f_y,'r')title('y方向上信号滤波效果对比')legend('期望信号','观测信号','滤波信号',4)subplot(212)plot(Err_y,'k')title('y方向上滤波方差变化曲线&

18、#39;)function SE,x_f=fun_fplms_filter2(x0,xm,n,m)%this function conducts the adaptive filtering with fixed step lengthx_e=x0;x_m0=xm;N=n;M=m;x_f=x_m0; %order of filter and initial weight valuesw=zeros(1,M);SE=zeros(1,N);% fundmental LMS adptive filter Modern SP Zxd P183rxx=xcorr(x_m0)/N;Rxx=toeplitz

19、(rxx(N:end);mui_max=1/max(eig(Rxx);% trace(Rxx)% mui_max=1/trace(Rxx); %convergence conditionmui=0.6*mui_max; %initial step length% normallized LMS Modern SP Zxd P183% alpha=0.8;beta=2; % the iterative filter x_m=zeros(1,M) x_m0;for i=1:N u_in=x_m(M+i:-1:i+1); u_out=sum(u_in.*w); err=x_e(i)-u_out;%

20、mui=alpha/(beta+sum(u_in.2);% mui=0.06; w=w+mui*u_in*err; x_f(i)=u_out; se=x_e-x_f; SE(i)=sum(se.2)/N;endfunction SE,x_f=fun_cplms_filter2(x0,xm,n,m)%this function conducts the adaptive filtering with varing lengthx_e=x0; %parameter in function modex_m0=xm;N=n;M=m;x_f=x_m0; %order of filter and init

21、ial weight valuesw=zeros(1,M);SE=zeros(1,N);% fundmental LMS adptive filter Modern SP Zxd P183% rxx=xcorr(x_m0)/N;% Rxx=toeplitz(rxx(N:end);% mui_max=1/max(eig(Rxx);% % trace(Rxx)% % mui_max=1/trace(Rxx); %convergence condition% mui=0.6*mui_max; %initial step length% normallized LMS Modern SP Zxd P1

22、83% alpha=0.8;beta=2; alpha=-6.6;beta=0.18;a=2; %Sigmoid fucntion% the iterative filter x_m=zeros(1,M) x_m0;for i=1:N u_in=x_m(M+i:-1:i+1); u_out=sum(u_in.*w); err=x_e(i)-u_out; mui=beta*(1-exp(alpha*erra);% mui=alpha/(beta+sum(u_in.2); w=w+mui*u_in*err; x_f(i)=u_out; se=x_e-x_f; SE(i)=sum(se.2)/N;e

23、nd% x_f(M:M+3)=x_m(M:M+3);% to improve the initial steps of filter% Err=x_f-x_e;% Re=Err./x_e;% find(abs(Re)=max(abs(Re)% plot the filter outputsfigureplot(x_e,'k')hold onplot(x_m0,'b')hold onplot(x_f,'r')% legend('expected','measured','filtered')legend('期望信号','观测信号','滤波信号')% figure% plot(SE,'k')% title('自适应滤波方差变化曲线')function SE,x_f=fun_lms_filter_der2(x0,xm,n,m)%this function conducts the adaptive filtering using de-corellation methodN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论