matlab解析毫米波雷达bin文件数据 得到复数
2024-09-08 10:24:32
来源: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的绝对地址')
最新文章
- JAVA解析XML的四种方法
- 数据库连接池原理 与实现(动脑学院Jack老师课后自己的练习有感)
- aspcms标签
- HDU4815
- 7 款开源 Java 反编译工具
- C# 解压zip压缩文件
- HttpClient(4.3.5) - 简单示例
- 在linux下安装memcacheq
- 合天网安实验室学习笔记----Linux基础
- jquery序列化元素
- 分享非常有用的Java程序(关键代码)(七)---抓屏程序
- HDU 4006 The kth great number AVL解
- Beego 框架学习(一)
- MySQL下创建数据库以及授权用户
- 初见 fultter for MAC
- Android 开发 VectorDrawable 矢量图 (二)了解矢量图属性与绘制
- Linux(CentOS)上配置 SFTP(附解决Write failed: Broken pipe Couldn't read packet: Connection reset by peer)
- Linux 开启定时计划任务
- Spring Boot项目Maven Build报错的解决方法
- cloudera项目源代码