How to get high qulity IQ data in Channel Sounding?

Hello,
We are currently working on designing a CS-based distance estimation algorithm, referencing the two example routines, `ras_initiator` and `ras_reflector`, from NCS v3.1.0 Channel Sounding. I used MATLAB to replicate the FFT algorithm implemented in C and evaluated the distance locally by collecting IQ data from the serial port's `cs_report`. The results were quite good! However, I have a few questions.

1. FFT Implementation(1 bin): Aside from the filtering strategy in the main program, during the specific implementation, an FFT is performed on the frequency domain data, followed by a flip (to equivalently achieve an IFFT). It seems that frequency 0 is at the end position, which causes a one-bin difference compared to directly performing an IFFT. What is the reasoning behind this approach (or is there an issue with my understanding)? I used ideal 5m data to obtain the results shown in Figure 1. The left side corresponds to the FFT implementation on the board, while the right side corresponds to a direct IFFT.

2. FFT Method(seek peak)  : The C implementation uses a heuristic approach to find the peak, which works well in most cases. However, when the IQ data quality is poor (e.g., multiple peaks, high noise?), the current selection strategy occasionally produces results like those in Figure 2(real range is 11m). I tried setting other thresholds, which sometimes improved the situation, but the overall effect was not significant. Is there room for improvement in this aspect?

3. IQ Data Evaluation: We attempted to evaluate the IQ data and found that the residual after linear fitting can reflect some aspects of the current measurement conditions. However, it is difficult to clean and filter the IQ data effectively. Are there methods to improve the IQ data quality from the source? I noticed that in the code, the `procedure_param` has a parameter called `snr_control_initiator`. If a certain SNR is set, can better IQ data be obtained (at the cost of measurement rate)? Alternatively, are there other methods to sacrifice measurement rate for better IQ results (e.g., discarding poor   data)?

Best regards,

Qianjunwang

Related