かなり異なる質問があります。Linux Gentoo マシンで Matlab を使用しています。私はいくつかの Asus Xonar STX サウンドカードを手に入れました。PlayRecノンブロッキング オーディオ IO パッケージを使用して、高感度のオーディオ周波数アナライザーとして使用しようとしています。
これで、オーディオレコーダー関数を使用しようとして、Linux で 24 ビットを指定すると、Matlab は、24 ビットは Windows でのみサポートされていると言うことがわかりました。ただし、ALSA の文献は、これがオペレーティング システムまたは ALSA 自体の制限であることを意味するものではなく、実際のところ、Alsa では 24 ビット PCM デバイスを指定できるようです。また、PlayRec は PortAudio を使用し、Linux システムでは Alsa を使用します。
これで問題ありません。Playrec にはビット深度を指定する手段がなく、サンプル レートのみが指定されているようです。私は多くのテストを実行し、サウンドカードの伝達関数 (浮動小数点の戻り値と入力電圧の変換比) が何であるかを知っており、ピーク電圧が 3V で、ノイズが約 100uV であることを知っています。これにより、20*log10(3/100e-6) = 91dB が得られます。これは、24 ビットからではなく、16 ビットから見られると予想されるものに近いものです。
私の本当の質問はこれです: キャプチャした信号で実際に 24 ビットを取得していることを確認する方法はありますか?
そうでない場合は、サードパーティのプログラムを使用してそのデータを収集する場合でも、サウンド キャプチャ デバイスからの 16 ビット データのみに制限している ALSA または Matlab の固有の制限があります。