MPSK SNR Estimator

From GNU Radio
Revision as of 20:59, 12 March 2019 by 777arc (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.

  1. Simple: >= 7 dB
  2. Skewness: >= 5 dB
  3. 2nd and 4th Moment: >= 1 dB
  4. 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.