声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1362|回复: 4

[FFT] 从功率谱密度构造时间序列的问题?

[复制链接]
发表于 2009-5-26 17:22 | 显示全部楼层 |阅读模式

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

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

x
应该如何从功率谱密度构造时间序列?



我有一个信号a,使用spectrum.welch方法得到a的功率谱密度,

然后用此功率谱密度生成一个新的时域上的序列b(采用波叠加法),再次用spectrum.welch方法得到b的功率谱密度

前后两个功率谱密度按理说应该吻合才对,但是我得到的误差挺大,这是为什么?


是不是波叠加法的问题?有没有更好的生成时间序列的方法?
回复
分享到:

使用道具 举报

发表于 2009-5-26 20:29 | 显示全部楼层
“波叠加法”是否指overadd?又LZ把程序贴出可能更方便一些。
 楼主| 发表于 2009-5-28 22:18 | 显示全部楼层

回复 沙发 songzy41 的帖子

如下的一段程序,其中pr是spectrum.welch计算出来的功率谱密度
Fs=2000;
a=sin(2*pi*50*(1:1000)/Fs);
h = spectrum.welch;
Hpsd = psd(h,a(500:1000),'Fs',Fs,'NFFT',512);
pr=10*log10(Hpsd.data);

以下是波叠加法,功率谱密度生成时间序列的程序
NFFT=512;
t=(1:1000)/Fs;
num=length(t);
NN=length(pr);
deta=1000/(NFFT/2);
omega=deta*(0:NFFT/2);
theta=2*pi*rand(1,NN);
for j=1:num
    for i=1:NN
        ff(i)=sqrt(2*pr(i)*deta)*cos(2*pi*omega(i)*t(j)-theta(i));
    end
    f(j)=sum(ff);
end

f就是生成的时间序列

请指教

[ 本帖最后由 yametw 于 2009-5-28 22:21 编辑 ]
发表于 2009-5-29 09:44 | 显示全部楼层
在程序中LZ求了对数频谱:
pr=10*log10(Hpsd.data);
而在波叠加法中应用线性频谱,而不应用对数频谱值。

评分

1

查看全部评分

 楼主| 发表于 2009-6-3 18:36 | 显示全部楼层
非常感谢,确实是这样的
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-26 08:58 , Processed in 0.052663 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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