summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/sphinx/source/digital.rst8
-rw-r--r--docs/sphinx/source/index.rst8
-rw-r--r--gr-digital/docs/digital.dox18
-rw-r--r--gr-digital/examples/demod/mpsk_demod.grc1134
-rw-r--r--gr-digital/grc/digital_dxpsk_demod.block.yml75
-rw-r--r--gr-digital/grc/digital_dxpsk_mod.block.yml52
-rw-r--r--gr-digital/python/digital/bpsk.py97
-rw-r--r--gr-digital/python/digital/qam.py103
-rw-r--r--gr-digital/python/digital/qpsk.py126
9 files changed, 4 insertions, 1617 deletions
diff --git a/docs/sphinx/source/digital.rst b/docs/sphinx/source/digital.rst
index e15c9166d9..b954f4bd6b 100644
--- a/docs/sphinx/source/digital.rst
+++ b/docs/sphinx/source/digital.rst
@@ -79,8 +79,6 @@ gnuradio.digital
.. autofunction:: gnuradio.digital.sd_psk_4_0x2_1_0
.. autofunction:: gnuradio.digital.sd_psk_4_0x3_1_0
.. autofunction:: gnuradio.digital.psk_constellation
-.. autoclass:: gnuradio.digital.psk_mod
-.. autoclass:: gnuradio.digital.psk_demod
.. autofunction:: gnuradio.digital.qam_16_0x0_0_1_2_3
.. autofunction:: gnuradio.digital.qam_16_0x1_0_1_2_3
.. autofunction:: gnuradio.digital.qam_16_0x2_0_1_2_3
@@ -101,14 +99,8 @@ gnuradio.digital
.. autofunction:: gnuradio.digital.make_differential_constellation
.. autofunction:: gnuradio.digital.make_non_differential_constellation
.. autofunction:: gnuradio.digital.qam_constellation
-.. autoclass:: gnuradio.digital.qam_mod
-.. autoclass:: gnuradio.digital.qam_demod
.. autofunction:: gnuradio.digital.qpsk_constellation
-.. autoclass:: gnuradio.digital.qpsk_mod
-.. autoclass:: gnuradio.digital.qpsk_demod
.. autofunction:: gnuradio.digital.dqpsk_constellation
-.. autoclass:: gnuradio.digital.dqpsk_mod
-.. autoclass:: gnuradio.digital.dqpsk_demod
.. autofunction:: gnuradio.digital.soft_dec_table_generator
.. autofunction:: gnuradio.digital.soft_dec_table
.. autofunction:: gnuradio.digital.calc_soft_dec_from_table
diff --git a/docs/sphinx/source/index.rst b/docs/sphinx/source/index.rst
index 64d4ec379d..86f55e9f78 100644
--- a/docs/sphinx/source/index.rst
+++ b/docs/sphinx/source/index.rst
@@ -1282,8 +1282,6 @@ Helper Classes: Digital
gnuradio.digital.sd_psk_4_0x2_1_0
gnuradio.digital.sd_psk_4_0x3_1_0
gnuradio.digital.psk_constellation
- gnuradio.digital.psk_mod
- gnuradio.digital.psk_demod
gnuradio.digital.qam_16_0x0_0_1_2_3
gnuradio.digital.qam_16_0x1_0_1_2_3
gnuradio.digital.qam_16_0x2_0_1_2_3
@@ -1304,14 +1302,8 @@ Helper Classes: Digital
gnuradio.digital.make_differential_constellation
gnuradio.digital.make_non_differential_constellation
gnuradio.digital.qam_constellation
- gnuradio.digital.qam_mod
- gnuradio.digital.qam_demod
gnuradio.digital.qpsk_constellation
- gnuradio.digital.qpsk_mod
- gnuradio.digital.qpsk_demod
gnuradio.digital.dqpsk_constellation
- gnuradio.digital.dqpsk_mod
- gnuradio.digital.dqpsk_demod
gnuradio.digital.soft_dec_table_generator
gnuradio.digital.soft_dec_table
gnuradio.digital.calc_soft_dec_from_table
diff --git a/gr-digital/docs/digital.dox b/gr-digital/docs/digital.dox
index 08e63008b3..8a6ed930d0 100644
--- a/gr-digital/docs/digital.dox
+++ b/gr-digital/docs/digital.dox
@@ -159,18 +159,9 @@ gr::digital::constellation_receiver_cb,
gr::digital::constellation_soft_decoder_cf, or
gr::digital::lms_dd_equalizer_cc).
-The gr-digital/python/digital/psk.py module also holds functions
-similar to digital.psk_constellation but that create a full modulator
-and demodulator chain derived from digital.generic_mod_demod.
+The gr-digital/python/digital/psk.py module holds functions
+similar to digital.psk_constellation.
-<pre>
- psk_mod(constellation_points, mod_code, differential, *args, **kwargs)
- psk_demod(constellation_points, mod_code, differential, *args, **kwargs)
-</pre>
-
-The args and kwargs are parameters of the generic_mod or generic_demod
-passed directly to them. See \ref digital_generic_mod_demod for
-details of this interface.
There is another Python file full of helper functions to create
different constellations. This is found in the
@@ -235,9 +226,6 @@ what has been described for PSK exist here:
<pre>
qam_constellation(constellation_points, differential, mod_code,
large_ampls_to_corners)
- qam_mod(constellation_points, differential, mod_code, *args, **kwargs)
- qam_demod(constellation_points, differential, mod_code,
- large_ampls_to_corner, *args, **kwargs)
</pre>
The parameters to these functions is the same as for the PSK
@@ -267,6 +255,8 @@ modulation.
\section digital_generic_mod_demod The Generic Modulator/Demodulator
Hierarchical Blocks
+This module is deprecated and will be removed in GNU Radio 3.9.
+
Since digital modulation and demodulation are complex functions, the
different parts can be done by different existing GNU Radio blocks. We
have combined these into a generic modulator and generic demodulator
diff --git a/gr-digital/examples/demod/mpsk_demod.grc b/gr-digital/examples/demod/mpsk_demod.grc
deleted file mode 100644
index 3c1c2e8726..0000000000
--- a/gr-digital/examples/demod/mpsk_demod.grc
+++ /dev/null
@@ -1,1134 +0,0 @@
-<?xml version='1.0' encoding='ASCII'?>
-<flow_graph>
- <timestamp>Sat Jul 12 13:49:08 2014</timestamp>
- <block>
- <key>options</key>
- <param>
- <key>id</key>
- <value>mpsk_demod</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>title</key>
- <value>MPSK Demod Demo</value>
- </param>
- <param>
- <key>author</key>
- <value></value>
- </param>
- <param>
- <key>description</key>
- <value></value>
- </param>
- <param>
- <key>window_size</key>
- <value>1280, 1024</value>
- </param>
- <param>
- <key>generate_options</key>
- <value>qt_gui</value>
- </param>
- <param>
- <key>category</key>
- <value>Custom</value>
- </param>
- <param>
- <key>run_options</key>
- <value>prompt</value>
- </param>
- <param>
- <key>run</key>
- <value>True</value>
- </param>
- <param>
- <key>max_nouts</key>
- <value>0</value>
- </param>
- <param>
- <key>realtime_scheduling</key>
- <value></value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(10, 10)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>id</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>32000</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(10, 170)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>id</key>
- <value>samps_per_sym</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>4</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(12, 99)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>analog_random_source_x</key>
- <param>
- <key>id</key>
- <value>analog_random_source_x_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>byte</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
- </param>
- <param>
- <key>max</key>
- <value>2**8</value>
- </param>
- <param>
- <key>num_samps</key>
- <value>10000</value>
- </param>
- <param>
- <key>repeat</key>
- <value>True</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(161, 119)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>qtgui_const_sink_x</key>
- <param>
- <key>id</key>
- <value>qtgui_const_sink_x_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>name</key>
- <value></value>
- </param>
- <param>
- <key>size</key>
- <value>1024</value>
- </param>
- <param>
- <key>grid</key>
- <value>False</value>
- </param>
- <param>
- <key>autoscale</key>
- <value>False</value>
- </param>
- <param>
- <key>ymin</key>
- <value>-2</value>
- </param>
- <param>
- <key>ymax</key>
- <value>2</value>
- </param>
- <param>
- <key>xmin</key>
- <value>-2</value>
- </param>
- <param>
- <key>xmax</key>
- <value>2</value>
- </param>
- <param>
- <key>nconnections</key>
- <value>1</value>
- </param>
- <param>
- <key>update_time</key>
- <value>0.10</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>notebook@0</value>
- </param>
- <param>
- <key>tr_mode</key>
- <value>qtgui.TRIG_MODE_FREE</value>
- </param>
- <param>
- <key>tr_slope</key>
- <value>qtgui.TRIG_SLOPE_POS</value>
- </param>
- <param>
- <key>tr_level</key>
- <value>0.0</value>
- </param>
- <param>
- <key>tr_chan</key>
- <value>0</value>
- </param>
- <param>
- <key>tr_tag</key>
- <value>""</value>
- </param>
- <param>
- <key>label1</key>
- <value></value>
- </param>
- <param>
- <key>width1</key>
- <value>1</value>
- </param>
- <param>
- <key>color1</key>
- <value>"blue"</value>
- </param>
- <param>
- <key>style1</key>
- <value>0</value>
- </param>
- <param>
- <key>marker1</key>
- <value>0</value>
- </param>
- <param>
- <key>alpha1</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label2</key>
- <value></value>
- </param>
- <param>
- <key>width2</key>
- <value>1</value>
- </param>
- <param>
- <key>color2</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style2</key>
- <value>0</value>
- </param>
- <param>
- <key>marker2</key>
- <value>0</value>
- </param>
- <param>
- <key>alpha2</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label3</key>
- <value></value>
- </param>
- <param>
- <key>width3</key>
- <value>1</value>
- </param>
- <param>
- <key>color3</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style3</key>
- <value>0</value>
- </param>
- <param>
- <key>marker3</key>
- <value>0</value>
- </param>
- <param>
- <key>alpha3</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label4</key>
- <value></value>
- </param>
- <param>
- <key>width4</key>
- <value>1</value>
- </param>
- <param>
- <key>color4</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style4</key>
- <value>0</value>
- </param>
- <param>
- <key>marker4</key>
- <value>0</value>
- </param>
- <param>
- <key>alpha4</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label5</key>
- <value></value>
- </param>
- <param>
- <key>width5</key>
- <value>1</value>
- </param>
- <param>
- <key>color5</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style5</key>
- <value>0</value>
- </param>
- <param>
- <key>marker5</key>
- <value>0</value>
- </param>
- <param>
- <key>alpha5</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label6</key>
- <value></value>
- </param>
- <param>
- <key>width6</key>
- <value>1</value>
- </param>
- <param>
- <key>color6</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style6</key>
- <value>0</value>
- </param>
- <param>
- <key>marker6</key>
- <value>0</value>
- </param>
- <param>
- <key>alpha6</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label7</key>
- <value></value>
- </param>
- <param>
- <key>width7</key>
- <value>1</value>
- </param>
- <param>
- <key>color7</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style7</key>
- <value>0</value>
- </param>
- <param>
- <key>marker7</key>
- <value>0</value>
- </param>
- <param>
- <key>alpha7</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label8</key>
- <value></value>
- </param>
- <param>
- <key>width8</key>
- <value>1</value>
- </param>
- <param>
- <key>color8</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style8</key>
- <value>0</value>
- </param>
- <param>
- <key>marker8</key>
- <value>0</value>
- </param>
- <param>
- <key>alpha8</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label9</key>
- <value></value>
- </param>
- <param>
- <key>width9</key>
- <value>1</value>
- </param>
- <param>
- <key>color9</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style9</key>
- <value>0</value>
- </param>
- <param>
- <key>marker9</key>
- <value>0</value>
- </param>
- <param>
- <key>alpha9</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label10</key>
- <value></value>
- </param>
- <param>
- <key>width10</key>
- <value>1</value>
- </param>
- <param>
- <key>color10</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style10</key>
- <value>0</value>
- </param>
- <param>
- <key>marker10</key>
- <value>0</value>
- </param>
- <param>
- <key>alpha10</key>
- <value>1.0</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(810, 184)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>qtgui_freq_sink_x</key>
- <param>
- <key>id</key>
- <value>qtgui_freq_sink_x_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>name</key>
- <value></value>
- </param>
- <param>
- <key>fftsize</key>
- <value>1024</value>
- </param>
- <param>
- <key>wintype</key>
- <value>firdes.WIN_BLACKMAN_hARRIS</value>
- </param>
- <param>
- <key>fc</key>
- <value>0</value>
- </param>
- <param>
- <key>bw</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>grid</key>
- <value>False</value>
- </param>
- <param>
- <key>autoscale</key>
- <value>False</value>
- </param>
- <param>
- <key>average</key>
- <value>1.0</value>
- </param>
- <param>
- <key>ymin</key>
- <value>-140</value>
- </param>
- <param>
- <key>ymax</key>
- <value>10</value>
- </param>
- <param>
- <key>nconnections</key>
- <value>1</value>
- </param>
- <param>
- <key>update_time</key>
- <value>0.10</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>notebook@1</value>
- </param>
- <param>
- <key>showports</key>
- <value>True</value>
- </param>
- <param>
- <key>label1</key>
- <value></value>
- </param>
- <param>
- <key>width1</key>
- <value>1</value>
- </param>
- <param>
- <key>color1</key>
- <value>"blue"</value>
- </param>
- <param>
- <key>alpha1</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label2</key>
- <value></value>
- </param>
- <param>
- <key>width2</key>
- <value>1</value>
- </param>
- <param>
- <key>color2</key>
- <value>"red"</value>
- </param>
- <param>
- <key>alpha2</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label3</key>
- <value></value>
- </param>
- <param>
- <key>width3</key>
- <value>1</value>
- </param>
- <param>
- <key>color3</key>
- <value>"green"</value>
- </param>
- <param>
- <key>alpha3</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label4</key>
- <value></value>
- </param>
- <param>
- <key>width4</key>
- <value>1</value>
- </param>
- <param>
- <key>color4</key>
- <value>"black"</value>
- </param>
- <param>
- <key>alpha4</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label5</key>
- <value></value>
- </param>
- <param>
- <key>width5</key>
- <value>1</value>
- </param>
- <param>
- <key>color5</key>
- <value>"cyan"</value>
- </param>
- <param>
- <key>alpha5</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label6</key>
- <value></value>
- </param>
- <param>
- <key>width6</key>
- <value>1</value>
- </param>
- <param>
- <key>color6</key>
- <value>"magenta"</value>
- </param>
- <param>
- <key>alpha6</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label7</key>
- <value></value>
- </param>
- <param>
- <key>width7</key>
- <value>1</value>
- </param>
- <param>
- <key>color7</key>
- <value>"yellow"</value>
- </param>
- <param>
- <key>alpha7</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label8</key>
- <value></value>
- </param>
- <param>
- <key>width8</key>
- <value>1</value>
- </param>
- <param>
- <key>color8</key>
- <value>"dark red"</value>
- </param>
- <param>
- <key>alpha8</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label9</key>
- <value></value>
- </param>
- <param>
- <key>width9</key>
- <value>1</value>
- </param>
- <param>
- <key>color9</key>
- <value>"dark green"</value>
- </param>
- <param>
- <key>alpha9</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label10</key>
- <value></value>
- </param>
- <param>
- <key>width10</key>
- <value>1</value>
- </param>
- <param>
- <key>color10</key>
- <value>"dark blue"</value>
- </param>
- <param>
- <key>alpha10</key>
- <value>1.0</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(810, 65)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>digital_dxpsk_mod</key>
- <param>
- <key>id</key>
- <value>digital_dxpsk_mod_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>dqpsk</value>
- </param>
- <param>
- <key>samples_per_symbol</key>
- <value>samps_per_sym</value>
- </param>
- <param>
- <key>excess_bw</key>
- <value>0.35</value>
- </param>
- <param>
- <key>mod_code</key>
- <value>"gray"</value>
- </param>
- <param>
- <key>verbose</key>
- <value>False</value>
- </param>
- <param>
- <key>log</key>
- <value>False</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(361, 119)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>blocks_throttle</key>
- <param>
- <key>id</key>
- <value>blocks_throttle_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>samples_per_second</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>ignoretag</key>
- <value>True</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(597, 142)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>channels_channel_model</key>
- <param>
- <key>id</key>
- <value>channels_channel_model_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>noise_voltage</key>
- <value>noise</value>
- </param>
- <param>
- <key>freq_offset</key>
- <value>freq_off</value>
- </param>
- <param>
- <key>epsilon</key>
- <value>1.0</value>
- </param>
- <param>
- <key>taps</key>
- <value>1.0 + 1.0j</value>
- </param>
- <param>
- <key>seed</key>
- <value>0</value>
- </param>
- <param>
- <key>block_tags</key>
- <value>False</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(494, 263)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_qtgui_range</key>
- <param>
- <key>id</key>
- <value>freq_off</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>label</key>
- <value>Freq. Offset</value>
- </param>
- <param>
- <key>value</key>
- <value>0</value>
- </param>
- <param>
- <key>start</key>
- <value>-0.5</value>
- </param>
- <param>
- <key>stop</key>
- <value>0.5</value>
- </param>
- <param>
- <key>step</key>
- <value>0.01</value>
- </param>
- <param>
- <key>widget</key>
- <value>counter_slider</value>
- </param>
- <param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
- </param>
- <param>
- <key>min_len</key>
- <value>200</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>1,1,1,1</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(17, 260)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_qtgui_range</key>
- <param>
- <key>id</key>
- <value>noise</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>label</key>
- <value>Noise</value>
- </param>
- <param>
- <key>value</key>
- <value>0.1</value>
- </param>
- <param>
- <key>start</key>
- <value>0</value>
- </param>
- <param>
- <key>stop</key>
- <value>1</value>
- </param>
- <param>
- <key>step</key>
- <value>0.01</value>
- </param>
- <param>
- <key>widget</key>
- <value>counter_slider</value>
- </param>
- <param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
- </param>
- <param>
- <key>min_len</key>
- <value>200</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>1,0,1,1</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(146, 262)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>qtgui_tab_widget</key>
- <param>
- <key>id</key>
- <value>notebook</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>num_tabs</key>
- <value>2</value>
- </param>
- <param>
- <key>label0</key>
- <value>Constellation</value>
- </param>
- <param>
- <key>label1</key>
- <value>Spectrum</value>
- </param>
- <param>
- <key>label2</key>
- <value>Tab 2</value>
- </param>
- <param>
- <key>label3</key>
- <value>Tab 3</value>
- </param>
- <param>
- <key>label4</key>
- <value>Tab 4</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>0,0,1,2</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(21, 394)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <connection>
- <source_block_id>analog_random_source_x_0</source_block_id>
- <sink_block_id>digital_dxpsk_mod_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_throttle_0</source_block_id>
- <sink_block_id>qtgui_freq_sink_x_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_throttle_0</source_block_id>
- <sink_block_id>qtgui_const_sink_x_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>digital_dxpsk_mod_0</source_block_id>
- <sink_block_id>channels_channel_model_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>channels_channel_model_0</source_block_id>
- <sink_block_id>blocks_throttle_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
-</flow_graph>
diff --git a/gr-digital/grc/digital_dxpsk_demod.block.yml b/gr-digital/grc/digital_dxpsk_demod.block.yml
deleted file mode 100644
index 99e7f40e6c..0000000000
--- a/gr-digital/grc/digital_dxpsk_demod.block.yml
+++ /dev/null
@@ -1,75 +0,0 @@
-id: digital_dxpsk_demod
-label: DPSK Demod
-category: '[Core]/Deprecated'
-
-parameters:
-- id: type
- label: Type
- dtype: enum
- options: [dbpsk, dqpsk]
- option_labels: [DBPSK, DQPSK]
-- id: samples_per_symbol
- label: Samples/Symbol
- dtype: int
- default: '2'
-- id: excess_bw
- label: Excess BW
- dtype: real
- default: '0.35'
-- id: freq_bw
- label: FLL Bandwidth
- dtype: real
- default: 6.28/100.0
-- id: phase_bw
- label: Phase Loop Bandwidth
- dtype: real
- default: 6.28/100.0
-- id: timing_bw
- label: Timing Bandwidth
- dtype: real
- default: 6.28/100.0
-- id: mod_code
- label: Gray Code
- dtype: enum
- options: ['"gray"', '"none"']
- option_labels: ['Yes', 'No']
-- id: verbose
- label: Verbose
- dtype: bool
- default: 'False'
- options: ['True', 'False']
- option_labels: ['On', 'Off']
- hide: ${ ('part' if str(verbose) == 'False' else 'none') }
-- id: log
- label: Log
- dtype: bool
- default: 'False'
- options: ['True', 'False']
- option_labels: ['On', 'Off']
- hide: ${ ('part' if str(log) == 'False' else 'none') }
-- id: sync_out
- label: Sync Out
- dtype: bool
- default: 'False'
- options: ['True', 'False']
- option_labels: ['On', 'Off']
-
-inputs:
-- domain: stream
- dtype: complex
-
-outputs:
-- domain: stream
- dtype: byte
-
-templates:
- imports: from gnuradio import digital
- make: "digital.${type}_demod(\n\tsamples_per_symbol=${samples_per_symbol},\n\t\
- excess_bw=${excess_bw},\n\tfreq_bw=${freq_bw},\n\tphase_bw=${phase_bw},\n\t\
- timing_bw=${timing_bw},\n\tmod_code=${mod_code},\n\tverbose=${verbose},\n\t\
- log=${log}\n)"
- callbacks:
- - clock_recov.set_loop_bandwidth(${phase_bw})
- - time_recov.set_loop_bandwidth(${timing_bw})
-
-file_format: 1
diff --git a/gr-digital/grc/digital_dxpsk_mod.block.yml b/gr-digital/grc/digital_dxpsk_mod.block.yml
deleted file mode 100644
index 577baa4426..0000000000
--- a/gr-digital/grc/digital_dxpsk_mod.block.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-id: digital_dxpsk_mod
-label: DPSK Mod
-category: '[Core]/Deprecated'
-
-parameters:
-- id: type
- label: Type
- dtype: enum
- options: [dbpsk, dqpsk]
- option_labels: [DBPSK, DQPSK]
-- id: samples_per_symbol
- label: Samples/Symbol
- dtype: int
- default: '2'
-- id: excess_bw
- label: Excess BW
- dtype: real
- default: '0.35'
-- id: mod_code
- label: Gray Code
- dtype: enum
- options: ['"gray"', '"none"']
- option_labels: ['Yes', 'No']
-- id: verbose
- label: Verbose
- dtype: bool
- default: 'False'
- options: ['True', 'False']
- option_labels: ['On', 'Off']
- hide: ${ ('part' if str(verbose) == 'False' else 'none') }
-- id: log
- label: Log
- dtype: bool
- default: 'False'
- options: ['True', 'False']
- option_labels: ['On', 'Off']
- hide: ${ ('part' if str(log) == 'False' else 'none') }
-
-inputs:
-- domain: stream
- dtype: byte
-
-outputs:
-- domain: stream
- dtype: complex
-
-templates:
- imports: from gnuradio import digital
- make: "digital.${type}_mod(\n\tsamples_per_symbol=${samples_per_symbol},\n\texcess_bw=${excess_bw},\n\
- \tmod_code=${mod_code},\n\tverbose=${verbose},\n\tlog=${log})\n\t"
-
-file_format: 1
diff --git a/gr-digital/python/digital/bpsk.py b/gr-digital/python/digital/bpsk.py
index 6193622be8..3f26bafe94 100644
--- a/gr-digital/python/digital/bpsk.py
+++ b/gr-digital/python/digital/bpsk.py
@@ -43,112 +43,15 @@ def bpsk_constellation():
return digital_swig.constellation_bpsk()
# /////////////////////////////////////////////////////////////////////////////
-# BPSK modulator
-# /////////////////////////////////////////////////////////////////////////////
-
-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:
- mod_code: Argument is not used. It exists purely to simplify generation of the block in grc.
- differential: Whether to use differential encoding (boolean).
- """
- # See generic_mod for additional arguments
- __doc__ += shared_mod_args
-
- def __init__(self, mod_code=None, differential=False, *args, **kwargs):
-
- constellation = digital_swig.constellation_bpsk()
- super(bpsk_mod, self).__init__(constellation=constellation,
- differential=differential, *args, **kwargs)
-
-
-# /////////////////////////////////////////////////////////////////////////////
-# BPSK demodulator
-#
-# /////////////////////////////////////////////////////////////////////////////
-
-class bpsk_demod(generic_demod):
- """
- 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:
- mod_code: Argument is not used. It exists purely to simplify generation of the block in grc.
- differential: whether to use differential encoding (boolean)
- """
- # See generic_demod for additional arguments
- __doc__ += shared_demod_args
-
- def __init__(self, mod_code=None, differential=False, *args, **kwargs):
- constellation = digital_swig.constellation_bpsk()
- super(bpsk_demod, self).__init__(constellation=constellation,
- differential=differential, *args, **kwargs)
-#bpsk_demod.__doc__ += shared_demod_args
-
-
-# /////////////////////////////////////////////////////////////////////////////
# DBPSK constellation
# /////////////////////////////////////////////////////////////////////////////
def dbpsk_constellation():
return digital_swig.constellation_dbpsk()
-# /////////////////////////////////////////////////////////////////////////////
-# DBPSK modulator
-# /////////////////////////////////////////////////////////////////////////////
-
-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:
- mod_code: Argument is not used. It exists purely to simplify generation of the block in grc.
- """
- # See generic_mod for additional arguments
- __doc__ += shared_mod_args
-
- def __init__(self, mod_code=None, *args, **kwargs):
-
- super(dbpsk_mod, self).__init__(differential=True, *args, **kwargs)
-
-# /////////////////////////////////////////////////////////////////////////////
-# DBPSK demodulator
-#
-# /////////////////////////////////////////////////////////////////////////////
-
-class dbpsk_demod(bpsk_demod):
- """
- 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
- __doc__ += shared_demod_args
-
- def __init__(self, mod_code=None, *args, **kwargs):
-
- super(dbpsk_demod, self).__init__(differential=True, *args, **kwargs)
#
# Add these to the mod/demod registry
#
-modulation_utils.add_type_1_mod('bpsk', bpsk_mod)
-modulation_utils.add_type_1_demod('bpsk', bpsk_demod)
modulation_utils.add_type_1_constellation('bpsk', bpsk_constellation)
-modulation_utils.add_type_1_mod('dbpsk', dbpsk_mod)
-modulation_utils.add_type_1_demod('dbpsk', dbpsk_demod)
modulation_utils.add_type_1_constellation('dbpsk', dbpsk_constellation)
diff --git a/gr-digital/python/digital/qam.py b/gr-digital/python/digital/qam.py
index be4b7efa74..2da58246cc 100644
--- a/gr-digital/python/digital/qam.py
+++ b/gr-digital/python/digital/qam.py
@@ -257,107 +257,4 @@ def large_ampls_to_corners_mapping(side, points, width):
sector_values.append(index)
return sector_values
-
-# /////////////////////////////////////////////////////////////////////////////
-# QAM modulator
-# /////////////////////////////////////////////////////////////////////////////
-
-class qam_mod(generic_mod):
- """
- Hierarchical block for RRC-filtered QAM modulation.
-
- The input is a byte stream (unsigned char) and the
- output is the complex modulated signal at baseband.
-
- Args:
- constellation_points: Number of constellation points (must be a power of four) (integer).
- 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, constellation_points=_def_constellation_points,
- differential=_def_differential,
- mod_code=_def_mod_code,
- *args, **kwargs):
-
- """
- Hierarchical block for RRC-filtered QAM modulation.
-
- The input is a byte stream (unsigned char) and the
- output is the complex modulated signal at baseband.
-
- Args:
- constellation_points: Number of constellation points.
- Must be a power of 4.
- mod_code: Specifies an encoding to use (typically used to indicated
- if we want gray coding, see digital.utils.mod_codes)
-
- See generic_mod block for list of additional parameters.
- """
-
- constellation = qam_constellation(constellation_points, differential,
- mod_code)
- # We take care of the gray coding in the constellation
- # generation so it doesn't need to be done in the block.
- super(qam_mod, self).__init__(constellation, differential=differential,
- *args, **kwargs)
-
-# /////////////////////////////////////////////////////////////////////////////
-# QAM demodulator
-#
-# /////////////////////////////////////////////////////////////////////////////
-
-class qam_demod(generic_demod):
- """
- Hierarchical block for RRC-filtered QAM modulation.
-
- The input is a byte stream (unsigned char) and the
- output is the complex modulated signal at baseband.
-
- Args:
- constellation_points: Number of constellation points (must be a power of four) (integer).
- 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_demod for additional arguments
- __doc__ += shared_mod_args
-
- def __init__(self, constellation_points=_def_constellation_points,
- differential=_def_differential,
- mod_code=_def_mod_code,
- large_ampls_to_corner = False,
- *args, **kwargs):
- """
- Hierarchical block for RRC-filtered QAM modulation.
-
- The input is a byte stream (unsigned char) and the
- output is the complex modulated signal at baseband.
-
- Args:
- constellation_points: Number of constellation points.
- Must be a power of 4.
- mod_code: Specifies an encoding to use (typically used to indicated
- if we want gray coding, see digital.utils.mod_codes)
- large_ampls_to_corners: If this is set to True then when the
- constellation is making decisions, points that are far outside
- the constellation are mapped to the closest corner rather than
- the closet constellation point. This can help with phase
- locking.
-
- See generic_demod block for list of additional parameters.
- """
- constellation = qam_constellation(constellation_points, differential,
- mod_code)
- # We take care of the gray coding in the constellation
- # generation so it doesn't need to be done in the block.
- super(qam_demod, self).__init__(constellation, differential=differential,
- *args, **kwargs)
-
-#
-# Add these to the mod/demod registry
-#
-modulation_utils.add_type_1_mod('qam', qam_mod)
-modulation_utils.add_type_1_demod('qam', qam_demod)
modulation_utils.add_type_1_constellation('qam', qam_constellation)
diff --git a/gr-digital/python/digital/qpsk.py b/gr-digital/python/digital/qpsk.py
index 8303883992..b8ad4cbd90 100644
--- a/gr-digital/python/digital/qpsk.py
+++ b/gr-digital/python/digital/qpsk.py
@@ -50,83 +50,6 @@ def qpsk_constellation(mod_code=_def_mod_code):
return digital.constellation_qpsk()
# /////////////////////////////////////////////////////////////////////////////
-# QPSK modulator
-# /////////////////////////////////////////////////////////////////////////////
-
-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:
- constellation = digital.constellation_qpsk()
- if mod_code != mod_codes.GRAY_CODE:
- raise ValueError("This QPSK mod/demod works only for gray-coded constellations.")
- else:
- constellation = digital.constellation_dqpsk()
- if mod_code not in set([mod_codes.GRAY_CODE, mod_codes.NO_CODE]):
- 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)
-
-
-# /////////////////////////////////////////////////////////////////////////////
-# QPSK demodulator
-#
-# /////////////////////////////////////////////////////////////////////////////
-
-class qpsk_demod(generic_demod):
- """
- 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).
- """
- # See generic_mod for additional arguments
- __doc__ += shared_demod_args
-
- def __init__(self, mod_code=_def_mod_code, differential=False,
- *args, **kwargs):
- pre_diff_code = True
- if not differential:
- constellation = digital.constellation_qpsk()
- if mod_code != mod_codes.GRAY_CODE:
- raise ValueError("This QPSK mod/demod works only for gray-coded constellations.")
- else:
- constellation = digital.constellation_dqpsk()
- if mod_code not in set([mod_codes.GRAY_CODE, mod_codes.NO_CODE]):
- 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_demod, self).__init__(constellation=constellation,
- differential=differential,
- pre_diff_code=pre_diff_code,
- *args, **kwargs)
-
-
-
-# /////////////////////////////////////////////////////////////////////////////
# DQPSK constellation
# /////////////////////////////////////////////////////////////////////////////
@@ -135,57 +58,8 @@ def dqpsk_constellation(mod_code=_def_mod_code):
raise ValueError("The DQPSK constellation is only generated for gray_coding. But it can be used for non-grayed coded modulation if one doesn't use the pre-differential code.")
return digital.constellation_dqpsk()
-# /////////////////////////////////////////////////////////////////////////////
-# DQPSK modulator
-# /////////////////////////////////////////////////////////////////////////////
-
-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.
-
- Args:
- mod_code: Whether to use a gray_code (digital.mod_codes.GRAY_CODE) or not (digital.mod_codes.NO_CODE).
- """
- # See generic_mod for additional arguments
- __doc__ += shared_mod_args
-
- def __init__(self, mod_code=_def_mod_code, *args, **kwargs):
- super(dqpsk_mod, self).__init__(mod_code=mod_code,
- differential=True,
- *args, **kwargs)
-
-# /////////////////////////////////////////////////////////////////////////////
-# DQPSK demodulator
-#
-# /////////////////////////////////////////////////////////////////////////////
-
-class dqpsk_demod(qpsk_demod):
- """
- 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).
- """
- # See generic_mod for additional arguments
- __doc__ += shared_demod_args
-
- def __init__(self, mod_code=_def_mod_code, *args, **kwargs):
- super(dqpsk_demod, self).__init__(mod_code=mod_code,
- differential=True,
- *args, **kwargs)
-
#
# Add these to the mod/demod registry
#
-modulation_utils.add_type_1_mod('qpsk', qpsk_mod)
-modulation_utils.add_type_1_demod('qpsk', qpsk_demod)
modulation_utils.add_type_1_constellation('qpsk', qpsk_constellation)
-modulation_utils.add_type_1_mod('dqpsk', dqpsk_mod)
-modulation_utils.add_type_1_demod('dqpsk', dqpsk_demod)
modulation_utils.add_type_1_constellation('dqpsk', dqpsk_constellation)