查看单个帖子
旧 2019-12-14, 20:46   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
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 当前离线   回复时引用此帖