私は、48kの周波数でオーディオデータを保持するベクトルを持っています。データは整数で構成され、最大値は約4kです。ベクトルタイプは<1x768000double>です。このベクトルタイプでプレーヤーを作成すると、次のようになります。
a1 = audioplayer(A,48000);
a1.play();
結果として得られるオーディオは、SNR値が1より小さいなど、非常にノイズが多くなります(つまり、ノイズの量が聞きたいものよりも多くなります)。
ただし、データをint16にキャストして、次のようにサウンドを再生すると、次のようになります。
a2 = audioplayer(int16(A),48000);
a2.play();
結果として得られるオーディオは非常に滑らかで、SNRは7〜8程度です(測定または計算されていないため、ノイズはほとんど検出できませんが、確実です)。
だからここに私の質問があります:matlabでaudioplayerを使用しているときのdoubleとint16の違いは何ですか?
PS:あなたが望むなら私はAを提供することができます。
PS2:Aには、通常どおり、音声とビットノイズ(特殊なタイプではなく、マイクの不良などが原因である可能性があります)が含まれています。