FFT処理理解する

概要

時間領域、周波数領域、高速フーリエ変換 (FFT)、窓処理について学びます。また、これらの手法を使って信号への理解を深める方法についても学びます。

内容

時間領域、周波数領域、FFT理解する

フーリエ変換は、日常的な信号を理解し、信号のエラーのトラブルシューティングに役立ちます。フーリエ変換は複雑な数学関数ですが、測定信号を理解し、関連付けることは複雑な概念ではありません。基本的に、信号を受け取り、異なる振幅と周波数の正弦波に分解します。これが何を意味するのか、またなぜ役立つかを説明します。 

あらゆる信号正弦波合成ある

実際の信号を調べる際、通常は、信号を時間の経過とともに変化する電圧として観察します。これは時間領域と呼ばれます。フーリエの定理では、時間領域の任意の波形を、正弦と余弦の加重和で表すことができます。たとえば、ある正弦波と、その正弦波の3倍の速度 (つまり周波数が最初の信号の1/3) である2つの正弦波があるとします。それらを加算すると、異なる信号が得られることがわかります。

図1:2つの信号を加算すると、新しい信号が得られる。 

さて、2番目の波も1/3の振幅であったと想定します。その場合、ピークのみが影響を受けます。

図2:信号を追加する際に振幅を調整すると、ピークに影響する。

元の信号の振幅と周波数の1/5である3番目の信号を追加したとします。ノイズフロアに達するまでこの方法を続けると、結果の波形が認識できるかもしれません。

図3:方形波は正弦波の和である。

これで方形波が作成されました。このようにして、時間領域のすべての信号を一連の正弦波で表すことができます。

この方法で信号を作成するのは非常に便利ですが、実際になぜ気にする必要があるのでしょうか。正弦波を使用して信号を構成できるならば、信号を正弦波に分解することもできるためです。信号を分解すると、元の信号に存在するさまざまな周波数を確認および解析できます。信号の分解が有効であると証明されたいくつかの例を紹介します。

  • 電波を分解すると、聞きたい特定の周波数 (つまり放送局) を選択できます。
  • オーディオ波形を低音域と高音域などの異なる周波数に分解すると、トーンまたは周波数を変更して特定の音を増幅し、不要なノイズを除去することができます。
  • さまざまな速度と強度の地震振動を分解すると、最も強い振動を回避するように建物の設計を最適化できます。
  • コンピュータデータを分解すると、重要度が最も低い周波数を無視して、メモリ内でより圧縮された表記法 (ファイル圧縮) が可能になります。

FFT使って信号分解する

フーリエ変換は、信号の時間領域表現を周波数領域表現に分解します。周波数領域は、さまざまな周波数で存在する電圧を示します。これは、同じ信号を別の方法で表示します。 

デジタイザは波形をサンプリングし、離散値に変換します。この変換のため、このデータに対してフーリエ変換は機能しません。その代わりに、離散フーリエ変換 (DFT) を使用し、結果として、離散値の周波数領域成分 (ビン) が生成されます。高速フーリエ (FFT) は、DFTの最適化された実装であり、実行に必要な計算量は少なくて済みますが、基本的には信号を分解するだけです。

上の図1の信号を見てください。2つの異なる周波数に2つの信号があります。この場合、信号には周波数領域に2つのスパイク (最初に信号を構成した正弦波の2つの周波数のそれぞれに1つずつ) があります。

図4:振幅が等しい2つの正弦波を加算すると、周波数領域で2つのスパイクが生じる。

元の信号の振幅は垂直軸に表されます。上記の図2の信号を見ると、振幅が異なる2つの異なる信号が存在します。最も顕著なスパイクは、最高電圧の正弦波信号の周波数に対応していることがわかります。時間領域で信号を観察すると、どの周波数で最大の電圧信号が発生するかを知ることで、元の信号をよく理解することができます。

図5:最大スパイクは、最大振幅の周波数である。

また、周波数領域で信号の形状を確認することにも役立ちます。たとえば、周波数領域の方形波を見てみましょう。さまざまな周波数で多数の正弦波を使用して方形波を作成しました。そのため、周波数領域の信号に多くのスパイクが発生 (信号ごとに1つずつスパイクが追加) することが予想されます。周波数領域に適切なランプが見られる場合は、元の信号が方形波であったことがわかります。

図6:正弦波の周波数領域はランプのように見える。

では、これは実際にはどのように見えるでしょうか。多くの混成信号オシロスコープ (MSO) には、FFT機能が搭載されています。以下は、方形波のFFTが混成信号グラフにどのように表示されるかを示しています。拡大すると、周波数領域で個々のスパイクを実際に確認できます。

図7:元の正弦波とそれに対応するFFTはAに表示され、BはFFTの拡大された部分で、個々のスパイクが確認できる。

周波数領域で信号を確認すると、信号の検証およびトラブルシューティングに役立ちます。たとえば、正弦波を出力する回路があるとします。以下の図8では、オシロスコープの時間領域で出力信号を確認できます。なかなか良さそうに見えます。

