以前の投稿でコメントしたように、「短期フーリエ変換」と呼ばれる時間周波数解析法は、信号xを解析するフィルターバンクと同等です。サイズの特定の分析ウィンドウw nに対してバツバツwn、周波数におけるフィルタ kは/ Nがある:
H 、N = wが- N E J 2 π n個のKNk / N
hn= w− neJ 2 πn kN
通常の分析ウィンドウ(ハン、ハミング、または長方形)の場合、これは、周波数ビンk(複素指数変調のおかげ)に「シフト」されたカットオフ周波数が約ローパスフィルターに対応します。、したがって、バンドパスフィルターにつながります。1 / Nk
この時点で、人間の知覚を反映することについてのあなたの懸念に直接答えるために、一部の人々は["constant-Q transform"(CQT)] [Brown91]を導き出しました。フィルターバンクの解釈では、FTと同じ原理に依存しています。ただし、中心は、「通常の」FTのように直線的に間隔を空けられず、log2間隔になります。音階は西洋音楽の音階と密接に関連しています:f k +fk、我々はオクターブ当たり12個の周波数を得る(?ベルを鳴らし:-))、および帯域幅は次のように設定されています、と言う 2 1 / 12 - 1fk + 1= 21 / 12fk。ニーズに最適な他のセンターを選択することもできます。21/ 12− 12fk
CQTの実装は、あちこちで見つけることができます。クラプリ教授による最近の実装は、かなりまともな逆になっています。Telecom ParisTechのAudioグループにもPrado教授による実装がありますが、私はまだ試していません。
[Brown91] J.ブラウン、「一定のQスペクトル変換の計算」、アメリカ音響学会誌、1991、89、425-434
EDIT 20121014:(bryhoyt's)の質問に対するいくつかの回答とコメント。
主な質問に対するあなた自身のコメントについての一般的なアイデア:あなたは、私にとっては対処するのにささいな問題ではない多くのアプリケーションに興味があるようです。「音色モデリング」は、ピッチや周波数の解像度や精度がそれほど問題にならない音声認識などに関連しているように聞こえます(MFCCの通常の計算方法を考慮してください)。
また、トップの研究者(F. PachetとフランスIRCAMのrepmusチーム)が自動即興と伴奏の自動化のトピックに取り組んでいる人数も考慮してください。このタスクは不可能ではありませんが、多くの分野の専門知識が必要です。要約すると、典型的なシステムは、(少なくとも)人間の聴覚システムを模倣し、音/音楽/ピッチ/リズムの知覚を実装し、音楽理論を知り、前のすべてのステップの推定に基づいて決定を下す必要があります。フーリエ変換、または任意の信号表現は、最終目標に向けたほんのわずかなステップです。私の意見では、これまでのところ最もよく理解されている可能性があります。
とはいえ、誰もが実際に起こっていることをはるかに超えて見ている可能性があり、シンプルでエレガントなソリューションでそれを取り締まるかもしれません!完了したら、公開することを忘れないでください!:-)
44kHzで0.1秒のサンプルで十分な範囲の周波数を含む
これは、FTの場合、のオーダーの解像度につながりますFs/ N= 44100 / 4410 = 10 Hz
FFTはこれを低周波数と高周波数で検出することはできませんが、他のアルゴリズムでも検出できると言います:トレードオフは何ですか?
短い答え:メロディ推定に関する私の論文を読んでください!
もう少し詳しく説明すると、処理するサウンドの仮定のおかげで、多くのピッチ推定アルゴリズムがFTの制限を超えています。自然な音(人間の声、オーボエ、サックス、ピアノなど)からの音は、単一の正弦波よりも複雑であると予想されます。ほとんどのピッチ音は多かれ少なかれ高調波です。つまり、周波数が基本周波数の倍数である正弦波の和としてモデル化できます。
したがって、スペクトル和、スペクトル積、または自己相関関数などの検出関数を使用する方法では、ピッチを推定するときにこれらの高調波を考慮することが有用です。最近、誰かが関連トピックを始めました。
トレードオフは何ですか?より具体的には、適度に短いウィンドウに対してどのレベルの周波数精度を期待できますか?(CQTのウィンドウサイズは可変であることがわかります-どのくらいそうですか?)さらに具体的には、どのくらい近くまで到達できますか。0.005sのウィンドウで0.5%の周波数差を目標としていますか?
前述のように、0.005秒のウィンドウでは、200Hzの「周波数リーク」のようなものが期待できます。それは、FTが2つの異なる正弦波であることをFTが示すことができないように、周波数が200Hzに近い2つの正弦波がある場合にのみ本当に問題になります。まあ、私たちはあなたの0.5%からは程遠いです(ところで、半音は周波数の6%です!)、0.005sはあなたの目的のために本当に小さいです。ただし、0.005秒ごとに推定値を提供する場合は、音声/音楽処理で通常行われるように、より長いオーバーラップフレームを処理できます。それはあなたが実際に欲しいものですか?
ウィンドウのサイズについては、[Schoerkhuber2010]を参照できます。フレームの長さは次のとおりです。
Nk= Fsfk(21 / B− 1 )
BB = 48fk= 100 Hz約0.7秒の長いウィンドウが必要です。その後、一時的な解像度が少し失われることは言うまでもありません...しかし、前述のように、これは音の構造を忘れた場合にのみ問題になります。さらに、心理音響学は、500Hz未満では、人間は正弦波をそれほどうまく区別していないと考えています。もちろん、私たちのコンピューターが私たちよりもうまくいくことを願っていますが、ここで私たちは難しい問題に直面しています!
最後に、音の時間周波数表現を計算する他の方法が存在することに注意してください。たとえば、ガンマトーンフィルターバンクを検討してください。前述のCQTの利点は、変換とその反転の両方に対応するソフトウェアがあることです。個人的には、STFTに固執していますが、それは単純さのためであり、これまでのところ、ソース分離であっても低周波数でより良い解像度を必要としていないからです。
[Schoerkhuber2010] Schoerkhuber、C。およびKlapuri、A。、「音楽処理用のConstant-Q変換ツールボックス」、第7回Sound and Music Computing Conference、バルセロナ、スペイン、2010年。