diff options
-rw-r--r-- | docs/sphinx/source/digital.rst | 8 | ||||
-rw-r--r-- | docs/sphinx/source/index.rst | 8 | ||||
-rw-r--r-- | gr-digital/docs/digital.dox | 18 | ||||
-rw-r--r-- | gr-digital/examples/demod/mpsk_demod.grc | 1134 | ||||
-rw-r--r-- | gr-digital/grc/digital_dxpsk_demod.block.yml | 75 | ||||
-rw-r--r-- | gr-digital/grc/digital_dxpsk_mod.block.yml | 52 | ||||
-rw-r--r-- | gr-digital/python/digital/bpsk.py | 97 | ||||
-rw-r--r-- | gr-digital/python/digital/qam.py | 103 | ||||
-rw-r--r-- | gr-digital/python/digital/qpsk.py | 126 |
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) |