【发布时间】:2013-03-18 10:27:24
【问题描述】:
我有一个向量保存音频数据,频率为 48k。数据由整数组成,最大值约为 4k。矢量类型是 。当我使用这种矢量类型构建播放器时,如下所示:
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像往常一样包含语音和一点噪音(不是特殊类型,可能是因为麦克风坏等)。
【问题讨论】:
-
可能是因为 A 的值很大?浮点数不能代表所有的数字,值越大,一个可表示的数字与下一个数字的步长越大。不知道,只是在黑暗中拍摄。
标签: matlab audio-player