一道用Levinson-Durbin迭代法计算AR模型的系数并估计信号功率谱的题,下面是写的程序:
N=256; %信号观测样本长度
Nf=1024;
p=16; %AR模型阶数
noise=(randn(1,N)+j*randn(1,N))/sqrt(2);
%产生三个复正弦信号
f1=0.15;
f2=0.17; %信号归一化频率
f3=0.26;
SNR1=30;
SNR2=30; %信号的信噪比
SNR3=27;
A1=10^(SNR1/20);
A2=10^(SNR2/20); %信号的幅度(电压)
A3=10^(SNR3/20);
signal1=A1*exp(j*2*pi*f1*(0:N-1));
signal2=A2*exp(j*2*pi*f2*(0:N-1)); %生成复正弦信号
signal3=A3*exp(j*2*pi*f3*(0:N-1));
un=signal1+signal2+signal3+noise; %生成观察样本u(n)
r0=xcorr(un,p,'biased'); %直接计算自相关函数
r=r0(p+1:2*p+1); %提取r(0),r(1),...,r(p)
%计算一阶AR模型的系数与输入方差
a(1,1)=-r(2)/r(1); %1阶AR