FFTからスペクトル平坦性をどのように計算しますか?


17

さて、スペクトルの平坦性(ウィーナーエントロピーとも呼ばれます)は、スペクトルの幾何平均と算術平均の比として定義されます。

ウィキペディアおよび他の参考文献は、パワースペクトルを述べてます。それはフーリエ変換の二乗ではありませんか?FFTは「振幅スペクトル」を生成し、それを二乗して「パワースペクトル」を取得しますか?

基本的に、私が知りたいのは、spectrum = abs(fft(signal))これらのどれが正しいですか?

  • spectral_flatness = gmean(spectrum)/mean(spectrum)
  • spectral_flatness = gmean(spectrum^2)/mean(spectrum^2)

ウィキペディアの定義は大きさを直接使用しているようです:

Flatness=n=0N1x(n)Nn=0N1x(n)N=exp(1Nn=0N1lnx(n))1Nn=0N1x(n)
ここで、x(n)ビン番号n大きさを表します。

SciPyのドキュメントでは、パワースペクトルを次のように定義しています。

入力aが時間領域信号であるA = fft(a)場合、np.abs(A)は振幅スペクトルでnp.abs(A)**2あり、パワースペクトルです。

このソースは、「パワースペクトル」の定義について同意し、それをと呼びます。Sf(ω)

FT(ω)Sf(ω)=limT1TFT(ω)2.

このソースは、に関してWienerエントロピーを定義します。S(f)

しかし、このような方程式では二乗は見られません。これ振幅スペクトルに基づいているようです:

Sflatness=exp(1Nklog(ak))1Nkak

同様に、別のソースはパワースペクトルに関してスペクトルの平坦性を定義しますが、FFTビンの大きさを直接使用します。これは、上記の「パワースペクトル」の定義と矛盾するようです。

「パワースペクトル」は、人によって異なることを意味しますか?


ウィキペディアによると:スペクトル平坦度 akはビン番号kの大きさを表します。
ハメドゴラミ

こんにちは、@ endolithさん、受け入れていただける満足のいく答えが得られましたか?
jojek

ノー@jojek、まだ
endolith

1
@endolith、私はピーターがちょうど頭に釘を打ったと信じています;)
jojek

@jojekボードに釘を打ち込もうとしました。😂
ピーター・K.

回答:


4

私が思いつく最も権威ある参考文献は、ジャイアントとノル、デジタル符号化の波形、(c)ベル電話研究所、1984年、Prentice-Hall、Inc.発行のものです。

57ページで、スペクトルの平坦性を定義します。

スペクトル平坦度

そして、以前は55ページでを定義しています:Sxx

パワースペクトルの定義

したがって、FFT 2乗バージョンが必要です。

それは次のようになりますMakhoul&ウルフ、線形予測と音声のスペクトル解析、ボルト、Beranek、およびニューマン、Inc.の技術報告書、1972年にも利用可能です。

そして、それは同じ定義を持っています:

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

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


7

フラットネスの定義でパワースペクトルを使用する必要がある場合、はい、SciPyドキュメントからの参照が示すように、振幅を二乗する必要があります。あなたが参照した方程式では、二乗が見られなかったので、多くを読むことはできないと思います。と言う

Sflatness=exp(1Nklog(ak))1Nkak

しかし、定義はどこにもません。スペクトルを各ビンのパワーに比例させるには、二乗する必要があります。ak


私は、これは定義が実際に何についての質問です推測され、その後、
endolith

調波パーカッシブな弁別のための分節スペクトル平坦性測定に よると、はビン番号kの振幅スペクトルを表します。ak
ハメドゴラミ

@HamedGholami回答としてコメントを再度入力しないでください。あなたのコメントは質問への答えを提供するものではありませんが、ここでは役に立つようにしています。
ピーターK。

@PeterK。新しいユーザーはコメントを投稿できませんが、回答を投稿できます。
エンドリス

1
@endolithわかりました。しかし、jojekが最初の回答を質問に対するコメントに変えた後でも、Hamedは回答として同じコメントを再投稿しました。それが私が思いとどまらせたい行動です。彼らの「答え」が動かされた後に再投稿することです。
ピーターK。

4

定義はさまざまですよね?定住する必要がある最初の事は、私たちがいることに同意するかどうかであるパワースペクトル密度は同等ですパワースペクトル、または他の我々は両方によって何を意味するかを定義します。プロアキスとサレヒは同義語としてそれらを使用します。先に進むと、矛盾はパワースペクトルの定義が異なるためだと思います。その通常の定義は、フーリエ変換されたデータの大きさの2乗です。ウィーナー=ヒンチンの定理は、自己相関のフーリエ変換を介してWSS信号のパワースペクトルに別の経路を提供します。パワースペクトルを正方形で定義するかどうかに応じて、スペクトルの平坦性が正方形になります。

他の人はフーリエ変換の大きさを使用します。これを「パワースペクトル」と呼び、「パワースペクトル」の導関数に「パワースペクトル密度」という名前を予約する一方で、自己相関のフーリエ変換の積分に「パワースペクトル」という用語を予約しますパワースペクトル)。ご覧のとおり、定義はたくさんあります。自由に自分で発明してください:)または、Wiener-Khinchin標準に固執します。

関連質問パワースペクトル密度、スペクトルパワー、パワー比の違いは?


それは「パワースペクトル」も意味します。
エンドリス

1
ಠ_ಠ
エンドリス

0

それは良い質問であり、私自身も疑問に思っていました。スペクトルの平坦度(Weiner Entropyとも呼ばれます)は、単にベクトルの「ピーク」の尺度です。

このソースは、考慮中のベクトルがパワースペクトル密度であることを示しているようです。この場合、平方する必要があります。マグニチュードスペクトルを2乗すると、明らかに2乗しない場合よりもピークが強調されます。これは、より直感的な意味もあると思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.