ウィンドウのゲインを修正するのは慣習ですか?


9

ハニングウィンドウの定義方法を考えます。

0.5 - 0.5 * cos(n*2*Pi/(N-1))

この定義により、ゲインは0.5になり、これは単に係数の平均値です。対照的に、定義されているフラットトップウィンドウは、おそらく設計上、ユニティゲインを持っています。

ハニングウィンドウを2倍に拡大するのが適切と思われますが、これがどこかで議論されたことはありません。ユニティゲインを得るために、すべてのウィンドウをスケーリングする必要があるようです。

実際には、ウィンドウは通常、ゲインに対して補正されていますか?そうでない場合、なぜでしょうか?

編集:

誰も答えを出していないので、少し詳しく説明します。

より一般的なウィンドウの利点を報告する論文を見つけるのは非常に簡単です。しかし、スペクトル分析に使用する前にゲインを修正することについて言及している人を見たことはありません。多分私はいつもその声明を見逃していたか、誰もがゲイン修正が明白な要件であると想定しています。

信号のエネルギーレベルが維持されるように、ウィンドウのゲインを1に設定するのは常識のようです。さらに、1つがフラットトップのように0 dBのゲインを持ち、もう1つがガウスのように10 dB近くの損失を持っている場合、さまざまなウィンドウの振幅精度をどのように比較できますか。

ウィンドウはFIRフィルターの設計にも広く使用されています。このアプリケーションでは、ウィンドウ処理される信号(sincパルス)のほとんどのエネルギーがウィンドウの中心にあることは明らかです。その結果、ウィンドウはsincパルスの総エネルギーを減らすためにほとんど機能しません。したがって、フィルター設計に使用する場合、フラットトップを除くほとんどのウィンドウのように、ユニティゲインではなく、ユニティピーク振幅が必要です。単一のピーク振幅以外のものは、結果のFIRフィルターのゲインに影響します。


1
これは、アプリケーションとウィンドウの適用方法(たとえば、乗算または畳み込み)によって異なります。いくつかの一般的な正規化の種類は、DCゲインを1に、またはエネルギーを1にスケーリングすることです。
Jason R

乗算を介して適用することについて言及していました。
user5108_Dan

2
スカラップのため、ウィンドウのゲインは、ウィンドウによっては、すべての周波数で一定ではありません。したがって、スケーリングは、実行する分析のタイプによって異なります。
hotpaw2 2014

ウィンドウのゲインとは何ですか?
Yves Daoust、2015

2
ウィンドウのゲインは、私が理解しているように、係数の平均値(つまり、Sum / N)です。この定義を使用する2つの論文は、Fred Harris(ウィンドウゲインの比較については表1を参照)とMax Planck Inst(S1の定義と使用を参照)です。この定義は、ウィンドウを純粋な正弦波に適用した場合の効果を見るだけで十分に明確に思えます。
user5108_Dan

回答:


3

はい、後で参照する場合を除いて、ウィンドウのゲインを修正するのが通例です。(もちろん、相対振幅のみに関心がある場合は、ゲインを補正する必要はありません。)

ウィンドウによって元の信号(時間領域)のゲインが減少するため、FFTによって取得された振幅を補正する必要があります。たとえば、ハニングウィンドウを使用する場合、すべての振幅に2(0.5の逆数)を掛ける必要があります。私が理解しているように、FFTのほとんどのソフトウェアパッケージは、使用されるウィンドウを自動的に修正します。

ただし、このような補正は、対象となるすべての周波数が時間領域ウィンドウ全体に分布している場合にのみ有効です。たとえば、値が1の#512ポイント(インパルス信号)を除いて、すべての信号レベルがゼロの1024データがあるとします。明らかに、ウィンドウはデータに対して何もしません。したがって、ウィンドウゲインの振幅を修正すると(2で乗算)、振幅が過大評価されることになります。1の値を持つ最初のポイントを除いて1024データがすべてゼロの場合、ウィンドウ処理後、すべてのポイントの値がゼロになり、信号が失われます。

したがって、ランダムな信号を扱い、すべての周波数成分が信号の長さにわたってほぼ均等に存在すると予想される場合は、使用するウィンドウのゲインを修正する必要があります(または修正する必要があります)。


ありがとうございました。これは私がそうであるべきだと思っていたものですが、どこにも述べられているのを見たことがありませんでした。
user5108_Dan

1

「ウィンドウのゲインを修正する」 1つの方法は、ウィンドウの定義でそれを行うことです。これはどういう意味ですか?ゲインをどこで修正しますか?で、その頻度?DCで?DCでウィンドウのゲインを補正する場合、すべての係数が1に加算されることを意味します。

Σ=+w[]=1

または

+wt dt=1

ウィンドウのゲインは周波数の関数と言っていますか?ゲインウィンドウを平均して、係数で割った和をNで割って計算します。あなたが示したように、私はこれを合計ではなく1にしたい。したがって、ハニングのゲイン補正係数は2です。fftでゲイン補正ウィンドウを使用すると、正しい振幅値が得られます。つまり、私がテストしたすべてのウィンドウは、各スペクトル成分に対して同じ振幅を与え、それらはすべて非ウィンドウFFTに一致します。ゲインが補正されていないウィンドウを使用すると、すべて異なる結果が得られ、フラットトップのみが正しい振幅値を示します。
user5108_Dan

「ウィンドウのゲインは周波数の関数だと言ってるの?」 よく、場合のみ
Wf=wtej2πftdt
f
Wejω=Σ=w[]ejω
ω212

私の見たところ、ハンウィンドウのゲインは、DCだけでなく、すべての周波数で1/2です。言い換えると、FFTのすべてのスペクトル成分は本来よりも6 dB低くなります。ユニティゲインのフラットトップウィンドウを使用すると、すべてのスペクトルコンポーネントが正しいレベルになります。何か間違ったことをしているに違いない。
user5108_Dan

あなたはそれをどのように見るのか分からない。Hannウィンドウをどのように使用していますか?元の信号のどの場所でウィンドウを適用していて、ウィンドウ処理されたデータをどのように処理しますか?
robert bristow-johnson 2014

私はマルチトーン信号を作成し、次のようにウィンドウします。ここで、N = 1024 sig(n)= 1 + sin(50 * n * 2 * Pi / N)+ sin(75 * n * 2 * Pi / N)win (n)= 0.5-0.5 * cos(n * 2 * Pi /(N-1))windowed_sig(n)= sig(n)* win(n)次に、windowed_sigのfftを取得します。結果は正しいように見えます。ウィンドウ化された信号のFFTにエラーがあるように見えます。誤差は、ハンウィンドウでは6 dB、ガウスでは約10 dB、フラットトップでは0 dBです。
user5108_Dan

0

ハーフファクターは単位振幅に正規化されます。


これは質問に対する答えを提供しません。批評したり、著者に説明を求めるには、投稿の下にコメントを残してください。
jojek

@jojek:これ以上説明する必要はありません、これは初歩的な質問です。
イヴ・ダウスト

私はここでイブに同意します。質問は初歩的です。そしてこの答えは確かに質問者の発言の誤りを示していBy this definition, it has a gain of 0.5ます。
Peter K.

@PeterK .:サポートに感謝します。結局のところ、私は無意味な質問に答えるのは間違っていました。ウィンドウの「ゲイン」は定義されていません。
Yves Daoust、2015

1
@PeterK .:ありがとう、OPが明確化のリクエストにどのように答えるかに応じて、私は自分でやります。
Yves Daoust、2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.