2016-04-25 21 views
1

私はfftをとる時変信号(a)を持っています。周波数依存の重み付け係数にfftのy軸値を乗算する必要があります。しかし、私がしなければ:MATLAB fft y軸の意味

xdft = fft(a); 
xdft = xdft(1:length(x)/2+1); % only retaining the positive frequencies 
freq = Fs*(0:(L/2))/L; 

、プロット(FREQ、xdft)私は(y軸)をピークFFT値を取得〜2000の信号の正確な周波数で。しかし、元の信号ピーク値(振幅)は〜46であった。私は数値がどのように関連しているか知る必要があるので、fft値に重みを付けることができます。

答えて

3

DFTの長さで忘れてしまった。 this exampleを見てください。

fftの出力が複雑であるとします。だから、あなたが本当のパワースペクトル密度をプロットしたい場合は、このようなその複素共役により出力を乗算する必要があります

Pyy = xdft.*conj(xdft)/L; 

編集: 振幅スペクトルのために、あなたがこのような何かを行う必要があります。

xdft=abs(xdft/L); % same as sqrt(xdft.*conj(xdft))/L 
Y=xdft(1:L/2+1); % copy half of data since the other half is redundant 
Y(2:end-1) = 2*Y(2:end-1); % correct the amplitudes 
+0

DFTの長さでどのぐらいのポイントを分けるべきですか?もし私がts = 0.1; t = 0:ts:10; x = 10 * sin(t)である。 L =長さ(t)。 fs = 1/ts; xdft = fft(x); xdft = xdft(1:長さ(x)/ 2 + 1)。 xdft = xdft/length(xdft); freq = fs *(0:(L/2))/ L;プロット(freq、abs(xdft)); maxのy軸。値は最大値ではありません。 xの値。 – 2one

+1

@ 2one振幅スペクトルの更新を参照してください。また、ナイキスト周波数と漏れ効果も考慮してください。 – incBrain