diff options
author | Ben Reynwar <ben@reynwar.net> | 2013-06-03 10:31:25 -0700 |
---|---|---|
committer | Ben Reynwar <ben@reynwar.net> | 2013-06-03 10:31:25 -0700 |
commit | 6ee7c1a6267e823d5525d3d5cf251ba52b12c823 (patch) | |
tree | 9a6b39ae056aab1f399c82b4108ac05ba2c6ea05 /gr-analog/python/analog | |
parent | bb01988e75d50d82cbb44c1a49c86c1d08f05665 (diff) | |
parent | d1b65f4125aee94442c68d53f503bb29cdc10330 (diff) |
Merged in master.
Diffstat (limited to 'gr-analog/python/analog')
-rwxr-xr-x | gr-analog/python/analog/qa_agc.py | 55 |
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 ''' |