2016-07-02 5 views
0

私はmatlabのマトリックスにデータセットを持っています。これには0.5 nsごとに25,000の値が含まれています。データセットの合計時間は1.25E-5秒です。fftデータセットからの周波数matlab

データセットには私が関心のない非常に高い周波数のノイズが含まれているので、最初のマトリックスから50番目のデータポイントごとに別のマトリックスを作成します。したがって、マトリックスのサイズは1000 *です。

私はこの行列(振幅を正規化し、最初の半分のみをプロットします)とmatlabのfftからの絶対値をプロットし、アタッチメント(2つのプロット、2番目は私が興味を持っている低周波数のクローズアップです)を取得します。 x軸を周波数に変換するにはどうすればよいですか?

  • もう1つのポイントは、私はすべてのデータポイントを取るので(全部で25,000ポイントのfftを作成すると)、x軸はまったく同じです。言い換えれば、私の行列の大きさは、x軸に関係なく、matlabによって返されているようです。私は、周波数スペクトルに2つのリンクを付けました。そのうちの1つは、興味のある低周波数のクローズアップです。それは0〜50の軸ですから、Hzに変換するのに必要な値です。

ありがとうございます!

Close up of frequency spectrum

私はhttp://www.mathworks.com/help/matlab/math/fast-fourier-transform-fft.html#bresqop-1に読んだから

答えて

0

frequency spectrumは、第一のベクター、f、あなたがplot(f,power)に入れた場合にプロットされたFFTのx軸上の単位はヘルツをしていることが表示されますn要素のシーケンス(nは、FFTに入れられるデータポイントの数である)として定義され、ゼロからサンプル周波数まで増加する。

したがって、2GHzの周波数で撮影された50点ごとに使用された最初のプロットでは、サンプル周波数は40MHzになります。したがって、f = (0:n-1)*4*10^7/(25000/50)

それは0でfft関数の出力の中心を置くためにfftshift機能を使用する方法を示すことになりますが、それはあなたがすでにそれをしたし、負の部分を切り落とし明らかです。

fs/nのサンプリング間隔を使用したデータポイントの数で除算すると、x軸をplot関数に供給するベクトルでは、x軸の単位はHzになります。

(私はあなたがまだ再グラフ化する番号を持っていることを望みますない場合は、この質問には役立つかもしれない:?Confusion in figuring out the relation between actual frequency values and FFT plot indexes in MATLAB

+0

ことに感謝します! – William

関連する問題