Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-14, 08:46 PM   #1
高级会员
 
注册日期: 2019-11-21
帖子: 2,864
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 59
poster 正向着好的方向发展
帖子 如何在Matlab中删除wavfile的标头

我需要删除wave文件的前1024个字节。我尝试这样做,但我的wavfile损坏/失真:

wavFile = fopen(fullFileName, 'r'); % Open file for reading fseek (wavFile, 1024, -1);% Skip past header, which is 1024 bytes long. wF = fread (wavFile, inf, 'int16');% 16-bit signed integers wF = wF(:)'; newWavFile = fopen(strcat('new_',fileNames(fileNo).name), 'w+');% Open file for reading fwrite(newWavFile,wF); fclose(wavFile); 可能是什么问题?



回答:

我可以设法删除标头并通过以下方式纠正失真:

wavFile = fopen(fullFileName, 'r');% Open file for reading fseek (wavFile, 1024, -1);% Skip past header, which is 1024 bytes long. wF = fread (wavFile, inf, 'int16');% 16-bit signed integers wF = wF(:)'; wF = 0.8*wF/max(abs(wF)); newWavFile =strcat('1_',fileNames(fileNo).name);% Open file for reading wavwrite(wF,16000,16,newWavFile);

更多&回答...
poster 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用



所有时间均为北京时间。现在的时间是 05:58 PM


Powered by vBulletin
版权所有 ©2000 - 2021,Jelsoft Enterprises Ltd.

SEO by vBSEO ©2009, Crawlability, Inc.