本文主要是介绍matlab实现周期图法,周期图法功率谱估计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
程序以及仿真图如下:
clear
clc
fs=1024; %采样频率fs
m=0:(fs-1);
n=0:(1/fs)*2*pi:(1-1/fs)*2*pi;
nn=0:1/fs:(1-1/fs);
xn0=sqrt(20)*sin(2*pi*0.2*m)+sqrt(2)*sin(2*pi*0.213*m);
xn=awgn(xn0,0); %产生含有噪声的序列xn
%直接法
fxw=zeros(1,fs);
fxww=zeros(1,fs);
fxww(1)=xn(1);
for i=1:fs
for
k=2:fs
fxww(k)=fxww(k-1)+xn(k)*exp(-j*k*n(i));
end;
fxw(i)=fxww(fs);
end;
pxw11=(abs(fxw).^2)/fs;
%图一:直接法
figure(1)
%pxw12=10*log(10*(pxw11));
plot(nn,pxw11,'r')
grid on
title('直接法功率谱估计')
%间接法
rxk=xcorr(xn,'unbiased');%计算序列的自相关函数
pxw21=fft(rxk,fs);
index=0:round(fs/2-1);
pxw22=abs(pxw21);
%pxw23=10*log(10*(pxw22));
%图二:间接法
figure(2)
plot(nn,pxw22,'r');
grid on
title('间接法功率谱估计')
%加窗函数法
window=hamming(length(xn));%海明窗
pxw31=abs(fft(xn.*window'));
%pxw32=10*log(10*(pxw31));
%图三:加窗函数法
figure(3)
plot(nn,pxw31,'r');
grid on
title('加窗函数法功率谱估计')
这篇关于matlab实现周期图法,周期图法功率谱估计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!