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

📄 zishiyingyi.m

📁 自适应一个算法的性能曲面等高线与权值轨迹
💻 M
字号:
close all
clear;
M=2;N=250;T=16;%滤波器阶数,迭代次数,信号周期
mu=0.1;%收敛因子
u=zeros(1,N);
d=zeros(1,N);
for i=1:N
    u(i)=sin(2*pi*i/T);%信号输入向量
    d(i)=2*cos(2*pi*i/T);%期望响应 
end
randn('state',10);%产生随机信号
r=0.087*(randn(1,N)-0.1069);
x=u+r;%抽头输入向量,相当于加噪的信号
Ed=(d*d')/N;
R=zeros(M,M);
R(1,1)=mean(x.*x);
R(2,2)=R(1,1);%输入向量的相关矩阵
R(1,2)=(x(1,1).*x(1,N)+x(2:N)*x(1:N-1)')/N;
R(2,1)=R(1,2);
P=zeros(1,M);
P(1,1)=(d*x')/N;
P(1,2)=(d(2:N)*x(1:N-1)'+d(1,1)*x(1,N))/N;%输入向量与期望相应的相关矩阵
[X,Y]=meshgrid([-2:0.2:8],[-10:0.2:0]);
J=R(1,1).*(X.^2+Y.^2)+X.*Y*R(1,2).*2-2.*P(1,2).*Y+Ed;%误差函数
figure(1)
mesh(X,Y,J)%误差性能曲面图
[p1 p2]=min(min(J));
[p3 p4]=min(J(:,p2));
h1=X(1,p2);
h2=Y(p4,1);
text(h1,-10,0,'\leftarrowWo0','fontsize',10);
text(-2,h2,0,'\leftarrowWo0','fontsize',10);
title('性能曲面(其中Wo0和Wo1为最有权向量)')

figure (2)
[C,h]=contour(X,Y,J,10);%等高线图
title('性能曲面等高线与权值轨迹')
xlabel('w0');ylabel('w1')

%第一种情况下的迭代
wn=zeros(M,N);wn(:,1)=[0,0]';
for k=M:N
    u_tap=x(k:-1:k-M+1);
    en(k)=d(k)-wn(:,k-1)'*u_tap';
    wn(:,k)=wn(:,k-1)+2*mu*en(1,k)*u_tap';
end

%第2种情况下的迭代
N1=500;mu1=0.05;
u1=zeros(1,N);
d1=zeros(1,N);
for i=1:N1
    u1(i)=sin(2*pi*i/T);
    d1(i)=2*cos(2*pi*i/T);
end
randn('state',10);
r1=0.0911*(randn(1,N1)-0.0438);
y=u1+r1;%抽头输入向量,相当于加噪的信号

wn1=zeros(M,N1);wn1(:,1)=[4,-10]';
for k=M:N1
    u1_tap=y(k:-1:k-M+1);
    en1(k)=d1(k)-wn1(:,k-1)'*u1_tap';
    wn1(:,k)=wn1(:,k-1)+2*mu1*en1(1,k)*u1_tap';
end
hold on
plot(wn(1,:),wn(2,:),wn1(1,:),wn1(2,:))%权值轨迹
xlabel('w0');ylabel('w1')
figure (3);
p=0:N-1;
plot(p,en);
title('误差与迭代次数(250次)的关系,收敛因子0.1')
xlabel('n');ylabel('e(n)')
figure (4);
p=0:N1-1;
plot(p,en1);
title('误差与迭代次数(500次)的关系,收敛因子0.05')
xlabel('n');ylabel('e(n)')








⌨️ 快捷键说明

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