📄 p116.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 + -