xiangyu-gao / mmwave-radar-signal-processing-and-microdoppler-classification Goto Github PK
View Code? Open in Web Editor NEWCodes and template data for paper "Experiments with mmWave Automotive Radar Test-bed"
License: MIT License
Codes and template data for paper "Experiments with mmWave Automotive Radar Test-bed"
License: MIT License
Hi, I'm processing data of AWR1642-ODS,which has an 'L' shape virtual array.
I wonna modify your code for AWR1642-ODS, and I think the only different thing is anle estimation, beacause AWR1642 has a linear virtual array, while AWR1642-ODS has an 'L'-shape virtual array.
However, when I check your code, I get confusion results after 2D-FFT(e.g., after range-FFT and angle-FFT). I use 'pms1000_30fs.mat' for test, and the target range is about 7m.
However, when I make a figure about 'Dopdata_sum' in your code (e.g. radar data cube after 2D-FFT, and now we have got both range and velocity estimation), I get the folloeing result, x-axis is range, and y-axis is Doppler velocity,
I can't find the target at range 7m.
Could you help me explain this result?
thanks in advance!
Hi Xiangyu,
I have a raw adc data file (.bin) I have obtained from Infineon's BGT60TR24C. I have renamed it and placed it in the location as mentioned in read_bin.m. However I am getting an error
Error using reshape
Size arguments must be real integers.
Error in readDCA1000 (line 59)
LVDS = reshape(LVDS, numADCSamples*numRX, numChirps);
Error in read_bin (line 10)
data = readDCA1000(folder_location, samples);
Here is the file:
Can you please help with this.
Thanks.
Is the template data captured with 30 frames or 60 frames? When generating the plots, it says 30 frames, but the data length is double that.
Hi Xiangyu,
I wanted to enquire about the real and imaginary values which we get after FFT.
After performing FFT on the raw data we get a complex number comprising of real and imaginary part. It is technically a frequency domain. Going through different reading materials it is mentioned that we can derive the amplitude and phase from the complex number which can be further used for the analysis.
My question is can we use the raw real and imaginary values which is obtained after FFT for any analysis such as clustering, classification etc.
This paper shows the Range-Angle Plot
. It is obtained by applying Angle FFT
on Range compensated data. As in the code the Angle FFT is applied on the 2nd dimesnion of the data variable Rangedata_merge
(8 points), which indicated the [4 Rx samples from Tx1, 4Rx samples from T2].
Does both the Range-Angle Plot
, and the Range-Azimuth
plot both same? If not, How to obtain the Range-Azimuth
plot.
Velocity FFT
is applied on the chirps. Which is 3rd dimension of Rangedata_merge
for obtaining RD plot. Does that mean the third dimension is already in special domain.
Hi,
In the MUSIC code provided there is no data file available. Therefore I would like to know what is the data cube size of the data in terms of samples , chirps and receivers. Is there any preprocessing performed on the data before applying it to the music algorithm?
Thank you,
Vandana
As per file "Read me" in the "Run codes for generating micro-Doppler maps" section. I am getting an error in the 2nd step i.e to run generate_microdoppler_stft.m file.
The error says "Unrecognized function or variable 'hanning'.". the function was found in fft script (in fft modules) there is also the same error showing.
I have pasted a screenshots
Can you help me in resolving the issue?
Hi,thanks for your coding! I have a question about clustering function.
clustering(save_det_data,fft_Vel,veloc_bin_norm,dis_thrs,rng_grid,agl_grid)
what does the veloc_bin_norm mean? Is the length of save_det_data(:,2)?
Hi, thank you very much for providing the bin file, I first calculated the bin size according to the parameters of the radar configuration in your paper ("Number of chirps in one frame 255; Number of samples of one chirp 128; Number of transmitters, receivers 2, 4") and calculated the file size by the TI provided, the bin size was calculated as 940,032,000 bytes, while the bin file size you provided was 947,044,432 bytes, I don't know why the size is different, which makes the configuration of the parameters of the code when I extract the first 30 frames a problem. Thank you for your reply.
Hello,
Do you have the mmWave studio settings you guys used to collect the data? I want to be able to collect data with my radar with similar setup. Thank you in advance.
You have taken 1/Tc as the sampling frequency along the azimuth direction. Does that mean that Tc is the chirp time?
Does the 'Max_value' you used is the "Range profile Y max value" represented in the mmWave SDK plot section or is it not?
You have taken 'Ang_fft' as 128. Have you chosen it to be equal to fft_Rang or for another reason?
Do the degree values in the RA plot (agl_grd) are the target position with respect to Tx1 or Tx2 or one of the receivers?
Did you get the RA plot just like it came in the mmWave SDK?
您好,用您这个代码去处理您Automotive中的数据时会报错,’‘引用了已清除的变量 data_frames’‘,您可以告诉我怎么解决吗
1. What does peakGrouping.m
do?
I undersatnd that the detected point clouds are obtained using cfar_RV.m
. The output of cfar_RV.m
is sent to peakGrouping.m
. The output of peakGrouping.m
(detout) is a subset of output of cfar_RV.m
.
Why take subset of the point clouds location detected in cfar_RV.m
not all point clouds? How peakGrouping.m
determines this subset of piont clouds?
2. Does the values of STFT parameters Lr
, La
etc are same for each image?
From the code, I understand that the Lr
, La
values denotes the number of range and angle bins to be chosen for radar data cube(Fig. 9, Fig. 10 of paper) .
My question is, since the targets can be present in any range and angle bins, how can these values be the same for each input raw data?
Hello Xiangyu-Gao,
I was going through the paper along with the codes. I haven't finished up reading the paper but while going through the data from FMCW I had a question related to it.
When I try to view the contents of .mat files I know it is a dictionary with arrays as one of the following values. After looking at those array values it seems they are mixed characters (not specifically integer or float).
Example :-
[-127.-17.j -63.-13.j -34. +3.j ... -10.-14.j -10. +8.j -26. +2.j]
[ 81. +3.j 73. +6.j 69.+25.j ... 4. +5.j 3.+23.j -17.+11.j]
[-129.+68.j -73.+43.j -62.+56.j ... 2. +0.j 2.+23.j -16.+18.j]
Keeping in mind you have knowledge about FMCW after working on it, can you explain what is the output format from FMCW and why the array has mixed characters?
stftdata is a 255x255x55 data. its type is complex, but VGG is need float. So,use abs function?
May I ask why STFT_data(:,:,(1+Lr*La)/2) is selected for the final drawing? If so, what is the purpose of crop?
你好,请问config文件下get_params_value.m中params.Tc = 120e-6;Tc是什么参数呢?
i‘m confusing about the theory behind that ?
pha_comp_term = exp(-1ipidetout(1,pick_idx)-fft_vel/2-1)/fft_vel);
Hello Xiangyu,
You have provided with the .bin file which contains all the information taken from the radar. I tried reading it using the code given and it works. My question after that is that how you are converting the .bin into .mat format because .mat is the input to the main pipeline. Also, there is one .bin file but 3 .mat file, are all those 3 derived from single file or 3 different files?
I do not understand why only Rangedata_odd
(Range estimated data of Tx1) is considered on which Velocity FFT is performed for plotting Range-Velocity (Also called Range-Doppler) image.
But considered both the transmitters Range-estimated data i.e. Rangedata_odd
, Rangedata_even
, on which Angle FFT is performed for plotting Range-Angle Image.
In the paper it is told that the "a fast Fourier transform in the spatial dimension across RX elements (Angle FFT) resolves objects according to their arrival angles in azimuth". Then why consider the Range-estimated data due to both the Tx.
I used bms1000_30fs.mat
data
I used only "Rangedata_odd" data for plot. It appears it has more widened along the angle axis comapred to the original.
I used both "Rangedata_odd", "Rangedata_even" for RD plot. I see no difference in the plot when did "Rangedata_odd" is only considered.
Hi Gao,
From where you have considered these values
May I know how can I select these values for my setup?
Hi.
I went through the cfar_ca1D_square.m
algorithm used for doppler_sum
of size (256,128)
I checked how the cfar_ca1D_square.m
works by sending the 128 azimuth samples, corresponding to the first range bin (i.e. doppler_sum(1,:)
), noiseWin = 4, guardLen = 7
For wrapMode = 0
, I checked the window indices used by each azimuth bin. Here is the screenshot showing the indices considered for calculating the noise estimate of each of the 128 bins.
I understand the left and right windows being used for middle indices, the right window for starting indices, and the left window for ending indices based on the noiseWin , guardLen.
But I am unbale to understand the use of ord_stat =0.7
to cancel out some elements form the windows used for noise calculation. Why are some elements removed? As far as I know all the eliments in the window should be considered. Using which theory this CFAR-CA algorithm is prepared.
It is also written in one of the comments as % if not CAOS-CFAR, set ord_stat = 1
. But CAOS-CFAR
algorithm finds the minimim of the noise estimate from left and right indices. Why putting ord_stat ~= 1
makes it CAOS-CFAR
Hello author, let me ask, why do you need to use stft, and then the data in the .mat, is it just the data collected by radar, or is the author's .mat generated by something else, I've been working on this thing recently, and then do you need to use the camera part in this code?
How is pms1000_30fs.mat file is created from raw radar adc data of each frame which is in .mat file? Can u provide any code for this
您好,我准备使用awr1642进行人体步态的微多普勒效应实验,但是执行generate_microdoppler_stft后无法正确呈现速度值(在mmwave studio中使用MICRO-DOPPLER 可以正确执行)。注意到您使用的设备为awr1843,我修改了get_params_value中的值,但还是无法正确显示。是否因为两个设备产生的bin文件的数据结构不同导致这种结果?还是因为修改的get_params_value不正确导致的?如果您对此有任何见解的话,请不吝赐教,万分感激。
fft range parameter 134 is used instead of 128, any design reason behind this
params.fft_Rang = 134; % 134=>128
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.