FFTで周波数解像度とウィンドウサイズを選択する方法


9

周波数が200Hzから10kHzに変化する時変信号のスペクトル分析を行っています。信号の周波数成分の分析にFFTを使用しています。私の質問は:

  1. 信号の周波数分解能とウィンドウ幅を決定する方法は?
  2. 時変信号にはどのタイプの窓関数が適していますか?
  3. FFTに最適なサイズは何ですか?

信号のサンプリングレートは44.1kHzです。


2
周波数変更パターンとは何ですか?信号は異なる周波数間で突然ホップしますか、それとも周波数の変化は連続的ですか?信号がホップした場合、信号が同じ周波数のままであると想定できる期間はどれくらいですか?周波数の変化が連続的である場合、この変化にはどのようなパターンがありますか(線形、ガウス、その他)?
Vasiliy 2013

それは、チャープ信号と同様に変化し続ける信号であることをホップしません。各周波数の振幅はランダムに変化する場合があります。
nitin 2013

4
あなたはFFTを使って周波数成分を分析していると言います。これは中間のステップであり、質問に正確に回答するには、達成しようとしていることを知る必要があります。その情報をどうするつもりですか?なぜ周波数成分を知る必要があるのですか?どのくらいの頻度でこの情報を更新する必要がありますか?このことを私たちに言わずに、あなたは解像度が何である必要があるかを知ることができる唯一の人です。実際、1つまたは2つの周波数で答えを知る必要があるだけなら、FFTは最善の方法とは言えないかもしれません。
スコットSeidman 2013

@ScottSeidman、私の心を読んでください。
Vasiliy 2013

1
@ trav1s、私たちは皆異なった方法で教えます。私の学生がこのように尋ねられたこの質問で私のところに来た場合、私は上記の詳細なコメントで私が得ていたのと同じ持ち帰りメッセージを彼に与えようとします-「エンジニアは彼または彼女がやっている理由を理解する必要がありますそれを始める前に何か」数千のリソースがあり、Nの関数として周波数分解能を表す方程式を見つけることができます。質問者がそれらを利用できるように感じましたが、そのメッセージは添付されていません!うまくいけば、突進によって質問者は彼がすでに答えを持っていることに気づいた。
スコットSeidman 2013

回答:


4

固定サンプルレートで作業しているため、FFT長(ウィンドウを同じ幅にする必要があります)により、周波数分解能が向上します。より細かい周波数分解能を持つことの利点は2つあります。明らかに1つは、周波数分解能がより細かく、周波数が非常に近い2つの信号を区別できる可能性があることです。2つ目は、周波数分解能が高いほど、FFTノイズフロアが低くなることです。システムのノイズは固定パワーであり、FFTのポイント数とは関係ありません。そのパワーは(ホワイトノイズの場合)すべての周波数成分に均等に分配されます。したがって、より多くの周波数成分を持つことは、周波数ビンの個々のノイズの寄与が低下することを意味しますが、統合されたノイズの合計は同じままです。その結果、ノイズフロアが低くなります。これにより、より高いダイナミックレンジを区別できます。

ただし、より長いFFTを使用することには欠点があります。1つ目は、より多くの処理能力が必要になることです。FFTはO(NlogN)アルゴリズムで、Nはポイント数です。ナイーブなDFTほど劇的ではないかもしれませんが、特に組み込みシステムの範囲で作業している場合は、Nの増加によってプロセッサが出血し始めます。次に、Nを大きくすると、周波数分解能が向上し、時間分解能が低下します。Nが大きいと、周波数領域の結果に到達するためにより多くのサンプルを取得する必要があります。つまり、より長い時間サンプルを取得する必要があります。より高いダイナミックレンジとより細かい周波数分解能を検出できるようになりますが、スプリアスを探している場合、スプリアスが正確に発生した時期についてはあまり明確ではありません。

使用する必要があるウィンドウのタイプは、まったく別の主題です。私は、どちらが優れているかについての回答を提供することは知らされていません。ただし、ウィンドウが異なれば、出力特性も異なります。そのほとんど(すべてではないにしても)は、FFTの結果を後処理して元に戻すことができます。一部のウィンドウでは、周波数成分がサイドビンに流出する場合があります(私が間違っていない場合は、ハニングウィンドウによってコンポーネントが3つのビンに表示されます)。他のウィンドウでは、コンポーネントにゲインエラーが発生する一方で、周波数精度が向上します。これは、達成しようとしている結果の性質に完全に依存しているため、特定のアプリケーションに最適なものを見つけるために、いくつかの調査(またはシミュレーション)を行います。


連続したブロックでFFT評価を実行するのは直感的かもしれませんが、入力データの重複ブロックでそれらを実行することも可能であることに注意してください。つまり、256サンプルごとに1024ポイントFFTを開始します。さらに多くの計算のコスト。
Chris Stratton

0

したがって、まず最初に、サンプリング周波数は信号の最大周波数の少なくとも2倍でなければなりません(44.1kHz> 2x10kHz)。次に、時間領域のウィンドウの長さがTの場合、FFTでの周波数分解能は正確に1 / Tです。FFTを使用した周波数領域の分解能は、時間領域のサンプリング周波数とは関係ありません。ただし、前の回答で指摘したように、一時的にポップアップするスプリアス信号に関する情報が失われるため、時間領域ウィンドウは大きすぎてはなりません。したがって、周波数分解能とスプリアス信号の検出の間には妥協が必要です。最後に、FFTは、信号を時間領域から周波数領域に取得する唯一のアルゴリズムではありません。時間領域のサンプル数が限られている周波数領域で高分解能を探している場合は、MUSICやESPIRITなどの高分解能スペクトル推定手法を使用できます。これらは、スペクトル推定問題と非常によく似た到来方向(DOA)推定にも使用されます。


うーん...ナイキストをもう一度読んで。確実に周波数を再構築したい場合は、5〜10倍必要です。同様に、より広いウィンドウは、関心のある最低周波数の再構成を可能にし、サブ高調波に行きます。スプリアス信号が確実ディラックパルスとしてとにかくFFTには表示されませんそのデューティが唯一の信頼できる/周期成分が顕著な振幅で示される「ランダム」である高周波成分有していてもよい
JonRB

対象の信号の周波数範囲は200Hzから10kHzです...したがって、サンプリング周波数は信号周波数の少なくとも4.41倍です...スペクトルの下端を見ると、サンプリング周波数は220.5倍です...頻度が統計的にどのように分布しているかを知る必要があるかもしれません...とにかく、ここではサンプリング頻度は問題ではないと思います!
Yasir Ahmed
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.