summaryrefslogtreecommitdiff
path: root/gr-analog/python/analog
diff options
context:
space:
mode:
authorBen Reynwar <ben@reynwar.net>2013-06-03 10:31:25 -0700
committerBen Reynwar <ben@reynwar.net>2013-06-03 10:31:25 -0700
commit6ee7c1a6267e823d5525d3d5cf251ba52b12c823 (patch)
tree9a6b39ae056aab1f399c82b4108ac05ba2c6ea05 /gr-analog/python/analog
parentbb01988e75d50d82cbb44c1a49c86c1d08f05665 (diff)
parentd1b65f4125aee94442c68d53f503bb29cdc10330 (diff)
Merged in master.
Diffstat (limited to 'gr-analog/python/analog')
-rwxr-xr-xgr-analog/python/analog/qa_agc.py55
1 files changed, 46 insertions, 9 deletions
diff --git a/gr-analog/python/analog/qa_agc.py b/gr-analog/python/analog/qa_agc.py
index f274b04e7e..cb72668341 100755
--- a/gr-analog/python/analog/qa_agc.py
+++ b/gr-analog/python/analog/qa_agc.py
@@ -31,7 +31,7 @@ class test_agc(gr_unittest.TestCase):
self.tb = None
def test_001_sets(self):
- agc = analog.agc_cc(1e-3, 1, 1, 1000)
+ agc = analog.agc_cc(1e-3, 1, 1)
agc.set_rate(1)
agc.set_reference(1.1)
@@ -105,7 +105,7 @@ class test_agc(gr_unittest.TestCase):
dst1 = blocks.vector_sink_c()
head = blocks.head(gr.sizeof_gr_complex, int (5*sampling_freq * 0.10))
- agc = analog.agc_cc(1e-3, 1, 1, 1000)
+ agc = analog.agc_cc(1e-3, 1, 1)
tb.connect(src1, head)
tb.connect(head, agc)
@@ -116,7 +116,7 @@ class test_agc(gr_unittest.TestCase):
self.assertComplexTuplesAlmostEqual(expected_result, dst_data, 4)
def test_002_sets(self):
- agc = analog.agc_ff(1e-3, 1, 1, 1000)
+ agc = analog.agc_ff(1e-3, 1, 1)
agc.set_rate(1)
agc.set_reference(1.1)
@@ -190,7 +190,7 @@ class test_agc(gr_unittest.TestCase):
dst1 = blocks.vector_sink_f ()
head = blocks.head (gr.sizeof_float, int (5*sampling_freq * 0.10))
- agc = analog.agc_ff(1e-3, 1, 1, 1000)
+ agc = analog.agc_ff(1e-3, 1, 1)
tb.connect (src1, head)
tb.connect (head, agc)
@@ -201,7 +201,7 @@ class test_agc(gr_unittest.TestCase):
self.assertFloatTuplesAlmostEqual (expected_result, dst_data, 4)
def test_003_sets(self):
- agc = analog.agc2_cc(1e-3, 1e-1, 1, 1, 1000)
+ agc = analog.agc2_cc(1e-3, 1e-1, 1, 1)
agc.set_attack_rate(1)
agc.set_decay_rate(2)
@@ -277,7 +277,7 @@ class test_agc(gr_unittest.TestCase):
dst1 = blocks.vector_sink_c()
head = blocks.head(gr.sizeof_gr_complex, int(5*sampling_freq * 0.10))
- agc = analog.agc2_cc(1e-2, 1e-3, 1, 1, 1000)
+ agc = analog.agc2_cc(1e-2, 1e-3, 1, 1)
tb.connect(src1, head)
tb.connect(head, agc)
@@ -288,7 +288,7 @@ class test_agc(gr_unittest.TestCase):
self.assertComplexTuplesAlmostEqual(expected_result, dst_data, 4)
def test_004_sets(self):
- agc = analog.agc2_ff(1e-3, 1e-1, 1, 1, 1000)
+ agc = analog.agc2_ff(1e-3, 1e-1, 1, 1)
agc.set_attack_rate(1)
agc.set_decay_rate(2)
@@ -364,7 +364,7 @@ class test_agc(gr_unittest.TestCase):
dst1 = blocks.vector_sink_f()
head = blocks.head(gr.sizeof_float, int(5*sampling_freq * 0.10))
- agc = analog.agc2_ff(1e-2, 1e-3, 1, 1, 1000)
+ agc = analog.agc2_ff(1e-2, 1e-3, 1, 1)
tb.connect(src1, head)
tb.connect(head, agc)
@@ -437,7 +437,7 @@ class test_agc(gr_unittest.TestCase):
dst1 = blocks.vector_sink_c()
head = blocks.head(gr.sizeof_gr_complex, int(5*sampling_freq * 0.10))
- agc = analog.agc2_cc(1e-2, 1e-3, 1, 1, 1000)
+ agc = analog.agc2_cc(1e-2, 1e-3, 1, 1)
tb.connect(src1, head)
tb.connect(head, agc)
@@ -447,6 +447,43 @@ class test_agc(gr_unittest.TestCase):
dst_data = dst1.data()
self.assertComplexTuplesAlmostEqual(expected_result, dst_data, 4)
+ def test_006_sets(self):
+ agc = analog.agc3_cc(1e-3, 1e-1, 1)
+
+ agc.set_attack_rate(1)
+ agc.set_decay_rate(2)
+ agc.set_reference(1.1)
+ agc.set_gain(1.1)
+
+ self.assertAlmostEqual(agc.attack_rate(), 1)
+ self.assertAlmostEqual(agc.decay_rate(), 2)
+ self.assertAlmostEqual(agc.reference(), 1.1)
+ self.assertAlmostEqual(agc.gain(), 1.1)
+
+ def test_006(self):
+ ''' Test the complex AGC loop (attack and decay rate inputs) '''
+ tb = self.tb
+
+ sampling_freq = 100
+ N = int(5*sampling_freq)
+ src1 = analog.sig_source_c(sampling_freq, analog.GR_SIN_WAVE,
+ sampling_freq * 0.10, 100)
+ dst1 = blocks.vector_sink_c()
+ head = blocks.head(gr.sizeof_gr_complex, N)
+
+ ref = 1
+ agc = analog.agc3_cc(1e-2, 1e-3, ref)
+
+ tb.connect(src1, head)
+ tb.connect(head, agc)
+ tb.connect(agc, dst1)
+
+ tb.run()
+ dst_data = dst1.data()
+ M = 100
+ result = map(lambda x: abs(x), dst_data[N-M:])
+ self.assertFloatTuplesAlmostEqual(result, M*[ref,], 4)
+
def test_100(self):
''' Test complex feedforward agc with constant input '''