请选择 进入手机版 | 继续访问电脑版

Xiaojie雷达之路---TI实战笔记---对AWR1843+DCA1000采集的数据进行解析

[复制链接]
小浣熊 发表于 2021-1-3 12:01:06 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
这篇文章主要是先容对AWR1843和DCA1000收罗的数据举行分析
下面两张图要必须看懂,才华举行以后的操纵:
图1:

这张图片主要说明的意思是对于每个tx的chirp,每个rx都会吸收到

从上面这张图可以看出,lane1包罗采样点的实部,lane2指的是采样点的虚部,对于tx发射的一个chirp,4个tx会吸收到的数据量为4*采样点,这张图还说明白DCA1000收罗到的数据的存储方式(1843内里只有两通道的LVDS,而且数据采取的存储方式是non-interleaved,lane1负责两个采样点的实部,lane2负责采样点的虚部)
下面的这段步调是matlab对数据举行分析,而且最后分析的效果是维度为[Rxnum,numChirps*numADCSamples]的表格
  1. %%% This script is used to read the binary file produced by the DCA1000%%% and Mmwave Studio%%% Command to run in Matlab GUI -readDCA1000('') function [retVal] = readDCA1000_1(fileName)%% global variables% change based on sensor confignumADCSamples = 256; % number of ADC samples per chirpnumADCBits = 16; % number of ADC bits per samplenumRX = 4; % number of receiversnumLanes = 2; % do not change. number of lanes is always 2isReal = 0; % set to 1 if real only data, 0 if complex data0%% read file% read .bin filefid = fopen(fileName,'r');adcData = fread(fid, 'int16');% if 12 or 14 bits ADC per sample compensate for sign extensionif numADCBits ~= 16l_max = 2^(numADCBits-1)-1;adcData(adcData > l_max) = adcData(adcData > l_max) - 2^numADCBits;endfclose(fid);fileSize = size(adcData, 1);% real data reshape, filesize = numADCSamples*numChirpsif isRealnumChirps = fileSize/numADCSamples/numRX;LVDS = zeros(1, fileSize);%create column for each chirpLVDS = reshape(adcData, numADCSamples*numRX, numChirps);%each row is data from one chirpLVDS = LVDS.';else% for complex data% filesize = 2 * numADCSamples*numChirpsnumChirps = fileSize/2/numADCSamples/numRX;LVDS = zeros(1, fileSize/2);%combine real and imaginary part into complex data%read in file: 2I is followed by 2Qcounter = 1;for i=1:4:fileSize-1LVDS(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 chirpLVDS = reshape(LVDS, numADCSamples*numRX, numChirps);%each row is data from one chirpLVDS = LVDS.';end%organize data per RXadcData = zeros(numRX,numChirps*numADCSamples);for row = 1:numRXfor i = 1: numChirpsadcData(row, (i-1)*numADCSamples+1:i*numADCSamples) = LVDS(i, (row-1)*numADCSamples+1:row*numADCSamples);endend% return receiver dataretVal = adcData;
复制代码
在调用方式:
  1. retVal = readDCA1000_1('adc_data.bin');
复制代码
上面的代码是同门师兄给的,在TI论坛上也可以找到,下面临这段代码举行验证
收罗到的数据集的参数的设置:
  1. 发射天线:tx1吸收天线:rx1,rx2,rx3,rx4采样点:256帧的数量:8一个帧中chirp的循环次数:128chirp的总数:8*128=1024采样点的范例:complex1x
复制代码
首先收罗到的数据为一个维度为2097152(812842564/2)*1的数据表
通过执行上述的代码会得到如下的数据表:

可以看到这是一个[4,1024*256]的表格,4代表rx的数量,1024代表chirp的数量,256代表采样点
1~4行,分别是rx0,rx1,rx2,rx3吸收到的数据,数据被分析成这样,就可以做后续的数据处理惩罚了
参考文献:

  • 《Mmwave Radar Device ADC Raw Data Capture》

来源:https://blog.csdn.net/Xiao_Jie123/article/details/112028352
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )