infineon4engineers

1. Distance2Go IF scale understanding

Hey there,

in D2G v1.2.0 (Radar_D2G_Doppler_FMCW project in DAVE) there are two IF scale factors defined, one for FMCW range processing and another one for Doppler/speed evaluation.

In Radar_D2G_Doppler_FMCW\Algorithm\src\fmcw.h, line 95 it is said: 'Floating point scale applied to the FFT spectrum to enhance the visibility of targets'. The value is calculated by the following formula in fmcw.c:
(FMCW_IQ_SCALE * 3.3f / 4095.0f) = 16*3.3/4095 = 0.001289.
In Radar_D2G_Doppler_FMCW\Algorithm\src\doppler.h, line 77 it is said: 'Scale to be applied to the raw IQ data defined by \ref DOPPLER_IQ_SCALE'. The formula in doppler.c is:
(if_scale * 3.3f / 4095.0f) = 8*3.3/4095 = 0.00645.

Can someone tell me more details about these values? Why do they enhance the visibility of targets? What is the idea behind the formulas? Why 3.3? Why 4095? Is the 4095 related to the 12 Bit ADCs, so it would be (2^12)-1=4095? Why?

2. Hello,

Within the D2G FW, and for both supported algorithms (Doppler/FMCW), the Floating point scale is applied to the raw IQ data, before performing the calculation of the complex FFT spectrum.
Otherwise, applying the if_scale after the FFT spectrum will come-out also to the same result, since it's a linear scaling.

Apply linear IF scaling to the frequency domain spectrum of Doppler/FMCW, is increasing the signal (and the noise) magnitude, so that can used to avoid overflow conditions and minimize quantization errors, thus enhance the visibility of targets.

The 3.3 value is based on the voltage scale, of the powered D2G board, and is an optional factor in the if_scale formula.

You're right! The 4095 value is based on the XMC4200 ADC peripheral configured to 12-bit resolution, and used to sample and process the analog down-converted signals in the base-band. Each up-chirp is digitized by an ADC to 12-bit, complex (I/Q), and time-domain raw data stored as 2-byte-value.

Cheers,
Montassar.