有限長打ち切りと窓関数
AI 生成・木下が未勉強
信号処理論入門 第6章 §6.1 ★★ スペクトル漏れと窓のトレードオフ
実際の信号は有限長でしか観測できず、しかも DFT は速く計算したい。本章は、有限長で切り出すことの副作用(スペクトル漏れ)を抑える窓関数と、DFT を で計算する高速 Fourier 変換(FFT)を扱う。
無限に続く信号を長さ で観測するのは、時間領域で矩形窓 (区間内で )を掛けることに等しい。畳み込み定理より、これは周波数領域で「真のスペクトル」を窓のスペクトルで畳み込むことになる。矩形窓のスペクトルは 型で、鋭い主ローブの脇に大きなサイドローブをもつ。このサイドローブを通じて、ある周波数のパワーが周囲の周波数へ漏れ出す—これがスペクトル漏れ(リーケージ)である。
漏れが最も目立つのは、観測区間に信号の周期が整数回入らないときである。たとえばサンプリング周波数 、観測長1秒で の信号はちょうど4周期入って綺麗な線スペクトルになるが、 の信号は端が不連続になり、スペクトルが広くにじむ。
窓関数は、区間の端で滑らかに へ落とす重み を掛けて、この不連続を和らげる工夫である。代表例が Hamming 窓
窓の性能は二つの指標のトレードオフで決まる。主ローブの幅(狭いほど周波数分解能が高い)と、サイドローブの高さ(低いほどダイナミックレンジが広く、微弱な近接成分を見分けられる)である。矩形窓は主ローブが最も狭い(分解能は最良)がサイドローブが高く漏れが大きい。Hamming 窓などはサイドローブを大きく下げる代わりに主ローブが広がる。分解能を取るか、漏れの少なさを取るかという選択がここにある。
このトレードオフは定性的な話に留めず、数値で持っておくと答案での比較が速い。下の表は代表的な四つの窓について、主ローブ幅と最大サイドローブ高さを実測した値である。主ローブ幅は窓長 に反比例するので、 に依らない量にするためにビン幅 の何倍かで表す(DFT の隣り合う周波数点の間隔が1ビンである)。零点間幅は主ローブの左右の零点にはさまれた幅、 dB 幅は振幅が直流成分の になる二点の間隔で、前者は「二本の線スペクトルが完全に分離する距離」、後者は「実用上の分解能」の目安になる。
要点
窓関数の性能( で実測、ビン幅 )
| 窓 | 零点間幅 | dB 幅 | 最大サイド | 等価雑音 | 性格 |
| [bin] | [bin] | ローブ [dB] | 帯域 [bin] | ||
| 矩形 | 分解能は最良・漏れは最悪 | ||||
| Hann | 標準的な折衷。漏れが dB 下がる | ||||
| Hamming | 主ローブ幅は Hann と同じでさらに dB 下 | ||||
| Blackman | 漏れ最小・主ローブは矩形の3倍 |
押さえる二つの数:矩形窓の最大サイドローブ dB(意外に高く、これが漏れの主犯)と、Hann 窓の dB(矩形より約 dB 低い)。この二つを覚えておけば、「窓を掛けるとダイナミックレンジが約 dB 広がる代わりに主ローブ幅が2倍になる」という具体的な言い方ができる。
零点間幅の覚え方:矩形窓の主ローブの零点は ( 型の最初の零点)なので零点間幅は ビン。Hann と Hamming は を含み、周波数領域では矩形窓のスペクトルを ビンずらして重ねた形になるから、零点が1ビン外へ広がって ビンになる。Blackman は の項まで持つので ビンである。
検算=検算スクリプト(
scipy.signal の窓を 倍に零詰めして を直接評価し、上の全数値を再現する)。落とし穴
漏れの原因は「有限長」ではなく「区間と周期の不整合」
スペクトル漏れを「有限長で切ったから起きる」と説明するのは正確でない。長さ の観測区間に信号の周期がちょうど整数回入るなら、その正弦波の周波数は DFT の周波数点にぴったり乗り、隣のビンでは矩形窓のスペクトル の零点に当たるので漏れは厳密に になる。実際、・(区間に8周期)の余弦を DFT すると、ピークの と 以外のビンは機械精度でゼロである。同じ有限長のまま (区間に 周期)にすると、ピーク近傍 ビンの外へ全電力の が漏れ出す(どちらも検算スクリプト の後半で実測)。
つまり原因は、周期化したときに区間の右端 と左端 の間に生じる段差であり、段差が無ければ有限長でも漏れない。窓関数はこの段差を両端で へ落として消す道具である。なお窓を掛けないことは矩形窓を掛けることと同じなので、「窓を使うかどうか」という選択肢は存在せず、「どの窓を使うか」だけが選べる。
木下の勉強ステータス
木下はまだこの記事を勉強していません。
AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com
← AI生成教科書『基礎理論』の記事一覧へ