従来の離散フーリエ変換(DFT)とその従兄弟であるFFTは、等間隔のビンを生成します。つまり、最初のビンの最初の10ヘルツ、2番目のビンの10.1から20などのようになります。しかし、少し違うものが必要です。各ビンでカバーされる周波数の範囲を幾何学的に増やしたいです。1.5の乗数を選択するとします。次に、最初のビンに0〜10があり、2番目のビンに11〜25、3番目に26〜48などが必要です。この方法で動作するようにDFTアルゴリズムを変更することは可能ですか?
従来の離散フーリエ変換(DFT)とその従兄弟であるFFTは、等間隔のビンを生成します。つまり、最初のビンの最初の10ヘルツ、2番目のビンの10.1から20などのようになります。しかし、少し違うものが必要です。各ビンでカバーされる周波数の範囲を幾何学的に増やしたいです。1.5の乗数を選択するとします。次に、最初のビンに0〜10があり、2番目のビンに11〜25、3番目に26〜48などが必要です。この方法で動作するようにDFTアルゴリズムを変更することは可能ですか?
回答:
私の論文を引用するには:
変換のコレクションには定数Qという名前が付けられ、フーリエ変換に似ています。
離散フーリエ変換の計算は、高速フーリエ変換を使用すると非常に効率的になります。ただし、信号のエネルギーは、スペクトル全体で均一なサイズの周波数バケットに分割されます。多くの場合これは便利ですが、この均一な分布が最適ではない状況に気付きます。そのような場合の重要な例は、音楽の周波数の分析で観察されます。西洋音楽では、音階を構成する周波数は幾何学的に間隔が空いています。したがって、離散フーリエ変換の周波数ビンと音階の周波数間のマップは、ビンのマッチングが不十分であるという意味で不十分であることがわかります。定数Q変換はこの問題に対処します。
定数Qの目的は、周波数ビンの幅が前の製品の積である対数間隔の周波数ビンのセットを生成することです。その結果、可聴スペクトル全体で音符ごとに同じ数のビンを生成し、各音符の一定レベルの精度を維持できます。周波数ビンは、高周波数ほど広くなり、低周波数ほど狭くなります。周波数検出の精度のこの広がりは、人間の聴覚システムが周波数に応答する方法を厳密に模倣しています。
さらに、西部音階の音符の緊密な一致により、音符検出で定数Qが特に役立ちます。明示的な周波数値ではなく音符の値を識別します。さらに、定数Qは音色分析のプロセスを簡素化します。楽器で演奏される音符の周波数は、多くの場合、調和的に関連する部分音で構成されます。楽器の音色は、倍音の比率によって特徴付けられます。定数Q変換では、基本周波数に関係なく、高調波がビン全体で等間隔になります。これにより、特性をビン間でシフトするだけで、スケール内の任意の場所でノートを演奏する楽器を識別するプロセスが大幅に簡素化されます。
離散フーリエ変換(FFTで計算可能)を定数Q変換に変換するための効率的なアルゴリズムについては、Brown and Puckette(1992)で詳しく説明されています。
DFT(FFT)には重要な数学的仮定があります。この場合の最も重要なことは、切り捨てられた無限時間正弦波変換を実行していることです。2番目は、切り捨てられた時間と切り捨てられた周波数信号がモジュロラップ(循環)されると想定されることです。通常のFFTで間隔が空けられたビンは、これらの仮定(および偶数の算術センス間隔)のためにのみ正規直交集合を形成します。したがって、時間<->周波数ペアは完全に可逆です。
定数Q変換はそれほどうまく切り捨てられないため、実際の実装では完全な正規直交ペアリングは得られません。カーネルは無限に長い指数関数的に減衰する正弦波であるため、上記の円形の利点はありません。切り捨てない場合、正規直交セットを形成します。
ウェーブレット変換は通常、2のべき乗間隔です。これは、きめの細かい周波数推定にはあまり役立ちません。
標準の正弦波DFTの間隔を不均等にするという提案は、間隔の広い領域では情報を見逃し、間隔の密な領域では情報を複製します。異なる場合、各周波数に対して異なるアポディゼーション機能が使用されます...非常に高価です。
実用的な解決策の1つは、ハーフスペクトル->デシメート-2の繰り返し手順を実行して、オクターブベースのサブセクションを取得し、オクターブごとのミニマックス推定誤差を満たすことです。ポーションスペクトル->比率によるデシメートを任意の比率に設定して、粒度のニーズを達成できます。ただし、依然としてかなりの計算集約的です。