⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lmsrls.m

📁 这个文件主要介绍了LMS和RLS的一些基本的滤波功能
💻 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 + -