Ti 6843 mmWave sensor - How can I get micro-Doppler?
Show older comments
Tool: Ti 6843 mmWave sensor
I have created code regarding this radar to collect frames of data. Now what I would like to do is get raw radar data or proccess my current data ( range vs Doppler vs Frames) I really am not sure what to do as my goal is to get a microdoppler plot. Please be as specfic as possible, as I am very new at this.
5 Comments
William Rose
on 9 Apr 2024
What have you tried so far? Please provide the data you want to analyze, and explain its organization, i.e. what the rows and columns are in your data, what the units are, and any other relevant info. Please explain what a microdoppler plot is. In other words, what is on the horizontal and vertical axes of a microdoppler plot? Doing this will help you understand your data, and it will increase your chances of getting useful assistance here.
William Rose
on 10 Apr 2024
@Annie, Thank you for the description and code and image. Pardon the length of my comments below - I am writing to learn and remember.
Most of the data is in the structure meas, created by the command above.
Your script collects data with this command, which puts most of the data in structure meas:
[dets, timestamp, meas, overrun] = tiradar();
The command above collects one frame of data, inside a loop that runs as fast as possible. Therefore the interval between frames, when collected as shown in your code, may not be constant.
Your script also reads data from a file:
total_data = importdata("SIN4.mat")
Can you attach SIN4.mat? Does it contain the data returned by tiradar()?
The figure you attached shows doing an FFT along the fast-time dimension, to get the range FFT. The figure then shows doing an FFT along the slow-time dimension to get the Doppler FFT for each frame. It also shows doing a " micro Doppler STFT", apparenty along the frame dimension, to get the STFT. The micro Doppler FFT is shown as an alternative to the Doppler FFT.
Does tiradar() do any of the FFTs illustrated in the figure?
When you provide SIN4.mat, or a file with the data returned by tiradar() (and maybe those are the same thing), we can investigate the possibility of using STFT. If the time between frames is not constant (see above), then we cannot do the STFT on this data. If the time interval from the last data point in frame N to the first data poiont in frame N+1 is greater than the gap between points along slow-time, then we cannot do a normal STFT, but we might be able to do a STFT with careful selection of parameters.
William Rose
on 10 Apr 2024
I looked briefly at this site:
Two examples at that site show tiradar() being called inside a while loop. Your code uses a for loop. The benefit of a while loop is that one can specify a collection duration in seconds, using tic() and toc(). I also see that one specifies the frame rate in a configuration file. I assume you did that. The example recommends a max frame rate of 5 fps.
Structure meas includes meas.RangeDopplerResponse and meas.RangeAngleResponse. I think thse have already had FFTs done to them - but I could be wrong. You have looked at the documentation a lot more than me so you should know. I think the FFTs have been done already because of the coe fragment below:
% Configure and start the sensor by invoking the first step function
tiradar();
% Creates a scope for viewing a range- Angle response map
rngAngleScope = phased.RangeAngleScope;
% The input data to scope is response data that has already been
% processed, set IQDataInput as false
rngAngleScope.IQDataInput = false;
% Creates a scope for viewing a range- Doppler response map
rngDopplerScope = phased.RangeDopplerScope;
% The input data to scope is response data that has already been
% processed, set IQDataInput as false
rngDopplerScope.IQDataInput = false;
rngDopplerScope.DopplerLabel = 'Doppler velocity (m/s)';
Code above from here. As you no doubt know, raw radar data consists of in-phase and quadrature components ("I-Q"). In fact, if meas.rangeAngleResponse and meas.RangeDopplerResponse are complex, then they have not been FFT's yet; if they are real, they probably have been.
If the data in meas has already been FFT'd, then you cannot do a STFT on it.
If you do
[dets,timestamp,meas,overrun] = tiradar();
from inside a while loop that runs for 40 seconds, with frame rate set to 5 fps, does structure meas contain data for all 200 frames, when the while loop is done? Or is meas getting overwriten on subsequent passes around the while loop? It would help you to know. I recommend doing
whos(meas.RangeAngleResponse)
whos(meas.RangeDopplerResponse)
after the while loop. This will tell you the array sizes, and whether or not the variables are complex.
Answers (1)
Honglei Chen
on 10 May 2024
0 votes
TI6843 itself does not have capability to output raw data. It only outputs the processed data. Therefore, as is you cannot derive micro-Doppler from the data. I believe the output data is also just the power, thus even IFFT would not help recover the phase (which is needed if we want to recover Doppler or micro-Doppler).
To obtain the raw data, you will need an extra card from TI. See the link below
Hope this helps
1 Comment
Gayatri Menon
on 14 Nov 2024
Edited: Gayatri Menon
on 14 Nov 2024
Hi,
Starting with MATLAB R2024b, the Radar Toolbox Support Package for Texas Instruments® mmWave Radar Sensors allows you to set up and collect raw ADC (IQ) radar data from the Texas Instruments mmWave Radars using the DCA1000EVM capture card.
Hope this helps
Thanks
Gayatri
Categories
Find more on Pulsed Waveforms in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!