3

Jackで遊んでいて、デフォルトのオーディオ タイプJACK_DEFAULT_AUDIO_TYPEが「32 ビット フロート モノラル オーディオ」に設定されていることに気付きました。

私は少し混乱しています: IEEE は 32 ビット C float 範囲をおよそ 3.4E–38 から 3.4E+38 まで定義jack_default_audio_sample_tしています。たとえば、一部の DSP アルゴリズムが [0,1] の範囲のサンプルを提供する場合、どうすればサンプルとジャックのフォーマットを正しく変換できますか?

4

1 に答える 1

4

浮動小数点で信号処理操作を行い、結果を ADC に送信する前に、結果を 16 ビットまたは 24 ビットの整数にスケーリングおよびキャストすることは非常に一般的です。たとえば、浮動小数点で IIR フィルターを実装すると、係数の量子化に対する感度を下げることができます。または、FFT を実行している場合は、浮動小数点計算でより大きなダイナミック レンジが得られます。

変換の通常の方法は、16 ビット コーデックのx_float = x_int * (1.0/SHRT_MAX)場合、データが ADC から入ってくるとき、およびDAC に送信するときに行うことです。y_int = y_float * SHRT_MAX24 ビット コーデックの場合は、 を定義する必要がありますADC_MAX = (1 << 24) - 1

JACK を使用する場合、フレームワークがこの変換を処理するので、+/-1 の範囲の浮動小数点値が表示され、同じ範囲の値がフィードバックされるはずです。

于 2011-05-31T01:50:27.153 に答える