来源:TI提供的Mmwave Radar Device ADC Raw Data Capture

%%% This script is used to read the binary file produced by the DCA1000
%%% and Mmwave Studio
%%% Command to run in Matlab GUI -
function [retVal] = readDCA1000(fileName)
%% global variables
% change based on sensor config
numADCSamples = 256; % number of ADC samples per chirp
numADCBits = 16; % number of ADC bits per sample
numRX = 4; % number of receivers
numLanes = 2; % do not change. number of lanes is always 2
isReal = 0; % set to 1 if real only data, 0 if complex data0
%% read file
% read .bin file
fid = fopen(fileName,'r');
adcData = fread(fid, 'int16');
% if 12 or 14 bits ADC per sample compensate for sign extension
if numADCBits ~= 16
l_max = 2^(numADCBits-1)-1;
adcData(adcData > l_max) = adcData(adcData > l_max) - 2^numADCBits;
end
fclose(fid);
fileSize = size(adcData, 1);
% real data reshape, filesize = numADCSamples*numChirps
if isReal
numChirps = fileSize/numADCSamples/numRX;
LVDS = zeros(1, fileSize);
%create column for each chirp
LVDS = reshape(adcData, numADCSamples*numRX, numChirps);
%each row is data from one chirp
LVDS = LVDS.';
else
% for complex data
% filesize = 2 * numADCSamples*numChirps
numChirps = fileSize/2/numADCSamples/numRX;
LVDS = zeros(1, fileSize/2);
%combine real and imaginary part into complex data
%read in file: 2I is followed by 2Q
counter = 1;
for i=1:4:fileSize-1
LVDS(1,counter) = adcData(i) + sqrt(-1)*adcData(i+2); LVDS(1,counter+1) = adcData(i+1)+sqrt(-1)*adcData(i+3); counter = counter + 2;
end
% create column for each chirp
LVDS = reshape(LVDS, numADCSamples*numRX, numChirps);
%each row is data from one chirp
LVDS = LVDS.';
end
%organize data per RX
adcData = zeros(numRX,numChirps*numADCSamples);
for row = 1:numRX
for i = 1: numChirps
adcData(row, (i-1)*numADCSamples+1:i*numADCSamples) = LVDS(i, (row-1)*numADCSamples+1:row*numADCSamples);
end
end
% return receiver data
%retVal = adcData;
save("./temp.mat", 'adcData')

调用方法:控制台输入readDCA1000('里面填你要读的bin的绝对地址')

最新文章

  1. JAVA解析XML的四种方法
  2. 数据库连接池原理 与实现(动脑学院Jack老师课后自己的练习有感)
  3. aspcms标签
  4. HDU4815
  5. 7 款开源 Java 反编译工具
  6. C# 解压zip压缩文件
  7. HttpClient(4.3.5) - 简单示例
  8. 在linux下安装memcacheq
  9. 合天网安实验室学习笔记----Linux基础
  10. jquery序列化元素
  11. 分享非常有用的Java程序(关键代码)(七)---抓屏程序
  12. HDU 4006 The kth great number AVL解
  13. Beego 框架学习(一)
  14. MySQL下创建数据库以及授权用户
  15. 初见 fultter for MAC
  16. Android 开发 VectorDrawable 矢量图 (二)了解矢量图属性与绘制
  17. Linux(CentOS)上配置 SFTP(附解决Write failed: Broken pipe Couldn't read packet: Connection reset by peer)
  18. Linux 开启定时计划任务
  19. Spring Boot项目Maven Build报错的解决方法
  20. cloudera项目源代码

热门文章

  1. GuzzleHttp示例
  2. mysql掉电后重启失败问题
  3. docker的生命周期
  4. php 滑动图片验证生成
  5. keypress和keydown的区别
  6. java的Stream
  7. python将知识图谱的节点关系(CSV或其他格式)转换成Echarts所需的json格式
  8. Oracle 临时表空间暴满的原因与解决方法
  9. hdfs操作——hdfs的shell命令和hdfs的JavaAPI操作
  10. 逆向学习物联网-网关W5500-00课程目的