[问题] 由fft及psd画频谱

楼主: chuusan (T_T)   2015-01-09 18:31:16
想请问版上大大有关画频谱的问题
先上程式码
Fs = 100;
t = 0:1/Fs:10;
x=10*cos(2*pi*t*20)+3*cos(2*pi*t*9)+4*cos(2*pi*t*4)+1*randn(size(t));
Hs=spectrum.welch;
psd(Hs,x,'Fs',Fs);
temp=psd(Hs,x,'Fs',Fs);
figure(4);
plot(temp.Frequencies,temp.Data);
y=fft(x,Fs)/Fs;
f=Fs*t;
figure(2);
plot(f(1:Fs/2),2*abs(y(1:Fs/2));
最初用psd画出频谱,但是y轴不想取db值,已爬文,可把f跟data取出
但画出的figure(4) 又跟 第二段以fft为参考的figure(2)
在振幅上有着相当的误差... 20Hz处差两倍
这是什么原因呢?? 若是因psd是多次计算得到,但两倍的误差实在有点大...
这样在往后更复杂的资料分析很让人担心
希望板上先进能指导一下
感激不尽...

Links booklink

Contact Us: admin [ a t ] ucptt.com