さて、スペクトルの平坦性(ウィーナーエントロピーとも呼ばれます)は、スペクトルの幾何平均と算術平均の比として定義されます。
ウィキペディアおよび他の参考文献は、パワースペクトルを述べています。それはフーリエ変換の二乗ではありませんか?FFTは「振幅スペクトル」を生成し、それを二乗して「パワースペクトル」を取得しますか?
基本的に、私が知りたいのは、spectrum = abs(fft(signal))
これらのどれが正しいですか?
spectral_flatness = gmean(spectrum)/mean(spectrum)
spectral_flatness = gmean(spectrum^2)/mean(spectrum^2)
ウィキペディアの定義は大きさを直接使用しているようです:
ここで、はビン番号大きさを表します。
SciPyのドキュメントでは、パワースペクトルを次のように定義しています。
入力aが時間領域信号である
A = fft(a)
場合、np.abs(A)
は振幅スペクトルでnp.abs(A)**2
あり、パワースペクトルです。
このソースは、「パワースペクトル」の定義について同意し、それをと呼びます。
このソースは、に関してWienerエントロピーを定義します。
しかし、このような方程式では二乗は見られません。これは振幅スペクトルに基づいているようです:
同様に、別のソースはパワースペクトルに関してスペクトルの平坦性を定義しますが、FFTビンの大きさを直接使用します。これは、上記の「パワースペクトル」の定義と矛盾するようです。
「パワースペクトル」は、人によって異なることを意味しますか?