This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

IWR1443: Range Bias and RX Channel Gain Offset Compensation

Part Number: IWR1443

Hi,

the SDK UG shows a step in chapter 6.8 for Range Bias and RX Channel Offset/Gain Compensation. This requires to boot up the IWR board with e.g. the demo firmware and then use the Visualizer to send a particular profile_calibration.cfg to the target. This in turn produces values for compRangeBiasAndRxChanPhase. These values are then inserted into a .cfg file being used for the actual use-case.

Somehow a customer cannot see the any difference in performance with or without these calibration values.

The customer is now writing code to reproduce the calibration correction factors from TI. As a first step,  directly accessing the zero Doppler range-angle map via UART and then computing the correction factors similar to TI code in (mmw_mss_14xx/rx_ch_bias_measure.c ; note that the mmw_mss_14xx reference code was downloaded from the mmWave SDK demo project here http://dev.ti.com/tirex/explore/node?node=AN9xlYcFz8lodNaEYYZ5bw__VLyFKFf__LATEST ). However, I see that the phases computed by the online visualizer are close to conjugate of the phases computed as per below suggestion. Are you aware of this issue? Probably the way these corrections are used is different in mmWave SDK code and the online visualizer. See following line from ti\mmwave_sdk_02_01_00_04\packages\ti\demo\xwr16xx\mmw\docs\doxygen\html\index.html

"To estimate the range bias, peak search is done after the 2D FFT in the 0th Doppler of the detection matrix. The peak position is then used to compute the square root of the sum of the magnitude squares of the virtual antennas (taken from MmwDemo_DSS_DataPathObj::azimuthStaticHeatMap) for the peak and its two nearest neighbors. These 3 magnitudes and their positions are used to do parabolic interpolation to find the more accurate peak from which the range bias is estimated as peak - X. The rx channel phase and gain estimation is done by finding the minimum of the magnitude squared of the virtual antennas and this minimum is used to scale the individual antennas so that the magnitude of the coefficients is always less than or equal to 1. The complex conjugate of the samples scaled in this way is stored in a common storage area (common across sub-frames) in Q15 format (MmwDemo_CliCommonCfg_t::compRxChanCfg). Refer to the function MmwDemo_rangeBiasRxChPhaseMeasure which performs the measurements and as seen in the above picture, the measurement results are written out on the CLI port in the format below:

   compRangeBiasAndRxChanPhase <rangeBias> <Re(0,0)> <Im(0,0)> <Re(0,1)> <Im(0,1)> ... <Re(0,R-1)> <Im(0,R-1)> <Re(1,0)> <Im(1,0)> ... <Re(T-1,R-1)> <Im(T-1,R-1)>"


Can you comment on the right process for getting these compensation values?


Thanks,
--Gunter