diff options
Diffstat (limited to 'gr-digital')
-rwxr-xr-x | gr-digital/examples/snr_estimators.py | 10 | ||||
-rwxr-xr-x | gr-digital/python/qa_mpsk_snr_est.py | 22 |
2 files changed, 22 insertions, 10 deletions
diff --git a/gr-digital/examples/snr_estimators.py b/gr-digital/examples/snr_estimators.py index 6bd9257fa..432abd455 100755 --- a/gr-digital/examples/snr_estimators.py +++ b/gr-digital/examples/snr_estimators.py @@ -118,8 +118,8 @@ def main(): snr_python = list() snr_gr = list() - gain =0.5 - alpha = 0.004 + # when to issue an SNR tag; can be ignored in this example. + ntag = 10000 n_cpx = xx + 1j*xy @@ -133,10 +133,10 @@ def main(): for snr in SNR_dB: SNR = 10.0**(snr/10.0) scale = scipy.sqrt(SNR) - yy = gain*(bits + n_cpx/scale) + yy = bits + n_cpx/scale print "SNR: ", snr - Sknown = scipy.mean((yy/gain)**2) + Sknown = scipy.mean(yy**2) Nknown = scipy.var(n_cpx/scale)/2 snr0 = Sknown/Nknown snr0dB = 10.0*scipy.log10(snr0) @@ -146,7 +146,7 @@ def main(): snr_python.append(snrdB) gr_src = gr.vector_source_c(bits.tolist(), False) - gr_snr = digital.mpsk_snr_est_cc(gr_est, 0.001) + gr_snr = digital.mpsk_snr_est_cc(gr_est, ntag, 0.001) gr_chn = gr.channel_model(1.0/scale) gr_snk = gr.null_sink(gr.sizeof_gr_complex) tb = gr.top_block() diff --git a/gr-digital/python/qa_mpsk_snr_est.py b/gr-digital/python/qa_mpsk_snr_est.py index d62b8b84f..e3abff908 100755 --- a/gr-digital/python/qa_mpsk_snr_est.py +++ b/gr-digital/python/qa_mpsk_snr_est.py @@ -60,7 +60,9 @@ class test_mpsk_snr_est (gr_unittest.TestCase): def test_mpsk_snr_est_simple (self): expected_result = [11.48, 5.91, 3.30, 2.08, 1.46] - op = digital.mpsk_snr_est_cc (digital.SNR_EST_SIMPLE, 0.001) + N = 10000 + alpha = 0.001 + op = digital.mpsk_snr_est_cc (digital.SNR_EST_SIMPLE, N, alpha) actual_result = self.mpsk_snr_est_setup(op) self.assertFloatTuplesAlmostEqual (expected_result, actual_result, 2) @@ -68,21 +70,29 @@ class test_mpsk_snr_est (gr_unittest.TestCase): def test_mpsk_snr_est_skew (self): expected_result = [11.48, 5.91, 3.30, 2.08, 1.46] - op = digital.mpsk_snr_est_cc (digital.SNR_EST_SKEW, 0.001) + N = 10000 + alpha = 0.001 + op = digital.mpsk_snr_est_cc (digital.SNR_EST_SKEW, N, alpha) + actual_result = self.mpsk_snr_est_setup(op) self.assertFloatTuplesAlmostEqual (expected_result, actual_result, 2) def test_mpsk_snr_est_m2m4 (self): expected_result = [11.02, 6.20, 4.98, 5.16, 5.66] - op = digital.mpsk_snr_est_cc (digital.SNR_EST_M2M4, 0.001) + N = 10000 + alpha = 0.001 + op = digital.mpsk_snr_est_cc (digital.SNR_EST_M2M4, N, alpha) + actual_result = self.mpsk_snr_est_setup(op) self.assertFloatTuplesAlmostEqual (expected_result, actual_result, 2) def test_mpsk_snr_est_svn (self): expected_result = [10.90, 6.00, 4.76, 4.97, 5.49] - op = digital.mpsk_snr_est_cc (digital.SNR_EST_SVR, 0.001) + N = 10000 + alpha = 0.001 + op = digital.mpsk_snr_est_cc (digital.SNR_EST_SVR, N, alpha) actual_result = self.mpsk_snr_est_setup(op) self.assertFloatTuplesAlmostEqual (expected_result, actual_result, 2) @@ -95,7 +105,9 @@ class test_mpsk_snr_est (gr_unittest.TestCase): src_data = [b+(i*n) for b,n in zip(self._bits, self._noise)] src = gr.vector_source_c (src_data) - op = digital.probe_mpsk_snr_est_c (digital.SNR_EST_M2M4, 0.001) + + alpha = 0.001 + op = digital.probe_mpsk_snr_est_c (digital.SNR_EST_M2M4, alpha) tb = gr.top_block () tb.connect (src, op) |