请问,我想问一下您这张图是对什么物体进行探测,以及对应哪些数据参数得出来的?希望获得您们的解答.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
没有特定什么物体,采集到的是物体的原始数据。这些数据是通过postproc解析出来的,具体可以看一下下面的mmwave studio user guide文档的21. Radar post processing章节。
https://software-dl.ti.com/ra-processors/esd/MMWAVE-STUDIO/latest/exports/mmwave_studio_user_guide.pdf
这是利用dca原始数据采集方法里面的代码,对收集到的信号进行观察,此图为截取的是一个chirp,256个采样点,但是出现的是这样的结果,即每几个采样点之后会出现一段空白,不知道这是为什么?之前几次实验也是类似这样的·结果。代码如下:
%%% 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
fileName='E:\text\house\heart_2.bin';%%在雷达中if信号经过低通到ADC,变成数字再DSP,再傅里叶变化估算物体的距离
fid = fopen(fileName,'rb');%打开要读取的文件
adcData = fread(fid, 'int16');%读取二进制文件中的数据,以int16读出来,有符号16位数
% 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?????
%每一行代表每个接收天线接收的数据,每行的列数是每个chirp的ADC采样数*chirp总数
%255*256*48=3133440,前256对应第一个chirp,前256*255对应第一个frame
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;
A=sqrt((real(retVal(1,1:256))).^2+(imag(retVal(1,1:256))).^2);
figure(1),plot(A)
%axis([2.7928e6 2.7933e6 -1000 1000]);
%figure(2),plot(real(retVal(1,:)),real(retVal(2,:)),real(retVal(3,:)),real(retVal(4,:)))
figure(3)
plot(real(retVal(1,1:256)),'r')
hold on
plot(real(retVal(2,1:256)),'y')
hold on
plot(real(retVal(3,1:256)),'b')
hold on
plot(real(retVal(4,1:256)),'g')
%axis([2.7928e6 2.7933e6 -1000 1000]);