matlab 实现功率谱密度分析 psd 及详细解说
功率谱密度幅值的具体含义??
求信号功率谱时候用下面的不同方法,功率谱密度的幅值大小相差很大!
我的问题是,计算具体信号时,到底应该以什么准则决定该选用什么方法啊?
功率谱密度的幅植的具体意义是什么??下面是一些不同方法计算同一信号的 matlab 程
序!欢迎大家给点建议!
直接法:
直接法又称周期图法,它是把随机序列 x(n)的 N 个观测数据视为一能量有限的序列,直接
计算 x(n)的离散傅立叶变换,得 X(k),然后再取其幅值的平方,并除以 N,作为序列 x(n)真
实功率谱的估计。
Matlab 代码示例:
clear;
Fs=1000; %采样频率
n=0:1/Fs:1;
%产生含有噪声的序列
xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));
window=boxcar(length(xn)); %矩形窗
nfft=1024;
[Pxx,f]=periodogram(xn,window,nfft,Fs); %直接法
plot(f,10*log10(Pxx));
间接法:
间接法先由序列 x(n)估计出自相关函数 R(n),然后对 R(n)进行傅立叶变换,便得到 x(n)的功
率谱估计。
Matlab 代码示例:
clear;
Fs=1000; %采样频率
n=0:1/Fs:1;
%产生含有噪声的序列
xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));
nfft=1024;
cxn=xcorr(xn,'unbiased'); %计算序列的自相关函数
CXk=fft(cxn,nfft);
Pxx=abs(CXk);