6

音の豊かさを判断するために、音楽のサンプルの倍音の数を判断したいと思います。そのために、 FFTで完全なスペクトルを提供するMinimライブラリでProcessingを使用しています。FFTによって生成されたスペクトル内のすべてのピークをカウントする方法を知りたいのですが、基本周波数にも興味がありません。

4

1 に答える 1

3

これを実現するには、ニーズに応じてさまざまな方法があります。

すべてのピークをカウントしたい場合は、強度が増加しているか減少しているかを覚えて、スペクトル内のすべての周波数を反復処理する必要があります。増加から減少への方向の変化に気付くたびに、ピーク カウンターをインクリメントします。ただし、これには非常に弱いピークも含まれることに注意してください。これは、必要なものである場合とそうでない場合があります。ピークが登録されるために発生する必要がある増加と減少の量に最小制限を設定できます。

または、シグナルの強度のベースラインを見つけて (最も単純なケースでは平均を使用)、正の外れ値の数をカウントします (ベースラインからの構成可能な最小偏差を使用)。このアプローチを変更して、周波数依存のベースラインと最小値を使用して、より高い周波数で強度が徐々に低下することを考慮すると、おそらくより良い結果が得られます (これも、特定の信号と、これが役立つかどうかのニーズによって異なります)。これを行う簡単な方法の 1 つは、スペクトルをバンドに分割し (各バンド全体で多かれ少なかれフラットなエネルギー分布を想定できるほど小さい)、各バンドに異なるベースラインと最小値を使用することです。

于 2011-11-06T10:44:55.633 に答える