commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r4609 - gnuradio/branches/developers/jcorgan/glfsr/gnu


From: jcorgan
Subject: [Commit-gnuradio] r4609 - gnuradio/branches/developers/jcorgan/glfsr/gnuradio-core/src/python/gnuradio/gr
Date: Fri, 23 Feb 2007 02:37:55 -0700 (MST)

Author: jcorgan
Date: 2007-02-23 02:37:54 -0700 (Fri, 23 Feb 2007)
New Revision: 4609

Modified:
   
gnuradio/branches/developers/jcorgan/glfsr/gnuradio-core/src/python/gnuradio/gr/qa_glfsr_source_b.py
Log:
Test autocorrelation properties in glfsr output.

Modified: 
gnuradio/branches/developers/jcorgan/glfsr/gnuradio-core/src/python/gnuradio/gr/qa_glfsr_source_b.py
===================================================================
--- 
gnuradio/branches/developers/jcorgan/glfsr/gnuradio-core/src/python/gnuradio/gr/qa_glfsr_source_b.py
        2007-02-23 08:48:44 UTC (rev 4608)
+++ 
gnuradio/branches/developers/jcorgan/glfsr/gnuradio-core/src/python/gnuradio/gr/qa_glfsr_source_b.py
        2007-02-23 09:37:54 UTC (rev 4609)
@@ -31,16 +31,25 @@
         self.fg = None
 
     def test_glfsr_source_b(self):
-        src = gr.glfsr_source_b(5, False, 0x12)
-        expected_result = (1, 0, 1, 0, 1, 1, 1, 0,
-                           1, 1, 0, 0, 0, 1, 1, 1,
-                           1, 1, 0, 0, 1, 1, 0, 1,
-                           0, 0, 1, 0, 0, 0, 0)
-        dst = gr.vector_sink_b()
-        self.fg.connect(src, dst)
+        src = gr.glfsr_source_b(10, False, 0x204)        # x^10+x^3+1, length 
2^10-1
+        b2f = gr.chunks_to_symbols_bf((-1.0,1.0), 1)
+        dst = gr.vector_sink_f()
+        self.fg.connect(src, b2f, dst)
         self.fg.run()
-        dst_data = dst.data()
-        self.assertEqual(expected_result, dst_data)
 
+        actual_result = dst.data()
+        R = auto_correlate(actual_result)
+        self.assertEqual(R[0], float(len(R)))            # Auto-correlation 
peak at origin
+        for i in range(len(R)-1):
+            self.assertEqual(R[i+1], -1.0)               # Auto-correlation 
minimum everywhere else
+
+def auto_correlate(data):
+    l = len(data)
+    R = [0,]*l
+    for lag in range(l):
+        for i in range(l):
+            R[lag] += data[i]*data[i-lag]
+    return R
+
 if __name__ == '__main__':
     gr_unittest.main ()





reply via email to

[Prev in Thread] Current Thread [Next in Thread]