5

iPhone(つまり実際の)データでオーディオデータを取得する場合は、FFTを実行してから、大きさ(Re ^ 2 + Im ^ 2)を取得します。

これらは>0からいくつかの大きな数まで変化するので10log(n)、dBで取得します。

これにより、(1未満の入力に対して)負から正の出力が得られます。

しかし、これについて私が見た例(およびSonic Visualiserでスペクトルを描画すること)は、dBで測定すると常に正のスペクトルを持っています。

だから私は何を逃したのですか?!

より広い意味で、私が理解しているように、デシベルは比率です。したがって、このコンテキストでは、FFTの大きさをdBに変換するとき、それらは何に対する比率ですか?

4

2 に答える 2

4

簡単な答えは、ほとんどの場合、dB値に任意の数値を追加して、値をすべて正、すべて負、または任意の値にすることができるということです。iPhoneのように、キャリブレーションされていないマイクの場合、知っているのは相対値だけなので、とにかくこれが理にかなっています。

キャリブレーションされたマイクを使用するより高度な技術的アプローチでは、妥当な標準としてdB(SPL)を使用してすべてを参照できますが、これは面倒であり、とにかくユースケースでは意味がありません。

理論的根拠:任意の量だけシフトする主な理由は、ログが測定単位を
報告しないことです。たとえば、入力振幅が0.1パスカルであることがわかっている場合でも、これが100ミリパスカルであると言うのは完全に有効です。ここで、0.1ではなく100のログを取得します(したがって、ログ値は2または-1のいずれかです)。どちらも完全に有効であり、選択は完全に任意です。dB SPLのように標準リファレンスと比較する場合は、比率log(P / P ref)として行われ、単位の変更による影響がないことに注意してください。

于 2013-02-14T19:52:07.350 に答える
0

FFTは線形演算子であるため、FFTの出力のスケールは、FFTに入力されるデータのスケールに関連しています。iPhoneのFFTへの入力のスケールは、マイクのゲイン、オーディオフィルター、場合によってはAGC、およびDACリファレンスによって異なります。後者はすべて文書化されておらず、変化する可能性があるため(マイクの位置、デバイスのモデル、オーディオセッションの構成に依存する可能性のある入力ゲインなど)、何らかのキャリブレーションを実行しない限り、比率はわかりません。既知の参照。

于 2013-02-15T03:53:56.190 に答える