功率谱估计,功率谱估计有三种,一是非参数方法包含周期图法,welch法,MTM法,二是参数方法,子空间法等,matlab中对应的函数如下:
spectrum.periodogram,periodogram用于周期图法,
spectrum.welch,pwelch,cpsd,tfesitamate,mscohere函数表示平均周期图法
Spectrum.yulear,pyulear函数表示以自相关分析为基础的AR方法(Yule-Walker法)
Spectrum.burg,pburg函数表示以线性预测为基础的AR方法(Burg法)
Spectrum.cov,pcov函数表示以最小前向预测误差为基础的AR方法(协方差法)
示例:使用不同的非参数方法对同一个信号进行功率谱分析
编写对应的m文件:
Fs=6000;
T=1/Fs;
L=1000;
t=T*(0:L-1);
f1=100;
f2=200;
y=2*sin(2*pi*f1*t)+2*sin(2*pi*f2*t);
subplot(2,3,1)
plot(t(1:200),y(1:200),’r’);
title(‘时域波形图’);
xlabel(‘时间/s’);
ylabel(‘幅值’);
a1=spectrum.periodogram;%%周期图法%%
subplot(2,3,2)
psd(a1,y,’Fs’,Fs,’NFFT’,1024);
title(‘周期图法’);
subplot(2,3,3)
a2=spectrum.periodogram(‘Hamming’);%%加汉宁窗周期图法%%
psd(a2,y,’Fs’,Fs,’NFFT’,1024);
title(‘加汉宁窗周期图法’);
a3=spectrum.periodogram(‘rectangular’);%%加矩形窗周期图法%%
subplot(2,3,4)
psd(a3,y,’Fs’,Fs,’NFFT’,1024);
title(‘加矩形窗周期图法’);
a4=spectrum.welch(‘rectangular’,80,30);%%加矩形窗1平均周期法%%
subplot(2,3,5)
psd(a4,y,’Fs’,Fs,’NFFT’,1024);
title(‘加矩形窗1平均周期法’);
a5=spectrum.welch(‘rectangular’,70,50);%%加矩形窗2的平均周期法%%
subplot(2,3,6)
psd(a5,y,’Fs’,Fs,’NFFT’,1024);
title(‘加矩形窗2平均周期法’);
程序运行结果如下图: