3

仮定しましょう、

  • サンプルの秒単位の時間を持つベクトルtがあります。(これらのサンプルは、時間領域で均等に分散されていません。

  • また、時刻tのサンプル値を含むベクトルデータがあります。

  • tとデータの長さは同じです。

グラフをプロットすると、ある種の周期的な信号が得られます。

これで、abs(fft(data))を実行してスペクトルを取得し、x軸のデータポイントの量にプロットすることができます。

ベクトルtの時間に関するスペクトルを取得してプロットするにはどうすればよいですか?1/sのどの周波数またはsのどの周期に信号が含まれているかを確認したい。

ご協力いただきありがとうございます。

4

2 に答える 2

4

[OPの意図ではありません]:FFTは、任意の数の入力データポイントのスペクトル(グローバル)を提供します。パーツ(またはフル)スペクトルに関連付けられた特定のデータポイント(時間内)を持つことはできません。

代わりにできることは、スペクトログラムを使用して短時間フーリエ変換(STFT)を取得することです。これNxMにより、時間周波数FT値の離散グリッドが得られます(N:FT周波数ビン、M:信号時間ウィンドウ)。

対象のデータサンプルで(重複する)STFTウィンドウをローカライズすることにより、N個の周波数マグニチュード値を取得し、信号が時間とともに変化するときの短期スペクトル推定値の分布を取得します。

ここでおそらく関連する答えも参照してください:https ://stackoverflow.com/a/12085728/651951

編集/更新

等間隔のデータの場合、不均一なDFT(および不均一なFFTの実装)を考慮する必要があります。ここで関連する質問/回答を参照してくださいhttps://scicomp.stackexchange.com/q/593

NFFTまたはNUFFTの主なアプローチは、ローカルの畳み込み/内挿によって均一なグリッドを作成し、これに対してFFTを実行し、内挿フィルターの畳み込み効果を元に戻すことに基づいています。

あなたはもっと読むことができます:

(MATLABへのインターフェイスを備えた)実装については、NFFTと、場合によってはその並列化バージョンPNFFTを試してください。ここで、セットアップと使用方法に関する優れたウォークスルーを見つけることができます。

于 2012-11-22T20:59:27.427 に答える
2

サンプルポイントを再サンプリングまたは内挿して、tで等間隔に配置された別のサンプルポイントのセットを取得できます。等間隔のサンプルポイントの2番目のセットの選択された間隔またはサンプルレートにより、その2番目のセットのFFTの結果に周波数を推測できます。

初期データセットが補間を可能にするのに十分に低い周波数に帯域制限されていない限り、結果はノイズが多いか、エイリアシングを含む可能性があります。帯域制限されている場合は、内挿法として3次スプラインのようなものを試すことができます。

より多くのデータポイントにリサンプリングすることで高いFFTビン周波数分解能を得ることができるように見えるかもしれませんが、実際の有用な分解能精度は、元のサンプル数により関連しています。

于 2012-11-24T17:12:32.397 に答える