資源簡介
用最小二乘法對頻譜進行估計,算是現代信號處理中的一種方法!也是MATLAB程序,很完整,沒有錯誤!
代碼片段和文件信息
close?all;
clear?all;
N=512;
m=1:N;
xn=sqrt(20)*sin(2*pi*0.2*m)+sqrt(2)*sin(2*pi*0.213*m)+randn(1N);?%產生含有噪聲的序列xn
Rx=xcorr(xn);
q=200;
%以下p1、p2分別是AR的階數
p1=4;
p2=100;
%p1=4時:
p=p1;
R=zeros(pp);
r=zeros(1p);
for?i=1:p
????for?j=1:p
????????R(ij)=R(ij)+Rx(1N+q-p+i+j-1);
????end
end
for?m=1:p
????r(m)=Rx(1N+q+m);
end
A=-(inv(R‘*R))*R‘*r‘;
A(p+1)=1;
figure(1)
[H1w1]=freqz(1A);
f1=w1/(2*pi);%歸一化
figure(1)
plot(f1
評論
共有 條評論