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

📄 1.误差和误差平方曲线.m

📁 自适应滤波器LMS算法的误差曲线和误差平方曲线
💻 M
字号:
S=sqrt(0.05)*randn(1000,1);     %产生一个白噪声序列S(n)
H=[3; -4];                      %初始滤波器系数H(0)
T=[0 0];
T2=[0 0];
e=0;
e2=0;
for n=0:1:300                   %LMS迭代
    y=sin(pi/8*(n+1)+pi/10)+S(n+1,:);
                                %计算每步参考信号y(n+1)
    e=y-H'*[sqrt(2)*sin(pi/8*(n+1)); sqrt(2)*sin(pi/8*n)];
                                %计算每步误差e(n+1)
    e2=e^2;                     %计算每步J(n+1)=e^2(n+1)
    H=H+0.4*e*[sqrt(2)*sin(pi/8*(n+1)); sqrt(2)*sin(pi/8*n)];
                                %计算每步滤波器系数H(n+1)
    T=[T; [n+1,e]];
    T2=[T2; [n+1,e2]];
end

%绘制e(n)波形
figure(1);
hold on;
axis([0,300,-2,2]);
T=T';
plot(T(1,:),T(2,:));

%绘制J(n)=e^2(n)随时间n的变化曲线
figure(2);
hold on;
axis([0,300,0,4]);
T2=T2';
plot(T2(1,:),T2(2,:));

%绘制J(n)=e^2(n)取100次实验结果平均值的变化曲线
figure(3);
hold on;
axis([0,300,0,4]);
A=[1:301; linspace(0,0,301)];
A=A';
for i=0:99                      %100次LMS迭代实验
    S=sqrt(0.05)*randn(1000,1);
    H=[3; -4];
    T=[0 0];
    T2=[0 0];
    e=0;
    e2=0;
    for n=0:1:300
        y=sin(pi/8*(n+1)+pi/10)+S(n+1,:);
        e=y-H'*[sqrt(2)*sin(pi/8*(n+1)); sqrt(2)*sin(pi/8*n)];
        e2=e^2;
        H=H+0.4*e*[sqrt(2)*sin(pi/8*(n+1)); sqrt(2)*sin(pi/8*n)];
        A(n+1,:)=A(n+1,:)+[0,e2]/100;
                                %所有J(n)实验结果取平均值
    end
end
A=A';
plot(A(1,:),A(2,:));            %绘制J(n)平均值的变化曲线

  
    
    
    
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -