私は ffmpeg からのサンプルを持っています。非常に多くの場合、16 ビット サンプル (ショート タイプ) です。ここで説明されているように、dbGain で IIR バンドパス フィルターを使用しまし た。計算されたサンプル値は 32767/-32767 から出て、オーディオ pcm サンプル クリッピングを回避する方法です。アプローチが存在する可能性がありますか?
私はグーグルで検索しましたが、実際の例は見つかりませんでしたか?
アップデート
伝達関数の計算結果を整数にキャストし、オーバーフローをチェックすると、ノイズが引き続き発生します::
int result = A1 * ((int) Rx) + A2 * ((int) Rxx) + A3 * ((int) Rxxx)
- B1 * ((int) Ryy) - B2 * ((int) Ryyy);
if (result > 32767)
result = 32767;
if (result < -32700)
result = -32700;
y = (short) result;