Open shawrby opened 2 years ago
Hi,
1- We used cross correlation with a calibration matrix to recover both azimuth and elevation angle. It stores the MIMO spectrum for each azimuth/elevation angle --> CalibrationTable.npy
2- All the Rx and Tx emit and received at the same time. So, in order to build each Rx/Tx virtual antenna, we apply a phase shift on the Tx signal, the phase shift because a DOppler shift after the 2nd FFT. Therefore, if you look to a power spectrum, you will see for one objects a range R, 12 spots on the row R with different Doppler values. All these spots refer to the same object, but they have a doppler shift of 16 bin so that you can rebuild the MIMO spectrum. The first Tx0 is the spot that has another spot on its right separated by 16 bins, and another spot on its left seperated by 256-12*16
hope it helps
@jrebut Thanks for the detailed reply! I have additional questions about your answer.
1) In the case of AoA, what technique did you apply? (Capon beamforming, MUSIC etc.)
2) Looking at the RD spectrum figure of the paper, is the ground truth (GT) the position of Tx0? then is the 'right' you mentioned the (+)doppler axis right? ( = 'left' is (-)doppler axis)
3) In the '__build_radar_frame' function of rpl.py,
Why does frame3 data come first?
return np.concatenate([ frame3 ,frame0,frame1,frame2],axis=2)
4) Could you share carrier frequency(fc) and bandwidth?
Thanks again for your excellent paper and contribution.
@jrebut @shawrby
Thank you for the discussion! It's very helpful.
But, I also have the same questions as @shawrby.
Have you ever figured out the reason for the sequence of the frame3
?
Besides, I have three more questions:
I notice that the received chirps of each Rx are 256 for each loop in the dataset. However, in my view, since there are only 12 Tx antennas and 16 chirps for each loop, the received chirps for each Rx should be 16 * 12 = 192. Maybe, 256 received chirps are used to determine the Tx0 Doppler bins, but I am not sure, so could you give more details, if possible?
In the '__get_PCL' function of rpl.py, After finding the last spots on RD spectrum, the code concatenates the Doppler bin sequences like this
for doppler_bin in DopplerBin_candidates:
DopplerBinSeq = np.remainder(doppler_bin + self.dividend_constant_arr, self.numChirps)
DopplerBinSeq = np.concatenate([[DopplerBinSeq[0]],DopplerBinSeq[5:]]).astype('int')
doppler_indexes.append(DopplerBinSeq)
Why does the code put the last bin in the first place?
What does the self.window
in rpl.py stands for? or what is the meaning of the self.AoA_mat['H'][0]
?
Thanks in advance for the answer.
Hi,
1- We used cross correlation with a calibration matrix to recover both azimuth and elevation angle. It stores the MIMO spectrum for each azimuth/elevation angle --> CalibrationTable.npy
2- All the Rx and Tx emit and received at the same time. So, in order to build each Rx/Tx virtual antenna, we apply a phase shift on the Tx signal, the phase shift because a DOppler shift after the 2nd FFT. Therefore, if you look to a power spectrum, you will see for one objects a range R, 12 spots on the row R with different Doppler values. All these spots refer to the same object, but they have a doppler shift of 16 bin so that you can rebuild the MIMO spectrum. The first Tx0 is the spot that has another spot on its right separated by 16 bins, and another spot on its left seperated by 256-12*16
hope it helps
May I ask if you are using TDMA-MIMO mode or DDMA-MIMO mode, as far as I know, only in DDMA mode all the transmitting antennas transmit signals at the same time.
Thank you very much for the good research paper!. I'm analyzing the signal processing part. I have several questions.
Thanks in advance for your answer.