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

📄 p116.m

📁 自适应算法中的LMS算法的例子
💻 M
字号:
clear all
clc
%----------------SER算法与LMS算法的比较--------------------------------%


%----------------SER算法-q0=10-----------------------------------------%

N=16;
m=0.01;
M=100;
k=0:M;
x=sin(2*pi*k/N)+sqrt(m)*randn(1,M+1);
d=2*cos(2*pi*k/N);
q0=10;
alpha=0.93;
I=eye(2);
Q=q0*I;
W=[6,-9]';
u=0.05;
p=0.51;
for k=2:M
    S=Q*x(k:-1:k-1)';
    r=alpha+x(k:-1:k-1)*S;
    Q=(1/alpha)*(Q-(1/r)*S*S');
    y=x(k:-1:k-1)*W;
    e=d(k)-y;
    W=W+2*u*p*(1-alpha^(k+1))*Q*e*x(k:-1:k-1)'/(1-alpha);
    t0(k-1)=W(1);
    t1(k-1)=W(2);
end
k=1:M;
plot(t0,t1,'g');
hold on
%----------------------SER算法-q0=1---------------------------------%
 M=100;
 k=0:M;
 x=sin(2*pi*k/N)+sqrt(m)*randn(1,M+1);
 d=2*cos(2*pi*k/N);
 q0=10;
 alpha=0.93;
 I=eye(2);
 Q=q0*I;
 W=[6,-9]';
 u=0.05;
 p=0.51;
 for k=2:M
     S=Q*x(k:-1:k-1)';
     r=alpha+x(k:-1:k-1)*S;
     Q=(1/alpha)*(Q-(1/r)*S*S');
     y=x(k:-1:k-1)*W;
     e=d(k)-y;
     W=W+2*u*p*(1-alpha^(k+1))*Q*e*x(k:-1:k-1)'/(1-alpha);
     t0(k-1)=W(1);
     t1(k-1)=W(2);
 end
 k=1:M;
 plot(t0,t1,'r');
 hold on
% %------------------LMS 算法----------------------------------------%
 M=100;
 u=0.05;
 W=[6,-9]';
 r0(1)=W(1);r1(1)=W(2);
 k=0:M;
x=sin(2*pi*k/N)+sqrt(m)*randn(1,M+1);
 d=2*cos(2*pi*k/N);
 for k=2:1:M+1                                                            %迭代次数循环
     y=x(k:-1:k-1)*W;
     e=d(k)-y;
     W=W+2*u*e*x(k:-1:k-1)';
     r0(k)=W(1);
     r1(k)=W(2);
 end
plot(r0,r1);
 hold on
legend('SER q0=10','SER q0=1','LMS');
 title('SER算法与LMS算法的比较');
 xlabel('w0');ylabel('w1');
%-----------------等高线----------------------------------------------%
N=16 ;                                                                   %定义x(k)的抽样频率
m=0.01;                                                                  %定义随机信号的功率
[w0,w1]=meshgrid(-2:.1:8,0:-.1:-10) ;                                   %定义权向量和坐标轴
q=(0.5+m)*(w0.^2+w1.^2)+w0.*w1.*cos(2*pi/N)+2*w1.*sin(2*pi/N)+2;
contour(w0,w1,q,[37.0,23.8,13.6,6.3,1.9,0.78,0.49,0.40]);

xlabel('w0');ylabel('w1');
hold on

⌨️ 快捷键说明

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