GNU Radio C++ API Reference: gr::digital::snr_est_m2m4 Class Reference

| GNU Radio C++ API Reference 3.10.12.0 The Free & Open Software Radio Ecosystem |

Loading...
Searching...
No Matches
gr::digital::snr_est_m2m4 Class Reference

SNR Estimator using 2nd and 4th-order moments. More...

`#include <gnuradio/digital/mpsk_snr_est.h>`

## Public Member Functions
| snr_est_m2m4 (double alpha, double ka, double kw)
| ~snr_est_m2m4 () override
int | update (int noutput_items, const gr_complex *input) override
| Update the current registers.
double | snr () override
| Use the register values to compute a new estimate.
Public Member Functions inherited from gr::digital::mpsk_snr_est
| mpsk_snr_est (double alpha)
virtual | ~mpsk_snr_est ()
double | alpha () const
| Get the running-average coefficient.
void | set_alpha (double alpha)
| Set the running-average coefficient.
virtual double | signal ()
| Returns the signal power estimate.
virtual double | noise ()
| Returns the noise power estimate.

## Additional Inherited Members
Protected Attributes inherited from gr::digital::mpsk_snr_est
double | d_alpha
double | d_beta
double | d_signal
double | d_noise

## Detailed Description

SNR Estimator using 2nd and 4th-order moments.

An SNR estimator for M-PSK signals that uses 2nd (M2) and 4th (M4) order moments. This estimator uses knowledge of the kurtosis of the signal (k_a) and noise (k_w) to make its estimation. In this case, you can set your own estimations for k_a and k_w, the kurtosis of the signal and noise, to fit this estimation better to your signal and channel conditions.

A word of warning: this estimator has not been fully tested or proved with any amount of rigor. The estimation for M4 in particular might be ignoring effectf of when k_a and k_w are different. Use this estimator with caution and a copy of the reference on hand.

The digital_mpsk_snr_est_m2m4 assumes k_a and k_w to simplify the computations for M-PSK and AWGN channels. Use that estimator unless you have a way to guess or estimate these values here.

Original paper: R. Matzner, "An SNR estimation algorithm for complex baseband signal using higher order statistics," Facta Universitatis (Nis), no. 6, pp. 41-52, 1993.

Reference used in derivation: D. R. Pauluzzi and N. C. Beaulieu, "A comparison of SNR estimation techniques for the AWGN channel," IEEE Trans. Communications, Vol. 48, No. 10, pp. 1681-1691, 2000.

## Constructor & Destructor Documentation

## ◆ snr_est_m2m4()

gr::digital::snr_est_m2m4::snr_est_m2m4 | ( | double | alpha,
|  | double | ka,
|  | double | kw )

Constructor

Parameters:

Parameters

  alpha | the update rate of internal running average calculations.
  ka | estimate of the signal kurtosis (1 for PSK)
  kw | estimate of the channel noise kurtosis (2 for AWGN)

References gr::digital::mpsk_snr_est::alpha().

## ◆ ~snr_est_m2m4()

gr::digital::snr_est_m2m4::~snr_est_m2m4 | ( |  | ) |
| inlineoverride

## Member Function Documentation

## ◆ snr()

double gr::digital::snr_est_m2m4::snr | ( |  | ) |
| overridevirtual

Use the register values to compute a new estimate.

Reimplemented from gr::digital::mpsk_snr_est.

## ◆ update()

int gr::digital::snr_est_m2m4::update | ( | int | noutput_items,
|  | const gr_complex * | input )
| overridevirtual

Update the current registers.

Reimplemented from gr::digital::mpsk_snr_est.

The documentation for this class was generated from the following file:

- mpsk_snr_est.h