文章目录

  • 原始数据介绍
  • 参考代码
    • matlab读取数据参考代码
    • python读取数据参考代码

我这里使用的设备为 IWR6843ISK+DCA1000EVM+mmWave Studio

参考资料:采用不同型号雷达有不同格式的数据规定,以官方提供的文档为准

Mmwave Radar Device ADC Raw Data Capture

原始数据介绍

  1. 原始数据格式介绍:
    对于iwr6843isk和dca1000EVM设备,原始数据通过两个 LVDS lanes被捕获,Lanes1 存储两个采样点实部,Lanes2 存储两个采样点虚部,以non-interleaved的形式,储存在二进制文件中
  • non-interleaved的形式,我的理解是,对于每一个chirp,会按照先存储RX0对于该chirp的所有采样点数,再存储RX1的所有采样点数,直到 RX channel都存储完毕,再去存储下一个chirp
  • 由于只能使用两个LVDS lanes,因此iwr6843无法使用 3个RXchannel进行数据捕获,只能使用1,2,4个RXchannel捕获数据
  1. 数据容量:
    计算公式:Total Size in Bytes = Num ADC Samples × Num RX Channels × Num Frames × Num Chirps × Num Bytes Per Sample
    对于复数的输出形式, Num Bytes Per Sample的值为4,2bytes存储实部,2bytes存储虚部
    例如:
    我这里采集的原始数据大小为4915200bytes

    参数配置为:
参数名 Value
ADC Samples 100
RX Channels 4
Frames 8
Chirps 128
Bytes Per Sample 4

这里我启用了3个TX,分别发射3种chirp构成TDM-MIMO,故对于每一个RX接收到的chirp数应该是3*128
关于TDM-MIMO的详细信息可参考我的另一篇文章

IWR6843ISK+MMWAVE STUDIO 配置TDM-MIMO

计算可得 100*4*8*128*3*4 = 4915200 bytes 与实际相符

参考代码

matlab读取数据参考代码

%%% This script is used to read the binary file produced by the DCA1000 and Mmwave Studio
%%% Command to run in Matlab GUI -
readDCA1000('<ADC capture bin file>') 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 ~= 16l_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 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 RX
adcData = 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);end
end
% return receiver data
retVal = adcData;

python读取数据参考代码

这里我采用了openrader的开源库实现,代码更为简洁

参考资料:OpenRadar

import numpy as np
from mmwave.dataloader import DCA1000# 雷达参数配置
# numStartFreq = 60
# numRampEndTime = 48.57
# numIdleTime = 7
numFrames = 100
numADCSamples = 119
# numSampleRate = 3000
# numFreqSlope = 74.98
numTxAntennas = 3
numRxAntennas = 4
numLoopsPerFrame = 88
numChirpsPerFrame = numTxAntennas * numLoopsPerFrame
# numRangeBins = numADCSamples
# numDopplerBins = numLoopsPerFrame
# numAngleBins = 64# 原始数据路径
bin_path = 'D:\\Workspace_lab\\adc_data.bin'adc_data = np.fromfile(bin_path, dtype=np.uint16)
adc_data = adc_data.reshape(numFrames, -1)
adc_data = np.apply_along_axis(DCA1000.organize, 1, adc_data, num_chirps=numChirpsPerFrame,num_rx=numRxAntennas, num_samples=numADCSamples)# 转换结果:(Frame, Chirp, numRx, ADCsample) 四维numpy数组
print(adc_data.shape)

IWR6843ISK捕获并分析原始ADC数据相关推荐

  1. 计算机网络ip数据包分析题,计算机网络课程设计_IP数据包的捕获及分析.doc

    CENTRAL SOUTH UNIVERSITY 计算机网络课程设计报告 目录 第一章 课程设计的目的与要求1 1.1 课程设计的目的1 1.2 课程设计的要求1 第二章 课程设计的内容3 2.1 课 ...

  2. linux 软件包kbd 位置,kbd-audio:通过麦克风来捕获和分析键盘输入的工具

    前言 kbd-audio项目是一系列用于捕获和分析音频数据的命令行和GUI工具的集合.其中我认为最有意思的一款工具是keytap,它可以通过麦克风来捕获和分析键盘的输入,从而猜测出按键内容. 有关ke ...

  3. 高级转录组分析和R数据可视化第11期(报名线上课还可免费参加线下课2020.6)

    福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析.宏基因组.Python课程和转录组的线上直播课.报名参加线上直播课的老师可在1年内选择参加同课程的一次线下课 ...

  4. 高级转录组分析和R数据可视化第11期(课程推迟,可先报名,时间另行告知)

    封面来源:https://www.zhihu.com/question/304747766 常规转录组是我们最常接触到的一种高通量测序数据类型,其实验方法成熟,花费较低,是大部分CNS必备的技术,以后 ...

  5. 高级转录组分析和R数据可视化(2020.2,课程推迟,可先报名,时间另行告知)

    封面来源:https://www.zhihu.com/question/304747766 常规转录组是我们最常接触到的一种高通量测序数据类型,其实验方法成熟,花费较低,是大部分CNS必备的技术,以后 ...

  6. 这是入门生信,学习生信分析思路和数据可视化的首选?

    封面来源:https://www.zhihu.com/question/304747766 常规转录组是我们最常接触到的一种高通量测序数据类型,其实验方法成熟,花费较低,是大部分CNS必备的技术,以后 ...

  7. 高级转录组分析和R数据可视化专题研讨会(2019.12)

    常规转录组是我们最常接触到的一种高通量测序数据类型,其实验方法成熟,花费较低,是大部分CNS必备的技术,以后应该就如做个PCR一样常见.而且分析思路简洁清晰,是入门生信,学习生信分析思路和数据可视化的 ...

  8. 转录组分析_高级转录组分析和R数据可视化

    封面来源:https://www.zhihu.com/question/304747766 常规转录组是我们最常接触到的一种高通量测序数据类型,其实验方法成熟,花费较低,是大部分CNS必备的技术,以后 ...

  9. 计算机网络数据分析报告,贵州大学计算机网络实验报告-实验四-分析IP协议数据包格式...

    贵州大学计算机网络实验报告-实验四-分析IP协议数据包格式 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 贵州大学GUIZHOU UN ...

最新文章

  1. 安洵杯——game(混淆控制流平坦化)
  2. 二叉树中的最大路径和—leetcode124
  3. STM32工作笔记0030---编写跑马灯实验--使用库函数
  4. Hbase高级功能过滤(Filter)
  5. springboot+junit测试
  6. 什么是正则表达式模式修正符?
  7. sap服务器安装双系统教程,Ghost安装双系统安装使用图文教程
  8. 上海域格ASR平台4g模块低功耗应用指导
  9. 【小程序源码】云开发表情包制作神器微信小程序源码下载,支持各种自定义
  10. APS系统是什么意思?起什么作用
  11. vnr光学识别怎么打开_SLS46CK4单光束安全传感器原版使用说明-Leuzeelectronic.PDF
  12. MySQL生成36位、32位UUID以及32位大写的UUID
  13. 《用户至上:用户研究方法与实践(原书第2版)》一3.1 概述
  14. 微信小程序抽奖 简单功能实现
  15. Protobuf 了解
  16. 显示屏信号超过输入范围1600x900@60HZ ------解决办法
  17. 用谷歌浏览器模拟微信和支付宝浏览器环境
  18. 【教程】GF-1和GF-2PMS数据预处理全流程
  19. 2020年国家政策高频密集出台,电子合同万业普及
  20. 电脑小常识:如何设置文件扩展名的显示和隐藏

热门文章

  1. AE入门、学习目标、未来方向的探索
  2. 服务器无响应 路由器,服务器无响应路由器
  3. [FPGA系列] SDRAM项目实战总结
  4. Ubuntu 1804 Desktop U盘/光驱插入监测及挂载监测
  5. 分布式存储系统——《高性能分布式存储MongoDB》
  6. 6-4 派生类使用基类的成员函数
  7. mojito 脚本编写
  8. 动卡空间服务器显示正在加载,绝地求生进不去游戏一直卡在加载画面是什么原因?附解决办法...
  9. python 名片管理系统 200313
  10. Maven依赖下载源码和doc文档