嵌入式audio基础(七)分析

准备做自动化的测试,难点和图像的测试差不多都是在很多的评价都是基于主观的感觉。这里准备简单的根据前面几个音频评价的客观参数经行测试评价。
首先一个就是工具的选择,首选就是matlab,优点明显就是有很多可以即用的函数工具,比如很重要的傅里叶变换的函数fft().
然后就是选一个合适的参数进行验证,音频数据的错误基本都可以在频率错误上得到反应,所以选择了测频谱的方法。
这里写图片描述
pc 用音频软件播放1khz的正弦波给板子,板子录制成音频文件,matlab处理音频文件。
音频文件中的数据格式,
这里写图片描述
我的数据是32bit中的24bit 有效的,高位在后。第一个数据应该是0x306040  
这里贴出来所有的源码。cd /home/xuww/
fs=44100; %频率44.1KHz

fid=fopen(‘test.dat’,’rt’);
N=50000; %数据样本有50000多个
samp_time=1/fs; %0.0000226757;
n=0:samp_time:(samp_time*(N-1)); %横坐标时间

c= fread(fid,50001*4 ,’uint8’);
count =0;
a = zeros(1,50000*4);
for count=1:50000+1
%fprintf(‘data print start ###########\n’)
%fprintf(‘data is 1 %x \n’,c(count*4-3,1));
%fprintf(‘data is 2 %x \n’,c(count*4-2,1));
%fprintf(‘data is 3 %x \n’,c(count*4-1,1));
%fprintf(‘data is 4 %x \n’,c(count*4,1));
a(1,count)=c(count*4,1)*16*16*16*16*16*16+c(count*4-1,1)*16*16*16*16+c(count*4-2,1)*16*16+c(count*4-3,1);
%fprintf(‘data print end %x\n’,a(count));

end
subplot(3,1,1)
plot(n,a(1:50000)); %第一幅显示波形


subplot(3,1,2)
sample_region_count = 1024;
sample_region_array =0:samp_time:samp_time*(sample_region_count-1);
sample_region =a(2000:(2000+sample_region_count-1));
plot(sample_region_array,sample_region); %显示其中1000个点的sample
subplot(3,1,3)
FFT_Num=1024;
M=0:FFT_Num/2;
freq=M*fs/FFT_Num;
X =fft(sample_region,FFT_Num); % Compute its 16-point DFT%进行傅里叶变换
mag=abs(X(M+1)); %求得Fourier变换后的振幅
plot(freq,mag);
xlim([0 2500]); grid;
pause(20);%暂停防止图片一闪而过
这里写图片描述
数据有需要的可以找我
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值