📄 lmsrls.m
字号:
function lmsrls();
clear
samples_per_period=40;%周期采样频率
N=10*samples_per_period-1;%总采样次数
signal(1)=2;
for i=2:N
signal(i)=signal(i-1);
end
%signal=sin(2*pi*0.02*[0:N-1]);%初始输入信号
figure;%作图1的第一子图
subplot(2,1,1);
plot(signal);
grid;
title('不含噪声信号');
nvar=1;%噪声方差
noise1=nvar*randn(1,N);%噪声信号
noise2=nvar*randn(1,N);
X1=signal+noise1;%带加性噪声的输入信号
X2=signal+noise2;%带加性噪声的输入信号
M=32;%滤波器长度
mu=0.0035;%迭代步长
subplot(2,1,2);%作图1的第二子图
plot(X1);
grid;
title('自适应滤波器含噪声输入');
initial_status=initlms(zeros(1,M),mu);%滤波器设初值
[Y,e,initial_status]=adaptlms(X1,signal,initial_status);%LMS自适应滤波器输出
%b = fir1(31,0.5); % FIR system to tbe identified
%Y1 = filter(b,1,X2); % Desired signal
c1=initial_status.coeffs;
Y1=filter(c1,1,X2);
figure;%作图2的第一子图
subplot(2,1,1);
plot(1:N,Y,'b',1:N,signal,'k',1:N,Y1,'r');
grid;
title('lms预测信号与实际信号的比较');
%legend('预测信号,实际
error=signal-Y;%输出误差信号
subplot(2,1,2);%作图2的第二子图
plot(error);
grid;
title('lms自适应滤波器的预测误差');
w0 = zeros(1,32); % Initial filter coefficients
P0 = 5*eye(32); % Initial input correlation matrix inverse
lam = 0.95; % Exponential memory weighting factor
S = initrls(w0,P0,lam);
[y2,e2,S2] = adaptrls(X1,signal,S);
% b = fir1(31,0.5); % FIR system to tbe identified
% Y2 = filter(b,1,X2); % Desired signal
c2=S2.coeffs;
Y2=filter(c2,1,X2) ;
figure;%作图2的第一子图
subplot(2,1,1);
plot(1:N,y2,'b',1:N,signal,'k',1:N,Y2,'r');
grid;
title('rls预测信号与实际信号的比较');
%legend('预测信号,实际信号');
error=signal-y2;%输出误差信号
subplot(2,1,2);%作图2的第二子图
plot(error);
grid;
title('rls自适应滤波器的预测误差');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -