TI目前有两款采集卡TSW1400和DCA1000,可以为xWR1243/1443和1642毫米波雷达进行回波数据采集。本文将主要介绍几款雷达分别用2款采集卡数据采集的回波数据格式以及MATLAB数据解析程序。
详情可参考文档 “xWR1xxx ADC Raw Data Capture” (SWRA581A)
(1)1642雷达使用DCA1000采集卡回波数据格式(复数形式)
原始回波数据adc_data.bin中的数据格式即按照上图所示排列。
其中,RX0(I)Sample1 代表接收天线1的第1个采样点的实部;
RX0(I)Sample2 代表接收天线1的第2个采样点的实部;
RX0(Q)Sample1 代表接收天线1的第1个采样点的虚部;
RX0(Q)Sample2 代表接收天线1的第2个采样点的虚部;……依次类推。
第1个chirp的4RX数据后面是第2个chirp的4RX数据,……,第M个chirp数据;再到下一帧数据,依次类推。
(2)MATLAB回波数据解析程序:
%%%%%% 1642+DCA1000 数据解析 %%%%%%%
fname='adc_data.bin'; %bin文件位置
fid = fopen(fname,'rb');
%读取第一帧数据
%n_samples为每个chirp的采样点数,n_chirps为每帧chirp数
sdata = fread(fid,n_samples*n_chirps*n_Rx*n_Tx*2,'int16');
%通道解析
fileSize = size(sdata, 1);
lvds_data = zeros(1, fileSize/2);
count = 1;
for i=1:4:fileSize-5
lvds_data(1,count) = sdata(i) + 1i*sdata(i+2);
lvds_data(1,count+1) = sdata(i+1)+1i*sdata(i+3); %IQ数据合并成复数
count = count + 2;
end
lvds_data = reshape(lvds_data, n_samples*n_RX, n_chirps);
lvds_data = lvds_data.';
cdata = zeros(n_RX,n_chirps*n_samples);
for row = 1:n_RX %天线个数
for i = 1: n_chirps %一帧的chirp个数
cdata(row,(i-1)*n_samples+1:i*n_samples) = lvds_data(i,(row-1)*n_samples+1:row*n_samples);
end
end
fclose(fid);
%4RX数据,n_chirps列,每i列为Chirp i的回波数据
RX1data = reshape(cdata(1,:),n_samples,n_chirps); %RX1数据
RX2data = reshape(cdata(2,:),n_samples,n_chirps); %RX2
RX3data = reshape(cdata(3,:),n_samples,n_chirps); %RX3
RX4data = reshape(cdata(4,:),n_samples,n_chirps); %RX4
对RX1data进行2DFFT即可测距、测速;对4RX的2DFFT结果作角度FFT处理即可测角。