UART打印FFT原始数据,MATLAB显示

简介

        调试过程中,很多时候我们需要对采集的波形进行分析,这里通常需要将原始数据通过串口或者以太网等打印出来,再通过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转换后的波形可以很方便我们做数据分析。

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值