# MPSK SNR Estimator

A block for computing SNR of a M-PSK signal (e.g., BPSK, QPSK, 8-PSK). It copies the input stream to the output stream, but adds a tag that contains the estimated SNR every N samples. It may work with other types of signals, but with a certain amount of error.

Under the hood, the block uses 2nd (M2) and 4th (M4) order moments. This estimator uses knowledge of the kurtosis of the signal (ππ) and noise (ππ€) to make its estimation. We use Beaulieu's approximations here to M-PSK signals and AWGN channels such that ππ=1 and ππ€=2. These approximations significantly reduce the complexity of the calculations (and computations) required.

Reference: 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.

## Parameters

**Type** -

Below are some ROUGH estimates of what values of SNR each of these types of estimators is good for. In general, these offer a trade-off between accuracy and performance.

Simple: >= 7 dB Skewness: >= 5 dB 2nd and 4th Moment: >= 1 dB SVR: >= 0dB

See https://www.gnuradio.org/doc/doxygen-3.6.4/group__snr__blk.html for more details

**Samples between tags** - after this many samples, a tag containing the SNR (key='snr') will be sent on the output port.

**Filter Alpha** - the update rate of internal running average calculations.