Please let me conform frequency calibration formula in Antenna Calibration.
N_chirp: the number of ADC samples per chirp
N_calib: the number of ADC samples per chirp at calibration
n_chirp = [0 N_chirp-1]
TI document: C:\ti\mmwave_studio_03_00_00_14\mmWaveStudio\MatlabExamples\signal_processing_4chip_cascade.pdf at Page 9.
(script C:\ti\mmwave_studio_03_00_00_14\mmWaveStudio\MatlabExamples\4chip_cascade_MIMO_example\modules\calibration\@calibrationCascade\datapath.m)
F = 2*pi *P_diff * f_s^calib/f_s^chirp* f_chirp/f_calib / (N_chirp*FFTTimes) * n_chirp (1)
My opinion
F = 2*pi *P_diff * f_s^calib/f_s^chirp* f_chirp/f_calib / (N_calib*FFTTimes) * n_chirp (1)
I guess N_calib is right.
where P_diff is the FFT peak index difference for a virtual channel; f_chirp is the FMCW chirp frequency slope; f_calib is the FMCW chirp frequency slope used for calibration which can be different from f_chirp; f_s^calib is the FMCW chirp sampling rate used for calibration which can be different from the sampling rate ℎ applied in the actual data.
Detail
- freq compensation at calibration: freqComp1
freqComp_calib = (FFTbinIdx1-FFTbinIdxRef)/FFTTimes/N_calib*f_s^calib
fRef =FFTbinIdxRef/FFTTimes/(N_calib/2)*f_s^calib/2 : ref peak
f1 =FFTbinIdx1/FFTTimes/(N_calib/2)*f_s^calib/2 :turned peak
freqComp_calib =f1-fRef
- target freq compenstion : freqComp_chirp
timeComp_calib=freqComp_calib/f_calib
timeComp_chirp=freqComp_chirp/f_chirp
if timeComp_calib = timeComp_chirp
freqComp_chirp=timeComp_chirp*f_chirp
freqComp_chirp= freqComp_calib/f_calib *f_chirp
- How to apply freqComp to ADCData_chirp
ADCData_chirp.*exp(1j*2*pi-freqComp_chirp*n_chirp*1/f_s^chirp)