DFT-畳み込みを使用したスペクトルドメインのウィンドウ効果の削除


11

DFTのウィンドウ処理の件について考えていたとき、思いついた。DFTは、使用されるウィンドウのスペクトルで畳み込まれた信号のスペクトルを生成します。したがって、メインローブとサイドローブがあります。

信号とウィンドウスペクトルの大きさの両方を再度畳み込むことで、信号のスペクトルに対するウィンドウ効果を取り除くことができると考えました。次の画像からわかるように、実際に機能しました。

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

左は、ハニングウィンドウで生成された元のスペクトルです。右は、ハニングウィンドウのDFTによって畳み込まれたスペクトルです。上はスペクトル自体、下はMATLABのfindpeaks結果です。

私はこのテクニックに関して何も読んだことがありませんが、私はそこに何も発明していないと確信しています。したがって、この処理をスペクトルで実行することの利点があるのか​​、それとも私には見られない欠点があるのか​​と思います。

私が見るところから見ると、前の画像でわかるように、これはピーク検出に役立ちます。また、次の2つの画像でわかるように、スペクトルが少し歪んでいるように見えます。:

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

青いグラフはスペクトル、赤いグラフは畳み込み後のスペクトルです。

  • これについて何か考えはありますか?
  • このFFT後の畳み込みから発生する可能性のある問題はありますか?
  • 主題を扱う紙はありますか?

編集

次のグラフを生成するスクリプトがここにあります。

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


1
図をプロットするために使用したコードを提供できますか?たたみ込み関数の滑らかさは、解像度の問題にすぎないと思います。あなたは(あなたが実際に必要となる同じウィンドウでまだ1より多くの時間を畳み込むことにより、ウィンドウを元に戻すことはできません RBJの答えが参照するものであるコンボリューション、)。さらに、実際の改善は、周波数分解能の増加、および/またはサイドローブ抑制の増加であり、これらのいずれもここでは達成されません。「正しい」ピークを見つけることは、どちらの関数でも比較的簡単です。
Matt L.

コードの例を追加するために投稿を編集しました。
Pier-Yves Lessard、2016

回答:


1

実際、提案にはマイナス面があります。表示した信号はすべて非常に明確に周波数成分に分割されますが、実際の信号は一般にノイズが多くなる傾向があります。

アプリケーションに応じて、できるだけ多くの漏れ減衰(メインローブが高い/変換されたスペクトルの信号周波数のサイドローブが小さい)、または別の例として、可能な限り狭いメインローブが必要です。

プロットでは、マグニチュードスペクトルをウィンドウで平滑化すると、これらとは逆に、メインローブが広くなり、小さくなりますが、電力の有限時間信号ゲインを変換することで漏れ積が生じます。ノイズの多い信号に適用すると、これは重大な欠点をもたらします。

しかし、あなたの提案は、ピーク同定にまだかなり役立ちます!


1

「OPがおそらく何か他のものまたは類似のものを達成したいと思っていたとしても」主題の「畳み込みによるfreqドメインのウィンドウ効果の除去」に忠実であり続けると、この特定のトピックに関する個人的な経験を持つコメントを追加したいと思います。

多くの場合、周波数領域でハンウィンドウを削除し、デフォルトでハンウィンドウフレームを使用するSTFTフレームワークで作業し、入力スペクトルが非ウィンドウとして期待される高度なスペクトル処理を実行する必要があります(例:オーバーラップ保存畳み込みまたはフィルタリング)。

つまり、可能です。(時間領域または周波数領域のいずれかで)ウィンドウを数学的に削除しても、永久に失われるデータを再構築することを意味しますが、実際には、最小限の損失で可能です。

Hann(rised cosine)ウィンドウを見てみましょう。その時間領域の公式はy =(1-cos(pi * x))/ 2で、xは0からフレームまで1を除いた範囲です。その対応する周波数領域表現は、bin0 =(0.5,0i)、bin1 =(-0.5,0i)です。時間領域での影響を取り除くには、上記のウィンドウ関数で信号を除算するだけです。周波数領域で同じことを行うには、単純にスペクトルの畳み込みを解除して、その関数の逆数のスペクトルでウィンドウを解除します。この関数は両端がゼロであるため(丸め誤差がない限り、実際には最初の点でのみ数学的にゼロです)、無限大を回避するには、10000程度の大きな値で無限大を交換するだけです。そのようなたたみ込みの結果は、窓のないスペクトルです。時間領域に戻すように変換することで、

