📄 dsp12.m
字号:
p=input('请输入AR模型的阶数p=');
a=zeros(1,p);
for i = 1:p, %根据所输入的阶数输入参数
teStr=sprintf('请输入AR模型的参数a%d=',i);
a(i)=input(teStr);
end
deltaW=input('请输入白噪声方差:');
L=input('请输入信号s(n)样本个数L:');
w=sqrt(deltaW)*randn(1,L); %产生方差为deltaW的高斯白噪声
s=zeros(1,L);
s(1)=w(1); %根据式1-20生成s(n)
for i = 1:L,
te=0;
for m = 1:p,
if i-m>0, %凡是n-m<=0的一律s(n-m)=0
te=te+a(m)*s(i-m);
end
end
s(i)=w(i)-te;
end
Rss = zeros(p+1,p+1); %Rss为s(n)的自相关
for i = 1:p+1, %i为行数
for j = 1:p+1, %j为列数
teR=0;
te=abs(i-j); %括号中的值是行数减去列数
for k = 1:L-te, %由式1-18得到Rss
teR=teR+s(k)*s(k+te);
end
teR=teR/(L-te);
Rss(i,j)=teR; %赋值给Rss
end
end
A=zeros(p+1,1);
epsilon=zeros(p+1,1);
epsilon(1)=1;
for i=2:(p+1),
epsilon(i)=0;
end
A=Rss^(-1)*deltaW*epsilon; %由式1-21可得到
for i = 1:p,
sprintf('估计的a%d=%f\n',i,A(i+1))
end
deltaW_e=Rss(1,1);
for i = 1:p,
deltaW_e=deltaW_e+a(i)*Rss(1,i+1);
end
sprintf('估计的deltaW_e=%f',deltaW_e)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -