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