diff options
author | Tom Rondeau | 2012-10-25 21:44:36 -0400 |
---|---|---|
committer | Tom Rondeau | 2012-10-25 21:44:36 -0400 |
commit | 8c9a5fdb19046c3cb8d25d6b77dbac87d49d8391 (patch) | |
tree | 2116f117efc4bd074d05faac306263f1a75574c8 /gr-analog/python | |
parent | 7b3ca29290f97388c3006959a91c24eea1116483 (diff) | |
download | gnuradio-8c9a5fdb19046c3cb8d25d6b77dbac87d49d8391.tar.gz gnuradio-8c9a5fdb19046c3cb8d25d6b77dbac87d49d8391.tar.bz2 gnuradio-8c9a5fdb19046c3cb8d25d6b77dbac87d49d8391.zip |
analog: adding frequency_modulator_fc to gr-analog, with QA and GRC.
Diffstat (limited to 'gr-analog/python')
-rwxr-xr-x | gr-analog/python/qa_frequency_modulator.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/gr-analog/python/qa_frequency_modulator.py b/gr-analog/python/qa_frequency_modulator.py new file mode 100755 index 000000000..b673b3275 --- /dev/null +++ b/gr-analog/python/qa_frequency_modulator.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python +# +# Copyright 2004,2007,2010,2012 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 analog_swig as analog +import math + +def sincos(x): + return math.cos(x) + math.sin(x) * 1j + + +class test_frequency_modulator(gr_unittest.TestCase): + + def setUp(self): + self.tb = gr.top_block() + + def tearDown(self): + self.tb = None + + def test_fm_001(self): + pi = math.pi + sensitivity = pi/4 + src_data = (1.0/4, 1.0/2, 1.0/4, -1.0/4, -1.0/2, -1/4.0) + running_sum = (pi/16, 3*pi/16, pi/4, 3*pi/16, pi/16, 0) + expected_result = tuple([sincos(x) for x in running_sum]) + src = gr.vector_source_f(src_data) + op = analog.frequency_modulator_fc(sensitivity) + dst = gr.vector_sink_c() + self.tb.connect(src, op) + self.tb.connect(op, dst) + self.tb.run() + result_data = dst.data() + self.assertComplexTuplesAlmostEqual(expected_result, result_data, 5) + +if __name__ == '__main__': + gr_unittest.run(test_frequency_modulator, "test_frequency_modulator.xml") + |