原文地址:matlab中[Pxx,f] = periodogram(x,window,nfft,fs)作者:海上冲浪手
http://zhidao.baidu.com/question/403225309.html
matlab中[Pxx,f] = periodogram(x,window,nfft,fs)
periodogram是用来计算功率谱密度的,参数中,
X:所求功率谱密度的信号;
window:所使用的窗口,默认是boxcar,其长度必须与x的长度一致;
nfft:采样点数;
fs:采样频率。
例如:
Fs=1000;
n=0:1/Fs:1;
x=cos(2pi40n)+3cos(2pi100*n)+randn(size(n));
nfft=1024;
window=boxcar(length(n));
[Pxx,f]=periodogram(x,window,nfft,Fs);
P=10*log10(Pxx);
plot(f,P);
hold on;
Pxx_1=abs(fft(x,nfft)).^2/length(n);
t=0:round(nfft/2-1);
f=t*Fs/nfft;
P_1=10*log10(Pxx_1(t+1));
plot(f,P_1,‘r’);
legend(‘periodogram’,‘公式’);
title(‘周期图法功率谱估计’);
[转载]matlab中[Pxx,f] = periodogram(x,window,nfft,fs)
matlab中[Pxx,f] = periodogram(x,window,nfft,fs)
periodogram是用来计算功率谱密度的,参数中,
X:所求功率谱密度的信号;
window:所使用的窗口,默认是boxcar,其长度必须与x的长度一致;
nfft:采样点数;
fs:采样频率。
例如:
Fs=1000;
n=0:1/Fs:1;
x=cos(2pi40n)+3cos(2pi100*n)+randn(size(n));
nfft=1024;
window=boxcar(length(n));
[Pxx,f]=periodogram(x,window,nfft,Fs);
P=10*log10(Pxx);
plot(f,P);
hold on;
Pxx_1=abs(fft(x,nfft)).^2/length(n);
t=0:round(nfft/2-1);
f=t*Fs/nfft;
P_1=10*log10(Pxx_1(t+1));
plot(f,P_1,‘r’);
legend(‘periodogram’,‘公式’);
title(‘周期图法功率谱估计’);