%% 读取wav音频文件,写入mif/coe clear all ; clc ; wav = audioread('origin32.wav') ; % 低采样 sr = 3 ; m = floor( max(wav) ) / 3 ; wav_catch = zeros(m , 2) ; wav_catch(: , 1) = wav(1:m , 1) ; wav_catch(: , 2) = wav(1:m , 2) ; save wav_catch wav_catch ; % 截取部分时间,同时增大幅度值,位宽为32bit l = 16384 ; audio_l = wav_catch(1:l , 1) * 2^31 ; audio_r = wav_catch(1:l , 2) * 2^31 ; % 十进制 -> 十六进制 audio_l(find(audio_l<0)) = audio_l(find(audio_l<0)) + 2^32 ; audio_r(find(audio_r<0)) = audio_r(find(audio_r<0)) + 2^32 ; audio_l_hex = dec2hex(audio_l) ; audio_r_hex = dec2hex(audio_r) ;
时间: 2024-04-10 09:32:20 浏览: 130
将音频文件.wav读取并保存为数组wav。然后执行低采样操作,将采样率除以3,并将最大值除以3作为幅度值m。接下来创建一个大小为m的空数组wav_catch,并将原始音频数组的前m个值赋给wav_catch。将wav_catch保存为wav_catch文件。然后截取部分时间和增大幅度值,设置音频长度为16384,并将音频左右声道的值分别乘以2^31。将负值转换为正值(十进制转换为十六进制),即将小于0的值加上2^32。最后将左右声道的十六进制值分别保存在变量audio_l_hex和audio_r_hex中。
阅读全文