matlab输出pcm格式文件 您所在的位置:网站首页 matlab怎么导出音频 matlab输出pcm格式文件

matlab输出pcm格式文件

2024-06-25 14:38| 来源: 网络整理| 查看: 265

用cooledit打开的话,要用matlab输出为PCM格式。 在matlab中输出pcm格式要怎么做呢?

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

为了用cooledit正确地打开,我们应该要用二进制输出。 要如何输出和你的源文件有关,请仔细阅读下文。很短的。 我的这个文件的格式是: 在这里插入图片描述 是一个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就是表示按照原格式读取。 在这里插入图片描述 读完之后如何写呢。

%% 保存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);

最后可以看到这样的一个文件: 在这里插入图片描述 用cooledit打开的话,是正常的。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 如果语音是杂音,或者乱七八糟的声音, 那么肯定是没有按照二进制输出,请检查 您的matlab代码中 fid=fopen(‘D:\lab1\10.pcm’,‘wb’);%存为raw,也就是pcm格式 fwrite(fid,temp,‘int16’);%我这里是按照int16读取的,所以是int16. 加重部分是否出现了错误。

喜欢的话,或者解决了您的问题的话请帮忙点个赞或者留言, 您的支持是我写文的动力,谢谢!!!?


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有