1 / nオクターブスムージング


8

FFTで取得した周波数応答を考慮して、1 / nオクターブ平滑化を適用します。どのフィルターを使用する必要がありますか?たぶん誰かが良い参考文献(この件に関する論文や本)を指摘するかもしれません。


周波数を減衰させるピンキングフィルターを探していますかf 振幅に 1/f?それとも周波数を減衰させる何かが本当に必要ですかf 振幅に 1/(lg2f)
Wandering Logic

1
周波数を減衰させたくありません。可変帯域幅、つまり1オクターブ、1/3オクターブなどでデータを平滑化したい
Psirus

1
スピーカーの周波数応答は通常、グラフを解釈しやすくするために平滑化されますが、それでも非常に正確(1/20オクターブ平滑化)、またはマーケティングなどで非常に高い平滑化(1/3オクターブ)です。これは私が何度も読んだことですが、まさにここで見つけようとしていることを意味しています。
Psirus 2013

1
したがって、あなたの質問は、それ自体が信号の変更についてではなく、デバイスの周波数応答をグラフィカルに表示する方法についてです。そうですか?
ジム・クレイ

1
この記事には貴重な情報が含まれていると思います。ただし、残念ながら無料ではありません。基本的なアプローチは、で説明され、この1
applesoup

回答:


8

通常、「スムージング」とは、「現在の値を隣接する値の平均で置き換える」ことを意味します。最も一般的なのはエネルギー平滑化です。平滑化により、平滑化インターバル全体のエネルギー平均が得られ、位相情報が失われます。複雑な平滑化も行うことができますが、位相ラッピングのため、ビジネスはトリッキーです。

エネルギー平滑化は次のように表すことができます

Y(k)=1Ni=0N1X(i)X(i)Wk(i)

どこ Wk(i)いくつかの適切なウィンドウ関数です。たとえば、3オクターブの平滑化の場合、これは、周波数kの周りの3オクターブのバンドパスフィルターの伝達関数の2乗の大きさとして導出できます。これは、たとえば1024ポイントFFTの場合、1024の異なるバンドパスフィルターを設計する必要があることを意味します。これはかなりの作業です。

平滑化フィルターの正確な形状が柔軟であれば、物事を簡素化できます。長方形の平滑化は次のように行うことができます

Y(k)=1ba+1i=abX(i)X(i)

どこ

a=round(k212n),b=round(k212n)

単にバンドエッジのインデックスです。 nth オクターブスムージング。

複雑さの点で、任意のウィンドウと長方形のウィンドウの中間にあるメソッドがいくつかあります。


これをCコードで実装しようとしていますが、表記で少し迷ってしまいます。たとえば、aからbに実行しているiの合計がどのように機能するかを理解するのに苦労していますか?どんな援助も感謝します。
Andrew Smith

親指は2つですが、残念ながら投票は1つだけです。この追加の質問では、フェーズラッピングに関するトリッキーなビジネスを含め、1 / nの複雑な平滑化がどのように行われるかを尋ねます。
SpeedCoder5 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.