heaventian 发表于 2010-8-30 16:34

请教matlab中求功率谱的Bartlett方法

matlab中,用Bartlett方法求功率谱,将数据分为互不重叠的几段。比如原始数据包含N=1024,如果窗口采用n_window=N/8,是否求功率谱后,只有N/8个频率的功率谱值?
为何我下面的程序,每次结果都是513个数据结果?

程序:
clear
figure
N=1024;
n=0:1:N-1;
n=n/1000;
f1=0.1*100;
f2=0.9*100;
wn=randn(1,N);
xn=sin(2*pi*f1*n)+2*cos(2*pi*f2*n)+wn;
subplot(2,1,1),plot(n,xn)
grid

window=boxcar(N/8);
=psd(xn,1024,1000,window,0,0.9);
Pxx1=10*log10(Pxx);
subplot(2,1,2),plot(f,Pxx1)
grid

clarissa 发表于 2010-8-30 18:05

psd(xn,1024,1000,window,0,0.9);命令行中1024设定了FFT变换值,即有1024个频率点,求功率谱时只取对称的一半加上原点,就是1024/2+1=513个数据点。
要按窗函数定义的长度作FFT,只需将该值设为默认[ ],即psd(xn,[ ],1000,window,0,0.9);,结果就是N/8+1=129个数据结果了。

heaventian 发表于 2010-9-1 19:34

回复 clarissa 的帖子


呃,谢谢。这样的话,求功率谱过程是不是这样的?
1。將採樣數據分為互補重疊的幾段。
2. 对每段窗口補零到1024个数据,然後做富士变换
3。求各段功率谱时,在球平均

清晨露珠 发表于 2013-1-22 15:10

您好!看了您的帖子,对我很有帮助!麻烦楼主推荐下参考书,关于matlab绘制功率谱的内容!谢谢您!

heaventian 发表于 2013-11-15 06:29

清晨露珠 发表于 2013-1-22 15:10 static/image/common/back.gif
您好!看了您的帖子,对我很有帮助!麻烦楼主推荐下参考书,关于matlab绘制功率谱的内容!谢谢您!

谢谢留言。
我觉得在这方面可以多看下网上相关的内容。我并不太清楚是否有比较好的相关纸质书籍。
页: [1]
查看完整版本: 请教matlab中求功率谱的Bartlett方法