時系列を平滑化するときにウィンドウ関数を選択する場合、何を考慮する必要がありますか?


25

ハニング、ハミング、ブラックマンなどのウィンドウ関数を使用して時系列を平滑化する場合、あるウィンドウを別のウィンドウよりも優先するための考慮事項は何ですか?

回答:


23

ウィンドウ関数を説明する2つの主要な要因は次のとおりです。

  1. メインローブの幅(つまり、どの周波数ビンで最大応答の電力の半分になるか)
  2. サイドローブの減衰(つまり、メインローブからサイドローブまでの距離)。これにより、ウィンドウ内のスペクトル漏れがわかります。

それほど頻繁に考慮されないもう1つの要因は、サイドローブの減衰率、つまりサイドローブが減衰する速度です。

4つのよく知られているウィンドウ関数の簡単な比較を次に示します。Rectangle、Blackman、Blackman-Harris、Hamming 以下の曲線は、64ポイントウィンドウの2048ポイントFFTです。

ここに画像の説明を入力してください

長方形関数のメインローブは非常に狭いことがわかりますが、サイドローブは非常に高く、約13 dBです。他のフィルターはメインローブがかなり太いですが、サイドローブ抑制の方がはるかに優れています。結局のところ、それはすべてトレードオフです。両方を持つことはできません。どちらかを選択する必要があります。

つまり、ウィンドウ関数の選択は特定のニーズに大きく依存します。たとえば、周波数がかなり近いが強度が似ている2つの信号を分離/識別しようとする場合は、最適な解像度が得られるため、長方形を選択する必要があります。

一方、異なる周波数の2つの異なる強度の信号で同じことを行おうとしている場合、一方からのエネルギーが高いサイドローブからどのように漏れるかを簡単に確認できます。この場合、太いメインローブの1つを気にせず、解像度をわずかに失うことで、そのパワーをより正確に推定できます。

地震物理学では、メインローブに集中するエネルギーを最大化するために、Slepianウィンドウ(または、sincカーネルの固有関数である離散扁長回転楕円体波動関数)を使用するのが一般的です。


2
「周波数がかなり近い2つの信号...長方形を選択する必要があります」が、通常はウィンドウサイズを大きくしてから、狭いメインが必要な場合はHann / Gauss / Hamming / ...ウィンドウを使用することをお勧めしますローブ。長方形はサイドローブが非常にひどく、ウィンドウの重なりにもあまり適していません。これはHannでうまく機能します。(もちろん、重複する大きなウィンドウを計算する余裕がある場合にのみ役立ちます。)
leftaroundabout

1
@leftaroundaboutもちろん、通常は固定ウィンドウサイズに対して比較が行われます。あるサイズのウィンドウを別のサイズのウィンドウと比較することは非常に不公平です。はい、長方形は大部分が安っぽいですが、場合によっては用途があります。OPの場合:ここStack Overflowのウィンドウについて、簡潔で簡潔な数学以外の説明があります。便利なあなたは(私はハリスの論文にリンクされてきましたが、私はマーティンが、それはここでは説明している参照)が、その中のリンクを見つけるかもしれない
Loremのイプサム

@LoremIpsum次のステートメント「64ポイントウィンドウの2048ポイントFFT」の正確な意味。.. 提案してください ?
user6363

8

1978年のこのフレッドハリスの独創的な論文では、さまざまなウィンドウが比較されています。

「離散フーリエ変換を使用した調和解析のためのWindowsの使用について」

読む価値があります!


ありがとう。私はここで、その文書のより良い品質のスキャンを見つけました:utdallas.edu/~cpb021000/EE%204361/Great%20DSP%20Papers/...
マーティンScharrer

1

時系列の平滑化は通常、ウィンドウ処理と同じコンテキストでは使用されないため、質問はやや混乱します。

おそらくあなたが意味するのは、時系列をウィンドウ化すると、周波数応答が平滑化(または不鮮明化)されるということです。ほとんどすべてのDSPブックで最も使用されているウィンドウのプロパティの説明とデザインのトレードオフを見つけることができ、ほとんどのトピックはhttp://en.wikipedia.org/wiki/Window_functionでもカバーされています。メインブックの幅とサイドローブの減衰の伝統的なものに加えて、DSPブックで説明されていないウィンドウ関数を選択するための1つの基準があり、それは計算上の利便性です。たとえば、一部のアプリケーションでは、ハミングウィンドウが優先されます。ハミングウィンドウをFFTする場合、ゼロ以外のタップが3つしか得られないためです。

もちろん、ウィンドウ関数にはローパス特性があるため、ウィンドウ関数でフィルター処理することで時系列を平滑化できます。しかし、それはおそらくあなたが尋ねていることではないでしょう。


@leftaroundabout: ""周波数がかなり近い2つの信号...長方形を選択する必要があります "ただし、通常はウィンドウサイズを大きくしてからHann / Gauss / Hamming / ...ウィンドウを使用する方が良い長方形は、サイドローブが非常にひどく、また、重複するウィンドウにはあまり適していません。これは、ハンとうまく機能します(もちろん、大きな重複するウィンドウを計算する余裕がある場合にのみ役立ちます)。 「。Hannでは他のウィンドウよりもオーバーラップがうまく機能する理由を説明できますか?
ナイアレン

その声明は排他的なものではありませんでした。私が経験したことの1つであるHannは、テストしたウィンドウの中で最もよく機能しましたが、他のウィンドウがより良い仕事をする他のケースがあるかもしれません。$ \ cos ^ 2 + \ sin ^ 2 = 1 $のために、コサインベースのウィンドウが一般的に最高のオーバーラップパフォーマンスを提供するのは、私の漠然としたヒューリスティックな疑いにすぎません。そのため、オーバーラップのどこで発生したかに関係なく、トランジェントは非常に均等に強く登録されます。
左辺約

ありがとう。私はあなたの例を理解しているかどうかわかりません。とにかく、50%オーバーラップするハンウィンドウが完全に再構築されるという事実に言及したと思います。
ナイアレン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.