yametw 发表于 2009-5-26 17:22

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

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



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

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

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


是不是波叠加法的问题?有没有更好的生成时间序列的方法?

songzy41 发表于 2009-5-26 20:29

“波叠加法”是否指overadd?又LZ把程序贴出可能更方便一些。

yametw 发表于 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 编辑 ]

songzy41 发表于 2009-5-29 09:44

在程序中LZ求了对数频谱:
pr=10*log10(Hpsd.data);
而在波叠加法中应用线性频谱,而不应用对数频谱值。

yametw 发表于 2009-6-3 18:36

非常感谢,确实是这样的
页: [1]
查看完整版本: 从功率谱密度构造时间序列的问题?