2016-08-09 1 views
0

私はx=0からx=0.4までの範囲の瞬時速度を表すデータセットを持っています(32ノードで空間増分は0.0125です)。fftからの波ベクトルの取得とプロット

私はこの私がdataは速度が含まれている以下のコードではない、これにFFTを適用したいと思います:

data = [-0.0005 
    -0.0004 
    -0.0003 
    -0.0002 
    -0.0001 
    -0.0000 
    0.0001 
    0.0001 
    0.0001 
    0.0002 
    0.0002 
    0.0002 
    0.0002 
    0.0002 
    0.0002 
    0.0002 
    0.0002 
    0.0002 
    0.0003 
    0.0004 
    0.0005 
    0.0006 
    0.0007 
    0.0009 
    0.0010 
    0.0011 
    0.0011 
    0.0012 
    0.0011 
    0.0011 
    0.0011 
    0.0010 ]; 


N = 100; 
X=abs(fft(data,N)); 
X = fftshift(X); 
F = [-N/2:N/2-1]/N; 

figure(1) 
plot(F,X) 

しかし、私は波動ベクトルxのどのような値がわかりませんよ-axisはプロットを表します。原則として私は波のベクトルが欲しいですが、それをFFTから得る方法はありますか?

+0

wavevectorとは何ですか? FFTのx軸は周波数であり、y軸は信号の周波数の相対的な量です。 – GameOfThrows

答えて

1

Fは、-0.5〜+ 0.5(除外)で動作し、基礎となるサンプルレート(ナイキスト周波数)に対する周波数を表します。元の信号Xは、1サンプルあたり0.0125メートルの均一間隔、または1メートルあたり80サンプルのサンプル周波数でサンプリングされるため、F/0.0125は実際の空間周波数を1メートルあたりのサイクル数で表します。意味がありますか?

+0

そして、 'X'の最大値は40です。これは、長さごとのサイクル単位であると言うとき、基本的に与えられた' X'は1 /(長さ)です。 – BillyJean

+0

私が言っていることは、それが1メートルあたりのサイクルの単位であると言うときに、2 * piの係数も含まれているということですか? – BillyJean

+1

ああ、それほどではありません。ここでは完全な内訳があります:あなたの 'F'は1メートルあたりの"正規化 "サイクルの単位を持ちます(正規化係数はサンプルレート、1メートルあたり80サンプルです)。 'F/0.0125'は1メートル当たり「真の」サイクルの単位を持ちます。 2πラジアンは1サイクルなので、「F/0.125 * 2 * pi」は1メートルあたりのラジアンの単位を持ちます。これらの周波数ベクトルの各要素は、「X」の振幅と一致する周波数を示します。 –

関連する問題