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

资源简介

基于MATLAb的LMS算法,通过求相关矩阵,特征值分解,画出相应的学习曲线

资源截图

代码片段和文件信息

%---------------LMS法------------------%
clc;
clear all;
close all;
%% 参数设置
t=0:1:255;
DataLen=length(t);%数据长度
sigma=0.2;%噪声方差
order=50;%滤波器阶数  
f=0.05;%正弦信号频率
%% 开始
SinData=sin(2*pi*f*t);%产生正弦信号
Data=SinData+sigma*randn(1DataLen);%加入噪声
d=SinData;
%----------自相关矩阵  
R=zeros(orderorder);
for ii=1:order
    for jj=ii:1:DataLen
        R(1ii)=R(1ii)+Data(1jj)*Data(1jj-ii+1);
    end 
    R(1ii)=R(1ii)/(DataLen-ii+1);
end  
for ii=2:order  
    for jj=2:order  
        R(iijj)=R(ii-1jj-1);  
    end  
end  
R_T=R‘;  
for ii=1:order  
    R_T(iiii)=0;  
end  
R=R+R_T;  
inv_R=inv(R);
%----------求最大特征值
[u s v]=svd(R);
lamda_max=s(11);
miu=1/lamda_max-0.05;
%----------输出数据及误差
W=zeros(order1);
y=zeros(1DataLen);
for ii=order:DataLen
    xn=Data(ii:-1:ii-order+1);
    y(ii

评论

共有 条评论