MPSK SNR Estimator

From GNU Radio
Revision as of 20:58, 12 March 2019 by 777arc (talk | contribs)
Jump to navigation Jump to search

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.