diff options
author | Jakub Zy <jakub@openmailbox.org> | 2014-03-07 09:15:06 -0500 |
---|---|---|
committer | Tom Rondeau <tom@trondeau.com> | 2014-03-07 09:15:06 -0500 |
commit | 699a3cf309b422b5fccc02d0a27214a9a09f0e08 (patch) | |
tree | ca023b9bedb6d79bd2d6d865dd3e65b5d520157f | |
parent | 8761e9104239f03ba1346ad3ea47a446a81de01a (diff) |
digital: fixed differential handling for dpsk mod/demod blocks. Also fixed docs.
-rw-r--r-- | gr-digital/python/digital/bpsk.py | 47 | ||||
-rw-r--r-- | gr-digital/python/digital/qpsk.py | 48 |
2 files changed, 49 insertions, 46 deletions
diff --git a/gr-digital/python/digital/bpsk.py b/gr-digital/python/digital/bpsk.py index 92f3254933..2ecaac3386 100644 --- a/gr-digital/python/digital/bpsk.py +++ b/gr-digital/python/digital/bpsk.py @@ -1,23 +1,23 @@ # # Copyright 2005,2006,2011 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. -# +# """ BPSK modulation and demodulation. @@ -46,12 +46,11 @@ def bpsk_constellation(): class bpsk_mod(generic_mod): """ Hierarchical block for RRC-filtered BPSK modulation. - + The input is a byte stream (unsigned char) and the output is the complex modulated signal at baseband. - - - Args: + + Args: mod_code: Argument is not used. It exists purely to simplify generation of the block in grc. differential: Whether to use differential encoding (boolean). """ @@ -72,14 +71,14 @@ class bpsk_mod(generic_mod): class bpsk_demod(generic_demod): """ - Hierarchical block for RRC-filtered BPSK modulation. - - The input is a byte stream (unsigned char) and the - output is the complex modulated signal at baseband. + Hierarchical block for RRC-filtered BPSK demodulation. + + The input is the complex modulated signal at baseband and the + output is a stream of bits packed 1 bit per byte (LSB) - Args: + Args: mod_code: Argument is not used. It exists purely to simplify generation of the block in grc. - differential: whether to use differential encoding (boolean) + differential: whether to use differential encoding (boolean) """ # See generic_demod for additional arguments __doc__ += shared_demod_args @@ -105,11 +104,11 @@ def dbpsk_constellation(): class dbpsk_mod(bpsk_mod): """ Hierarchical block for RRC-filtered DBPSK modulation. - + The input is a byte stream (unsigned char) and the output is the complex modulated signal at baseband. - - Args: + + Args: mod_code: Argument is not used. It exists purely to simplify generation of the block in grc. """ # See generic_mod for additional arguments @@ -126,12 +125,12 @@ class dbpsk_mod(bpsk_mod): class dbpsk_demod(bpsk_demod): """ - Hierarchical block for RRC-filtered DBPSK modulation. - - The input is a byte stream (unsigned char) and the - output is the complex modulated signal at baseband. - - Args: + Hierarchical block for RRC-filtered DBPSK demodulation. + + The input is the complex modulated signal at baseband and the + output is a stream of bits packed 1 bit per byte (LSB) + + Args: mod_code: Argument is not used. It exists purely to simplify generation of the block in grc. """ # See generic_demod for additional arguments diff --git a/gr-digital/python/digital/qpsk.py b/gr-digital/python/digital/qpsk.py index 1ed3357bef..c5230ef24d 100644 --- a/gr-digital/python/digital/qpsk.py +++ b/gr-digital/python/digital/qpsk.py @@ -1,23 +1,23 @@ # # Copyright 2005,2006,2011 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. -# +# """ QPSK modulation. @@ -39,7 +39,7 @@ _def_mod_code = mod_codes.GRAY_CODE # QPSK constellation # ///////////////////////////////////////////////////////////////////////////// -def qpsk_constellation(mod_code=_def_mod_code): +def qpsk_constellation(mod_code=_def_mod_code): """ Creates a QPSK constellation. """ @@ -54,17 +54,17 @@ def qpsk_constellation(mod_code=_def_mod_code): class qpsk_mod(generic_mod): """ Hierarchical block for RRC-filtered QPSK modulation. - + The input is a byte stream (unsigned char) and the output is the complex modulated signal at baseband. - + Args: mod_code: Whether to use a gray_code (digital.mod_codes.GRAY_CODE) or not (digital.mod_codes.NO_CODE). differential: Whether to use differential encoding (boolean). """ # See generic_mod for additional arguments __doc__ += shared_mod_args - + def __init__(self, mod_code=_def_mod_code, differential=False, *args, **kwargs): pre_diff_code = True if not differential: @@ -77,8 +77,9 @@ class qpsk_mod(generic_mod): raise ValueError("That mod_code is not supported for DQPSK mod/demod.") if mod_code == mod_codes.NO_CODE: pre_diff_code = False - + super(qpsk_mod, self).__init__(constellation=constellation, + differential=differential, pre_diff_code=pre_diff_code, *args, **kwargs) @@ -90,11 +91,11 @@ class qpsk_mod(generic_mod): class qpsk_demod(generic_demod): """ - Hierarchical block for RRC-filtered QPSK modulation. - - The input is a byte stream (unsigned char) and the - output is the complex modulated signal at baseband. - + Hierarchical block for RRC-filtered QPSK demodulation. + + The input is the complex modulated signal at baseband and the + output is a stream of bits packed 1 bit per byte (LSB) + Args: mod_code: Whether to use a gray_code (digital.mod_codes.GRAY_CODE) or not (digital.mod_codes.NO_CODE). differential: Whether to use differential encoding (boolean). @@ -117,6 +118,7 @@ class qpsk_demod(generic_demod): pre_diff_code = False super(qpsk_demod, self).__init__(constellation=constellation, + differential=differential, pre_diff_code=pre_diff_code, *args, **kwargs) @@ -138,7 +140,7 @@ def dqpsk_constellation(mod_code=_def_mod_code): class dqpsk_mod(qpsk_mod): """ Hierarchical block for RRC-filtered DQPSK modulation. - + The input is a byte stream (unsigned char) and the output is the complex modulated signal at baseband. @@ -149,7 +151,8 @@ class dqpsk_mod(qpsk_mod): __doc__ += shared_mod_args def __init__(self, mod_code=_def_mod_code, *args, **kwargs): - super(dqpsk_mod, self).__init__(mod_code, True, + super(dqpsk_mod, self).__init__(mod_code=mod_code, + differential=True, *args, **kwargs) # ///////////////////////////////////////////////////////////////////////////// @@ -159,10 +162,10 @@ class dqpsk_mod(qpsk_mod): class dqpsk_demod(qpsk_demod): """ - Hierarchical block for RRC-filtered DQPSK modulation. - - The input is a byte stream (unsigned char) and the - output is the complex modulated signal at baseband. + Hierarchical block for RRC-filtered DQPSK demodulation. + + The input is the complex modulated signal at baseband and the + output is a stream of bits packed 1 bit per byte (LSB) Args: mod_code: Whether to use a gray_code (digital.mod_codes.GRAY_CODE) or not (digital.mod_codes.NO_CODE). @@ -171,7 +174,8 @@ class dqpsk_demod(qpsk_demod): __doc__ += shared_demod_args def __init__(self, mod_code=_def_mod_code, *args, **kwargs): - super(dqpsk_demod, self).__init__(mod_code, True, + super(dqpsk_demod, self).__init__(mod_code=mod_code, + differential=True, *args, **kwargs) # |