WAV文件转C数组,matlab应用
二维码是我创建的QQ群,欢迎新朋友加入。
在嵌入式底层中,需要用到WAV文件转换为数组。
网上搜了一下相关工具,都不是我想要的,后面找到了matlab,
首先找到一段WAV文件。
使用audition查看波形
在matlab里面读取这个文件
具体指令是
为了方便计算,需要转换为16进制的数据
使用plot查看一下
可以看出波形没问题
简单对比一下数据内容
24位音频数据,可以看出数据是一致的
[y,Fs,nbits] = wavread('5150.wav','native')
%%
yy = zeros(1,1024)
for i = 1:length(y)
yy(i) = y(i);
end
plot(yy)
%% 以下为打印脚本
str = sprintf('float R[%d] = { ',length(yy));
disp(str);
for i = 1:length(yy)/8
str = sprintf('%f,', ...
yy(1,(i-1)*8+1:i*8));
if i == length(yy)/8
str = [str(1:end-1),'};'];
end
disp(str);
end
上面是数据转数组打印的全部代码 %%
yy = zeros(1,1024)
for i = 1:length(y)
yy(i) = y(i);
end
plot(yy)
%% 以下为打印脚本
str = sprintf('float R[%d] = { ',length(yy));
disp(str);
for i = 1:length(yy)/8
str = sprintf('%f,', ...
yy(1,(i-1)*8+1:i*8));
if i == length(yy)/8
str = [str(1:end-1),'};'];
end
disp(str);
end