资源描述
RLS自适应算法分析及仿真RLS 自适应算法是为了设计自适应的横向滤波器把最小二乘法推广为一种自适应算法。 使得在已知n-1时刻横向滤波器抽头系数的情况吓,能够通过简单的更新,求出n时刻的滤 波器抽头权系数。这样一种自适应的最小二乘法称为递推最小二乘法,简称RLS算法。RLS 自适应算法使用的确定性线性回归模型Kalman滤波算法的一种特殊的无激励的状态空间模 型。一、RLS算法步骤:步骤一:初始化:w(0)二0,P(0) =5-11,其中8是一个很小的值。步骤二: 更新:n=1,2,e(n) = d(n)- wH(n-1)u(n)k(n)=P(n 1)u(n)九 + uH(n) P(n 1)u (n)1P (n) = P(n 一 1) 一 k (n)uH(n) P (n 一 1)九w(n)二 w(n 1) + k(n)e*(n)其中,P(0) = R-i(0) =5-iI, 5是一个很小的正数。从上图可以看出 RLS 滤波的跟踪性能是比较好的,滤波器的输入与输出在初始值之 后几乎重合。由于RLS存在自适应更新过程,因此其效果比LMS更好。由下图可以看出, 其RLS算法误差是具有收敛性的,收敛结果与密切相关,5在取值为1的时候严重影响 RLS 算法的收敛速度及结果。三、仿真程序:clear allclcM=5;%权系数个数 N=100;%数据点数 n=1:N;wn=0.36*randn(1,N); vn=randn(1,N);d(1)=0;for n=2:Nd(n)=0.8*d(n-1)+wn(n); %期望响应enduu=d+vn; w=zeros(M,1);P=0.05*eye(M,M);q=0.1; %for n=M:N;u=uu(n:-1:n-M+1) ;e(n)=d(n)-w*u;k=P*u*inv(q+u*P*u);P=(1/q)*(P-k*u*P);w=w+k*e(n);out(n)=w*u;end % subplot(211)t=1:N;hold on;plot(d(t);hold on;plot(out(t),r);grid onlegend(滤波器输入,滤波器输出)subplot(212) semilogy(abs(out-d);title(误差值)
展开阅读全文