From 295f5a6030437380562a339acdd95cc755572a37 Mon Sep 17 00:00:00 2001 From: Marcus Müller <mueller@kit.edu> Date: Fri, 8 Sep 2017 19:27:52 +0200 Subject: Added a vector operation mode to the moving average This allows users to average per-element. Might be very useful for spectrum "condensing" and such. --- gr-blocks/python/blocks/qa_moving_average.py | 38 +++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) (limited to 'gr-blocks/python') diff --git a/gr-blocks/python/blocks/qa_moving_average.py b/gr-blocks/python/blocks/qa_moving_average.py index 2c58805925..f5b17912f5 100644 --- a/gr-blocks/python/blocks/qa_moving_average.py +++ b/gr-blocks/python/blocks/qa_moving_average.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2013 Free Software Foundation, Inc. +# Copyright 2013,2017 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -87,5 +87,41 @@ class test_moving_average(gr_unittest.TestCase): # make sure result is close to zero self.assertComplexTuplesAlmostEqual(expected_result, dst_data, 1) + def test_03(self): + tb = self.tb + + print "setting up" + vlen = 5 + N = 10*vlen + seed = 0 + data = make_random_float_tuple(N, 2**10) + data = [int(d*1000) for d in data] + print "making blocks" + src = blocks.vector_source_i(data, False) + one_to_many = blocks.stream_to_streams(gr.sizeof_int, vlen) + one_to_vector = blocks.stream_to_vector(gr.sizeof_int, vlen) + many_to_vector = blocks.streams_to_vector(gr.sizeof_int, vlen) + isolated = [ blocks.moving_average_ii(100, 1) for i in range(vlen)] + dut = blocks.moving_average_ii(100, 1, vlen=vlen) + dut_dst = blocks.vector_sink_i(vlen=vlen) + ref_dst = blocks.vector_sink_i(vlen=vlen) + + print "connecting" + tb.connect(src, one_to_many) + tb.connect(src, one_to_vector, dut, dut_dst) + tb.connect(many_to_vector, ref_dst) + for idx, single in enumerate(isolated): + tb.connect((one_to_many,idx), single, (many_to_vector,idx)) + + + print "running" + tb.run() + + print "comparing" + dut_data = dut_dst.data() + ref_data = ref_dst.data() + + # make sure result is close to zero + self.assertTupleEqual(dut_data, ref_data) if __name__ == '__main__': gr_unittest.run(test_moving_average, "test_moving_average.xml") -- cgit v1.2.3 From 775adfa8f34203f0a9a981346a4e0e75b8039b09 Mon Sep 17 00:00:00 2001 From: Marcus Müller <mueller@kit.edu> Date: Tue, 26 Sep 2017 09:11:41 +0200 Subject: removed print debugging in QA test --- gr-blocks/python/blocks/qa_moving_average.py | 5 ----- 1 file changed, 5 deletions(-) (limited to 'gr-blocks/python') diff --git a/gr-blocks/python/blocks/qa_moving_average.py b/gr-blocks/python/blocks/qa_moving_average.py index f5b17912f5..2e517a92b1 100644 --- a/gr-blocks/python/blocks/qa_moving_average.py +++ b/gr-blocks/python/blocks/qa_moving_average.py @@ -90,13 +90,11 @@ class test_moving_average(gr_unittest.TestCase): def test_03(self): tb = self.tb - print "setting up" vlen = 5 N = 10*vlen seed = 0 data = make_random_float_tuple(N, 2**10) data = [int(d*1000) for d in data] - print "making blocks" src = blocks.vector_source_i(data, False) one_to_many = blocks.stream_to_streams(gr.sizeof_int, vlen) one_to_vector = blocks.stream_to_vector(gr.sizeof_int, vlen) @@ -106,7 +104,6 @@ class test_moving_average(gr_unittest.TestCase): dut_dst = blocks.vector_sink_i(vlen=vlen) ref_dst = blocks.vector_sink_i(vlen=vlen) - print "connecting" tb.connect(src, one_to_many) tb.connect(src, one_to_vector, dut, dut_dst) tb.connect(many_to_vector, ref_dst) @@ -114,10 +111,8 @@ class test_moving_average(gr_unittest.TestCase): tb.connect((one_to_many,idx), single, (many_to_vector,idx)) - print "running" tb.run() - print "comparing" dut_data = dut_dst.data() ref_data = ref_dst.data() -- cgit v1.2.3