简介
调试过程中,很多时候我们需要对采集的波形进行分析,这里通常需要将原始数据通过串口或者以太网等打印出来,再通过MATLAB做数据处理,本章节主要讲解MATLAB代码。
功能分析
例如调试过程想看采集数据FFT波形分析,将FFT数据通过串口打印出来,打印的数据是16进制,并不能方便我们查看波形,这里可以使用MATLAB将16进制数据做转换并呈现波形。
代码
MATLAB的代码如下:
clear
file = 'E:/my_pro/MIC/PRO/project_1/HDL/FFT/cmd/FFT_DATA.TXT'; % 替换为你自己的文件名及路径
fid = fopen(file);
data = textscan(fid,'%s');
fclose(fid);
% 将数据从一行转为一列
newData = reshape(data{1}, [], 1);
FFT_DATA = newData( 10 : 1 : 521);
A = FFT_DATA( 1 : 2 : 512);
B = FFT_DATA( 2 : 2 : 512);
%B=reshape(A',2,256)';
C = hex2dec(A);
D = hex2dec(B);
x = rand(256,1);
E = C*256 + D;
G = E( 2 : 1 : 256);
H=G+16384;
%I=G/(40959);%DMIC
%I=G/(606189.5);%AMIC 46.25倍原始值,加窗后应该除以1.6
I=G/(378868);%AMIC 46.25
%I=G/(62803);%AMIC 7.666
%I=G/(13107);%AMIC
F = 20*log10(I);
figure;
plot(F,'-r');
运行代码,生成的FFT波形如下:
通过MATLAB转换后的波形可以很方便我们做数据分析。