RLS 算法
clear
N=1000;Fs=500;
n=0:N-1;t=n/Fs;
xs=( sin(2*pi*5*t))';
figure(1);
subplot(211);
plot(t,xs);grid;
ylabel('fuzhi');
title('\it{输入周期性信号}');
xn=( 0.6*randn(1,length(t)))';
subplot(212);
plot(t,xn);grid;
ylabel('幅度');
xlabel('时间');
title('\it{随机噪声信号}');
d=xs;
x=xs+xn;
N=10;
w=(zeros(1,N))';
M=length(x);
p=0.1*eye(N,N);
a=0.1;
y=(zeros(1,M))';
e=(zeros(1,M))';
sum1=zeros(N,N);
sum2=zeros(N,1);
for n=N:M
x1=x(n:-1:n-N+1);
juzhen=x1*x1';
k=((1/a)*p*x1)/(1+(1/a)*x1'*p*x1);
e(n)=d(n)-w'*x1;
w=w+k*conj(e(n));
p=(1/a)*p-(1/a)*k*x1'*p;
y(n)=w'*x1;
end
figure(2);
plot(y);grid;
title('\it{自适应滤波器输出信号}')
figure(3);
plot(e);grid;
title('\it{误差}')