回波数据adc_data.bin解析(附MATLAB程序)

        TI目前有两款采集卡TSW1400和DCA1000,可以为xWR1243/1443和1642毫米波雷达进行回波数据采集。本文将主要介绍几款雷达分别用2款采集卡数据采集的回波数据格式以及MATLAB数据解析程序。

详情可参考文档 “xWR1xxx ADC Raw Data Capture” (SWRA581A)

1、xWR1243/xWR1443—DCA1000

 

 

2、xWR1642—DCA1000

(1)1642雷达使用DCA1000采集卡回波数据格式(复数形式)

回波数据adc_data.bin解析(附MATLAB程序)_第1张图片

原始回波数据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处理即可测角。

3、xWR1243/xWR1443—TSW1400

 

 

 

4、xWR1642—TSW1400

你可能感兴趣的:(毫米波雷达)