おそらく、長方形のウィンドウを削除することはできません。これは、信号の広い領域にゼロを掛けることによって失われるデータの量は、理論的には回復できないためです。しかし、これはスペクトルの内容に依存すると思います。たとえば、それが単純な正弦波のスペクトルである場合、長方形がゼロの場合は高い値であり、1の場合はその関数のスペクトル(つまりその逆数)のスペクトルと畳み込み、長方形のウィンドウパターンを削除すると、おそらく、正弦波のスペクトルを(実質的に)取得して、信号全体を再構築することができます。


0

それは良い質問であり、他の人が持っていたと確信している良い洞察です。周波数領域で-convolutionは、時間領域での乗算のようなもので、あなたは、周波数領域でのハン・ウィンドウの影響をデコンボリューションしている場合、それは、時間領域でHannウィンドウの効果によって自分の分圧のようなものです。ハンウィンドウがゼロになる尾では、小さすぎる数で除算するので心配する必要はありません。

通常、ウィンドウ効果はそのまま残されます。変換を元に戻す場合は、時間領域でのウィンドウ効果が必要になる場合があるためです。または、元に戻さない場合(これは分析またはモデリングのアルゴリズムであり、変更のアルゴリズムではありません)、それらのピークのプロパティであるパラメーターにのみ関心があり、既知のコンボリューションとの畳み込みの既知の効果に対処するだけです。カーネルと抽出されたパラメーターを決定論的に変更する可能性があります。次に、抽出したパラメーターでそれを補正します。

最後に、何をしているのかによっては、ガウスウィンドウを使用して分析することを検討することもできます。サイドローブの問題はほとんどなく、線形条件(フィルターなど)では、ウィンドウ処理された各正弦波は時間領域に変換されたときにウィンドウ処理された形状を保持します。このウィンドウは元に戻すことができ、時間領域に変換した後にハンウィンドウが適用されます。


6
原則として私はあなたの発言に同意します。しかし、OPはデコンボリューションについて話しているのではなく、取得したスペクトルとハニングウィンドウのスペクトルをたたみ込みます。(つまり、本質的にハニング2乗ウィンドウでウィンドウ処理)
MaximilianMatthé2016

1
いいえ、OPは効果を2倍にするのではなく、効果を取り除くことについて話している。除算は、逆数による乗算と同じです。そのような数値を掛けることで、と呼ぶ結果が得られます。一つのドメインに畳み込むことは、他のドメインに掛けると同じであるということで、その後、デコンボリューションは、ある特別な決定何かを畳み込むと同じ。
robert bristow-johnson 2016

2
OPは、ウィンドウのスペクトルを使用して、取得したスペクトルのたたみ込みを実行することにより、リップルを取り除くことについて話します。これにより、信号の二乗ウィンドウでの乗算が行われます(時間の最初の乗算からの1つのウィンドウ、周波数の畳み込みからの2番目のウィンドウ)
MaximilianMatthéDec

1
まあ、そうではありません。スペクトルの大きさのたたみ込みを行います。これにより、二乗ウィンドウの乗算から異なる結果が得られます。それが数学的に何を表しているのかわかりません...私はそれを両方のスペクトルの大きさの間の相互相関と見なします(ウィンドウスペクトルは対称であるため)。
Pier-Yves Lessard 2017年

0

スペクトルを平滑化するために使用した手法は、スペクトル自体を分析するときによく使用され、時間領域での影響を気にしません(たとえば、周波数ベースの信号検出や帯域幅測定を行う)。平滑化に使用されるウィンドウが時間領域で使用されるウィンドウと同じであるという要件さえありません。DFTの前に時間領域ウィンドウを使用する主な理由の1つは、DFTが信号の両端で想定するラップアラウンドの不連続性を最小限に抑えることです(DFTは本質的に循環です)。周波数領域での平滑化の目的は、ピーク検出や帯域幅測定などの分析を容易にすることです。一方の「最良の」ウィンドウは、もう一方の「最良の」ウィンドウであるとは限りません。実際、スペクトル平滑化に使用されるウィンドウのDFTを見たことがありません。


私が理解している方法は、スペクトルと相互相関を行っているため、メインローブの中心にピークが発生するということです。時間領域ウィンドウを使用することは明らかな選択のように思われ、ハニングウィンドウスペクトルが配置されている場所を見つけるためにボックスカーウィンドウ相互相関を使用する理由がわかりません。同じウィンドウ以外のものが必要なのはなぜですか?
Pier-Yves Lessard 2017年

はい、あなたが説明する結果はウィンドウの自己相関とのたたみ込みですが、それは別のウィンドウとのたたみ込みです。自己相関は、DCで非常にタイトなピークになります。非常にタイトなローパスフィルターで信号スペクトルを効率的に畳み込みました。自己相関であるという事実ではなく、このフィルターの周波数応答が結果を表示しています。自己相関であるというのは偶然です。
キャスマン2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.