Borrar filtros
Borrar filtros

Accurate time delay in FMCW radar simulation using radarTransceiver.

22 visualizaciones (últimos 30 días)
Jingqi
Jingqi el 27 de Feb. de 2024
Respondida: Pratyush el 16 de Jul. de 2024 a las 8:19
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 comentarios
Jingqi
Jingqi el 27 de Feb. de 2024
Editada: Jingqi el 27 de Feb. de 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 el 28 de Feb. de 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

Iniciar sesión para comentar.

Respuestas (1)

Pratyush
Pratyush el 16 de Jul. de 2024 a las 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.

Categorías

Más información sobre Automotive Radar en Help Center y File Exchange.

Productos


Versión

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by