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