diff options
Diffstat (limited to 'gnuradio-core/src')
-rwxr-xr-x | gnuradio-core/src/python/gnuradio/gr/qa_cpm.py | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/gnuradio-core/src/python/gnuradio/gr/qa_cpm.py b/gnuradio-core/src/python/gnuradio/gr/qa_cpm.py deleted file mode 100755 index 776173466..000000000 --- a/gnuradio-core/src/python/gnuradio/gr/qa_cpm.py +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2010 Free Software Foundation, Inc. -# -# This file is part of GNU Radio -# -# GNU Radio is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GNU Radio is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Radio; see the file COPYING. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, -# Boston, MA 02110-1301, USA. -# - -from gnuradio import gr, gr_unittest -import numpy - -class test_cpm(gr_unittest.TestCase): - - def setUp (self): - self.tb = gr.top_block () - - def tearDown (self): - self.tb = None - - def do_check_phase_shift(self, type, name): - sps = 2 - L = 1 - in_bits = (1,) * 20 - src = gr.vector_source_b(in_bits, False) - cpm = gr.cpmmod_bc(type, 0.5, sps, L) - arg = gr.complex_to_arg() - sink = gr.vector_sink_f() - - self.tb.connect(src, cpm, arg, sink) - self.tb.run() - - symbol_phases = numpy.array(sink.data()[sps*L-1::sps]) - phase_diff = numpy.mod(numpy.subtract(symbol_phases[1:], symbol_phases[:-1]), - (2*numpy.pi,) * (len(symbol_phases)-1)) - self.assertFloatTuplesAlmostEqual(tuple(phase_diff), (0.5 * numpy.pi,) * len(phase_diff), 5, - msg="Phase shift was not correct for CPM method " + name) - - def test_001_lrec(self): - self.do_check_phase_shift(gr.cpm.LRC, 'LREC') - - def test_001_lrc(self): - self.do_check_phase_shift(gr.cpm.LRC, 'LRC') - - def test_001_lsrc(self): - self.do_check_phase_shift(gr.cpm.LSRC, 'LSRC') - - def test_001_ltfm(self): - self.do_check_phase_shift(gr.cpm.TFM, 'TFM') - - def test_001_lgmsk(self): - sps = 2 - L = 5 - bt = 0.3 - in_bits = (1,) * 20 - src = gr.vector_source_b(in_bits, False) - gmsk = gr.gmskmod_bc(sps, bt, L) - arg = gr.complex_to_arg() - sink = gr.vector_sink_f() - - self.tb.connect(src, gmsk, arg, sink) - self.tb.run() - - symbol_phases = numpy.array(sink.data()[sps*L-1::sps]) - phase_diff = numpy.mod(numpy.subtract(symbol_phases[1:], symbol_phases[:-1]), - (2*numpy.pi,) * (len(symbol_phases)-1)) - self.assertFloatTuplesAlmostEqual(tuple(phase_diff), (0.5 * numpy.pi,) * len(phase_diff), 5, - msg="Phase shift was not correct for GMSK") - - def test_phase_response(self): - phase_response = gr.cpm.phase_response(gr.cpm.LREC, 2, 4) - self.assertAlmostEqual(numpy.sum(phase_response), 1) - - -if __name__ == '__main__': - gr_unittest.run(test_cpm, "test_cpm.xml") - |