From 6a78e0a8ae6dc17a12ab5e397f1452a1a363e7d1 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Fri, 23 Dec 2011 13:28:06 -0500 Subject: digital: added a class, digital_mpsk_snr_est_cc, that estimates the SNR of an M-ary PSK signal. This block can calculate the SNR using 1 of 4 different methods specified in the block's constructor. They (tend to) trade off accuracy for computational performnace. --- gr-digital/swig/digital_swig.i | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gr-digital/swig/digital_swig.i') diff --git a/gr-digital/swig/digital_swig.i b/gr-digital/swig/digital_swig.i index 86b5cab13..9182b2b09 100644 --- a/gr-digital/swig/digital_swig.i +++ b/gr-digital/swig/digital_swig.i @@ -41,6 +41,7 @@ #include "digital_kurtotic_equalizer_cc.h" #include "digital_lms_dd_equalizer_cc.h" #include "digital_mpsk_receiver_cc.h" +#include "digital_mpsk_snr_est_cc.h" #include "digital_ofdm_cyclic_prefixer.h" #include "digital_ofdm_frame_acquisition.h" #include "digital_ofdm_frame_sink.h" @@ -65,6 +66,7 @@ %include "digital_kurtotic_equalizer_cc.i" %include "digital_lms_dd_equalizer_cc.i" %include "digital_mpsk_receiver_cc.i" +%include "digital_mpsk_snr_est_cc.i" %include "digital_ofdm_cyclic_prefixer.i" %include "digital_ofdm_frame_acquisition.i" %include "digital_ofdm_frame_sink.i" -- cgit From 74c53aa4c5b9aeac590b803b12601bcc9c8b9b60 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Thu, 29 Dec 2011 11:27:00 -0500 Subject: digital: added a probe (sink) for the new SNR estimators; also fixes up Makefiles and Swig files for SNR est blocks. --- gr-digital/swig/digital_swig.i | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'gr-digital/swig/digital_swig.i') diff --git a/gr-digital/swig/digital_swig.i b/gr-digital/swig/digital_swig.i index 9182b2b09..bc50fc727 100644 --- a/gr-digital/swig/digital_swig.i +++ b/gr-digital/swig/digital_swig.i @@ -24,6 +24,13 @@ //load generated python docstrings %include "digital_swig_doc.i" +enum snr_est_type_t { + SNR_EST_SIMPLE = 0, // Simple estimator (>= 7 dB) + SNR_EST_SKEW, // Skewness-base est (>= 5 dB) + SNR_EST_M2M4, // 2nd & 4th moment est (>= 1 dB) + SNR_EST_SVN // SVN-based est (>= 0dB) +}; + %include %{ @@ -48,6 +55,7 @@ #include "digital_ofdm_insert_preamble.h" #include "digital_ofdm_mapper_bcv.h" #include "digital_ofdm_sampler.h" +#include "digital_probe_mpsk_snr_est_c.h" #include "digital_cpmmod_bc.h" #include "digital_gmskmod_bc.h" %} @@ -73,6 +81,7 @@ %include "digital_ofdm_insert_preamble.i" %include "digital_ofdm_mapper_bcv.i" %include "digital_ofdm_sampler.i" +%include "digital_probe_mpsk_snr_est_c.i" %include "digital_cpmmod_bc.i" %include "digital_gmskmod_bc.i" -- cgit From 886e3c258ff40b4d10e7e8fc28912f14565a4fd1 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Thu, 29 Dec 2011 15:38:49 -0500 Subject: digital: adding documentation for SNR estimators; added an estimator for M2M4 type that allows the user to set the kurtosis of the signal and noise, if known, to work with non-MPSK and non-AWGN channels (untested). Also, the technique is signal to variation ratio (SVR), not SVN. Couldn't read my own writing. --- gr-digital/swig/digital_swig.i | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gr-digital/swig/digital_swig.i') diff --git a/gr-digital/swig/digital_swig.i b/gr-digital/swig/digital_swig.i index bc50fc727..962cb5d28 100644 --- a/gr-digital/swig/digital_swig.i +++ b/gr-digital/swig/digital_swig.i @@ -28,7 +28,7 @@ enum snr_est_type_t { SNR_EST_SIMPLE = 0, // Simple estimator (>= 7 dB) SNR_EST_SKEW, // Skewness-base est (>= 5 dB) SNR_EST_M2M4, // 2nd & 4th moment est (>= 1 dB) - SNR_EST_SVN // SVN-based est (>= 0dB) + SNR_EST_SVR // SVR-based est (>= 0dB) }; %include -- cgit From 59ae7f87cc52e28a39b04895f2977624552f6f1d Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Fri, 30 Dec 2011 13:42:16 -0500 Subject: digital: somewhat strange buy necessary fix for autotools build with guile. --- gr-digital/swig/digital_swig.i | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'gr-digital/swig/digital_swig.i') diff --git a/gr-digital/swig/digital_swig.i b/gr-digital/swig/digital_swig.i index 962cb5d28..a39ef9ab7 100644 --- a/gr-digital/swig/digital_swig.i +++ b/gr-digital/swig/digital_swig.i @@ -24,12 +24,14 @@ //load generated python docstrings %include "digital_swig_doc.i" +#if SWIGPYTHON enum snr_est_type_t { SNR_EST_SIMPLE = 0, // Simple estimator (>= 7 dB) SNR_EST_SKEW, // Skewness-base est (>= 5 dB) SNR_EST_M2M4, // 2nd & 4th moment est (>= 1 dB) SNR_EST_SVR // SVR-based est (>= 0dB) }; +#endif %include @@ -86,6 +88,14 @@ enum snr_est_type_t { %include "digital_gmskmod_bc.i" #if SWIGGUILE + +enum snr_est_type_t { + SNR_EST_SIMPLE = 0, // Simple estimator (>= 7 dB) + SNR_EST_SKEW, // Skewness-base est (>= 5 dB) + SNR_EST_M2M4, // 2nd & 4th moment est (>= 1 dB) + SNR_EST_SVR // SVR-based est (>= 0dB) +}; + %scheme %{ (load-extension-global "libguile-gnuradio-digital_swig" "scm_init_gnuradio_digital_swig_module") %} -- cgit