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.

Compiler/AWR1642: questions about "convertSNRdBToVar" algorithm (function) in AWR1642 SRR released C code

Part Number: AWR1642

Tool/software: TI C/C++ Compiler

Hi,

   I am now use TI's new released "short-range radar reference design". In the C code, it use target's SNR (output of CFAR detection) to compute the var of noise, which is  further used in the tracking process. It says the computation is according to CRLB, and the equations are as below.

/* CRLB for a frequency estimate */
fVar = (float)invSNRlin * (12.0f/((2.0f*PI_)*(2.0f*PI_))) * recipsp((n_samples*n_samples - 1));

/* Convert to a parameter variance using the scalefactor. */
RVar = fVar*scaleFac*scaleFac;

However, I don't understand it very well. Can you help me to explain it in detail? Or is there any references can be studied? 

  • Hi Jerry,

    In the SRR design, we needed to convert the SNR to a variance to use with the kalman filter. There are different ways to do that, one such way is to us the CRLB bound (or Cramer-Rao Bound). We assume that given an SNR, the tone frequency estimator that we use is the best possible, and as such the estimator achieves the lowest possible variance (or the CRLB). There is a standard CRLB formula for the variance of a sinusoid in white gaussian noise. The input to the formula would be the SNR, the number of samples, and a few other parameters. The output would be the minimum achievable variance.

    If you need a reference, I would suggest 'Fundamentals of Statistical Signal Processing, Steven M. Kay', chapter 15, Sinusoidial Parameter Estimation,

    Regards

    Anil

  • Hi Anil,

    I have study the reference "Fundamentals of Statistical Signal Processing, Steven M. Kay". And I found the equation of var(f) is given as below:

    var(f)>=6/(2pi*2pi)/snr/N/(N*N-1).

    It means the factor here is 6, why in the demo's C code, the factor is 12? which is :

    fVar = (float)invSNRlin * (12.0f/((2.0f*PI_)*(2.0f*PI_))) * recipsp((n_samples*n_samples - 1));
  • Hi Jerry,

    The CRLB formula for a real sinusoid in white gaussian noise (which you can see in eqn 3.41 in the same textbook) is what was used in the SRR design. But since all estimations involve complex sinusoids, it would be more correct to use the CRLB formula for a complex sinusoid in WGN which is the formula that you are showing. So we would be updating the variance computation. Thanks. 

    In general, the performance of the tracker should improve as the variance estimate is closer to the true variance.

    Regards

    Anil