summaryrefslogtreecommitdiff
path: root/gr-digital/python/digital/qa_meas_evm_cc.py
diff options
context:
space:
mode:
Diffstat (limited to 'gr-digital/python/digital/qa_meas_evm_cc.py')
-rwxr-xr-xgr-digital/python/digital/qa_meas_evm_cc.py49
1 files changed, 30 insertions, 19 deletions
diff --git a/gr-digital/python/digital/qa_meas_evm_cc.py b/gr-digital/python/digital/qa_meas_evm_cc.py
index 580d2acce5..3c0196b9d6 100755
--- a/gr-digital/python/digital/qa_meas_evm_cc.py
+++ b/gr-digital/python/digital/qa_meas_evm_cc.py
@@ -1,20 +1,22 @@
#!/usr/bin/env python
#
# Copyright 2020 Free Software Foundation, Inc.
-#
+#
# This file is part of GNU Radio
-#
+#
# SPDX-License-Identifier: GPL-3.0-or-later
#
-#
+#
from gnuradio import gr, gr_unittest
from gnuradio import blocks
-import random, numpy
+import random
+import numpy
from gnuradio import digital
from gnuradio import channels
+
class qa_meas_evm_cc(gr_unittest.TestCase):
def setUp(self):
@@ -30,8 +32,10 @@ class qa_meas_evm_cc(gr_unittest.TestCase):
expected_result = list(numpy.zeros((self.num_data,)))
self.cons = cons = digital.constellation_qpsk().base()
- self.data = data = [random.randrange(len(cons.points())) for x in range(self.num_data)]
- self.symbols = symbols = numpy.squeeze([cons.map_to_points_v(i) for i in data])
+ self.data = data = [random.randrange(
+ len(cons.points())) for x in range(self.num_data)]
+ self.symbols = symbols = numpy.squeeze(
+ [cons.map_to_points_v(i) for i in data])
evm = digital.meas_evm_cc(cons, digital.evm_measurement_t.EVM_PERCENT)
vso = blocks.vector_source_c(symbols, False, 1, [])
@@ -50,12 +54,14 @@ class qa_meas_evm_cc(gr_unittest.TestCase):
expected_result = list(numpy.zeros((self.num_data,)))
self.cons = cons = digital.constellation_qpsk().base()
- self.data = data = [random.randrange(len(cons.points())) for x in range(self.num_data)]
- self.symbols = symbols = numpy.squeeze([cons.map_to_points_v(i) for i in data])
+ self.data = data = [random.randrange(
+ len(cons.points())) for x in range(self.num_data)]
+ self.symbols = symbols = numpy.squeeze(
+ [cons.map_to_points_v(i) for i in data])
evm = digital.meas_evm_cc(cons, digital.evm_measurement_t.EVM_PERCENT)
vso = blocks.vector_source_c(symbols, False, 1, [])
- mc = blocks.multiply_const_cc(3.0+2.0j)
+ mc = blocks.multiply_const_cc(3.0 + 2.0j)
vsi = blocks.vector_sink_f()
self.tb.connect(vso, mc, evm, vsi)
@@ -66,12 +72,14 @@ class qa_meas_evm_cc(gr_unittest.TestCase):
self.assertNotEqual(expected_result, output_data)
def test_qpsk_channel(self):
- upper_bound = list(50.0*numpy.ones((self.num_data,)))
- lower_bound = list(0.0*numpy.zeros((self.num_data,)))
+ upper_bound = list(50.0 * numpy.ones((self.num_data,)))
+ lower_bound = list(0.0 * numpy.zeros((self.num_data,)))
self.cons = cons = digital.constellation_qpsk().base()
- self.data = data = [random.randrange(len(cons.points())) for x in range(self.num_data)]
- self.symbols = symbols = numpy.squeeze([cons.map_to_points_v(i) for i in data])
+ self.data = data = [random.randrange(
+ len(cons.points())) for x in range(self.num_data)]
+ self.symbols = symbols = numpy.squeeze(
+ [cons.map_to_points_v(i) for i in data])
chan = channels.channel_model(
noise_voltage=0.1,
@@ -83,7 +91,7 @@ class qa_meas_evm_cc(gr_unittest.TestCase):
evm = digital.meas_evm_cc(cons, digital.evm_measurement_t.EVM_PERCENT)
vso = blocks.vector_source_c(symbols, False, 1, [])
- mc = blocks.multiply_const_cc(3.0+2.0j)
+ mc = blocks.multiply_const_cc(3.0 + 2.0j)
vsi = blocks.vector_sink_f()
self.tb.connect(vso, chan, evm, vsi)
@@ -95,12 +103,14 @@ class qa_meas_evm_cc(gr_unittest.TestCase):
self.assertGreater(output_data, lower_bound)
def test_qam16_channel(self):
- upper_bound = list(50.0*numpy.ones((self.num_data,)))
- lower_bound = list(0.0*numpy.zeros((self.num_data,)))
+ upper_bound = list(50.0 * numpy.ones((self.num_data,)))
+ lower_bound = list(0.0 * numpy.zeros((self.num_data,)))
self.cons = cons = digital.constellation_16qam().base()
- self.data = data = [random.randrange(len(cons.points())) for x in range(self.num_data)]
- self.symbols = symbols = numpy.squeeze([cons.map_to_points_v(i) for i in data])
+ self.data = data = [random.randrange(
+ len(cons.points())) for x in range(self.num_data)]
+ self.symbols = symbols = numpy.squeeze(
+ [cons.map_to_points_v(i) for i in data])
chan = channels.channel_model(
noise_voltage=0.1,
@@ -112,7 +122,7 @@ class qa_meas_evm_cc(gr_unittest.TestCase):
evm = digital.meas_evm_cc(cons, digital.evm_measurement_t.EVM_PERCENT)
vso = blocks.vector_source_c(symbols, False, 1, [])
- mc = blocks.multiply_const_cc(3.0+2.0j)
+ mc = blocks.multiply_const_cc(3.0 + 2.0j)
vsi = blocks.vector_sink_f()
self.tb.connect(vso, chan, evm, vsi)
@@ -123,5 +133,6 @@ class qa_meas_evm_cc(gr_unittest.TestCase):
self.assertLess(output_data, upper_bound)
self.assertGreater(output_data, lower_bound)
+
if __name__ == '__main__':
gr_unittest.run(qa_meas_evm_cc)