固定長の信号に対してFFTを実行するとサイドローブが発生する理由を理解する直感的な方法があるかどうか疑問に思っていましたか?
固定長の信号に対してFFTを実行するとサイドローブが発生する理由を理解する直感的な方法があるかどうか疑問に思っていましたか?
回答:
簡潔な数学的説明を超えてさらに直感的な洞察を提供することを意図して、2つの説明があります。最初に、フーリエ級数展開からの説明と、切り捨てられた時間領域シーケンスを繰り返すという考えと、結果として生じる不連続性を示し、波形が切り捨てられなかった場合に存在するよりも多くの周波数成分を再構築する必要があります。次に、DFTをそれほど大きくないフィルターのバンクとして見た場合の説明。
時間制限されたシーケンスのフーリエ変換は、常に周期的であるシーケンスのフーリエ変換と同じです。
これは、フーリエ変換および離散フーリエ変換に当てはまり、DFTの周期性プロパティとして知られています。
周期性プロパティ:N点DFTベクトルX [k]が与えられ、逆DFTサンプルx [n]が指定されます。kとnの両方が0からN-1の範囲です。nが0,1,2 ...、N-1の範囲外の場合、
同様に、Nポイントの時間シーケンスx [n]とDFT X [k]を指定すると、kが0、1、2、...、N-1の範囲外の場合、
直感的に理解できるようにするための重要なポイントは、あるドメインでサンプリングされたものはすべて、別のドメインで定期的になることです。同様に、1つのドメインで周期的であるものはすべて、他のドメインでサンプリング(離散値)されます。ここで具体的には、「サンプリングされた」とは、信号がドメイン(インパルスのストリーム)の離散位置に非ゼロ値としてのみ存在することを意味します。
1つのドメインでのサンプリング->他のドメインでの周期性:A / Dコンバーターでサンプリングする前と後の3 Hzのアナログ余弦波のスペクトルを考えます。デジタルスペクトルは周期的と見なすことができます。デジタルスペクトルのシリンダービューも周期性を説明するのに有効なビューですが、アナログ周波数ドメインへのこの拡張は(周波数を+/-無限大に拡張することにより)、関連する信号処理の直感的なビューを得るのに役立ちます。
1つのドメインでの周期性->他のドメインでのサンプリング:このプロパティを示す簡単な例として、フーリエ級数展開を考えます。フーリエ級数展開は、0からTまでの有限の時間領域間隔で行われます。個別の周波数成分に分解される場合、使用される周波数はDC、基本周波数1 / T、および1 / Tの整数倍(ハーモニクス)のみです。実際には、周波数は1 / T(およびDC)の倍数でのみ存在できるため、周波数領域がサンプリングされています。
さらに、個々の周波数成分を合計することによって時間領域の波形を再構築する場合、周波数成分が0からTの間隔を超えて拡張できるようにすれば、時間領域の暗黙の周期性も表示できます。これは、この周期性が原因ですその周波数成分は、1 / Tの倍数以外の周波数で存在することはできません(反対の条件のため:それらが存在する場合、それらは0からTの時間間隔で一貫して開始および終了しないため、周期性は存在できません)。
上記を理解することは、スペクトル漏れの直感的な説明を提供するのに役立つでしょう。 だから今私は要点を繰り返します:
時間制限されたシーケンスのフーリエ変換は、常に周期的であるシーケンスのフーリエ変換と同じです。
「フーリエ級数展開」ビューによるスペクトル漏洩:
0からTまでの時間間隔の2つの正弦波を考えてみましょう。最初の時間間隔は整数のサイクル数で、2番目のケースは整数でないサイクル数です。
明らかにケース1では、繰り返しビューで純粋な正弦波を繰り返しても純粋な正弦波のままであることがわかりますが、ケース2では、正弦波が急激な遷移に悩まされており、再構成のフーリエ級数展開ビューを使用すると、いくつかの周波数成分が必要になります。そのような波形を時間領域で再構成します。
スペクトル漏れに関するもう1つの直感的な説明(および一般的なDFTの理解に大きく役立つ)は、私がDFTのフィルターバンクビューと呼んでいるものです。これを確認するには、下の図に示すような単純な4 pt DFTを検討し、各ビンを観察します。信号を効果的に回転させ、回転した値を4タップのユニティゲインFIRフィルターに渡します。DCに対応する最初のビンの場合、回転はないため、4つのサンプルを合計し、他のビンの場合は、DFTビンを移動するにつれて、より高い周波数で徐々に回転します。
(補足:ストリーミングDFTを実行し、波形をスキャンしながら4ポイントシーケンスで新しい4ポイントDFTを計算した場合、それはまさにそのようなフィルターバンクですが、それを行うかどうかに関係なく、これはビューは、数学的な説明が明らかにする周波数領域でのsinc関数の通常のたたみ込みに加えて、スペクトル漏れについての素晴らしい洞察を提供します)
次の図に示すように、DFTで指定された係数(たとえば、MatlabまたはPythonではfreqz([coeff])を使用)を使用して、各等価FIRフィルターの周波数応答を検討します。
ここでの要点は次のとおりです。DFTの構築における各フィルターは基本的にユニティゲインFIRフィルターであるため、DFTの長さが長くなるにつれて、周波数におけるこのフィルターの形状はsinc関数に近づきます(そして、小さなN)。したがって、これらのsincフィルターを呼び出し、sincフィルターには比較的高いサイドローブがあり、周波数で非常にゆっくりとロールオフするエンベロープ(純粋なsincの場合は1 / f)があることに注意してください。DFTの位相回転子を使用して、このsincフィルターのメインローブを対象の各ビンに移動するだけですが、各ビンに存在するサイドローブにより、他の場所の周波数がこのビンにエネルギーを発生させることができます。漏れの量はこれらのフィルターによって完全に予測されます。
このビューを使用して、下の図に示すように、2つの周波数ビンの間にある周波数の入力シングルトーン信号を考えます(ビンに正確に存在する入力は、時間領域間隔で整数のサイクル数を持つため、前に示したように、スペクトル漏れはありません)。上のフィルターは、最初のビンに「漏れる」この周波数位置での振幅を示しています。2番目のフィルターは振幅(わずかに高い)を示し、3番目のビン(周波数が最も近い)は応答が最も高く、4番目のビンは低くなります。
追加の直感を提供する目的で、2つの説明を提示しました時間領域での長方形の窓による乗算の簡潔な数学的説明を超えた洞察は、周波数領域での畳み込みです(したがって、私たちが見る漏れは、時間で切り捨てた対象の波形で周波数に畳み込んだsinc関数の結果です) ; 最初に、フーリエ級数展開からの説明と、切り捨てられた時間領域シーケンスを繰り返すという考えと、結果として生じる不連続性を示し、波形が切り捨てられなかった場合に存在するよりも多くの周波数成分を再構築する必要があります。そして2番目に、DFTをフィルターのバンクとして見たときの説明と、それに対する貧弱なフィルター(具体的には、Nが増加するにつれてsinc関数の周波数応答に近づくユニティゲインフィルター)。
ヤクアウトするとき より長いサンプルのストリームからの正弦波のサンプル(できることはパスするだけなので) FFTへのサンプル)、ウィンドウを適用しています。長方形のウィンドウ。
ウィンドウ処理は時間領域での乗算です。時間領域での乗算は、周波数領域でのたたみ込みに対応します。表示されるサイドローブは、ウィンドウ関数のフーリエ変換を、正弦波のフーリエ変換となる単一のスペクトル線でたたみ込んだ結果です。
DFTの基底ベクトルはすべて、DFTアパーチャ幅内で正確に整数周期的です。信号が固定長内で正確に周期的な整数でない場合、DFT基底ベクトルの単一の周波数で正確かつ完全に表すことはできません。信号が正弦波に似ている場合、ほとんどの場合、信号は単一のDFT結果周波数ビン(および厳密に実数の入力の場合は複素共役鏡像)で表されますが、周波数が完全に一致しない場合があるため、残りの部分は、 DFTの結果が信号を完全に表すためには、マッチングエネルギーがどこかで表される必要があります。残ったエネルギーはサイドローブに入ります。
信号から最も一致しているが正確に整数の周期的正弦波を差し引く場合、その違い(細いねじれた三角形や蝶ネクタイのように見えるかもしれませんが、試してみてください)はサイドローブによって表されるか分解されるものです。
サイドローブの形状はSinc(より正確には、周期的なSincまたはDirichletカーネル)です。これは、有限長の信号で得られる矩形ウィンドウの変換であるためです。
私はゆっくりと自分自身にDSPを教えており、同様の質問を通して考えました。あなたに役立つ非常に簡単な説明があれば幸いです。
各FFTビンは、正確に1つの特定の周波数を表します。したがって、ビンの正確な周波数に対応しない周波数を表すには、2つのビンの間にある必要があります。つまり、2つのビンにまたがって塗りつぶされます。
FFTは信号の一部にのみ適用できるという事実を考えると、通常、FFTを適用する信号の一部の両端に不連続があります。これは簡単に説明するのは難しいですが、不連続性をモデル化するために数学に余計な正弦波を導入するように強制し、より多くのビンを汚染するものと考えることができます(これは質問に答えますが、ウィンドウに関する次のビットは脇にあります) )、これを軽減するために、ウィンドウを使用して、各端での不連続性を平滑化しますが、信号を変化させます。
周波数とは、特定の周波数の正弦波を意味するので、フーリエ解析では、信号を正弦波の和として考えていると想定しています。