Clear Filters
Clear Filters

FMCW radar range estimation differences between phased.RangeResponse and fft

6 views (last 30 days)
I tried to run the following radar simulation, and it succeeded:
Radar simulation [ openExample('driving_radar/AutomotiveRadarInterferenceExample') ]
However, when I try to replace these codes (line 168)
% Define range response
rngresp = phased.RangeResponse('RangeMethod','FFT', ...
'SweepSlope',fmcwwav1.SweepBandwidth/fmcwwav1.SweepTime, ...
'RangeFFTLengthSource','Property','RangeFFTLength',Nrange, ...
'RangeWindow','Hann','SampleRate',fmcwwav1.SampleRate);
% Calculate the range response of interference-free data cube
XrngTgt = rngresp(XcubeTgt);
with this one:
XrngTgt = fftshift(fft(XcubeTgt, Nrange));
the results seem to be different.
After a detailed check, I found that the result of phased.RangeResponse and FFT is different. However, what makes these differences is not described on the official website. Additionally, it is challenging to understand the implementation details in phased.RangeResponse.
Any help or clarification is greatly appreciated. Thanks.

Accepted Answer

George
George on 27 Feb 2024
The main reason why you are see differences is because of the "RangeWindow" being set to Hann in the RangeResponse but not applying that window to the radar data. Also, you need to make sure to fftshift along the correct dimension. Try running the following snippet after running the example:
% Define range response
rngresp = phased.RangeResponse('RangeMethod','FFT', ...
'SweepSlope',fmcwwav1.SweepBandwidth/fmcwwav1.SweepTime, ...
'RangeFFTLengthSource','Property','RangeFFTLength',Nrange, ...
'RangeWindow','Hann','SampleRate',fmcwwav1.SampleRate);
% Need to apply hann window to input (Range Window)
coeff = hann(size(XcubeTgt,1));
input = coeff .* XcubeTgt;
% Compare results
XrngTgtRR = rngresp(XcubeTgt);
XrngTgtFFT = fftshift(fft(in, Nrange),1);
isequal(XrngTgtRR,XrngTgtFFT)
  1 Comment
Jingqi
Jingqi on 27 Feb 2024
Great thanks, the results from FFT and RangeResponse are truely same.
The previous error is caused by using fftshift in the wrong dimension.
Thanks again!

Sign in to comment.

More Answers (0)

Products


Release

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!