矩形窓とは、音声処理や信号処理において、時系列データの一部を切り出す際に最も単純な形で用いられる窓関数です。データを一切加工せずに一定の区間だけをそのまま切り抜くため、計算は非常に簡単ですが、端部で急激な変化が生じることで周波数解析時にスペクトル漏れ(漏れ誤差)を引き起こしやすいという特徴があります。
矩形窓とは
矩形窓とは、時間領域の連続したデータから特定期間だけを等しい重み(1)で切り出す、最も基本的で単純な窓関数です。
詳しく解説
音声解析やディープラーニングの前処理などでは、無限に続く時系列信号をそのまま処理できないため、短い時間フレームに切り出して扱う必要があります。この時系列データを切り出す操作を窓掛けと呼び、その際に使う関数を窓関数と呼びます。矩形窓は、指定した区間内では重みをすべて1、区間外では0とする関数です。実質的にはデータをただ切り抜くだけの操作と同じであり、追加の乗算処理が不要なため計算コストが非常に低いというメリットがあります。しかし、切り出した区間の両端で信号が断続的になりやすいため、周波数領域へ変換するフーリエ変換を行った際に、本来存在しない周波数成分へエネルギーが漏れ出る現象が生じます。
具体例・使われ方
音声認識モデルの学習前処理として、音声波形から音響特徴量を抽出する場面で利用されます。例えば、フレーム単位で音声データを単純分割する際に矩形窓が適用され、その後スペクトログラムなどの画像データ表現に変換してAIモデルに入力されます。
似た用語との違い
ハミング窓やハン窓といった他の窓関数との違いは、切り出すデータの端部に加える減衰の有無です。ハミング窓やハン窓は端部の値を滑らかに0へ近づけることで漏れ誤差を抑制します。一方、矩形窓は端部を滑らかに処理しないため漏れ誤差が大きくなりますが、時間領域での振幅の正確さや計算の単純さにおいて優れています。
注意点
矩形窓を適用した後にフーリエ変換を行うと、サイドローブと呼ばれる大きな余分なピークが発生し、周波数分解能が低下します。そのため、周波数解析の精度が求められる音声合成や高度な信号処理においては、矩形窓のまま処理するとノイズの影響を受けやすくなる点に注意が必要です。