図8:これらの2つの波形は非常に似ているため、加算すると、完璧な正弦波のように見える。

しかし、周波数領域で信号を表示する場合、1つの周波数で1つの正弦波が出力されると予想されるため、1つのスパイクのみが予想されます。しかし、高い周波数ほど、スパイクが小さいことがわかります。これは、正弦波が思ったほど良くないことを示しています。回路を操作して、その特定の周波数で追加されるノイズの原因を除去することができます。周波数領域は、時間領域のクリーンな信号に実際にクロストーク、ノイズ、またはジッタが含まれているかどうかを示すのに優れています。

図9:図8の一見完璧な正弦波を見ると、実際にはグリッチがあることがわかる。

 

処理

信号に対してFFTを実行すると優れた洞察が得られますが、FFTの制限と窓処理を使用して信号の明瞭度を改善する方法を理解することが重要です。

処理とは

FFTを使用して信号の周波数成分を測定する場合、有限のデータセットに基づいて解析を行います。実際のFFT変換は、それが有限データセット、つまり周期信号の1周期である連続スペクトルであると想定しています。FFTでは、時間領域と周波数領域の両方が循環トポロジであるため、時間波形の2つのエンドポイントは互いに接続されているように解釈されます。測定された信号が周期的で、整数の周期数が集録時間間隔を満たす場合、FFTはこの仮定に一致するため良好な結果となります。

図10:整数周期数 (A) を測定すると、理想的なFFT (B) が得られる。

しかし、多くの場合、測定された信号は整数の周期ではありません。したがって、測定信号の有限性により、元の連続時間の信号とは異なる特性を持つ、切り捨てられた波形が生成される場合があります。そして、有限性により測定信号に急激な遷移変化が発生する可能性があります。また、この急激な推移は不連続です。

集録データの周期数が整数でない場合、波形の両端はつながっていない状態です。これらの人工的な不連続性は、元の信号には存在しない高周波数成分としてFFTに現れます。これらの周波数はナイキスト周波数よりもはるかに高く、0~サンプリングレートの1/2の間でエイリアスが起こります。そのため、FFTを行って取得したスペクトルは元の信号の実際のスペクトルではなく、不鮮明なスペクトルです。ある周波数のエネルギーが他の周波数に漏れているように見えます。この現象はスペクトル漏れとして知られており、細いスペクトル線が幅広い信号に拡散する原因となります。

図11:非整数周期数 (A) を測定すると、FFT (B) にスペクトル漏れが追加される。 

窓処理と呼ばれる手法を使用すると、整数でないサイクル数でFFTを実行する影響を最小限に抑えることができます。窓処理は、デジタイザで集録された各有限シーケンスの境界で起こる不連続による振幅を低減します。窓処理では、エッジでゼロに向かって滑らかに徐々に変化する振幅を持つ有限長の窓と時間レコードを乗算します。これにより、波形のエンドポイントが一致するため、急激な遷移のない連続波形が生成されます。この方法は、窓の適用とも呼ばれます。

図12:窓を適用すると、スペクトル漏れの影響を最小限に抑えることができる。

関数

信号に応じて適用できる窓関数には、いくつかの異なるタイプがあります。特定の窓が周波数スペクトルに与える影響を理解するには、窓の周波数特性について理解を深める必要があります。 

窓の実際のプロットは、窓の周波数特性がメインローブといくつかのサイドローブを含む連続スペクトルであることを示しています。メインローブは時間領域信号の各周波数成分の中心で、サイドローブはゼロに近づきます。サイドローブの高さは、窓関数がメインローブ周辺の周波数に与える影響を示します。強い正弦波信号のサイドローブ応答は、近くの弱い正弦波信号のメインローブ応答を上回る可能性があります。通常、サイドローブが低いほど測定されたFFTの漏れが減少しますが、メジャーローブの帯域幅が増加します。サイドローブのロールオフ率は、サイドローブのピークの漸近減衰率です。サイドローブのロールオフ率を増やすことで、スペクトル漏れを減らすことができます。

窓関数の選択は簡単な作業ではありません。アプリケーションによって、適切な窓関数は異なるからです。窓関数を選択するには、信号の周波数成分を推定する必要があります。

  • 信号に、解析対象となる周波数から程遠い、強い障害のある周波数成分が含まれている場合、高いサイドローブのロールオフ率がある平滑化窓関数を選択します。
  • 信号に、解析対象となる周波数に近い、強い障害のある信号が含まれている場合、最低レベルのサイドローブが小さい窓関数を選択します。
  • 解析対象となる周波数に、非常に近接した2つ以上の信号が含まれている場合、スペクトル分解能が重要です。この場合、非常に狭いメインローブのある平滑化窓関数を選択します。
  • 単一の周波数成分の振幅確度が、与えられた周波数帯域成分の正確な位置よりも重要な場合、メインローブの幅が大きい窓関数を選択します。
  • 信号スペクトルが、周波数成分でやや平坦あるいは広帯域である場合、均一窓 (窓なし窓) を使用します。
  • 一般に、ハニング (ハン) 窓は95%のケースで十分です。周波数分解能に優れており、スペクトル漏れは軽減されています。信号の特性が不明で、平滑化処理を適用したい場合、ハニング窓から始めます。

