diff options
author | Solomon Tan <solomonbstoner@yahoo.com.au> | 2021-07-21 07:18:52 +0800 |
---|---|---|
committer | mormj <34754695+mormj@users.noreply.github.com> | 2021-07-21 09:49:55 -0400 |
commit | 9c388da6571ca7605b78f519c23778b0d604abfc (patch) | |
tree | cb006a6b40a35a7eaa032f4fb3a1fbf5e93395e8 /gr-digital/python/digital | |
parent | 52b05f80176eb108c62a517e27e4ae6471d5e2b8 (diff) |
gfsk: Make packed_to_unpacked optional
Provide the option to not use the packed_to_unpacked block in the gfsk
mod hier block so that the latter can be used to modulate
non-byte-aligned bit stream.
The option enables packed_to_unpacked by default for backward
compatibility.
Signed-off-by: Solomon Tan <solomonbstoner@yahoo.com.au>
Diffstat (limited to 'gr-digital/python/digital')
-rw-r--r-- | gr-digital/python/digital/gfsk.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/gr-digital/python/digital/gfsk.py b/gr-digital/python/digital/gfsk.py index 516c80375d..befc550717 100644 --- a/gr-digital/python/digital/gfsk.py +++ b/gr-digital/python/digital/gfsk.py @@ -28,6 +28,7 @@ _def_sensitivity = 1 _def_bt = 0.35 _def_verbose = False _def_log = False +_def_do_unpack = True _def_gain_mu = None _def_mu = 0.5 @@ -50,7 +51,8 @@ class gfsk_mod(gr.hier_block2): sensitivity=_def_sensitivity, bt=_def_bt, verbose=_def_verbose, - log=_def_log): + log=_def_log, + do_unpack=_def_do_unpack): """ Hierarchical block for Gaussian Frequency Shift Key (GFSK) modulation. @@ -63,6 +65,7 @@ class gfsk_mod(gr.hier_block2): bt: Gaussian filter bandwidth * symbol time (float) verbose: Print information about modulator? (bool) debug: Print modualtion data to files? (bool) + unpack: Unpack input byte stream? (bool) """ gr.hier_block2.__init__(self, "gfsk_mod", @@ -80,9 +83,10 @@ class gfsk_mod(gr.hier_block2): ntaps = 4 * samples_per_symbol # up to 3 bits in filter at once #sensitivity = (pi / 2) / samples_per_symbol # phase change per bit = pi / 2 + + # Turn it into NRZ data. #self.nrz = digital.bytes_to_syms() - self.unpack = blocks.packed_to_unpacked_bb(1, gr.GR_MSB_FIRST) self.nrz = digital.chunks_to_symbols_bf([-1, 1]) # Form Gaussian filter @@ -111,7 +115,11 @@ class gfsk_mod(gr.hier_block2): self._setup_logging() # Connect & Initialize base class - self.connect(self, self.unpack, self.nrz, self.gaussian_filter, self.fmmod, self.amp, self) + if do_unpack: + self.unpack = blocks.packed_to_unpacked_bb(1, gr.GR_MSB_FIRST) + self.connect(self, self.unpack, self.nrz, self.gaussian_filter, self.fmmod, self.amp, self) + else: + self.connect(self, self.nrz, self.gaussian_filter, self.fmmod, self.amp, self) def samples_per_symbol(self): return self._samples_per_symbol |