summaryrefslogtreecommitdiff
path: root/gr-digital
diff options
context:
space:
mode:
Diffstat (limited to 'gr-digital')
-rwxr-xr-xgr-digital/examples/snr_estimators.py10
-rwxr-xr-xgr-digital/python/qa_mpsk_snr_est.py22
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)