オーディオ信号の対数フーリエ変換(LFT)


9

音楽をできるだけ正確に分析するようにしています。もちろんFFTを試しましたが、いくつか問題がありました。

低周波は人間の聴覚よりも解像度が非常に低いことがわかりました。この問題を解決するために非常に長い時間のFFTを試してみましたが、44100Hzのサンプルレートで8192サンプル/秒で分析しても(時間分解能の欠如を意味します)、低周波数では十分な分解能が得られませんでした。

私はいくつかの解決策があることを発見しました。

最初に、FFTビンの2次補間。
しかし、それは完璧な方法ではないようです。この方法の問題は次のとおり

です。1。「freqビン間のfreqを決定する場合、補間を行うためにどの3つのビンを選択する必要がありますか?」
2.「これを行っても、結果に関する実際の追加情報はありません。補間は一種のトリッキーな方法だと知っています。」

次に、目的の頻度で各周波数ビンを抽出するので、ビンを対数的に抽出できます。
しかし、重大な計算コストの問題があります:(多分)N ^ 2。

第三に、LFT(対数フーリエ変換)。
これは対数間隔のサンプルを必要とし、信じられないほど速い速度で私が探しているものとまったく同じ結果をもたらします。/programming/1120422/is-there-an-fft-that-uses-a-logarithmic-division-of-frequency

しかし、そのアルゴリズムについてはわかりません。紙を理解して実装しようとしましたが、英語と数学のスキルが不足していたため不可能でした。

したがって、LFTの実装の助けが必要です。

回答:


8

最も単純で最も実用的なソリューションは、関心のある最低周波数で必要な解像度を得るのに十分な大きさの通常のFFTを使用することです。たとえば、関心のある最も低い周波数で1 Hzの解像度が必要な場合は、1秒のFFTウィンドウが必要になります。つまり、FFTサイズはサンプルレート(44100など)に等しくする必要があります。

対数FFTを実装できたとしても、物理法則(情報理論)に拘束され、同様の長さのサンプルウィンドウが必要になることに注意してください。 )パフォーマンスを犠牲にして。


それは奇妙だ。理論的にはこれ以上データがないことは知っています。大きなサイズのFFTを使用する場合、それは楽器の非常に高速な開始を分析できないことは事実です。そして、私が低周波数でより高い解像度を得ることができないのも事実です。しかし、人間の聴覚システムはどうですか?そのシステムはどのように時間と周波数の両方でより高い解像度を得ていますか?

3
おそらく、より高い周波数で短い時間ウィンドウを使用し、より低い周波数で長い時間ウィンドウを使用できるように、連続する各オクターブを2倍に削減する階層的アプローチを検討する必要がありますか?これは、帯域幅が周波数とともに増加する聴覚フィルターバンクにいくらか類似しています。
Paul R

素晴らしいアプローチ。低周波数では長時間のゲルゼル、高周波数では短時間のゲルゼル?理にかなっています。しかし、多大な計算コストが必要になります。

それはおそらくだよりそれはより複雑だとしても、一つの大きなFFTを行うよりも効率的。たとえば、4オクターブの階層の場合、x2ダウンサンプリング用に4 x 2048ポイントFFTと3つのローパスフィルターが必要になる場合があります。最小のFFTの解像度は、フルサンプルレートで単一の16384ポイントFFTと同じですが、FFTはO(n log n)であるため、総計算コストは​​はるかに低くなります。
Paul R

aha、FFT 2048、ダウンサンプルx2、FFT 2048、ダウンサンプルx2 ... 16384 FFTよりもはるかに少ないコストで、時間と周波数の両方の解像度があります。すごい。そして今、もう1つの解決策があります。16384サンプルでは、​​32回ごとにgoertzelです。したがって、累積することで、低周波数と高周波数の両方をより少ないコストで抽出できます。どうもありがとう。:)

0

実行する分析で各ビンの信号の周波数が必要な場合は、短時間フーリエ変換を使用してこれを実現できます。

FFTの各ビンは、実数成分と虚数成分を表す、または少し操作の段階と大きさの後の複素数を生成します。

周波数= dPhi / dt(Phi ==位相)なので、連続するSTFTスペクトルのペアから対応するビンを取得することにより、周波数を計算できます。

DSPディメンションには、このプロセスに関する優れた記事があります。


さらに複雑な問題を考えているようです。FFTを使用することはできますが、オーディオ信号の分析には適していません。

3
短時間フーリエ変換の「定数Q」バージョンを見てください。STFTのこの配置は、異なる周波数範囲の要件に対応するために対数的に調整する周波数分解能を提供します。
user2718 2013年

見てみます。これは、fft結果に適用される単純なフィルターバンク変換操作であると思いました。
Laie
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.