summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnuradio-core/src/python/gnuradio/Makefile.am2
-rw-r--r--gnuradio-core/src/python/gnuradio/blks2impl/Makefile.am5
-rw-r--r--gr-digital/grc/Makefile.am6
-rw-r--r--gr-digital/grc/digital_block_tree.xml4
-rw-r--r--gr-digital/grc/digital_psk_demod.xml158
-rw-r--r--gr-digital/grc/digital_psk_mod.xml130
-rw-r--r--gr-digital/grc/digital_qam_demod.xml158
-rw-r--r--gr-digital/grc/digital_qam_mod.xml130
-rw-r--r--gr-digital/python/Makefile.am7
-rw-r--r--gr-digital/python/bpsk.py (renamed from gnuradio-core/src/python/gnuradio/blks2impl/bpsk.py)2
-rw-r--r--gr-digital/python/generic_mod_demod.py (renamed from gnuradio-core/src/python/gnuradio/blks2impl/generic_mod_demod.py)2
-rw-r--r--gr-digital/python/psk2.py (renamed from gnuradio-core/src/python/gnuradio/blks2impl/psk2.py)4
-rw-r--r--gr-digital/python/qam.py (renamed from gnuradio-core/src/python/gnuradio/blks2impl/qam.py)6
-rw-r--r--gr-digital/python/qpsk.py (renamed from gnuradio-core/src/python/gnuradio/blks2impl/qpsk.py)2
-rw-r--r--gr-digital/python/utils/.gitignore3
-rw-r--r--gr-digital/python/utils/Makefile.am (renamed from gnuradio-core/src/python/gnuradio/utils/Makefile.am)0
-rw-r--r--gr-digital/python/utils/__init__.py (renamed from gnuradio-core/src/python/gnuradio/utils/__init__.py)0
-rw-r--r--gr-digital/python/utils/alignment.py (renamed from gnuradio-core/src/python/gnuradio/utils/alignment.py)0
-rw-r--r--gr-digital/python/utils/gray_code.py (renamed from gnuradio-core/src/python/gnuradio/utils/gray_code.py)0
-rw-r--r--gr-digital/python/utils/mod_codes.py (renamed from gnuradio-core/src/python/gnuradio/utils/mod_codes.py)0
-rw-r--r--gr-digital/python/utils/run_tests.in (renamed from gnuradio-core/src/python/gnuradio/utils/run_tests.in)0
21 files changed, 603 insertions, 16 deletions
diff --git a/gnuradio-core/src/python/gnuradio/Makefile.am b/gnuradio-core/src/python/gnuradio/Makefile.am
index 1bec7dd19b..eff35e95cd 100644
--- a/gnuradio-core/src/python/gnuradio/Makefile.am
+++ b/gnuradio-core/src/python/gnuradio/Makefile.am
@@ -22,7 +22,7 @@
include $(top_srcdir)/Makefile.common
if PYTHON
-SUBDIRS = gr gru gruimpl blks2 blks2impl vocoder utils
+SUBDIRS = gr gru gruimpl blks2 blks2impl vocoder
grpython_PYTHON = \
__init__.py \
diff --git a/gnuradio-core/src/python/gnuradio/blks2impl/Makefile.am b/gnuradio-core/src/python/gnuradio/blks2impl/Makefile.am
index 6a2e7d5f74..34e246b36d 100644
--- a/gnuradio-core/src/python/gnuradio/blks2impl/Makefile.am
+++ b/gnuradio-core/src/python/gnuradio/blks2impl/Makefile.am
@@ -29,7 +29,6 @@ grblkspythondir = $(grpythondir)/blks2impl
grblkspython_PYTHON = \
__init__.py \
am_demod.py \
- bpsk.py \
channel_model.py \
dbpsk.py \
dbpsk2.py \
@@ -39,7 +38,6 @@ grblkspython_PYTHON = \
filterbank.py \
fm_demod.py \
fm_emph.py \
- generic_mod_demod.py \
generic_usrp.py \
gmsk.py \
cpm.py \
@@ -58,9 +56,6 @@ grblkspython_PYTHON = \
pfb_interpolator.py \
pkt.py \
psk.py \
- psk2.py \
- qam.py \
- qpsk.py \
rational_resampler.py \
standard_squelch.py \
stream_to_vector_decimator.py \
diff --git a/gr-digital/grc/Makefile.am b/gr-digital/grc/Makefile.am
index 8d08c3f59d..0057e00355 100644
--- a/gr-digital/grc/Makefile.am
+++ b/gr-digital/grc/Makefile.am
@@ -29,4 +29,8 @@ dist_grcblocks_DATA = \
digital_cma_equalizer_cc.xml \
digital_kurtotic_equalizer_cc.xml \
digital_dxpsk_mod.xml \
- digital_dxpsk_demod.xml
+ digital_dxpsk_demod.xml \
+ digital_psk_mod.xml \
+ digital_psk_demod.xml \
+ digital_qam_mod.xml \
+ digital_qam_demod.xml
diff --git a/gr-digital/grc/digital_block_tree.xml b/gr-digital/grc/digital_block_tree.xml
index c132ff5b42..f600049115 100644
--- a/gr-digital/grc/digital_block_tree.xml
+++ b/gr-digital/grc/digital_block_tree.xml
@@ -38,5 +38,9 @@
<name>Digital Modulators</name>
<block>digital_dxpsk_mod</block>
<block>digital_dxpsk_demod</block>
+ <block>digital_psk_mod</block>
+ <block>digital_psk_demod</block>
+ <block>digital_qam_mod</block>
+ <block>digital_qam_demod</block>
</cat>
</cat>
diff --git a/gr-digital/grc/digital_psk_demod.xml b/gr-digital/grc/digital_psk_demod.xml
new file mode 100644
index 0000000000..4d1a67fb41
--- /dev/null
+++ b/gr-digital/grc/digital_psk_demod.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0"?>
+
+<!--
+ Copyright 2009,2010,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.
+-->
+
+<!--
+###################################################
+##PSK Demod
+###################################################
+ -->
+<block>
+ <name>PSK Demod</name>
+ <key>digital_psk_demod</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.psk.psk_demod(
+ constellation_points=$constellation_points,
+ mod_code=$mod_code,
+ differential=$differential,
+ samples_per_symbol=$samples_per_symbol,
+ excess_bw=$excess_bw,
+ freq_alpha=$freq_alpha,
+ timing_alpha=$timing_alpha,
+ timing_max_dev=$timing_max_dev,
+ phase_alpha=$phase_alpha,
+ verbose=$verbose,
+ log=$log,
+ )</make>
+ <param>
+ <name>Number of Constellation Points</name>
+ <key>constellation_points</key>
+ <value>8</value>
+ <type>integer</type>
+ </param>
+ <param>
+ <name>Gray Code</name>
+ <key>mod_code</key>
+ <type>enum</type>
+ <option>
+ <name>Yes</name>
+ <key>gray</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>none</key>
+ </option>
+ </param>
+ <param>
+ <name>Differential Encoding</name>
+ <key>differential</key>
+ <value>True</value>
+ <type>boolean</type>
+ <option>
+ <name>Yes</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Samples/Symbol</name>
+ <key>samples_per_symbol</key>
+ <value>2</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Excess BW</name>
+ <key>excess_bw</key>
+ <value>0.35</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Frequency Alpha</name>
+ <key>freq_alpha</key>
+ <value>0.01</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Timing Alpha</name>
+ <key>timing_alpha</key>
+ <value>0.100</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Timing Max Dev</name>
+ <key>timing_max_dev</key>
+ <value>1.5</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Phase Alpha</name>
+ <key>phase_alpha</key>
+ <value>0.1</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Verbose</name>
+ <key>verbose</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Logging</name>
+ <key>log</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+ <source>
+ <name>sync</name>
+ <type>complex</type>
+ <optional>1</optional>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_psk_mod.xml b/gr-digital/grc/digital_psk_mod.xml
new file mode 100644
index 0000000000..6666326ab4
--- /dev/null
+++ b/gr-digital/grc/digital_psk_mod.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0"?>
+
+<!--
+ Copyright 2009,2010,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.
+-->
+
+<!--
+###################################################
+##PSK Mod
+###################################################
+ -->
+<block>
+ <name>PSK Mod</name>
+ <key>digital_psk_mod</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.psk2.psk_mod(
+ constellation_points=$constellation_points,
+ mod_code=$mod_code,
+ differential=$differential,
+ samples_per_symbol=$samples_per_symbol,
+ excess_bw=$excess_bw,
+ verbose=$verbose,
+ log=$log,
+ )</make>
+ <param>
+ <name>Number of Constellation Points</name>
+ <key>constellation_points</key>
+ <value>8</value>
+ <type>integer</type>
+ </param>
+ <param>
+ <name>Gray Code</name>
+ <key>mod_code</key>
+ <type>enum</type>
+ <option>
+ <name>Yes</name>
+ <key>gray</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>none</key>
+ </option>
+ </param>
+ <param>
+ <name>Differential Encoding</name>
+ <key>differential</key>
+ <value>True</value>
+ <type>boolean</type>
+ <option>
+ <name>Yes</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Samples/Symbol</name>
+ <key>samples_per_symbol</key>
+ <value>2</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Excess BW</name>
+ <key>excess_bw</key>
+ <value>0.35</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Verbose</name>
+ <key>verbose</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Logging</name>
+ <key>log</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+ <source>
+ <name>sync</name>
+ <type>complex</type>
+ <optional>1</optional>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_qam_demod.xml b/gr-digital/grc/digital_qam_demod.xml
new file mode 100644
index 0000000000..d7b4cbf2bd
--- /dev/null
+++ b/gr-digital/grc/digital_qam_demod.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0"?>
+
+<!--
+ Copyright 2009,2010,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.
+-->
+
+<!--
+###################################################
+##QAM Demod
+###################################################
+ -->
+<block>
+ <name>QAM Demod</name>
+ <key>digital_qam_demod</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.qam.qam_demod(
+ constellation_points=$constellation_points,
+ mod_code=$mod_code,
+ differential=$differential,
+ samples_per_symbol=$samples_per_symbol,
+ excess_bw=$excess_bw,
+ freq_alpha=$freq_alpha,
+ timing_alpha=$timing_alpha,
+ timing_max_dev=$timing_max_dev,
+ phase_alpha=$phase_alpha,
+ verbose=$verbose,
+ log=$log,
+ )</make>
+ <param>
+ <name>Number of Constellation Points</name>
+ <key>constellation_points</key>
+ <value>16</value>
+ <type>integer</type>
+ </param>
+ <param>
+ <name>Gray Code</name>
+ <key>mod_code</key>
+ <type>enum</type>
+ <option>
+ <name>Yes</name>
+ <key>gray</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>none</key>
+ </option>
+ </param>
+ <param>
+ <name>Differential Encoding</name>
+ <key>differential</key>
+ <value>True</value>
+ <type>boolean</type>
+ <option>
+ <name>Yes</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Samples/Symbol</name>
+ <key>samples_per_symbol</key>
+ <value>2</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Excess BW</name>
+ <key>excess_bw</key>
+ <value>0.35</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Frequency Alpha</name>
+ <key>freq_alpha</key>
+ <value>0.01</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Timing Alpha</name>
+ <key>timing_alpha</key>
+ <value>0.100</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Timing Max Dev</name>
+ <key>timing_max_dev</key>
+ <value>1.5</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Phase Alpha</name>
+ <key>phase_alpha</key>
+ <value>0.1</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Verbose</name>
+ <key>verbose</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Logging</name>
+ <key>log</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+ <source>
+ <name>sync</name>
+ <type>complex</type>
+ <optional>1</optional>
+ </source>
+</block>
diff --git a/gr-digital/grc/digital_qam_mod.xml b/gr-digital/grc/digital_qam_mod.xml
new file mode 100644
index 0000000000..5cfeec029e
--- /dev/null
+++ b/gr-digital/grc/digital_qam_mod.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0"?>
+
+<!--
+ Copyright 2009,2010,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.
+-->
+
+<!--
+###################################################
+##QAM Mod
+###################################################
+ -->
+<block>
+ <name>QAM Mod</name>
+ <key>digital_qam_mod</key>
+ <import>from gnuradio import digital</import>
+ <make>digital.qam.qam_mod(
+ constellation_points=$constellation_points,
+ mod_code=$mod_code,
+ differential=$differential,
+ samples_per_symbol=$samples_per_symbol,
+ excess_bw=$excess_bw,
+ verbose=$verbose,
+ log=$log,
+ )</make>
+ <param>
+ <name>Number of Constellation Points</name>
+ <key>constellation_points</key>
+ <value>16</value>
+ <type>integer</type>
+ </param>
+ <param>
+ <name>Gray Code</name>
+ <key>mod_code</key>
+ <type>enum</type>
+ <option>
+ <name>Yes</name>
+ <key>gray</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>none</key>
+ </option>
+ </param>
+ <param>
+ <name>Differential Encoding</name>
+ <key>differential</key>
+ <value>True</value>
+ <type>boolean</type>
+ <option>
+ <name>Yes</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Samples/Symbol</name>
+ <key>samples_per_symbol</key>
+ <value>2</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Excess BW</name>
+ <key>excess_bw</key>
+ <value>0.35</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Verbose</name>
+ <key>verbose</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($verbose) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>Logging</name>
+ <key>log</key>
+ <value>False</value>
+ <type>bool</type>
+ <hide>#if str($log) == 'False' then 'part' else 'none'#</hide>
+ <option>
+ <name>On</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>Off</name>
+ <key>False</key>
+ </option>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>byte</type>
+ </source>
+ <source>
+ <name>sync</name>
+ <type>complex</type>
+ <optional>1</optional>
+ </source>
+</block>
diff --git a/gr-digital/python/Makefile.am b/gr-digital/python/Makefile.am
index 13a3d11570..b1d0d11d86 100644
--- a/gr-digital/python/Makefile.am
+++ b/gr-digital/python/Makefile.am
@@ -38,5 +38,10 @@ digital_PYTHON = \
psk.py \
dbpsk.py \
dqpsk.py \
- d8psk.py
+ d8psk.py \
+ psk2.py \
+ generic_mod_demod.py \
+ qam.py \
+ bpsk.py \
+ qpsk.py
endif
diff --git a/gnuradio-core/src/python/gnuradio/blks2impl/bpsk.py b/gr-digital/python/bpsk.py
index 16524de945..6d2eb5d6d5 100644
--- a/gnuradio-core/src/python/gnuradio/blks2impl/bpsk.py
+++ b/gr-digital/python/bpsk.py
@@ -27,7 +27,7 @@ from math import pi, log
from cmath import exp
from gnuradio import gr, modulation_utils2
-from gnuradio.blks2impl.generic_mod_demod import generic_mod, generic_demod
+from gnuradio.digital.generic_mod_demod import generic_mod, generic_demod
# Default number of points in constellation.
_def_constellation_points = 2
diff --git a/gnuradio-core/src/python/gnuradio/blks2impl/generic_mod_demod.py b/gr-digital/python/generic_mod_demod.py
index 44779754b1..4b1819ed7f 100644
--- a/gnuradio-core/src/python/gnuradio/blks2impl/generic_mod_demod.py
+++ b/gr-digital/python/generic_mod_demod.py
@@ -27,7 +27,7 @@ Generic modulation and demodulation.
from gnuradio import gr
from gnuradio.modulation_utils2 import extract_kwargs_from_options_for_class
-from gnuradio.utils import mod_codes
+from gnuradio.digital.utils import mod_codes
# default values (used in __init__ and add_options)
_def_samples_per_symbol = 2
diff --git a/gnuradio-core/src/python/gnuradio/blks2impl/psk2.py b/gr-digital/python/psk2.py
index aaa9659a43..089af11dd0 100644
--- a/gnuradio-core/src/python/gnuradio/blks2impl/psk2.py
+++ b/gr-digital/python/psk2.py
@@ -27,8 +27,8 @@ from math import pi, log
from cmath import exp
from gnuradio import gr, modulation_utils2
-from gnuradio.blks2impl.generic_mod_demod import generic_mod, generic_demod
-from gnuradio.utils import mod_codes, gray_code
+from gnuradio.digital.generic_mod_demod import generic_mod, generic_demod
+from gnuradio.digital.utils import mod_codes, gray_code
# Default number of points in constellation.
_def_constellation_points = 4
diff --git a/gnuradio-core/src/python/gnuradio/blks2impl/qam.py b/gr-digital/python/qam.py
index 9c135b25a9..d22aac55e6 100644
--- a/gnuradio-core/src/python/gnuradio/blks2impl/qam.py
+++ b/gr-digital/python/qam.py
@@ -26,9 +26,9 @@ QAM modulation and demodulation.
from math import pi, sqrt, log
from gnuradio import gr, modulation_utils2
-from gnuradio.blks2impl.generic_mod_demod import generic_mod, generic_demod
-from gnuradio.utils.gray_code import gray_code
-from gnuradio.utils import mod_codes
+from gnuradio.digital.generic_mod_demod import generic_mod, generic_demod
+from gnuradio.digital.utils.gray_code import gray_code
+from gnuradio.digital.utils import mod_codes
# Default number of points in constellation.
_def_constellation_points = 16
diff --git a/gnuradio-core/src/python/gnuradio/blks2impl/qpsk.py b/gr-digital/python/qpsk.py
index 4af8d00180..ea17244241 100644
--- a/gnuradio-core/src/python/gnuradio/blks2impl/qpsk.py
+++ b/gr-digital/python/qpsk.py
@@ -27,7 +27,7 @@ doesn't work for non-differential encodings.
"""
from gnuradio import gr, modulation_utils2
-from gnuradio.blks2impl.generic_mod_demod import generic_mod
+from gnuradio.digital.generic_mod_demod import generic_mod
# Default number of points in constellation.
diff --git a/gr-digital/python/utils/.gitignore b/gr-digital/python/utils/.gitignore
new file mode 100644
index 0000000000..60c81fdce7
--- /dev/null
+++ b/gr-digital/python/utils/.gitignore
@@ -0,0 +1,3 @@
+run_tests
+Makefile
+Makefile.in
diff --git a/gnuradio-core/src/python/gnuradio/utils/Makefile.am b/gr-digital/python/utils/Makefile.am
index c35951b44d..c35951b44d 100644
--- a/gnuradio-core/src/python/gnuradio/utils/Makefile.am
+++ b/gr-digital/python/utils/Makefile.am
diff --git a/gnuradio-core/src/python/gnuradio/utils/__init__.py b/gr-digital/python/utils/__init__.py
index b3e997f9f8..b3e997f9f8 100644
--- a/gnuradio-core/src/python/gnuradio/utils/__init__.py
+++ b/gr-digital/python/utils/__init__.py
diff --git a/gnuradio-core/src/python/gnuradio/utils/alignment.py b/gr-digital/python/utils/alignment.py
index d32365866b..d32365866b 100644
--- a/gnuradio-core/src/python/gnuradio/utils/alignment.py
+++ b/gr-digital/python/utils/alignment.py
diff --git a/gnuradio-core/src/python/gnuradio/utils/gray_code.py b/gr-digital/python/utils/gray_code.py
index 926a1ded10..926a1ded10 100644
--- a/gnuradio-core/src/python/gnuradio/utils/gray_code.py
+++ b/gr-digital/python/utils/gray_code.py
diff --git a/gnuradio-core/src/python/gnuradio/utils/mod_codes.py b/gr-digital/python/utils/mod_codes.py
index caacda5cc6..caacda5cc6 100644
--- a/gnuradio-core/src/python/gnuradio/utils/mod_codes.py
+++ b/gr-digital/python/utils/mod_codes.py
diff --git a/gnuradio-core/src/python/gnuradio/utils/run_tests.in b/gr-digital/python/utils/run_tests.in
index adcbdfd21e..adcbdfd21e 100644
--- a/gnuradio-core/src/python/gnuradio/utils/run_tests.in
+++ b/gr-digital/python/utils/run_tests.in