mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-11-11 12:53:10 +00:00
Improve CN0 estimator
This commit is contained in:
@@ -51,7 +51,7 @@
|
||||
#include <gnuradio/gr_complex.h>
|
||||
|
||||
|
||||
/*! \brief CN0_SNV is a Carrier-to-Noise (CN0) estimator
|
||||
/*! \brief cn0_svn_estimator is a Carrier-to-Noise (CN0) estimator
|
||||
* based on the Signal-to-Noise Variance (SNV) estimator
|
||||
*
|
||||
* Signal-to-Noise (SNR) (\f$\rho\f$) estimator using the Signal-to-Noise Variance (SNV) estimator:
|
||||
@@ -75,6 +75,29 @@
|
||||
float cn0_svn_estimator(const gr_complex* Prompt_buffer, int length, float coh_integration_time_s);
|
||||
|
||||
|
||||
/*! \brief cn0_mm_estimator is a Carrier-to-Noise (CN0) estimator
|
||||
* based on the Moments Method (MM)
|
||||
*
|
||||
* Signal-to-Noise (SNR) (\f$\rho\f$) estimator using the Moments Method:
|
||||
* \f{equation}
|
||||
* \hat{\rho}=\frac{\hat{P}_s}{\hat{P}_n}=\frac{\sqrt{2*\hat{M}_2^2 - \hat{M}_4 }}{\hat{M}_2-\sqrt{2*\hat{M}_2^2 - \hat{M}_4 }},
|
||||
* \f}
|
||||
* where \f$\hat{P}_s=\left(\frac{1}{N}\sum^{N-1}_{i=0}|Re(Pc(i))|\right)^2\f$ is the estimation of the signal power,
|
||||
* \f$ \hat{M}_2=\frac{1}{N}sum^{N-1}_{i=0}|Pc(i)|^2 \f$, \f$\hat{M}_4 = \frac{1}{N}sum^{N-1}_{i=0}|Pc(i)|^4 \f$, \f$|\cdot|\f$ is the absolute value,
|
||||
* \f$Re(\cdot)\f$ stands for the real part of the value, and \f$Pc(i)\f$ is the prompt correlator output for the sample index i.
|
||||
*
|
||||
* The SNR value is converted to CN0 [dB-Hz], taking to account the coherent integration time, using the following formula:
|
||||
* \f{equation}
|
||||
* CN0_{dB}=10*log(\hat{\rho})-10*log(T_{int}),
|
||||
* \f}
|
||||
* where \f$T_{int}\f$ is the coherent integration time, in seconds.
|
||||
* Ref: D. R. Pauluzzi, N. C. Beaulieu, "A comparison of SNR estimation
|
||||
* techniques for the AWGN channel," IEEE Trans. on Comm., vol. 48,
|
||||
* no. 10, pp. 1681–1691, Oct. 2000.
|
||||
*/
|
||||
float cn0_mm_estimator(const gr_complex* Prompt_buffer, int length, float coh_integration_time_s);
|
||||
|
||||
|
||||
/*! \brief A carrier lock detector
|
||||
*
|
||||
* The Carrier Phase Lock Detector block uses the estimate of the cosine of twice the carrier phase error is given by
|
||||
|
||||
Reference in New Issue
Block a user