Clear Filters
Clear Filters

Accurate time delay in FMCW radar simulation using radarTransceiver.

22 views (last 30 days)
Recently, I tried to follow the official radar simulation tutorial to explore the problem of radar delay estimation. But I found that there is a difference between the delayed signal simulated by radarTransceiver and the analytical delayed signal.
After carefully looking at the internal implementation of radarTransceiver, it seems to be caused by radarTransceiver using Fractional Delay FIR Filters to achieve signal delay.
I can understand that this implementation method is more general. But if the signal analysis formula is known (such as a clear FMCW signal and delay), is there any other more accurate implementation method?
Any help or clarification is greatly appreciated. Thanks.
  2 Comments
Jingqi
Jingqi on 27 Feb 2024
Edited: Jingqi on 27 Feb 2024
Code for delayed signal in analytical form. [Neglecting amplitude losses and phase errors between antennas]
%% test reflection signal (checked ?)
distance = vpaths.PathLength;
tau = distance / c;
number = floor(tm * fs);
zero_pending_num = floor(tau*fs);
t = (0:number-1)'*tm/number;
test_sig = exp(1i * (pi * (sweepSlope)* (t-tau).^2 -1* delta_phi));
test_sig = [zeros(zero_pending_num,1); test_sig(zero_pending_num + 1:end)];
Jingqi
Jingqi on 28 Feb 2024
Fractional Delay FIR Filters in radarTransceiver is the code in PathChannel.m line 707
% Compute fractional delay
nDelay = propdelay*Fs;
isDelayIntSamples = (rem(propdelay,1/Fs) == 0);
nDelay(isDelayIntSamples) = round(nDelay(isDelayIntSamples));
fDelay = nDelay-fix(nDelay);
fDelay_candidate = reshape(repmat(fDelay,ncol_per_path,1),1,[]);
nDelay_candidate = reshape(repmat(fix(nDelay),ncol_per_path,1),1,[]); %integer samples
% Use linear fractional delay, as in
% dsp.VariationalFractionalDelay
for m = 1:size(tempxp_candidate,2)
tempxp_candidate(:,m) = ...
tempxp_candidate(:,m)*(1-fDelay_candidate(m))+...
[0;tempxp_candidate(1:end-1,m)]*fDelay_candidate(m);
end

Sign in to comment.

Answers (1)

Pratyush
Pratyush on 16 Jul 2024 at 8:19
Hi Jinqi,
To achieve a more accurate signal delay for known signal forms like FMCW, you can use a direct analytical approach rather than Fractional Delay FIR Filters. Below is an overview of how to implement this :
Analytical Signal Delay Implementation
Define Constants and Parameters:
- Speed of light
- Sampling frequency
- Sweep time
- Sweep slope
- Phase offset
Calculate Delay:
- Compute the time delay based on the distance.
- Determine the number of zero-padded samples.
Generate Time Vector:
- Create a time vector for the signal.
Generate Signals:
- Generate the transmitted FMCW signal.
- Generate the delayed FMCW signal analytically by adjusting the time vector.
Apply Zero-Padding:
- Apply zero-padding to simulate the delay.
Plot Signals:
- Plot the original and delayed signals for visual comparison.
This approach directly adjusts the time vector to account for the delay, providing a more accurate representation of the delayed signal for known signal forms like FMCW.

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!