错误后,将二进制转换为音频录制音频并将其转换为二进制.......请帮助! !
8视图(30天)
显示旧的评论
接受的答案
沃尔特·罗伯森
2021年6月17日
格式长g
myRecording = randn (5、1)
wavebinary = dec2bin(定型(单(myRecording (:)),“uint16”),16)' 0 ';
大小(wavebinary)
注意是N x 16 N是样本数量* 2(你将myRecording转换为单一无论整数或单引号或双,所以单一的结果()将32位每样无论原始比特样本。然后你定型()为两个16位半,你每个16位值转换为二进制。每个转换值创建一个16位的行。
现在看来,看到你构造
sounddata =双(bin2dec (char(重塑(wavebinary 16 []), ' +' 0 ')));
所以你需要10 x 16的二进制数据的行表示一半的一个样本,和你将重塑16行……在这种情况下会给您10列。但这是错误的订单。你喜欢
1:16
17:32
33:48
和重新安排它
33 [1 17…16个32 48…]
这里的缺陷是,当您创建wavebinary你应该做的事情
wavebinary =重塑((dec2bin(定型(单(myRecording (:)),“uint16”),16)' 0 ')。“1 []);
现在的转置位顺序将跟随你重建的方式。