SNR Estimator using skewness correction. More...
#include <gnuradio/digital/mpsk_snr_est.h>
Public Member Functions | |
mpsk_snr_est_skew (double alpha) | |
~mpsk_snr_est_skew () override | |
int | update (int noutput_items, const gr_complex *input) override |
Update the current registers. More... | |
double | snr () override |
Use the register values to compute a new estimate. More... | |
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. More... | |
void | set_alpha (double alpha) |
Set the running-average coefficient. More... | |
virtual double | signal () |
Returns the signal power estimate. More... | |
virtual double | noise () |
Returns the noise power estimate. More... | |
Additional Inherited Members | |
Protected Attributes inherited from gr::digital::mpsk_snr_est | |
double | d_alpha |
double | d_beta |
double | d_signal |
double | d_noise |
SNR Estimator using skewness correction.
This is an estimator that came from a discussion between Tom Rondeau and fred harris with no known paper reference. The idea is that at low SNR, the variance estimations will be affected because of fold-over around the decision boundaries, which results in a skewness to the samples. We estimate the skewness and use this as a correcting term.
This algorithm only appears to work well for BPSK signals.
gr::digital::mpsk_snr_est_skew::mpsk_snr_est_skew | ( | double | alpha | ) |
Constructor
Parameters:
alpha | the update rate of internal running average calculations. |
|
inlineoverride |
|
overridevirtual |
Use the register values to compute a new estimate.
Reimplemented from gr::digital::mpsk_snr_est.
|
overridevirtual |
Update the current registers.
Reimplemented from gr::digital::mpsk_snr_est.