diff options
author | Piotr Krysik <ptrkrysik@gmail.com> | 2018-04-16 22:21:29 +0200 |
---|---|---|
committer | Piotr Krysik <ptrkrysik@gmail.com> | 2018-04-16 22:21:29 +0200 |
commit | 8a8d41a58320d5f30713a6e6362c86d5db6de1de (patch) | |
tree | d95b1badab52b83126d57d410dd8e92e7a255c8e /python/transmitter/gsm_gmsk_mod.py | |
parent | 8b9b88d788cc5064c0f6d7aa60a14954aee59eab (diff) | |
parent | fe4db93e6d03e92a958664bfffcd0e2923f20e34 (diff) |
Merge branch 'ptrkrysik/trx' into development
Diffstat (limited to 'python/transmitter/gsm_gmsk_mod.py')
-rw-r--r-- | python/transmitter/gsm_gmsk_mod.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/python/transmitter/gsm_gmsk_mod.py b/python/transmitter/gsm_gmsk_mod.py new file mode 100644 index 0000000..e8ecc7a --- /dev/null +++ b/python/transmitter/gsm_gmsk_mod.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +################################################## +# GNU Radio Python Flow Graph +# Title: GMSK Modulator for GSM +# Author: Piotr Krysik +# Description: GMSK Modulator for GSM +# Generated: Wed Sep 20 21:12:04 2017 +################################################## + +from gnuradio import blocks +from gnuradio import digital +from gnuradio import gr +from gnuradio.analog import cpm +from gnuradio.filter import firdes +import grgsm + +class gsm_gmsk_mod(grgsm.hier_block): + + def __init__(self, BT=4, pulse_duration=4, sps=4): + gr.hier_block2.__init__( + self, "GMSK Modulator for GSM", + gr.io_signature(1, 1, gr.sizeof_char*1), + gr.io_signature(1, 1, gr.sizeof_gr_complex*1), + ) + + ################################################## + # Parameters + ################################################## + self.BT = BT + self.pulse_duration = pulse_duration + self.sps = sps + + ################################################## + # Blocks + ################################################## + self.digital_gmskmod_bc_0 = digital.gmskmod_bc(sps, pulse_duration, BT) + self.digital_diff_decoder_bb_0 = digital.diff_decoder_bb(2) + self.digital_chunks_to_symbols_xx_0 = digital.chunks_to_symbols_bf(([1,-1]), 1) + self.blocks_tagged_stream_multiply_length_0 = blocks.tagged_stream_multiply_length(gr.sizeof_gr_complex*1, "packet_len", sps) + self.blocks_float_to_char_0 = blocks.float_to_char(1, 1) + + ################################################## + # Connections + ################################################## + self.connect((self.blocks_float_to_char_0, 0), (self.digital_gmskmod_bc_0, 0)) + self.connect((self.blocks_tagged_stream_multiply_length_0, 0), (self, 0)) + self.connect((self.digital_chunks_to_symbols_xx_0, 0), (self.blocks_float_to_char_0, 0)) + self.connect((self.digital_diff_decoder_bb_0, 0), (self.digital_chunks_to_symbols_xx_0, 0)) + self.connect((self.digital_gmskmod_bc_0, 0), (self.blocks_tagged_stream_multiply_length_0, 0)) + self.connect((self, 0), (self.digital_diff_decoder_bb_0, 0)) + + def get_BT(self): + return self.BT + + def set_BT(self, BT): + self.BT = BT + + def get_pulse_duration(self): + return self.pulse_duration + + def set_pulse_duration(self, pulse_duration): + self.pulse_duration = pulse_duration + + def get_sps(self): + return self.sps + + def set_sps(self, sps): + self.sps = sps + self.blocks_tagged_stream_multiply_length_0.set_scalar(self.sps) |