RLS递归最小二乘
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二:实现自适应的递归最小二乘法(RLS)
一、实验目的
利用matlab实现自适应的递归最小二乘法(RLS)
二、实验过程
首先掌握RLS算法原理;然后利用matlab实现;最后得出结果;
三、实验程序
%RLS算法
randn(‘seed’,0):%seed相当于知名了产生随机数的一个起始点
rand(‘seed’,0);
NoOfData=8000;%设定训练数列点的个数
Order=32;%设置自适应滤波器
Lambda=0.98;%设置遗忘因子
Delta=0.001;%对于Delta的初始化
x=randn(NoOfData,1);%假设输入为白噪声
h=rand(Order,1);%系统随机选择
d=filter(h,1,x);%产生输出
%RLS初始化
P=Delta*eye(Order,Order);
w=zeros(Order,1);
%RLS自适应
for n=Order:NoOfData;
u=x(n:-1:n-Order+1);
pi_=u’*P;
k=lambda+pi_*u;
K=pi_’/k;
e(n)=d(n)-w’*u;
w=w+K*e(n);
PPrime=K*pi_;
P=(P-PPrime)/Lambda;
w_err(n)=norm(h-w);
end
%画出结果
figure(1)
plot(20*log10(abs(e)));
title(‘Learning Curve’);
xlabel(‘Itergation Number’);%迭代次数
ylabel(‘Output Estimation Error in dB’);
figure(2)
semilogy(w_err);
title(‘Weight Estimation Error’); xlabel(‘Itergation Number’); ylabel(‘Weight Error in dB’); 四、实验结果。