summaryrefslogtreecommitdiff
path: root/gr-analog/python/qa_agc.py
diff options
context:
space:
mode:
Diffstat (limited to 'gr-analog/python/qa_agc.py')
-rwxr-xr-xgr-analog/python/qa_agc.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/gr-analog/python/qa_agc.py b/gr-analog/python/qa_agc.py
index 0d8a7bfb5d..fc88b6acb0 100755
--- a/gr-analog/python/qa_agc.py
+++ b/gr-analog/python/qa_agc.py
@@ -451,6 +451,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 '''