[转载]matlab中[Pxx,f] = periodogram(x,window,nfft,fs)

原文地址: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(‘周期图法功率谱估计’);

  • 2
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值