I am working with an FMCW Radar Simulation, where I have generated 3 targets with slant ranges: 156m,137m 118m

The distances can be computed based on the formula,

Distance = (Bin_idx/Nrg * Fs) * (c / 2) / chirp_rate where, Nrg = 30000 samples along range, Fs = 25 MHz chirp_rate = 3 THz/s c = 3e8 m/s

Before Applying Stolt interpolation, I verified the ranges of Stolt interpolation was correct. However, after the Stolt interpolation, I noticed the 3 targets shifted to new range frequency bins. I am not sure why this occurs.

Before Stolt Interpolation

bin indices: 2832, 3295, 3762

After Stolt Interpolation

bin indices: 5916, 6882, 7858

I have used this code section on pulsed radar simulation, and it does not cause any shifting. But I will include my Stolt Interpolation code in case there is a mistake with my implementation of it, which results in different observations for FMCW radars.

# Stolt interpolation
kstart = np.ceil(KYY[0,:].min())
kend   = np.floor(KYY[Naz//2,:].max())

KYq = np.linspace(kstart, kend, int(Nrg)) # query points, create a uniformly sampled points

S_st = np.zeros((len(KYY), len(KYq)), dtype = 'complex_')

for i in range(Naz):
    S_st[i,:] = np.interp(KYq, KYY[i,:], S_mf[i,:],
                          left = 0, right = 0) 
  • $\begingroup$ You need to work with a single point target at a time and look at the output for each stage of the processing. Does the output look like it should? If not, then you need to look at how the amplitude and phase differ from the analytical form, which you know because you are looking at a single point target at a time. $\endgroup$ Commented Jul 14, 2023 at 0:18


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.