📄 grade.m
字号:
clear all;clc
a1=1.558;a2=-0.81;
M=2;N=500;mu=0.005;b=0.001;
v=-1+2*rand(1,N+1);
for n=3:N+1 %--------------------------------------------------------------------------------输入信号波形
u(1)=-2;u(2)=-1.8;
u(n)=a1*u(n-1)+a2*u(n-2)+v(n);
end
n=3:N; %--------------------------------------------------------------------------------绘制输入信号波形
figure(1);
plot(n,u(n));
xlabel('n');ylabel('u(n)');
title('输入信号波形');
ef=zeros(M+1,N+1); %-------------------------------------------------------------------------------初始化
eb=zeros(M+1,N+1);
K=zeros(M+1,N+1);
d=zeros(M+1,N+1);
for n=3:N
u(n)=a1*u(n-1)+a2*u(n-2)+v(n);
ef(1,n)=u(n);
eb(1,n)=u(n);
for m=2:M+1 %------------------------------------------------------------------------------迭代计算
ef(m,n)=ef(m-1,n)+eb(m-1,n-1)*K(m,n-1);
eb(m,n)=eb(m-1,n-1)+ef(m-1,n)*K(m,n-1);
d(m,n)=(1-b)*d(m,n-1)+(ef(m,n))^2+(eb(m,n))^2;
K(m,n+1)=K(m,n)-(1/d(m,n))*(ef(m,n)*eb(m-1,n-1)+eb(m,n)*ef(m-1,n));
end
end
for n=1:N+1 %--------------------------------------------------------------------------------估计值的计算
a11(n)=-K(M,n)*(1+K(M+1,n));
a22(n)=-K(M+1,n);
end
n=1:N; %----------------------------------------------------------------------------------绘制估计值曲线图
figure(2);
plot(n,a11(n),n,a22(n),n,1.558,n,-0.81);
xlabel('n');ylabel('估计值a(n)');
title('格型随机梯度算法估计信号参数');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -