diff options
Diffstat (limited to 'gr-digital/python/digital/qa_lfsr.py')
-rw-r--r-- | gr-digital/python/digital/qa_lfsr.py | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/gr-digital/python/digital/qa_lfsr.py b/gr-digital/python/digital/qa_lfsr.py index e0db6a382b..8caa0dbada 100644 --- a/gr-digital/python/digital/qa_lfsr.py +++ b/gr-digital/python/digital/qa_lfsr.py @@ -14,6 +14,7 @@ import numpy as np from gnuradio import gr, gr_unittest, digital from gnuradio.digital.utils import lfsr_args + class test_lfsr(gr_unittest.TestCase): def setUp(self): @@ -33,19 +34,20 @@ class test_lfsr(gr_unittest.TestCase): self.assertFloatTuplesAlmostEqual(expected_result, result_data, 5) def test_lfsr_002(self): - l = digital.lfsr(*lfsr_args(0b1,5,3,0)) - result_data = [l.next_bit() for _ in range(2*(2**5-1))] - + l = digital.lfsr(*lfsr_args(0b1, 5, 3, 0)) + result_data = [l.next_bit() for _ in range(2 * (2**5 - 1))] + expected_result = [1, 0, 0, 0, 0, 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]*2 + 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0] * 2 self.assertEqual(expected_result, result_data) - seq1 = [l.next_bit() for _ in range(2**5-1)] - seq2 = [l.next_bit() for _ in range(2**5-1)] - self.assertEqual(seq1,seq2) + seq1 = [l.next_bit() for _ in range(2**5 - 1)] + seq2 = [l.next_bit() for _ in range(2**5 - 1)] + self.assertEqual(seq1, seq2) + + res = (np.convolve(seq1, [1, 0, 1, 0, 0, 1]) % 2) + self.assertTrue(sum(res[5:-5]) == 0, "LRS not generated properly") - res = (np.convolve(seq1,[1,0,1,0,0,1])%2) - self.assertTrue(sum(res[5:-5])==0,"LRS not generated properly") if __name__ == '__main__': gr_unittest.run(test_lfsr) |