窓なし窓を使用する場合でも、入力信号の時間スナップショットを取得し、離散信号を処理するため、信号は均一な高さの長方形の窓で畳み込まれます。このコンボリューションには、正弦関数特性スペクトルがあります。このため、窓処理の効果が依然としてあるため、窓なし窓はしばしば均一窓または方形窓と呼ばれます。

ハミング窓関数とハン窓関数はどちらも正弦波形状をしています。どちらの窓もピークは広くなりますが、サイドローブは低くなります。しかし、ハン窓は両端でゼロに接触し、すべての不連続性を排除します。ハミング窓は完全にゼロに達していないため、信号にわずかな不連続が残ります。この違いにより、ハミング窓は最も近いサイドローブをより効果的に打ち消すことができますが、その他のサイドローブを打ち消すには不十分です。これらの窓関数は、他の窓よりも高い周波数分解能が必要で、中程度のサイドローブが問題にならないノイズ測定に役立ちます。

図13:ハミングおよびハン窓処理では、ピークは広くなるが、ローサイドローブは低く抑えられる。 

ブラックマン・ハリス窓は、ハミングおよびハン窓に類似しています。結果のスペクトルには広いピークがありますが、サイドローブは十分に圧縮されています。この窓には、主に2つのタイプがあります。4項ブラックマン・ハリスは優れた汎用窓で、90 dBの高いサイドローブ除去と適度な幅のメインローブを備えています。7項ブラックマン・ハリス窓関数には、必要になるダイナミックレンジをすべて備えているが、幅広いメインローブがあります。

図14:ブラックマン・ハリスでは、ピークは広くなるが、サイドローブは良好に圧縮される。

カイザー・ベッセル窓は、振幅確度、サイドローブ距離、サイドローブの高さという相反するさまざまな目標の間でバランスを取ります。これは大まかにブラックマンハリス窓関数と比較されますが、メインローブ幅が同じ場合、近いサイドローブは高くなる傾向がありますが、さらに外側のサイドローブは低くなる傾向があります。この窓を選択すると、しばしばノイズフロアに近い信号が表示されます。

フラットトップ窓も正弦波ですが、実際にはゼロラインと交差します。これにより、周波数領域でのピークが非常に広くなり、他の窓を使用した場合よりも信号の真の振幅に近くなります。 

図15:フラットトップ窓では、より正確な振幅情報が得られる。 

これらは可能な窓関数のほんの一部です。窓関数を選択するための普遍的なアプローチはありません。ただし、以下の表は、最初の選択に役立ちます。異なる窓関数のパフォーマンスを常に比較して、アプリケーションに最適な窓関数を見つけてください。

 

信号の内容
正弦波、または正弦波の組み合わせハン
正弦波 (振幅確度が重要)フラットトップ
狭帯域のランダム信号 (振動データ)ハン
広帯域のランダム信号 (ホワイトノイズ)均一窓
間隔の狭い正弦波均一窓、ハニング
励起信号 (急激な立ち上がり/立ち下がり)
応答信号指数
不明な内容ハン
正弦波、または正弦波の組み合わせハン
正弦波 (振幅確度が重要)フラットトップ
狭帯域のランダム信号 (振動データ)ハン
広帯域のランダム信号 (ホワイトノイズ)均一窓
周波数は近いが振幅が大きく異なる2つのトーンカイザー・ベッセル
周波数が近く、振幅がほぼ等しい2つのトーン均一窓
正確なシングルトーン振幅の測定フラットトップ

まとめ

  • 時間領域のすべての信号は、一連の正弦波で表すことができます。
  • FFT変換は、信号の時間領域表現を周波数領域表現に分解して、信号の異なる周波数を解析します。
  • 周波数領域は、時間領域のクリーンな信号に実際にクロストーク、ノイズ、またはジッタが含まれているかどうかを示すのに優れています。
  • スペクトル漏れは、信号内の元の非整数の周期の不連続によって生じ、窓処理を使用して改善することができます。
  • 窓処理は、デジタイザで集録された各有限シーケンスの境界で起こる不連続による振幅を低減します。
  • 窓処理の効果が依然としてあるため、窓なし窓はしばしば均一窓または方形窓と呼ばれます。
  • 一般に、ハニング窓は95%のケースで十分です。周波数分解能に優れており、スペクトル漏れは軽減されています。
  • アプリケーションに最適な窓関数を見つけるには、さまざま窓関数のパフォーマンスを比較する必要があります。

ステップ