📄 rls_adaptivefilter.m
字号:
clear;
N=500;
A=randn(1,N);
x=zeros(1,N);
y=zeros(1,N);
e=zeros(1,N);
x(1)=A(1);
x(2)=A(2)+1.6*A(1);
for i=3:N
x(i)=A(i)+1.6*x(i-1)-0.8*x(i-2); %求出输入x(n)
end
d=x; %期望响应d(n)=x(n)
w=zeros(2,N); %权矢量w(n)初始化
lambda=1; %遗忘因子lambda
delta=10; %T(-1)=10
T=delta*eye(2,2)
for n=3:N %RLS算法
xl=x(n-1:-1:n-2);
pi=xl*T;
k=lambda+pi*xl'
K=pi'/k;
e1(n)=d(n)-w(:,n-1)'*xl';
w(:,n)=w(:,n-1)+K*e1(n);
pp=K*pi;
T=(T-pp)/lambda;
y(n)=w(:,n)'*xl';
e(n)=d(n)-y(n);
end
%画出RLS算法权矢量过渡过程的图形
a1=-w(1,:);
a2=-w(2,:);
plot(a1,'r');
hold on;
plot(a2);
legend('a1(n)','a2(n)');
for j=1:N
c(j)=-1.6;
d(j)=0.8;
end
plot(c,'r:');
plot(d,'k:');
title('RLS算法自适应系数a1(n)和a2(n)的过渡过程');
hold off;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -