blob: fec936c1902138826d054ec409007fd1a1c59879 [file] [log] [blame]
Piotr Krysikff5d81d2017-09-27 21:56:42 +02001# -*- coding: utf-8 -*-
2##################################################
3# GNU Radio Python Flow Graph
4# Title: GMSK Modulator for GSM
5# Author: Piotr Krysik
6# Description: GMSK Modulator for GSM
7# Generated: Wed Sep 20 21:12:04 2017
8##################################################
9
10from gnuradio import blocks
11from gnuradio import digital
12from gnuradio import gr
13from gnuradio.analog import cpm
14from gnuradio.filter import firdes
15import grgsm
16
Vasil Velichkov46c90be2019-09-02 04:06:41 +030017class gsm_gmsk_mod(gr.hier_block2):
Piotr Krysikff5d81d2017-09-27 21:56:42 +020018
19 def __init__(self, BT=4, pulse_duration=4, sps=4):
20 gr.hier_block2.__init__(
21 self, "GMSK Modulator for GSM",
22 gr.io_signature(1, 1, gr.sizeof_char*1),
23 gr.io_signature(1, 1, gr.sizeof_gr_complex*1),
24 )
25
26 ##################################################
27 # Parameters
28 ##################################################
29 self.BT = BT
30 self.pulse_duration = pulse_duration
31 self.sps = sps
32
33 ##################################################
34 # Blocks
35 ##################################################
36 self.digital_gmskmod_bc_0 = digital.gmskmod_bc(sps, pulse_duration, BT)
37 self.digital_diff_decoder_bb_0 = digital.diff_decoder_bb(2)
38 self.digital_chunks_to_symbols_xx_0 = digital.chunks_to_symbols_bf(([1,-1]), 1)
39 self.blocks_tagged_stream_multiply_length_0 = blocks.tagged_stream_multiply_length(gr.sizeof_gr_complex*1, "packet_len", sps)
40 self.blocks_float_to_char_0 = blocks.float_to_char(1, 1)
41
42 ##################################################
43 # Connections
44 ##################################################
45 self.connect((self.blocks_float_to_char_0, 0), (self.digital_gmskmod_bc_0, 0))
46 self.connect((self.blocks_tagged_stream_multiply_length_0, 0), (self, 0))
47 self.connect((self.digital_chunks_to_symbols_xx_0, 0), (self.blocks_float_to_char_0, 0))
48 self.connect((self.digital_diff_decoder_bb_0, 0), (self.digital_chunks_to_symbols_xx_0, 0))
49 self.connect((self.digital_gmskmod_bc_0, 0), (self.blocks_tagged_stream_multiply_length_0, 0))
50 self.connect((self, 0), (self.digital_diff_decoder_bb_0, 0))
51
52 def get_BT(self):
53 return self.BT
54
55 def set_BT(self, BT):
56 self.BT = BT
57
58 def get_pulse_duration(self):
59 return self.pulse_duration
60
61 def set_pulse_duration(self, pulse_duration):
62 self.pulse_duration = pulse_duration
63
64 def get_sps(self):
65 return self.sps
66
67 def set_sps(self, sps):
68 self.sps = sps
69 self.blocks_tagged_stream_multiply_length_0.set_scalar(self.sps)