pcm2wav matlab,matlab输出pcm格式文件

用cooledit打开的话,要用matlab输出为PCM格式。

在matlab中输出pcm格式要怎么做呢?

用法: fwrite(fileid,参数,格式);

为了用cooledit正确地打开,我们应该要用二进制输出。

要如何输出和你的源文件有关,请仔细阅读下文。很短的。

我的这个文件的格式是:

3294be7c694f8bdce33a1f77062cca89.png

是一个wav文件,

用audioread读取。

filename='10.wav';%这个声音文件在该程序根目录

[signal,fs] = audioread(filename);%读取wav文件,读完是去除了文件头的采样点,而且归一化了,是浮点数。

info=audioinfo(filename)%看这个文件的信息。

whos signal%显示name size bytes class 等等

如果希望看原来的数值,就用

[signal,fs] = audioread(filename,‘native’);

这里的native就是表示按照原格式读取。

55da7c2fad00b21d64f440b1248e5c93.png

读完之后如何写呢。

%% 保存raw文件

temp=x_speech.*65536/2;%这里是把归一化信号还原,如果是native读取,就不用了/

fid=fopen('D:\lab1\10.pcm','wb');%存为raw,也就是pcm格式

fwrite(fid,temp,'int16');%我这里是按照int16读取的,所以是int16.

%想看自己读完是什么格式,可以在调试的时候点开signal数组看。

audiowrite('D:\lab1\10new.wav', x_speech,fs);%这是存成wav格式的

fclose(fid);

最后可以看到这样的一个文件:

d9b8eff3cc453d6a7a896f95f5ef7a1b.png

用cooledit打开的话,是正常的。

5fe2d49ee6d6f86c8652c0ca6cb48c95.png

0ee20f1d6da1f096b0311511f2eebda0.png

9c92b74c2af55525ac82048abf0ca8c3.png

如果语音是杂音,或者乱七八糟的声音,

那么肯定是没有按照二进制输出,请检查

您的matlab代码中

fid=fopen(‘D:\lab1\10.pcm’,‘wb’);%存为raw,也就是pcm格式

fwrite(fid,temp,‘int16’);%我这里是按照int16读取的,所以是int16.

加重部分是否出现了错误。

喜欢的话,或者解决了您的问题的话请帮忙点个赞或者留言,

您的支持是我写文的动力,谢谢!!!😄

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值