声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2422|回复: 4

[其他] 请教matlab中求功率谱的Bartlett方法

[复制链接]
发表于 2010-8-30 16:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
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);
[Pxx,Pxxc,f]=psd(xn,1024,1000,window,0,0.9);
Pxx1=10*log10(Pxx);
subplot(2,1,2),plot(f,Pxx1)
grid
回复
分享到:

使用道具 举报

发表于 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个数据结果了。
 楼主| 发表于 2010-9-1 19:34 | 显示全部楼层
回复 clarissa 的帖子


呃,谢谢。这样的话,求功率谱过程是不是这样的?
1。將採樣數據分為互補重疊的幾段。
2. 对每段窗口補零到1024个数据,然後做富士变换
3。求各段功率谱时,在球平均
发表于 2013-1-22 15:10 | 显示全部楼层
您好!看了您的帖子,对我很有帮助!麻烦楼主推荐下参考书,关于matlab绘制功率谱的内容!谢谢您!
 楼主| 发表于 2013-11-15 06:29 | 显示全部楼层

谢谢留言。
我觉得在这方面可以多看下网上相关的内容。我并不太清楚是否有比较好的相关纸质书籍。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-20 01:42 , Processed in 0.086539 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表