• 大小: 2KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-07
  • 语言: Matlab
  • 标签: RLS  LMS  MATLAB  

资源简介

基于RLS和LMS的自适应滤波器的MATLAB代码,带有中文注释

资源截图

代码片段和文件信息

%lms 算法  
clear all  
close all  
hold off%系统信道权数  
sysorder = 5 ;%抽头数  
N=1000;%总采样次数  
inp = randn(N1);%产生高斯随机系列  
n = randn(N1);  
[ba] = butter(20.25);  
Gz = tf(ba-1);%逆变换函数  
h= [0.0976;0.2873;0.3360;0.2210;0.0964;];%信道特性向量  
y = lsim(Gzinp);%加入噪声  
n = n * std(y)/(10*std(n));%噪声信号  
d = y + n;%期望输出信号  
totallength=size(d1);%步长  
N=60 ; %60节点作为训练序列  
%算法的开始  
w = zeros ( sysorder  1 ) ;%初始化 
for n = sysorder : N  
u = inp(n:-1:n-sysorder+1) ;% u的矩阵  
y(n)= w‘ * u;%系统输出  
e(n) = d(n) - y(n) ;%误差  
if n < 20  
mu=0.32;  
else  
mu=0.15;  
end  
w = w + mu * u * e(n) ;%迭代方程  
end  
%检验结果  
for n = N+1 : totallength  
u = inp(n:-1:n-sysorder+1) ;  
y(n) = w‘ * u ;  
e(n) = d(n) - y(n) ;%误差  
end  
hold on  
plot(d)  
plot(y‘r‘);  
title(‘系统输出‘) ;  
xlabel(‘样本‘)  
ylabel(‘实际输出‘)  
figure  
semilogy((abs(e))) ;% e的绝对值坐标  
title(‘误差曲线‘) ;  
xlabel(‘样本‘)  
ylabel(‘误差矢量‘)  
figure%作图  
plot(h ‘k+‘)  
hold on  
plot(w ‘r*‘)  
legend(‘实际权矢量‘‘估计权矢量‘)  
title(‘比较实际和估计权矢量‘) ;  
axis([0 6 0.05 0.35])  
 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1068  2017-04-17 16:44  rls.m
     文件        1210  2017-04-17 16:46  lsm.m

评论

共有 条评论