valeoai / carrada_dataset

GNU General Public License v3.0
85 stars 22 forks source link

Angle-FFT #20

Closed mh-mahmoud closed 2 months ago

mh-mahmoud commented 2 months ago

Hello,

I am a little confused on how did you obtain the angle spectrum.

There are 2TX4Rx which will be 8 virtual antenna array, so my question is

Have you just applied 256 FFT on the output of the virtual array? or have you considered the horizontal and vertical dimensions of the virtual array to extract the azimuth and elevation information?

one more thing, when you transformed the RAD to RD, you applied IFFT (undo the FFT) and then took the average across the angle dimension, could you please explain why you did that?

` def to_rd(self): """' Convert RAD to RD representation. The RD representation used wasn't computed on the same freq space. Futur: Compare with summed representation after FFT.

    PARAMETERS
    ----------
    None

    RETURNS
    -------
    rd_matrix: numpy array
        Range-Doppler data with according processing
    """'
    processing = np.rot90(self.rad_matrix, 2)
    # Undo the FFT on the angle dim (Rx/Tx pairs)
    processing = np.fft.ifftshift(processing, axes=1)
    processing = np.fft.ifft(processing, axis=1)
    processing = pow(np.abs(processing), 2)
    processing = np.sum(processing, axis=1)
    rd_matrix = 10*np.log10(processing + 1)
    return rd_matrix`

Thanks

ArthurOuaknine commented 2 months ago

Hi. I did not applied the FFT myself, but I think that the 256 FFT has indeed been applied on the virtual array by my former colleagues. Due to the position of the antennas in the radar, there was no vertical dimension, and thus no elevation information available. Note that the radar used was low resolution in terms of azimuth angle. From what I remember, the IFFT is used to apply the preprocessing steps on the raw signal in the temporal domain (exponential-like distribution to gaussian-like one). Please refer to the paper for more details.

I hope this will help.