diff options
author | Marcus Müller <marcus@hostalia.de> | 2018-08-31 23:02:22 +0200 |
---|---|---|
committer | Marcus Müller <marcus@hostalia.de> | 2018-08-31 23:02:22 +0200 |
commit | 254fe5e89403d4de1fa6663d09efdf946996aff3 (patch) | |
tree | 62877d7ac7fdedf6c397c51e22ac6f97eba97ddf /gr-dtv | |
parent | 896d1c9da31963ecf5b0d90942c2af51ca998a69 (diff) | |
parent | 5ad935c3a3dd46ce2860b13e2b774e4841784616 (diff) |
Merge remote-tracking branch 'origin/next' into merge_next
Diffstat (limited to 'gr-dtv')
142 files changed, 4049 insertions, 8952 deletions
diff --git a/gr-dtv/CMakeLists.txt b/gr-dtv/CMakeLists.txt index 9ca952abff..11488ac413 100644 --- a/gr-dtv/CMakeLists.txt +++ b/gr-dtv/CMakeLists.txt @@ -50,40 +50,6 @@ SET(GR_PKG_DTV_EXAMPLES_DIR ${GR_PKG_DATA_DIR}/examples/dtv) if(ENABLE_GR_DTV) ######################################################################## -# Setup CPack components -######################################################################## -include(GrPackage) -CPACK_SET(CPACK_COMPONENT_GROUP_DTV_DESCRIPTION "GNU Radio DTV Blocks") - -CPACK_COMPONENT("dtv_runtime" - GROUP "DTV" - DISPLAY_NAME "Runtime" - DESCRIPTION "Runtime" - DEPENDS "runtime_runtime" -) - -CPACK_COMPONENT("dtv_devel" - GROUP "DTV" - DISPLAY_NAME "Development" - DESCRIPTION "C++ headers, package config, import libraries" - DEPENDS "runtime_devel" -) - -CPACK_COMPONENT("dtv_python" - GROUP "DTV" - DISPLAY_NAME "Python" - DESCRIPTION "Python modules for runtime; GRC xml files" - DEPENDS "runtime_python;dtv_runtime" -) - -CPACK_COMPONENT("dtv_swig" - GROUP "DTV" - DISPLAY_NAME "SWIG" - DESCRIPTION "SWIG development .i files" - DEPENDS "runtime_swig;dtv_python;dtv_devel" -) - -######################################################################## # Add subdirectories ######################################################################## add_subdirectory(include/gnuradio/dtv) @@ -108,7 +74,6 @@ configure_file( install( FILES ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-dtv.pc DESTINATION ${GR_LIBRARY_DIR}/pkgconfig - COMPONENT "dtv_devel" ) endif(ENABLE_GR_DTV) diff --git a/gr-dtv/apps/CMakeLists.txt b/gr-dtv/apps/CMakeLists.txt index f328234e3d..6de0ccec74 100644 --- a/gr-dtv/apps/CMakeLists.txt +++ b/gr-dtv/apps/CMakeLists.txt @@ -25,5 +25,4 @@ include(GrPython) GR_PYTHON_INSTALL( PROGRAMS DESTINATION ${GR_RUNTIME_DIR} - COMPONENT "dtv_python" ) diff --git a/gr-dtv/examples/CMakeLists.txt b/gr-dtv/examples/CMakeLists.txt index 569cad036b..77e74cc164 100644 --- a/gr-dtv/examples/CMakeLists.txt +++ b/gr-dtv/examples/CMakeLists.txt @@ -23,7 +23,6 @@ GR_PYTHON_INSTALL( PROGRAMS atsc_ctrlport_monitor.py DESTINATION ${GR_PKG_DTV_EXAMPLES_DIR} - COMPONENT "dtv_python" ) install( @@ -76,5 +75,4 @@ install( germany-g10.grc catv_tx_64qam.grc DESTINATION ${GR_PKG_DTV_EXAMPLES_DIR} - COMPONENT "dtv_python" ) diff --git a/gr-dtv/examples/atsc_ctrlport_monitor.py b/gr-dtv/examples/atsc_ctrlport_monitor.py index 25c52afd61..5329da2d44 100755..100644 --- a/gr-dtv/examples/atsc_ctrlport_monitor.py +++ b/gr-dtv/examples/atsc_ctrlport_monitor.py @@ -18,6 +18,10 @@ # Boston, MA 02110-1301, USA. # +from __future__ import print_function +from __future__ import division +from __future__ import unicode_literals + import sys import matplotlib matplotlib.use("QT4Agg") @@ -37,12 +41,12 @@ the link quality. This also gets the equalizer taps of the receiver and displays the frequency response. """ -class atsc_ctrlport_monitor: +class atsc_ctrlport_monitor(object): def __init__(self, host, port): argv = [None, host, port] radiosys = GNURadioControlPortClient(argv=argv, rpcmethod='thrift') self.radio = radiosys.client - print self.radio + print(self.radio) vt_init_key = 'dtv_atsc_viterbi_decoder0::decoder_metrics' @@ -108,17 +112,17 @@ class atsc_ctrlport_monitor: ntaps = len(eqdata.value) taps.set_ydata(eqdata.value) - taps.set_xdata(xrange(ntaps)) + taps.set_xdata(list(range(ntaps))) self._sp0.set_xlim(0, ntaps) self._sp0.set_ylim(min(eqdata.value), max(eqdata.value)) fs = 6.25e6 - freq = scipy.linspace(-fs/2, fs/2, 10000) + freq = scipy.linspace(-fs / 2, fs / 2, 10000) H = fftpack.fftshift(fftpack.fft(eqdata.value, 10000)) HdB = 20.0*scipy.log10(abs(H)) psd.set_ydata(HdB) psd.set_xdata(freq) - self._sp1.set_xlim(0, fs/2) + self._sp1.set_xlim(0, fs / 2) self._sp1.set_ylim([min(HdB), max(HdB)]) self._sp1.set_yticks([min(HdB), max(HdB)]) self._sp1.set_yticklabels(["min", "max"]) diff --git a/gr-dtv/grc/CMakeLists.txt b/gr-dtv/grc/CMakeLists.txt index a1386c5adf..3ed47f2311 100644 --- a/gr-dtv/grc/CMakeLists.txt +++ b/gr-dtv/grc/CMakeLists.txt @@ -18,61 +18,59 @@ # Boston, MA 02110-1301, USA. install(FILES - dtv_atsc_deinterleaver.xml - dtv_atsc_depad.xml - dtv_atsc_derandomizer.xml - dtv_atsc_equalizer.xml - dtv_atsc_fpll.xml - dtv_atsc_fs_checker.xml - dtv_atsc_rs_decoder.xml - dtv_atsc_rx.xml - dtv_atsc_rx_filter.xml - dtv_atsc_sync.xml - dtv_atsc_viterbi_decoder.xml - dtv_block_tree.xml - dtv_atsc_pad.xml - dtv_atsc_randomizer.xml - dtv_atsc_rs_encoder.xml - dtv_atsc_interleaver.xml - dtv_atsc_trellis_encoder.xml - dtv_atsc_field_sync_mux.xml - dtv_dvb_bbheader_bb.xml - dtv_dvb_bbscrambler_bb.xml - dtv_dvb_bch_bb.xml - dtv_dvb_ldpc_bb.xml - dtv_dvbt2_interleaver_bb.xml - dtv_dvbt2_modulator_bc.xml - dtv_dvbt2_cellinterleaver_cc.xml - dtv_dvbt2_framemapper_cc.xml - dtv_dvbt2_freqinterleaver_cc.xml - dtv_dvbt2_pilotgenerator_cc.xml - dtv_dvbt2_paprtr_cc.xml - dtv_dvbt2_p1insertion_cc.xml - dtv_dvbt2_miso_cc.xml - dtv_dvbs2_interleaver_bb.xml - dtv_dvbs2_modulator_bc.xml - dtv_dvbs2_physical_cc.xml - dtv_dvbt_energy_dispersal.xml - dtv_dvbt_reed_solomon_enc.xml - dtv_dvbt_convolutional_interleaver.xml - dtv_dvbt_inner_coder.xml - dtv_dvbt_bit_inner_interleaver.xml - dtv_dvbt_symbol_inner_interleaver.xml - dtv_dvbt_map.xml - dtv_dvbt_reference_signals.xml - dtv_dvbt_ofdm_sym_acquisition.xml - dtv_dvbt_demod_reference_signals.xml - dtv_dvbt_demap.xml - dtv_dvbt_bit_inner_deinterleaver.xml - dtv_dvbt_viterbi_decoder.xml - dtv_dvbt_convolutional_deinterleaver.xml - dtv_dvbt_reed_solomon_dec.xml - dtv_dvbt_energy_descramble.xml - dtv_catv_transport_framing_enc_bb.xml - dtv_catv_reed_solomon_enc_bb.xml - dtv_catv_randomizer_bb.xml - dtv_catv_frame_sync_enc_bb.xml - dtv_catv_trellis_enc_bb.xml + dtv_atsc_deinterleaver.block.yml + dtv_atsc_depad.block.yml + dtv_atsc_derandomizer.block.yml + dtv_atsc_equalizer.block.yml + dtv_atsc_fpll.block.yml + dtv_atsc_fs_checker.block.yml + dtv_atsc_rs_decoder.block.yml + dtv_atsc_rx.block.yml + dtv_atsc_rx_filter.block.yml + dtv_atsc_sync.block.yml + dtv_atsc_viterbi_decoder.block.yml + dtv_atsc_pad.block.yml + dtv_atsc_randomizer.block.yml + dtv_atsc_rs_encoder.block.yml + dtv_atsc_interleaver.block.yml + dtv_atsc_trellis_encoder.block.yml + dtv_atsc_field_sync_mux.block.yml + dtv_dvb_bbheader_bb.block.yml + dtv_dvb_bbscrambler_bb.block.yml + dtv_dvb_bch_bb.block.yml + dtv_dvb_ldpc_bb.block.yml + dtv_dvbt2_interleaver_bb.block.yml + dtv_dvbt2_modulator_bc.block.yml + dtv_dvbt2_cellinterleaver_cc.block.yml + dtv_dvbt2_framemapper_cc.block.yml + dtv_dvbt2_freqinterleaver_cc.block.yml + dtv_dvbt2_pilotgenerator_cc.block.yml + dtv_dvbt2_paprtr_cc.block.yml + dtv_dvbt2_p1insertion_cc.block.yml + dtv_dvbt2_miso_cc.block.yml + dtv_dvbs2_interleaver_bb.block.yml + dtv_dvbs2_modulator_bc.block.yml + dtv_dvbs2_physical_cc.block.yml + dtv_dvbt_energy_dispersal.block.yml + dtv_dvbt_reed_solomon_enc.block.yml + dtv_dvbt_convolutional_interleaver.block.yml + dtv_dvbt_inner_coder.block.yml + dtv_dvbt_bit_inner_interleaver.block.yml + dtv_dvbt_symbol_inner_interleaver.block.yml + dtv_dvbt_map.block.yml + dtv_dvbt_reference_signals.block.yml + dtv_dvbt_ofdm_sym_acquisition.block.yml + dtv_dvbt_demod_reference_signals.block.yml + dtv_dvbt_demap.block.yml + dtv_dvbt_bit_inner_deinterleaver.block.yml + dtv_dvbt_viterbi_decoder.block.yml + dtv_dvbt_convolutional_deinterleaver.block.yml + dtv_dvbt_reed_solomon_dec.block.yml + dtv_dvbt_energy_descramble.block.yml + dtv_catv_transport_framing_enc_bb.block.yml + dtv_catv_reed_solomon_enc_bb.block.yml + dtv_catv_randomizer_bb.block.yml + dtv_catv_frame_sync_enc_bb.block.yml + dtv_catv_trellis_enc_bb.block.yml DESTINATION ${GRC_BLOCKS_DIR} - COMPONENT "dtv_python" ) diff --git a/gr-dtv/grc/dtv.tree.yml b/gr-dtv/grc/dtv.tree.yml new file mode 100644 index 0000000000..ad0b0cafb8 --- /dev/null +++ b/gr-dtv/grc/dtv.tree.yml @@ -0,0 +1,62 @@ +'[Core]': +- Digital Television: + - ATSC: + - dtv_atsc_deinterleaver + - dtv_atsc_depad + - dtv_atsc_derandomizer + - dtv_atsc_equalizer + - dtv_atsc_fpll + - dtv_atsc_fs_checker + - dtv_atsc_rs_decoder + - dtv_atsc_rx + - dtv_atsc_rx_filter + - dtv_atsc_sync + - dtv_atsc_viterbi_decoder + - dtv_atsc_pad + - dtv_atsc_randomizer + - dtv_atsc_rs_encoder + - dtv_atsc_interleaver + - dtv_atsc_trellis_encoder + - dtv_atsc_field_sync_mux + - DVB: + - dtv_dvb_bbheader_bb + - dtv_dvb_bbscrambler_bb + - dtv_dvb_bch_bb + - dtv_dvb_ldpc_bb + - DVB-T2: + - dtv_dvbt2_interleaver_bb + - dtv_dvbt2_modulator_bc + - dtv_dvbt2_cellinterleaver_cc + - dtv_dvbt2_framemapper_cc + - dtv_dvbt2_freqinterleaver_cc + - dtv_dvbt2_pilotgenerator_cc + - dtv_dvbt2_paprtr_cc + - dtv_dvbt2_p1insertion_cc + - dtv_dvbt2_miso_cc + - DVB-S2: + - dtv_dvbs2_interleaver_bb + - dtv_dvbs2_modulator_bc + - dtv_dvbs2_physical_cc + - DVB-T: + - dtv_dvbt_energy_dispersal + - dtv_dvbt_reed_solomon_enc + - dtv_dvbt_convolutional_interleaver + - dtv_dvbt_inner_coder + - dtv_dvbt_bit_inner_interleaver + - dtv_dvbt_symbol_inner_interleaver + - dtv_dvbt_map + - dtv_dvbt_reference_signals + - dtv_dvbt_ofdm_sym_acquisition + - dtv_dvbt_demod_reference_signals + - dtv_dvbt_demap + - dtv_dvbt_bit_inner_deinterleaver + - dtv_dvbt_viterbi_decoder + - dtv_dvbt_convolutional_deinterleaver + - dtv_dvbt_reed_solomon_dec + - dtv_dvbt_energy_descramble + - ITU-T J.83B: + - dtv_catv_transport_framing_enc_bb + - dtv_catv_reed_solomon_enc_bb + - dtv_catv_randomizer_bb + - dtv_catv_frame_sync_enc_bb + - dtv_catv_trellis_enc_bb diff --git a/gr-dtv/grc/dtv_atsc_deinterleaver.block.yml b/gr-dtv/grc/dtv_atsc_deinterleaver.block.yml new file mode 100644 index 0000000000..5384809778 --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_deinterleaver.block.yml @@ -0,0 +1,18 @@ +id: dtv_atsc_deinterleaver +label: ATSC Deinterleaver + +inputs: +- domain: stream + dtype: byte + vlen: 256 + +outputs: +- domain: stream + dtype: byte + vlen: 256 + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_deinterleaver() + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_deinterleaver.xml b/gr-dtv/grc/dtv_atsc_deinterleaver.xml deleted file mode 100644 index 051ea77554..0000000000 --- a/gr-dtv/grc/dtv_atsc_deinterleaver.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Deinterleaver -################################################### - --> -<block> - <name>ATSC Deinterleaver</name> - <key>dtv_atsc_deinterleaver</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_deinterleaver()</make> - - <sink> - <name>in</name> - <type>byte</type> - <vlen>256</vlen> - </sink> - - <source> - <name>out</name> - <type>byte</type> - <vlen>256</vlen> - </source> - -</block> diff --git a/gr-dtv/grc/dtv_atsc_depad.block.yml b/gr-dtv/grc/dtv_atsc_depad.block.yml new file mode 100644 index 0000000000..463de2018b --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_depad.block.yml @@ -0,0 +1,17 @@ +id: dtv_atsc_depad +label: ATSC Depad + +inputs: +- domain: stream + dtype: byte + vlen: 256 + +outputs: +- domain: stream + dtype: byte + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_depad() + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_depad.xml b/gr-dtv/grc/dtv_atsc_depad.xml deleted file mode 100644 index 95a1380914..0000000000 --- a/gr-dtv/grc/dtv_atsc_depad.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Depad -################################################### - --> -<block> - <name>ATSC Depad</name> - <key>dtv_atsc_depad</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_depad()</make> - - <sink> - <name>in</name> - <type>byte</type> - <vlen>256</vlen> - </sink> - - <source> - <name>out</name> - <type>byte</type> - </source> - -</block> diff --git a/gr-dtv/grc/dtv_atsc_derandomizer.block.yml b/gr-dtv/grc/dtv_atsc_derandomizer.block.yml new file mode 100644 index 0000000000..c64e7032fe --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_derandomizer.block.yml @@ -0,0 +1,18 @@ +id: dtv_atsc_derandomizer +label: ATSC Derandomizer + +inputs: +- domain: stream + dtype: byte + vlen: 256 + +outputs: +- domain: stream + dtype: byte + vlen: 256 + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_derandomizer() + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_derandomizer.xml b/gr-dtv/grc/dtv_atsc_derandomizer.xml deleted file mode 100644 index 5473f47e8c..0000000000 --- a/gr-dtv/grc/dtv_atsc_derandomizer.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Derandomizer -################################################### - --> -<block> - <name>ATSC Derandomizer</name> - <key>dtv_atsc_derandomizer</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_derandomizer()</make> - - <sink> - <name>in</name> - <type>byte</type> - <vlen>256</vlen> - </sink> - - <source> - <name>out</name> - <type>byte</type> - <vlen>256</vlen> - </source> - -</block> diff --git a/gr-dtv/grc/dtv_atsc_equalizer.block.yml b/gr-dtv/grc/dtv_atsc_equalizer.block.yml new file mode 100644 index 0000000000..e6b5b3c032 --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_equalizer.block.yml @@ -0,0 +1,18 @@ +id: dtv_atsc_equalizer +label: ATSC Equalizer + +inputs: +- domain: stream + dtype: byte + vlen: 4096 + +outputs: +- domain: stream + dtype: byte + vlen: 4096 + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_equalizer() + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_equalizer.xml b/gr-dtv/grc/dtv_atsc_equalizer.xml deleted file mode 100644 index 7faf65fd22..0000000000 --- a/gr-dtv/grc/dtv_atsc_equalizer.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Equalizer -################################################### - --> -<block> - <name>ATSC Equalizer</name> - <key>dtv_atsc_equalizer</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_equalizer()</make> - - <sink> - <name>in</name> - <type>byte</type> - <vlen>4096</vlen> - </sink> - - <source> - <name>out</name> - <type>byte</type> - <vlen>4096</vlen> - </source> - -</block> diff --git a/gr-dtv/grc/dtv_atsc_field_sync_mux.block.yml b/gr-dtv/grc/dtv_atsc_field_sync_mux.block.yml new file mode 100644 index 0000000000..767d56d5d1 --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_field_sync_mux.block.yml @@ -0,0 +1,18 @@ +id: dtv_atsc_field_sync_mux +label: ATSC Field Sync Mux + +inputs: +- domain: stream + dtype: byte + vlen: 256 + +outputs: +- domain: stream + dtype: byte + vlen: 1024 + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_field_sync_mux() + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_field_sync_mux.xml b/gr-dtv/grc/dtv_atsc_field_sync_mux.xml deleted file mode 100644 index 0037a9340e..0000000000 --- a/gr-dtv/grc/dtv_atsc_field_sync_mux.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Field Sync Mux -################################################### - --> -<block> - <name>ATSC Field Sync Mux</name> - <key>dtv_atsc_field_sync_mux</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_field_sync_mux()</make> - <sink> - <name>in</name> - <type>byte</type> - <vlen>256</vlen> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>1024</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_atsc_fpll.block.yml b/gr-dtv/grc/dtv_atsc_fpll.block.yml new file mode 100644 index 0000000000..39568a8535 --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_fpll.block.yml @@ -0,0 +1,21 @@ +id: dtv_atsc_fpll +label: ATSC Receiver FPLL + +parameters: +- id: rate + label: Sample Rate + dtype: float + +inputs: +- domain: stream + dtype: complex + +outputs: +- domain: stream + dtype: float + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_fpll(${rate}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_fpll.xml b/gr-dtv/grc/dtv_atsc_fpll.xml deleted file mode 100644 index 00d28ce8b6..0000000000 --- a/gr-dtv/grc/dtv_atsc_fpll.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Receiver PLL -################################################### - --> -<block> - <name>ATSC Receiver FPLL</name> - <key>dtv_atsc_fpll</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_fpll($rate)</make> - - <param> - <name>Sample Rate</name> - <key>rate</key> - <type>float</type> - </param> - - <sink> - <name>in</name> - <type>complex</type> - </sink> - - <source> - <name>out</name> - <type>float</type> - </source> - -</block> diff --git a/gr-dtv/grc/dtv_atsc_fs_checker.block.yml b/gr-dtv/grc/dtv_atsc_fs_checker.block.yml new file mode 100644 index 0000000000..fbf97a9255 --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_fs_checker.block.yml @@ -0,0 +1,18 @@ +id: dtv_atsc_fs_checker +label: ATSC Field Sync Checker + +inputs: +- domain: stream + dtype: byte + vlen: 4096 + +outputs: +- domain: stream + dtype: byte + vlen: 4096 + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_fs_checker() + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_fs_checker.xml b/gr-dtv/grc/dtv_atsc_fs_checker.xml deleted file mode 100644 index 4c733d53b9..0000000000 --- a/gr-dtv/grc/dtv_atsc_fs_checker.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Field Sync Checker -################################################### - --> -<block> - <name>ATSC Field Sync Checker</name> - <key>dtv_atsc_fs_checker</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_fs_checker()</make> - - <sink> - <name>in</name> - <type>byte</type> - <vlen>4096</vlen> - </sink> - - <source> - <name>out</name> - <type>byte</type> - <vlen>4096</vlen> - </source> - -</block> diff --git a/gr-dtv/grc/dtv_atsc_interleaver.block.yml b/gr-dtv/grc/dtv_atsc_interleaver.block.yml new file mode 100644 index 0000000000..65f769d0e6 --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_interleaver.block.yml @@ -0,0 +1,18 @@ +id: dtv_atsc_interleaver +label: ATSC Interleaver + +inputs: +- domain: stream + dtype: byte + vlen: 256 + +outputs: +- domain: stream + dtype: byte + vlen: 256 + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_interleaver() + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_interleaver.xml b/gr-dtv/grc/dtv_atsc_interleaver.xml deleted file mode 100644 index 3b1045c580..0000000000 --- a/gr-dtv/grc/dtv_atsc_interleaver.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Interleaver -################################################### - --> -<block> - <name>ATSC Interleaver</name> - <key>dtv_atsc_interleaver</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_interleaver()</make> - <sink> - <name>in</name> - <type>byte</type> - <vlen>256</vlen> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>256</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_atsc_pad.block.yml b/gr-dtv/grc/dtv_atsc_pad.block.yml new file mode 100644 index 0000000000..a25d866f79 --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_pad.block.yml @@ -0,0 +1,17 @@ +id: dtv_atsc_pad +label: ATSC Pad + +inputs: +- domain: stream + dtype: byte + +outputs: +- domain: stream + dtype: byte + vlen: 256 + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_pad() + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_pad.xml b/gr-dtv/grc/dtv_atsc_pad.xml deleted file mode 100644 index 87b8921e35..0000000000 --- a/gr-dtv/grc/dtv_atsc_pad.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Pad -################################################### - --> -<block> - <name>ATSC Pad</name> - <key>dtv_atsc_pad</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_pad()</make> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>256</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_atsc_randomizer.block.yml b/gr-dtv/grc/dtv_atsc_randomizer.block.yml new file mode 100644 index 0000000000..909fad6ec3 --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_randomizer.block.yml @@ -0,0 +1,18 @@ +id: dtv_atsc_randomizer +label: ATSC Randomizer + +inputs: +- domain: stream + dtype: byte + vlen: 256 + +outputs: +- domain: stream + dtype: byte + vlen: 256 + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_randomizer() + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_randomizer.xml b/gr-dtv/grc/dtv_atsc_randomizer.xml deleted file mode 100644 index 73c0991e1e..0000000000 --- a/gr-dtv/grc/dtv_atsc_randomizer.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Randomizer -################################################### - --> -<block> - <name>ATSC Randomizer</name> - <key>dtv_atsc_randomizer</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_randomizer()</make> - <sink> - <name>in</name> - <type>byte</type> - <vlen>256</vlen> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>256</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_atsc_rs_decoder.block.yml b/gr-dtv/grc/dtv_atsc_rs_decoder.block.yml new file mode 100644 index 0000000000..b65eb33fca --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_rs_decoder.block.yml @@ -0,0 +1,18 @@ +id: dtv_atsc_rs_decoder +label: "ATSC Reed\u2013Solomon Decoder" + +inputs: +- domain: stream + dtype: byte + vlen: 256 + +outputs: +- domain: stream + dtype: byte + vlen: 256 + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_rs_decoder() + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_rs_decoder.xml b/gr-dtv/grc/dtv_atsc_rs_decoder.xml deleted file mode 100644 index 18a3053f00..0000000000 --- a/gr-dtv/grc/dtv_atsc_rs_decoder.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Reed–Solomon Decoder -################################################### - --> -<block> - <name>ATSC Reed–Solomon Decoder</name> - <key>dtv_atsc_rs_decoder</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_rs_decoder()</make> - - <sink> - <name>in</name> - <type>byte</type> - <vlen>256</vlen> - </sink> - - <source> - <name>out</name> - <type>byte</type> - <vlen>256</vlen> - </source> - -</block> diff --git a/gr-dtv/grc/dtv_atsc_rs_encoder.block.yml b/gr-dtv/grc/dtv_atsc_rs_encoder.block.yml new file mode 100644 index 0000000000..04d1ff3683 --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_rs_encoder.block.yml @@ -0,0 +1,18 @@ +id: dtv_atsc_rs_encoder +label: ATSC RS Encoder + +inputs: +- domain: stream + dtype: byte + vlen: 256 + +outputs: +- domain: stream + dtype: byte + vlen: 256 + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_rs_encoder() + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_rs_encoder.xml b/gr-dtv/grc/dtv_atsc_rs_encoder.xml deleted file mode 100644 index af35523e05..0000000000 --- a/gr-dtv/grc/dtv_atsc_rs_encoder.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Reed-Solomom Encoder -################################################### - --> -<block> - <name>ATSC RS Encoder</name> - <key>dtv_atsc_rs_encoder</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_rs_encoder()</make> - <sink> - <name>in</name> - <type>byte</type> - <vlen>256</vlen> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>256</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_atsc_rx.block.yml b/gr-dtv/grc/dtv_atsc_rx.block.yml new file mode 100644 index 0000000000..499c196e20 --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_rx.block.yml @@ -0,0 +1,24 @@ +id: dtv_atsc_rx +label: ATSC Receive Pipeline + +parameters: +- id: rate + label: Input Rate + dtype: float +- id: sps + label: Oversampling Ratio + dtype: float + +inputs: +- domain: stream + dtype: complex + +outputs: +- domain: stream + dtype: byte + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_rx(${rate},${sps}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_rx.xml b/gr-dtv/grc/dtv_atsc_rx.xml deleted file mode 100644 index 900769609f..0000000000 --- a/gr-dtv/grc/dtv_atsc_rx.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Receive Pipeline -################################################### - --> -<block> - <name>ATSC Receive Pipeline</name> - <key>dtv_atsc_rx</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_rx($rate,$sps)</make> - - <param> - <name>Input Rate</name> - <key>rate</key> - <type>float</type> - </param> - - <param> - <name>Oversampling Ratio</name> - <key>sps</key> - <type>float</type> - </param> - - <sink> - <name>in</name> - <type>complex</type> - </sink> - - <source> - <name>out</name> - <type>byte</type> - </source> - -</block> diff --git a/gr-dtv/grc/dtv_atsc_rx_filter.block.yml b/gr-dtv/grc/dtv_atsc_rx_filter.block.yml new file mode 100644 index 0000000000..0a352727ce --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_rx_filter.block.yml @@ -0,0 +1,24 @@ +id: dtv_atsc_rx_filter +label: ATSC RX Filter + +parameters: +- id: rate + label: Input Rate + dtype: float +- id: sps + label: Oversampling Ratio + dtype: float + +inputs: +- domain: stream + dtype: complex + +outputs: +- domain: stream + dtype: complex + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_rx_filter(${rate},${sps}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_rx_filter.xml b/gr-dtv/grc/dtv_atsc_rx_filter.xml deleted file mode 100644 index bc8bf0914a..0000000000 --- a/gr-dtv/grc/dtv_atsc_rx_filter.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC RX Filter -################################################### - --> -<block> - <name>ATSC RX Filter</name> - <key>dtv_atsc_rx_filter</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_rx_filter($rate,$sps)</make> - - <param> - <name>Input Rate</name> - <key>rate</key> - <type>float</type> - </param> - - <param> - <name>Oversampling Ratio</name> - <key>sps</key> - <type>float</type> - </param> - - <sink> - <name>in</name> - <type>complex</type> - </sink> - - <source> - <name>out</name> - <type>complex</type> - </source> - -</block> diff --git a/gr-dtv/grc/dtv_atsc_sync.block.yml b/gr-dtv/grc/dtv_atsc_sync.block.yml new file mode 100644 index 0000000000..b4a3ac3d99 --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_sync.block.yml @@ -0,0 +1,22 @@ +id: dtv_atsc_sync +label: ATSC Receiver SYNC + +parameters: +- id: rate + label: Sample Rate + dtype: float + +inputs: +- domain: stream + dtype: float + +outputs: +- domain: stream + dtype: byte + vlen: 4096 + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_sync(${rate}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_sync.xml b/gr-dtv/grc/dtv_atsc_sync.xml deleted file mode 100644 index a9528f84a0..0000000000 --- a/gr-dtv/grc/dtv_atsc_sync.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Receiver Sync -################################################### - --> -<block> - <name>ATSC Receiver SYNC</name> - <key>dtv_atsc_sync</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_sync($rate)</make> - - <param> - <name>Sample Rate</name> - <key>rate</key> - <type>float</type> - </param> - - <sink> - <name>in</name> - <type>float</type> - </sink> - - <source> - <name>out</name> - <type>byte</type> - <vlen>4096</vlen> - </source> - -</block> diff --git a/gr-dtv/grc/dtv_atsc_trellis_encoder.block.yml b/gr-dtv/grc/dtv_atsc_trellis_encoder.block.yml new file mode 100644 index 0000000000..417e3f19d6 --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_trellis_encoder.block.yml @@ -0,0 +1,18 @@ +id: dtv_atsc_trellis_encoder +label: ATSC Trellis Encoder + +inputs: +- domain: stream + dtype: byte + vlen: 256 + +outputs: +- domain: stream + dtype: byte + vlen: 256 + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_trellis_encoder() + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_trellis_encoder.xml b/gr-dtv/grc/dtv_atsc_trellis_encoder.xml deleted file mode 100644 index 2189075008..0000000000 --- a/gr-dtv/grc/dtv_atsc_trellis_encoder.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Trellis Encoder -################################################### - --> -<block> - <name>ATSC Trellis Encoder</name> - <key>dtv_atsc_trellis_encoder</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_trellis_encoder()</make> - <sink> - <name>in</name> - <type>byte</type> - <vlen>256</vlen> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>256</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_atsc_viterbi_decoder.block.yml b/gr-dtv/grc/dtv_atsc_viterbi_decoder.block.yml new file mode 100644 index 0000000000..bb77b072be --- /dev/null +++ b/gr-dtv/grc/dtv_atsc_viterbi_decoder.block.yml @@ -0,0 +1,18 @@ +id: dtv_atsc_viterbi_decoder +label: ATSC Viterbi Decoder + +inputs: +- domain: stream + dtype: byte + vlen: 4096 + +outputs: +- domain: stream + dtype: byte + vlen: 256 + +templates: + imports: from gnuradio import dtv + make: dtv.atsc_viterbi_decoder() + +file_format: 1 diff --git a/gr-dtv/grc/dtv_atsc_viterbi_decoder.xml b/gr-dtv/grc/dtv_atsc_viterbi_decoder.xml deleted file mode 100644 index 23d58d08af..0000000000 --- a/gr-dtv/grc/dtv_atsc_viterbi_decoder.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## ATSC Equalizer -################################################### - --> -<block> - <name>ATSC Viterbi Decoder</name> - <key>dtv_atsc_viterbi_decoder</key> - <import>from gnuradio import dtv</import> - <make>dtv.atsc_viterbi_decoder()</make> - - <sink> - <name>in</name> - <type>byte</type> - <vlen>4096</vlen> - </sink> - - <source> - <name>out</name> - <type>byte</type> - <vlen>256</vlen> - </source> - -</block> diff --git a/gr-dtv/grc/dtv_block_tree.xml b/gr-dtv/grc/dtv_block_tree.xml deleted file mode 100644 index 8dcbd18127..0000000000 --- a/gr-dtv/grc/dtv_block_tree.xml +++ /dev/null @@ -1,106 +0,0 @@ -<?xml version="1.0"?> - -<!-- - Copyright 2014,2015,2016 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. ---> - -<!-- -################################################### -##Block Tree for GR DTV blocks. -################################################### - --> -<cat> - <name>[Core]</name> - <cat> - <name>Digital Television</name> - <cat> - <name>ATSC</name> - <block>dtv_atsc_deinterleaver</block> - <block>dtv_atsc_depad</block> - <block>dtv_atsc_derandomizer</block> - <block>dtv_atsc_equalizer</block> - <block>dtv_atsc_fpll</block> - <block>dtv_atsc_fs_checker</block> - <block>dtv_atsc_rs_decoder</block> - <block>dtv_atsc_rx</block> - <block>dtv_atsc_rx_filter</block> - <block>dtv_atsc_sync</block> - <block>dtv_atsc_viterbi_decoder</block> - <block>dtv_atsc_pad</block> - <block>dtv_atsc_randomizer</block> - <block>dtv_atsc_rs_encoder</block> - <block>dtv_atsc_interleaver</block> - <block>dtv_atsc_trellis_encoder</block> - <block>dtv_atsc_field_sync_mux</block> - </cat> - <cat> - <name>DVB</name> - <block>dtv_dvb_bbheader_bb</block> - <block>dtv_dvb_bbscrambler_bb</block> - <block>dtv_dvb_bch_bb</block> - <block>dtv_dvb_ldpc_bb</block> - </cat> - <cat> - <name>DVB-T2</name> - <block>dtv_dvbt2_interleaver_bb</block> - <block>dtv_dvbt2_modulator_bc</block> - <block>dtv_dvbt2_cellinterleaver_cc</block> - <block>dtv_dvbt2_framemapper_cc</block> - <block>dtv_dvbt2_freqinterleaver_cc</block> - <block>dtv_dvbt2_pilotgenerator_cc</block> - <block>dtv_dvbt2_paprtr_cc</block> - <block>dtv_dvbt2_p1insertion_cc</block> - <block>dtv_dvbt2_miso_cc</block> - </cat> - <cat> - <name>DVB-S2</name> - <block>dtv_dvbs2_interleaver_bb</block> - <block>dtv_dvbs2_modulator_bc</block> - <block>dtv_dvbs2_physical_cc</block> - </cat> - <cat> - <name>DVB-T</name> - <block>dtv_dvbt_energy_dispersal</block> - <block>dtv_dvbt_reed_solomon_enc</block> - <block>dtv_dvbt_convolutional_interleaver</block> - <block>dtv_dvbt_inner_coder</block> - <block>dtv_dvbt_bit_inner_interleaver</block> - <block>dtv_dvbt_symbol_inner_interleaver</block> - <block>dtv_dvbt_map</block> - <block>dtv_dvbt_reference_signals</block> - <block>dtv_dvbt_ofdm_sym_acquisition</block> - <block>dtv_dvbt_demod_reference_signals</block> - <block>dtv_dvbt_demap</block> - <block>dtv_dvbt_bit_inner_deinterleaver</block> - <block>dtv_dvbt_viterbi_decoder</block> - <block>dtv_dvbt_convolutional_deinterleaver</block> - <block>dtv_dvbt_reed_solomon_dec</block> - <block>dtv_dvbt_energy_descramble</block> - </cat> - <cat> - <name>ITU-T J.83B</name> - <block>dtv_catv_transport_framing_enc_bb</block> - <block>dtv_catv_reed_solomon_enc_bb</block> - <block>dtv_catv_randomizer_bb</block> - <block>dtv_catv_frame_sync_enc_bb</block> - <block>dtv_catv_trellis_enc_bb</block> - </cat> - </cat> -</cat> diff --git a/gr-dtv/grc/dtv_catv_frame_sync_enc_bb.block.yml b/gr-dtv/grc/dtv_catv_frame_sync_enc_bb.block.yml new file mode 100644 index 0000000000..d629a16694 --- /dev/null +++ b/gr-dtv/grc/dtv_catv_frame_sync_enc_bb.block.yml @@ -0,0 +1,29 @@ +id: dtv_catv_frame_sync_enc_bb +label: Frame Sync Encoder + +parameters: +- id: constellation + label: Constellation + dtype: enum + options: [CATV_MOD_64QAM, CATV_MOD_256QAM] + option_labels: [64QAM, 256QAM] + option_attributes: + val: [dtv.CATV_MOD_64QAM, dtv.CATV_MOD_256QAM] +- id: ctrlword + label: Control Word + dtype: int + default: '6' + +inputs: +- domain: stream + dtype: byte + +outputs: +- domain: stream + dtype: byte + +templates: + imports: from gnuradio import dtv + make: dtv.catv_frame_sync_enc_bb(${constellation.val}, ${ctrlword}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_catv_frame_sync_enc_bb.xml b/gr-dtv/grc/dtv_catv_frame_sync_enc_bb.xml deleted file mode 100644 index 11f05164b3..0000000000 --- a/gr-dtv/grc/dtv_catv_frame_sync_enc_bb.xml +++ /dev/null @@ -1,41 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## Frame Sync Encoder -################################################### - --> -<block> - <name>Frame Sync Encoder</name> - <key>dtv_catv_frame_sync_enc_bb</key> - <import>from gnuradio import dtv</import> - <make>dtv.catv_frame_sync_enc_bb($constellation.val, $ctrlword)</make> - <param> - <name>Constellation</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>64QAM</name> - <key>CATV_MOD_64QAM</key> - <opt>val:dtv.CATV_MOD_64QAM</opt> - </option> - <option> - <name>256QAM</name> - <key>CATV_MOD_256QAM</key> - <opt>val:dtv.CATV_MOD_256QAM</opt> - </option> - </param> - <param> - <name>Control Word</name> - <key>ctrlword</key> - <value>6</value> - <type>int</type> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_catv_randomizer_bb.block.yml b/gr-dtv/grc/dtv_catv_randomizer_bb.block.yml new file mode 100644 index 0000000000..1be423454d --- /dev/null +++ b/gr-dtv/grc/dtv_catv_randomizer_bb.block.yml @@ -0,0 +1,25 @@ +id: dtv_catv_randomizer_bb +label: Randomizer + +parameters: +- id: constellation + label: Constellation + dtype: enum + options: [CATV_MOD_64QAM, CATV_MOD_256QAM] + option_labels: [64QAM, 256QAM] + option_attributes: + val: [dtv.CATV_MOD_64QAM, dtv.CATV_MOD_256QAM] + +inputs: +- domain: stream + dtype: byte + +outputs: +- domain: stream + dtype: byte + +templates: + imports: from gnuradio import dtv + make: dtv.catv_randomizer_bb(${constellation.val}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_catv_randomizer_bb.xml b/gr-dtv/grc/dtv_catv_randomizer_bb.xml deleted file mode 100644 index d0da5a2516..0000000000 --- a/gr-dtv/grc/dtv_catv_randomizer_bb.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## Randomizer -################################################### - --> -<block> - <name>Randomizer</name> - <key>dtv_catv_randomizer_bb</key> - <import>from gnuradio import dtv</import> - <make>dtv.catv_randomizer_bb($constellation.val)</make> - <param> - <name>Constellation</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>64QAM</name> - <key>CATV_MOD_64QAM</key> - <opt>val:dtv.CATV_MOD_64QAM</opt> - </option> - <option> - <name>256QAM</name> - <key>CATV_MOD_256QAM</key> - <opt>val:dtv.CATV_MOD_256QAM</opt> - </option> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.block.yml b/gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.block.yml new file mode 100644 index 0000000000..fa51b3bab8 --- /dev/null +++ b/gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.block.yml @@ -0,0 +1,16 @@ +id: dtv_catv_reed_solomon_enc_bb +label: Reed-Solomon Encoder + +inputs: +- domain: stream + dtype: byte + +outputs: +- domain: stream + dtype: byte + +templates: + imports: from gnuradio import dtv + make: dtv.catv_reed_solomon_enc_bb() + +file_format: 1 diff --git a/gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.xml b/gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.xml deleted file mode 100644 index a5dfdc2a5a..0000000000 --- a/gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## Reed Solomon Encoder -################################################### - --> -<block> - <name>Reed-Solomon Encoder</name> - <key>dtv_catv_reed_solomon_enc_bb</key> - <import>from gnuradio import dtv</import> - <make>dtv.catv_reed_solomon_enc_bb()</make> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_catv_transport_framing_enc_bb.block.yml b/gr-dtv/grc/dtv_catv_transport_framing_enc_bb.block.yml new file mode 100644 index 0000000000..3f269d1704 --- /dev/null +++ b/gr-dtv/grc/dtv_catv_transport_framing_enc_bb.block.yml @@ -0,0 +1,16 @@ +id: dtv_catv_transport_framing_enc_bb +label: Transport Framing Encoder + +inputs: +- domain: stream + dtype: byte + +outputs: +- domain: stream + dtype: byte + +templates: + imports: from gnuradio import dtv + make: dtv.catv_transport_framing_enc_bb() + +file_format: 1 diff --git a/gr-dtv/grc/dtv_catv_transport_framing_enc_bb.xml b/gr-dtv/grc/dtv_catv_transport_framing_enc_bb.xml deleted file mode 100644 index d0b6bf382b..0000000000 --- a/gr-dtv/grc/dtv_catv_transport_framing_enc_bb.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## Transport Framing Encoder -################################################### - --> -<block> - <name>Transport Framing Encoder</name> - <key>dtv_catv_transport_framing_enc_bb</key> - <import>from gnuradio import dtv</import> - <make>dtv.catv_transport_framing_enc_bb()</make> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_catv_trellis_enc_bb.block.yml b/gr-dtv/grc/dtv_catv_trellis_enc_bb.block.yml new file mode 100644 index 0000000000..aafba8ed2d --- /dev/null +++ b/gr-dtv/grc/dtv_catv_trellis_enc_bb.block.yml @@ -0,0 +1,25 @@ +id: dtv_catv_trellis_enc_bb +label: Trellis Encoder + +parameters: +- id: constellation + label: Constellation + dtype: enum + options: [CATV_MOD_64QAM, CATV_MOD_256QAM] + option_labels: [64QAM, 256QAM] + option_attributes: + val: [dtv.CATV_MOD_64QAM, dtv.CATV_MOD_256QAM] + +inputs: +- domain: stream + dtype: byte + +outputs: +- domain: stream + dtype: byte + +templates: + imports: from gnuradio import dtv + make: dtv.catv_trellis_enc_bb(${constellation.val}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_catv_trellis_enc_bb.xml b/gr-dtv/grc/dtv_catv_trellis_enc_bb.xml deleted file mode 100644 index a1d2d4619c..0000000000 --- a/gr-dtv/grc/dtv_catv_trellis_enc_bb.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## Trellis Encoder -################################################### - --> -<block> - <name>Trellis Encoder</name> - <key>dtv_catv_trellis_enc_bb</key> - <import>from gnuradio import dtv</import> - <make>dtv.catv_trellis_enc_bb($constellation.val)</make> - <param> - <name>Constellation</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>64QAM</name> - <key>CATV_MOD_64QAM</key> - <opt>val:dtv.CATV_MOD_64QAM</opt> - </option> - <option> - <name>256QAM</name> - <key>CATV_MOD_256QAM</key> - <opt>val:dtv.CATV_MOD_256QAM</opt> - </option> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvb_bbheader_bb.block.yml b/gr-dtv/grc/dtv_dvb_bbheader_bb.block.yml new file mode 100644 index 0000000000..520e5dd4c8 --- /dev/null +++ b/gr-dtv/grc/dtv_dvb_bbheader_bb.block.yml @@ -0,0 +1,175 @@ +id: dtv_dvb_bbheader_bb +label: BBheader + +parameters: +- id: standard + label: Standard + dtype: enum + options: [STANDARD_DVBS2, STANDARD_DVBT2] + option_labels: [DVB-S2, DVB-T2] + option_attributes: + hide_dvbs2: ['', all] + hide_dvbt2: [all, ''] + val: [dtv.STANDARD_DVBS2, dtv.STANDARD_DVBT2] +- id: framesize1 + label: FECFRAME size + dtype: enum + options: [FECFRAME_NORMAL, FECFRAME_SHORT] + option_labels: [Normal, Short] + option_attributes: + hide_medium: [all, all] + hide_normal: ['', all] + hide_short: [all, ''] + val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT] + hide: ${ standard.hide_dvbt2 } +- id: framesize2 + label: FECFRAME size + dtype: enum + options: [FECFRAME_NORMAL, FECFRAME_MEDIUM, FECFRAME_SHORT] + option_labels: [Normal, Medium, Short] + option_attributes: + hide_medium: [all, '', all] + hide_normal: ['', all, all] + hide_short: [all, all, ''] + val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_MEDIUM, dtv.FECFRAME_SHORT] + hide: ${ standard.hide_dvbs2 } +- id: rate1 + label: Code rate + dtype: enum + options: [C1_2, C3_5, C2_3, C3_4, C4_5, C5_6] + option_labels: [1/2, 3/5, 2/3, 3/4, 4/5, 5/6] + option_attributes: + val: [dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5, dtv.C5_6] + hide: ${ (framesize1.hide_normal if str(standard) == 'STANDARD_DVBT2' else 'all') + } +- id: rate2 + label: Code rate + dtype: enum + options: [C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6] + option_labels: [1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6] + option_attributes: + val: [dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5, + dtv.C5_6] + hide: ${ (framesize1.hide_short if str(standard) == 'STANDARD_DVBT2' else 'all') + } +- id: rate3 + label: Code rate + dtype: enum + options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C9_10, C2_9_VLSNR, + C13_45, C9_20, C90_180, C96_180, C11_20, C100_180, C104_180, C26_45, C18_30, + C28_45, C23_36, C116_180, C20_30, C124_180, C25_36, C128_180, C13_18, C132_180, + C22_30, C135_180, C140_180, C7_9, C154_180] + option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10, 2/9 VL-SNR, + 13/45, 9/20, 90/180, 96/180, 11/20, 100/180, 104/180, 26/45, 18/30, 28/45, + 23/36, 116/180, 20/30, 124/180, 25/36, 128/180, 13/18, 132/180, 22/30, 135/180, + 140/180, 7/9, 154/180] + option_attributes: + val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, + dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C9_10, dtv.C2_9_VLSNR, dtv.C13_45, dtv.C9_20, + dtv.C90_180, dtv.C96_180, dtv.C11_20, dtv.C100_180, dtv.C104_180, dtv.C26_45, + dtv.C18_30, dtv.C28_45, dtv.C23_36, dtv.C116_180, dtv.C20_30, dtv.C124_180, + dtv.C25_36, dtv.C128_180, dtv.C13_18, dtv.C132_180, dtv.C22_30, dtv.C135_180, + dtv.C140_180, dtv.C7_9, dtv.C154_180] + hide: ${ (framesize2.hide_normal if str(standard) == 'STANDARD_DVBS2' else 'all') + } +- id: rate4 + label: Code rate + dtype: enum + options: [C1_5_MEDIUM, C11_45_MEDIUM, C1_3_MEDIUM] + option_labels: [1/5, 11/45, 1/3] + option_attributes: + val: [dtv.C1_5_MEDIUM, dtv.C11_45_MEDIUM, dtv.C1_3_MEDIUM] + hide: ${ (framesize2.hide_medium if str(standard) == 'STANDARD_DVBS2' else 'all') + } +- id: rate5 + label: Code rate + dtype: enum + options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C11_45, + C4_15, C14_45, C7_15, C8_15, C26_45, C32_45, C1_5_VLSNR_SF2, C11_45_VLSNR_SF2, + C1_5_VLSNR, C4_15_VLSNR, C1_3_VLSNR] + option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 11/45, 4/15, + 14/45, 7/15, 8/15, 26/45, 32/45, 1/5 VL-SNR SF2, 11/45 VL-SNR SF2, 1/5 VL-SNR, + 4/15 VL-SNR, 1/3 VL-SNR] + option_attributes: + val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, + dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C11_45, dtv.C4_15, dtv.C14_45, dtv.C7_15, + dtv.C8_15, dtv.C26_45, dtv.C32_45, dtv.C1_5_VLSNR_SF2, dtv.C11_45_VLSNR_SF2, + dtv.C1_5_VLSNR, dtv.C4_15_VLSNR, dtv.C1_3_VLSNR] + hide: ${ (framesize2.hide_short if str(standard) == 'STANDARD_DVBS2' else 'all') + } +- id: rolloff + label: Rolloff factor + dtype: enum + options: [RO_0_35, RO_0_25, RO_0_20, RO_0_15, RO_0_10, RO_0_05] + option_labels: ['0.35', '0.25', '0.20', '0.15', '0.10', '0.05'] + option_attributes: + val: [dtv.RO_0_35, dtv.RO_0_25, dtv.RO_0_20, dtv.RO_0_15, dtv.RO_0_10, dtv.RO_0_05] + hide: ${ standard.hide_dvbs2 } +- id: mode + label: Baseband Framing Mode + dtype: enum + options: [INPUTMODE_NORMAL, INPUTMODE_HIEFF] + option_labels: [Normal, High Efficiency] + option_attributes: + val: [dtv.INPUTMODE_NORMAL, dtv.INPUTMODE_HIEFF] + hide: ${ standard.hide_dvbt2 } +- id: inband + label: In-band Signalling + dtype: enum + options: [INBAND_OFF, INBAND_ON] + option_labels: ['Off', Type B] + option_attributes: + hide_rate: [all, ''] + val: [dtv.INBAND_OFF, dtv.INBAND_ON] + hide: ${ standard.hide_dvbt2 } +- id: fecblocks + label: FEC blocks per frame + dtype: int + default: '168' + hide: ${ inband.hide_rate } +- id: tsrate + label: Transport Stream Rate + dtype: int + default: '4000000' + hide: ${ inband.hide_rate } + +inputs: +- domain: stream + dtype: byte + +outputs: +- domain: stream + dtype: byte + +templates: + imports: from gnuradio import dtv + make: |- + dtv.dvb_bbheader_bb( + ${standard.val}, + % if str(standard) == 'STANDARD_DVBT2': + ${framesize1.val}, + % else: + ${framesize2.val}, + % endif + % if str(standard) == 'STANDARD_DVBT2': + % if str(framesize1) == 'FECFRAME_NORMAL': + ${rate1.val}, + % else: + ${rate2.val}, + % endif + % else: + % if str(framesize2) == 'FECFRAME_NORMAL': + ${rate3.val}, + % elif str(framesize2) == 'FECFRAME_MEDIUM': + ${rate4.val}, + % else: + ${rate5.val}, + % endif + % endif + ${rolloff.val}, + ${mode.val}, + ${inband.val}, + ${fecblocks}, + ${tsrate}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvb_bbheader_bb.xml b/gr-dtv/grc/dtv_dvb_bbheader_bb.xml deleted file mode 100644 index b18b87b604..0000000000 --- a/gr-dtv/grc/dtv_dvb_bbheader_bb.xml +++ /dev/null @@ -1,596 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB Baseband Header -################################################### - --> -<block> - <name>BBheader</name> - <key>dtv_dvb_bbheader_bb</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvb_bbheader_bb($standard.val, #slurp -#if str($standard) == 'STANDARD_DVBT2' -$framesize1.val, #slurp -#else -$framesize2.val, #slurp -#end if -#if str($standard) == 'STANDARD_DVBT2' -#if str($framesize1) == 'FECFRAME_NORMAL' -$rate1.val, #slurp -#else -$rate2.val, #slurp -#end if -#else -#if str($framesize2) == 'FECFRAME_NORMAL' -$rate3.val, #slurp -#else if str($framesize2) == 'FECFRAME_MEDIUM' -$rate4.val, #slurp -#else -$rate5.val, #slurp -#end if -#end if -$rolloff.val, $mode.val, $inband.val, $fecblocks, $tsrate)</make> - <param> - <name>Standard</name> - <key>standard</key> - <type>enum</type> - <option> - <name>DVB-S2</name> - <key>STANDARD_DVBS2</key> - <opt>val:dtv.STANDARD_DVBS2</opt> - <opt>hide_dvbs2:</opt> - <opt>hide_dvbt2:all</opt> - </option> - <option> - <name>DVB-T2</name> - <key>STANDARD_DVBT2</key> - <opt>val:dtv.STANDARD_DVBT2</opt> - <opt>hide_dvbs2:all</opt> - <opt>hide_dvbt2:</opt> - </option> - </param> - <param> - <name>FECFRAME size</name> - <key>framesize1</key> - <type>enum</type> - <hide>$standard.hide_dvbt2</hide> - <option> - <name>Normal</name> - <key>FECFRAME_NORMAL</key> - <opt>val:dtv.FECFRAME_NORMAL</opt> - <opt>hide_normal:</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Short</name> - <key>FECFRAME_SHORT</key> - <opt>val:dtv.FECFRAME_SHORT</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:</opt> - </option> - </param> - <param> - <name>FECFRAME size</name> - <key>framesize2</key> - <type>enum</type> - <hide>$standard.hide_dvbs2</hide> - <option> - <name>Normal</name> - <key>FECFRAME_NORMAL</key> - <opt>val:dtv.FECFRAME_NORMAL</opt> - <opt>hide_normal:</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Medium</name> - <key>FECFRAME_MEDIUM</key> - <opt>val:dtv.FECFRAME_MEDIUM</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Short</name> - <key>FECFRAME_SHORT</key> - <opt>val:dtv.FECFRAME_SHORT</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate1</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_normal else 'all'</hide> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate2</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_short else 'all'</hide> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate3</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_normal else 'all'</hide> - <option> - <name>1/4</name> - <key>C1_4</key> - <opt>val:dtv.C1_4</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>8/9</name> - <key>C8_9</key> - <opt>val:dtv.C8_9</opt> - </option> - <option> - <name>9/10</name> - <key>C9_10</key> - <opt>val:dtv.C9_10</opt> - </option> - <option> - <name>2/9 VL-SNR</name> - <key>C2_9_VLSNR</key> - <opt>val:dtv.C2_9_VLSNR</opt> - </option> - <option> - <name>13/45</name> - <key>C13_45</key> - <opt>val:dtv.C13_45</opt> - </option> - <option> - <name>9/20</name> - <key>C9_20</key> - <opt>val:dtv.C9_20</opt> - </option> - <option> - <name>90/180</name> - <key>C90_180</key> - <opt>val:dtv.C90_180</opt> - </option> - <option> - <name>96/180</name> - <key>C96_180</key> - <opt>val:dtv.C96_180</opt> - </option> - <option> - <name>11/20</name> - <key>C11_20</key> - <opt>val:dtv.C11_20</opt> - </option> - <option> - <name>100/180</name> - <key>C100_180</key> - <opt>val:dtv.C100_180</opt> - </option> - <option> - <name>104/180</name> - <key>C104_180</key> - <opt>val:dtv.C104_180</opt> - </option> - <option> - <name>26/45</name> - <key>C26_45</key> - <opt>val:dtv.C26_45</opt> - </option> - <option> - <name>18/30</name> - <key>C18_30</key> - <opt>val:dtv.C18_30</opt> - </option> - <option> - <name>28/45</name> - <key>C28_45</key> - <opt>val:dtv.C28_45</opt> - </option> - <option> - <name>23/36</name> - <key>C23_36</key> - <opt>val:dtv.C23_36</opt> - </option> - <option> - <name>116/180</name> - <key>C116_180</key> - <opt>val:dtv.C116_180</opt> - </option> - <option> - <name>20/30</name> - <key>C20_30</key> - <opt>val:dtv.C20_30</opt> - </option> - <option> - <name>124/180</name> - <key>C124_180</key> - <opt>val:dtv.C124_180</opt> - </option> - <option> - <name>25/36</name> - <key>C25_36</key> - <opt>val:dtv.C25_36</opt> - </option> - <option> - <name>128/180</name> - <key>C128_180</key> - <opt>val:dtv.C128_180</opt> - </option> - <option> - <name>13/18</name> - <key>C13_18</key> - <opt>val:dtv.C13_18</opt> - </option> - <option> - <name>132/180</name> - <key>C132_180</key> - <opt>val:dtv.C132_180</opt> - </option> - <option> - <name>22/30</name> - <key>C22_30</key> - <opt>val:dtv.C22_30</opt> - </option> - <option> - <name>135/180</name> - <key>C135_180</key> - <opt>val:dtv.C135_180</opt> - </option> - <option> - <name>140/180</name> - <key>C140_180</key> - <opt>val:dtv.C140_180</opt> - </option> - <option> - <name>7/9</name> - <key>C7_9</key> - <opt>val:dtv.C7_9</opt> - </option> - <option> - <name>154/180</name> - <key>C154_180</key> - <opt>val:dtv.C154_180</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate4</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_medium else 'all'</hide> - <option> - <name>1/5</name> - <key>C1_5_MEDIUM</key> - <opt>val:dtv.C1_5_MEDIUM</opt> - </option> - <option> - <name>11/45</name> - <key>C11_45_MEDIUM</key> - <opt>val:dtv.C11_45_MEDIUM</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3_MEDIUM</key> - <opt>val:dtv.C1_3_MEDIUM</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate5</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_short else 'all'</hide> - <option> - <name>1/4</name> - <key>C1_4</key> - <opt>val:dtv.C1_4</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>8/9</name> - <key>C8_9</key> - <opt>val:dtv.C8_9</opt> - </option> - <option> - <name>11/45</name> - <key>C11_45</key> - <opt>val:dtv.C11_45</opt> - </option> - <option> - <name>4/15</name> - <key>C4_15</key> - <opt>val:dtv.C4_15</opt> - </option> - <option> - <name>14/45</name> - <key>C14_45</key> - <opt>val:dtv.C14_45</opt> - </option> - <option> - <name>7/15</name> - <key>C7_15</key> - <opt>val:dtv.C7_15</opt> - </option> - <option> - <name>8/15</name> - <key>C8_15</key> - <opt>val:dtv.C8_15</opt> - </option> - <option> - <name>26/45</name> - <key>C26_45</key> - <opt>val:dtv.C26_45</opt> - </option> - <option> - <name>32/45</name> - <key>C32_45</key> - <opt>val:dtv.C32_45</opt> - </option> - <option> - <name>1/5 VL-SNR SF2</name> - <key>C1_5_VLSNR_SF2</key> - <opt>val:dtv.C1_5_VLSNR_SF2</opt> - </option> - <option> - <name>11/45 VL-SNR SF2</name> - <key>C11_45_VLSNR_SF2</key> - <opt>val:dtv.C11_45_VLSNR_SF2</opt> - </option> - <option> - <name>1/5 VL-SNR</name> - <key>C1_5_VLSNR</key> - <opt>val:dtv.C1_5_VLSNR</opt> - </option> - <option> - <name>4/15 VL-SNR</name> - <key>C4_15_VLSNR</key> - <opt>val:dtv.C4_15_VLSNR</opt> - </option> - <option> - <name>1/3 VL-SNR</name> - <key>C1_3_VLSNR</key> - <opt>val:dtv.C1_3_VLSNR</opt> - </option> - </param> - <param> - <name>Rolloff factor</name> - <key>rolloff</key> - <type>enum</type> - <hide>$standard.hide_dvbs2</hide> - <option> - <name>0.35</name> - <key>RO_0_35</key> - <opt>val:dtv.RO_0_35</opt> - </option> - <option> - <name>0.25</name> - <key>RO_0_25</key> - <opt>val:dtv.RO_0_25</opt> - </option> - <option> - <name>0.20</name> - <key>RO_0_20</key> - <opt>val:dtv.RO_0_20</opt> - </option> - <option> - <name>0.15</name> - <key>RO_0_15</key> - <opt>val:dtv.RO_0_15</opt> - </option> - <option> - <name>0.10</name> - <key>RO_0_10</key> - <opt>val:dtv.RO_0_10</opt> - </option> - <option> - <name>0.05</name> - <key>RO_0_05</key> - <opt>val:dtv.RO_0_05</opt> - </option> - </param> - <param> - <name>Baseband Framing Mode</name> - <key>mode</key> - <type>enum</type> - <hide>$standard.hide_dvbt2</hide> - <option> - <name>Normal</name> - <key>INPUTMODE_NORMAL</key> - <opt>val:dtv.INPUTMODE_NORMAL</opt> - </option> - <option> - <name>High Efficiency</name> - <key>INPUTMODE_HIEFF</key> - <opt>val:dtv.INPUTMODE_HIEFF</opt> - </option> - </param> - <param> - <name>In-band Signalling</name> - <key>inband</key> - <type>enum</type> - <hide>$standard.hide_dvbt2</hide> - <option> - <name>Off</name> - <key>INBAND_OFF</key> - <opt>val:dtv.INBAND_OFF</opt> - <opt>hide_rate:all</opt> - </option> - <option> - <name>Type B</name> - <key>INBAND_ON</key> - <opt>val:dtv.INBAND_ON</opt> - <opt>hide_rate:</opt> - </option> - </param> - <param> - <name>FEC blocks per frame</name> - <key>fecblocks</key> - <value>168</value> - <type>int</type> - <hide>$inband.hide_rate</hide> - </param> - <param> - <name>Transport Stream Rate</name> - <key>tsrate</key> - <value>4000000</value> - <type>int</type> - <hide>$inband.hide_rate</hide> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvb_bbscrambler_bb.block.yml b/gr-dtv/grc/dtv_dvb_bbscrambler_bb.block.yml new file mode 100644 index 0000000000..86872688ed --- /dev/null +++ b/gr-dtv/grc/dtv_dvb_bbscrambler_bb.block.yml @@ -0,0 +1,136 @@ +id: dtv_dvb_bbscrambler_bb +label: BBscrambler + +parameters: +- id: standard + label: Standard + dtype: enum + options: [STANDARD_DVBS2, STANDARD_DVBT2] + option_labels: [DVB-S2, DVB-T2] + option_attributes: + hide_dvbs2: ['', all] + hide_dvbt2: [all, ''] + val: [dtv.STANDARD_DVBS2, dtv.STANDARD_DVBT2] +- id: framesize1 + label: FECFRAME size + dtype: enum + options: [FECFRAME_NORMAL, FECFRAME_SHORT] + option_labels: [Normal, Short] + option_attributes: + hide_medium: [all, all] + hide_normal: ['', all] + hide_short: [all, ''] + val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT] + hide: ${ standard.hide_dvbt2 } +- id: framesize2 + label: FECFRAME size + dtype: enum + options: [FECFRAME_NORMAL, FECFRAME_MEDIUM, FECFRAME_SHORT] + option_labels: [Normal, Medium, Short] + option_attributes: + hide_medium: [all, '', all] + hide_normal: ['', all, all] + hide_short: [all, all, ''] + val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_MEDIUM, dtv.FECFRAME_SHORT] + hide: ${ standard.hide_dvbs2 } +- id: rate1 + label: Code rate + dtype: enum + options: [C1_2, C3_5, C2_3, C3_4, C4_5, C5_6] + option_labels: [1/2, 3/5, 2/3, 3/4, 4/5, 5/6] + option_attributes: + val: [dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5, dtv.C5_6] + hide: ${ (framesize1.hide_normal if str(standard) == 'STANDARD_DVBT2' else 'all') + } +- id: rate2 + label: Code rate + dtype: enum + options: [C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6] + option_labels: [1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6] + option_attributes: + val: [dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5, + dtv.C5_6] + hide: ${ (framesize1.hide_short if str(standard) == 'STANDARD_DVBT2' else 'all') + } +- id: rate3 + label: Code rate + dtype: enum + options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C9_10, C2_9_VLSNR, + C13_45, C9_20, C90_180, C96_180, C11_20, C100_180, C104_180, C26_45, C18_30, + C28_45, C23_36, C116_180, C20_30, C124_180, C25_36, C128_180, C13_18, C132_180, + C22_30, C135_180, C140_180, C7_9, C154_180] + option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10, 2/9 VL-SNR, + 13/45, 9/20, 90/180, 96/180, 11/20, 100/180, 104/180, 26/45, 18/30, 28/45, + 23/36, 116/180, 20/30, 124/180, 25/36, 128/180, 13/18, 132/180, 22/30, 135/180, + 140/180, 7/9, 154/180] + option_attributes: + val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, + dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C9_10, dtv.C2_9_VLSNR, dtv.C13_45, dtv.C9_20, + dtv.C90_180, dtv.C96_180, dtv.C11_20, dtv.C100_180, dtv.C104_180, dtv.C26_45, + dtv.C18_30, dtv.C28_45, dtv.C23_36, dtv.C116_180, dtv.C20_30, dtv.C124_180, + dtv.C25_36, dtv.C128_180, dtv.C13_18, dtv.C132_180, dtv.C22_30, dtv.C135_180, + dtv.C140_180, dtv.C7_9, dtv.C154_180] + hide: ${ (framesize2.hide_normal if str(standard) == 'STANDARD_DVBS2' else 'all') + } +- id: rate4 + label: Code rate + dtype: enum + options: [C1_5_MEDIUM, C11_45_MEDIUM, C1_3_MEDIUM] + option_labels: [1/5, 11/45, 1/3] + option_attributes: + val: [dtv.C1_5_MEDIUM, dtv.C11_45_MEDIUM, dtv.C1_3_MEDIUM] + hide: ${ (framesize2.hide_medium if str(standard) == 'STANDARD_DVBS2' else 'all') + } +- id: rate5 + label: Code rate + dtype: enum + options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C11_45, + C4_15, C14_45, C7_15, C8_15, C26_45, C32_45, C1_5_VLSNR_SF2, C11_45_VLSNR_SF2, + C1_5_VLSNR, C4_15_VLSNR, C1_3_VLSNR] + option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 11/45, 4/15, + 14/45, 7/15, 8/15, 26/45, 32/45, 1/5 VL-SNR SF2, 11/45 VL-SNR SF2, 1/5 VL-SNR, + 4/15 VL-SNR, 1/3 VL-SNR] + option_attributes: + val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, + dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C11_45, dtv.C4_15, dtv.C14_45, dtv.C7_15, + dtv.C8_15, dtv.C26_45, dtv.C32_45, dtv.C1_5_VLSNR_SF2, dtv.C11_45_VLSNR_SF2, + dtv.C1_5_VLSNR, dtv.C4_15_VLSNR, dtv.C1_3_VLSNR] + hide: ${ (framesize2.hide_short if str(standard) == 'STANDARD_DVBS2' else 'all') + } + +inputs: +- domain: stream + dtype: byte + +outputs: +- domain: stream + dtype: byte + +templates: + imports: from gnuradio import dtv + make: |- + dtv.dvb_bbscrambler_bb( + ${standard.val}, + % if str(standard) == 'STANDARD_DVBT2': + ${framesize1.val}, + % else: + ${framesize2.val}, + % endif + % if str(standard) == 'STANDARD_DVBT2': + % if str(framesize1) == 'FECFRAME_NORMAL': + ${rate1.val} + % else: + ${rate2.val} + % endif + % else: + % if str(framesize2) == 'FECFRAME_NORMAL': + ${rate3.val} + % elif str(framesize2) == 'FECFRAME_MEDIUM': + ${rate4.val} + % else: + ${rate5.val} + % endif + % endif + ) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvb_bbscrambler_bb.xml b/gr-dtv/grc/dtv_dvb_bbscrambler_bb.xml deleted file mode 100644 index 2fba572d39..0000000000 --- a/gr-dtv/grc/dtv_dvb_bbscrambler_bb.xml +++ /dev/null @@ -1,512 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB Baseband Scrambler -################################################### - --> -<block> - <name>BBscrambler</name> - <key>dtv_dvb_bbscrambler_bb</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvb_bbscrambler_bb($standard.val, #slurp -#if str($standard) == 'STANDARD_DVBT2' -$framesize1.val, #slurp -#else -$framesize2.val, #slurp -#end if -#if str($standard) == 'STANDARD_DVBT2' -#if str($framesize1) == 'FECFRAME_NORMAL' -$rate1.val#slurp -#else -$rate2.val#slurp -#end if -#else -#if str($framesize2) == 'FECFRAME_NORMAL' -$rate3.val#slurp -#else if str($framesize2) == 'FECFRAME_MEDIUM' -$rate4.val#slurp -#else -$rate5.val#slurp -#end if -#end if -)</make> - <param> - <name>Standard</name> - <key>standard</key> - <type>enum</type> - <option> - <name>DVB-S2</name> - <key>STANDARD_DVBS2</key> - <opt>val:dtv.STANDARD_DVBS2</opt> - <opt>hide_dvbs2:</opt> - <opt>hide_dvbt2:all</opt> - </option> - <option> - <name>DVB-T2</name> - <key>STANDARD_DVBT2</key> - <opt>val:dtv.STANDARD_DVBT2</opt> - <opt>hide_dvbs2:all</opt> - <opt>hide_dvbt2:</opt> - </option> - </param> - <param> - <name>FECFRAME size</name> - <key>framesize1</key> - <type>enum</type> - <hide>$standard.hide_dvbt2</hide> - <option> - <name>Normal</name> - <key>FECFRAME_NORMAL</key> - <opt>val:dtv.FECFRAME_NORMAL</opt> - <opt>hide_normal:</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Short</name> - <key>FECFRAME_SHORT</key> - <opt>val:dtv.FECFRAME_SHORT</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:</opt> - </option> - </param> - <param> - <name>FECFRAME size</name> - <key>framesize2</key> - <type>enum</type> - <hide>$standard.hide_dvbs2</hide> - <option> - <name>Normal</name> - <key>FECFRAME_NORMAL</key> - <opt>val:dtv.FECFRAME_NORMAL</opt> - <opt>hide_normal:</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Medium</name> - <key>FECFRAME_MEDIUM</key> - <opt>val:dtv.FECFRAME_MEDIUM</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Short</name> - <key>FECFRAME_SHORT</key> - <opt>val:dtv.FECFRAME_SHORT</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate1</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_normal else 'all'</hide> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate2</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_short else 'all'</hide> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate3</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_normal else 'all'</hide> - <option> - <name>1/4</name> - <key>C1_4</key> - <opt>val:dtv.C1_4</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>8/9</name> - <key>C8_9</key> - <opt>val:dtv.C8_9</opt> - </option> - <option> - <name>9/10</name> - <key>C9_10</key> - <opt>val:dtv.C9_10</opt> - </option> - <option> - <name>2/9 VL-SNR</name> - <key>C2_9_VLSNR</key> - <opt>val:dtv.C2_9_VLSNR</opt> - </option> - <option> - <name>13/45</name> - <key>C13_45</key> - <opt>val:dtv.C13_45</opt> - </option> - <option> - <name>9/20</name> - <key>C9_20</key> - <opt>val:dtv.C9_20</opt> - </option> - <option> - <name>90/180</name> - <key>C90_180</key> - <opt>val:dtv.C90_180</opt> - </option> - <option> - <name>96/180</name> - <key>C96_180</key> - <opt>val:dtv.C96_180</opt> - </option> - <option> - <name>11/20</name> - <key>C11_20</key> - <opt>val:dtv.C11_20</opt> - </option> - <option> - <name>100/180</name> - <key>C100_180</key> - <opt>val:dtv.C100_180</opt> - </option> - <option> - <name>104/180</name> - <key>C104_180</key> - <opt>val:dtv.C104_180</opt> - </option> - <option> - <name>26/45</name> - <key>C26_45</key> - <opt>val:dtv.C26_45</opt> - </option> - <option> - <name>18/30</name> - <key>C18_30</key> - <opt>val:dtv.C18_30</opt> - </option> - <option> - <name>28/45</name> - <key>C28_45</key> - <opt>val:dtv.C28_45</opt> - </option> - <option> - <name>23/36</name> - <key>C23_36</key> - <opt>val:dtv.C23_36</opt> - </option> - <option> - <name>116/180</name> - <key>C116_180</key> - <opt>val:dtv.C116_180</opt> - </option> - <option> - <name>20/30</name> - <key>C20_30</key> - <opt>val:dtv.C20_30</opt> - </option> - <option> - <name>124/180</name> - <key>C124_180</key> - <opt>val:dtv.C124_180</opt> - </option> - <option> - <name>25/36</name> - <key>C25_36</key> - <opt>val:dtv.C25_36</opt> - </option> - <option> - <name>128/180</name> - <key>C128_180</key> - <opt>val:dtv.C128_180</opt> - </option> - <option> - <name>13/18</name> - <key>C13_18</key> - <opt>val:dtv.C13_18</opt> - </option> - <option> - <name>132/180</name> - <key>C132_180</key> - <opt>val:dtv.C132_180</opt> - </option> - <option> - <name>22/30</name> - <key>C22_30</key> - <opt>val:dtv.C22_30</opt> - </option> - <option> - <name>135/180</name> - <key>C135_180</key> - <opt>val:dtv.C135_180</opt> - </option> - <option> - <name>140/180</name> - <key>C140_180</key> - <opt>val:dtv.C140_180</opt> - </option> - <option> - <name>7/9</name> - <key>C7_9</key> - <opt>val:dtv.C7_9</opt> - </option> - <option> - <name>154/180</name> - <key>C154_180</key> - <opt>val:dtv.C154_180</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate4</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_medium else 'all'</hide> - <option> - <name>1/5</name> - <key>C1_5_MEDIUM</key> - <opt>val:dtv.C1_5_MEDIUM</opt> - </option> - <option> - <name>11/45</name> - <key>C11_45_MEDIUM</key> - <opt>val:dtv.C11_45_MEDIUM</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3_MEDIUM</key> - <opt>val:dtv.C1_3_MEDIUM</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate5</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_short else 'all'</hide> - <option> - <name>1/4</name> - <key>C1_4</key> - <opt>val:dtv.C1_4</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>8/9</name> - <key>C8_9</key> - <opt>val:dtv.C8_9</opt> - </option> - <option> - <name>11/45</name> - <key>C11_45</key> - <opt>val:dtv.C11_45</opt> - </option> - <option> - <name>4/15</name> - <key>C4_15</key> - <opt>val:dtv.C4_15</opt> - </option> - <option> - <name>14/45</name> - <key>C14_45</key> - <opt>val:dtv.C14_45</opt> - </option> - <option> - <name>7/15</name> - <key>C7_15</key> - <opt>val:dtv.C7_15</opt> - </option> - <option> - <name>8/15</name> - <key>C8_15</key> - <opt>val:dtv.C8_15</opt> - </option> - <option> - <name>26/45</name> - <key>C26_45</key> - <opt>val:dtv.C26_45</opt> - </option> - <option> - <name>32/45</name> - <key>C32_45</key> - <opt>val:dtv.C32_45</opt> - </option> - <option> - <name>1/5 VL-SNR SF2</name> - <key>C1_5_VLSNR_SF2</key> - <opt>val:dtv.C1_5_VLSNR_SF2</opt> - </option> - <option> - <name>11/45 VL-SNR SF2</name> - <key>C11_45_VLSNR_SF2</key> - <opt>val:dtv.C11_45_VLSNR_SF2</opt> - </option> - <option> - <name>1/5 VL-SNR</name> - <key>C1_5_VLSNR</key> - <opt>val:dtv.C1_5_VLSNR</opt> - </option> - <option> - <name>4/15 VL-SNR</name> - <key>C4_15_VLSNR</key> - <opt>val:dtv.C4_15_VLSNR</opt> - </option> - <option> - <name>1/3 VL-SNR</name> - <key>C1_3_VLSNR</key> - <opt>val:dtv.C1_3_VLSNR</opt> - </option> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvb_bch_bb.block.yml b/gr-dtv/grc/dtv_dvb_bch_bb.block.yml new file mode 100644 index 0000000000..a9b47a52b2 --- /dev/null +++ b/gr-dtv/grc/dtv_dvb_bch_bb.block.yml @@ -0,0 +1,136 @@ +id: dtv_dvb_bch_bb +label: BCH Encoder + +parameters: +- id: standard + label: Standard + dtype: enum + options: [STANDARD_DVBS2, STANDARD_DVBT2] + option_labels: [DVB-S2, DVB-T2] + option_attributes: + hide_dvbs2: ['', all] + hide_dvbt2: [all, ''] + val: [dtv.STANDARD_DVBS2, dtv.STANDARD_DVBT2] +- id: framesize1 + label: FECFRAME size + dtype: enum + options: [FECFRAME_NORMAL, FECFRAME_SHORT] + option_labels: [Normal, Short] + option_attributes: + hide_medium: [all, all] + hide_normal: ['', all] + hide_short: [all, ''] + val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT] + hide: ${ standard.hide_dvbt2 } +- id: framesize2 + label: FECFRAME size + dtype: enum + options: [FECFRAME_NORMAL, FECFRAME_MEDIUM, FECFRAME_SHORT] + option_labels: [Normal, Medium, Short] + option_attributes: + hide_medium: [all, '', all] + hide_normal: ['', all, all] + hide_short: [all, all, ''] + val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_MEDIUM, dtv.FECFRAME_SHORT] + hide: ${ standard.hide_dvbs2 } +- id: rate1 + label: Code rate + dtype: enum + options: [C1_2, C3_5, C2_3, C3_4, C4_5, C5_6] + option_labels: [1/2, 3/5, 2/3, 3/4, 4/5, 5/6] + option_attributes: + val: [dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5, dtv.C5_6] + hide: ${ (framesize1.hide_normal if str(standard) == 'STANDARD_DVBT2' else 'all') + } +- id: rate2 + label: Code rate + dtype: enum + options: [C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6] + option_labels: [1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6] + option_attributes: + val: [dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5, + dtv.C5_6] + hide: ${ (framesize1.hide_short if str(standard) == 'STANDARD_DVBT2' else 'all') + } +- id: rate3 + label: Code rate + dtype: enum + options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C9_10, C2_9_VLSNR, + C13_45, C9_20, C90_180, C96_180, C11_20, C100_180, C104_180, C26_45, C18_30, + C28_45, C23_36, C116_180, C20_30, C124_180, C25_36, C128_180, C13_18, C132_180, + C22_30, C135_180, C140_180, C7_9, C154_180] + option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10, 2/9 VL-SNR, + 13/45, 9/20, 90/180, 96/180, 11/20, 100/180, 104/180, 26/45, 18/30, 28/45, + 23/36, 116/180, 20/30, 124/180, 25/36, 128/180, 13/18, 132/180, 22/30, 135/180, + 140/180, 7/9, 154/180] + option_attributes: + val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, + dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C9_10, dtv.C2_9_VLSNR, dtv.C13_45, dtv.C9_20, + dtv.C90_180, dtv.C96_180, dtv.C11_20, dtv.C100_180, dtv.C104_180, dtv.C26_45, + dtv.C18_30, dtv.C28_45, dtv.C23_36, dtv.C116_180, dtv.C20_30, dtv.C124_180, + dtv.C25_36, dtv.C128_180, dtv.C13_18, dtv.C132_180, dtv.C22_30, dtv.C135_180, + dtv.C140_180, dtv.C7_9, dtv.C154_180] + hide: ${ (framesize2.hide_normal if str(standard) == 'STANDARD_DVBS2' else 'all') + } +- id: rate4 + label: Code rate + dtype: enum + options: [C1_5_MEDIUM, C11_45_MEDIUM, C1_3_MEDIUM] + option_labels: [1/5, 11/45, 1/3] + option_attributes: + val: [dtv.C1_5_MEDIUM, dtv.C11_45_MEDIUM, dtv.C1_3_MEDIUM] + hide: ${ (framesize2.hide_medium if str(standard) == 'STANDARD_DVBS2' else 'all') + } +- id: rate5 + label: Code rate + dtype: enum + options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C11_45, + C4_15, C14_45, C7_15, C8_15, C26_45, C32_45, C1_5_VLSNR_SF2, C11_45_VLSNR_SF2, + C1_5_VLSNR, C4_15_VLSNR, C1_3_VLSNR] + option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 11/45, 4/15, + 14/45, 7/15, 8/15, 26/45, 32/45, 1/5 VL-SNR SF2, 11/45 VL-SNR SF2, 1/5 VL-SNR, + 4/15 VL-SNR, 1/3 VL-SNR] + option_attributes: + val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, + dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C11_45, dtv.C4_15, dtv.C14_45, dtv.C7_15, + dtv.C8_15, dtv.C26_45, dtv.C32_45, dtv.C1_5_VLSNR_SF2, dtv.C11_45_VLSNR_SF2, + dtv.C1_5_VLSNR, dtv.C4_15_VLSNR, dtv.C1_3_VLSNR] + hide: ${ (framesize2.hide_short if str(standard) == 'STANDARD_DVBS2' else 'all') + } + +inputs: +- domain: stream + dtype: byte + +outputs: +- domain: stream + dtype: byte + +templates: + imports: from gnuradio import dtv + make: |- + dtv.dvb_bch_bb( + ${standard.val}, + % if str(standard) == 'STANDARD_DVBT2': + ${framesize1.val}, + % else: + ${framesize2.val}, + % endif + % if str(standard) == 'STANDARD_DVBT2': + % if str(framesize1) == 'FECFRAME_NORMAL': + ${rate1.val} + % else: + ${rate2.val} + % endif + % else: + % if str(framesize2) == 'FECFRAME_NORMAL': + ${rate3.val} + % elif str(framesize2) == 'FECFRAME_MEDIUM': + ${rate4.val} + % else: + ${rate5.val} + % endif + % endif + ) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvb_bch_bb.xml b/gr-dtv/grc/dtv_dvb_bch_bb.xml deleted file mode 100644 index 01b446b7ca..0000000000 --- a/gr-dtv/grc/dtv_dvb_bch_bb.xml +++ /dev/null @@ -1,512 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB BCH Encoder -################################################### - --> -<block> - <name>BCH Encoder</name> - <key>dtv_dvb_bch_bb</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvb_bch_bb($standard.val, #slurp -#if str($standard) == 'STANDARD_DVBT2' -$framesize1.val, #slurp -#else -$framesize2.val, #slurp -#end if -#if str($standard) == 'STANDARD_DVBT2' -#if str($framesize1) == 'FECFRAME_NORMAL' -$rate1.val#slurp -#else -$rate2.val#slurp -#end if -#else -#if str($framesize2) == 'FECFRAME_NORMAL' -$rate3.val#slurp -#else if str($framesize2) == 'FECFRAME_MEDIUM' -$rate4.val#slurp -#else -$rate5.val#slurp -#end if -#end if -)</make> - <param> - <name>Standard</name> - <key>standard</key> - <type>enum</type> - <option> - <name>DVB-S2</name> - <key>STANDARD_DVBS2</key> - <opt>val:dtv.STANDARD_DVBS2</opt> - <opt>hide_dvbs2:</opt> - <opt>hide_dvbt2:all</opt> - </option> - <option> - <name>DVB-T2</name> - <key>STANDARD_DVBT2</key> - <opt>val:dtv.STANDARD_DVBT2</opt> - <opt>hide_dvbs2:all</opt> - <opt>hide_dvbt2:</opt> - </option> - </param> - <param> - <name>FECFRAME size</name> - <key>framesize1</key> - <type>enum</type> - <hide>$standard.hide_dvbt2</hide> - <option> - <name>Normal</name> - <key>FECFRAME_NORMAL</key> - <opt>val:dtv.FECFRAME_NORMAL</opt> - <opt>hide_normal:</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Short</name> - <key>FECFRAME_SHORT</key> - <opt>val:dtv.FECFRAME_SHORT</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:</opt> - </option> - </param> - <param> - <name>FECFRAME size</name> - <key>framesize2</key> - <type>enum</type> - <hide>$standard.hide_dvbs2</hide> - <option> - <name>Normal</name> - <key>FECFRAME_NORMAL</key> - <opt>val:dtv.FECFRAME_NORMAL</opt> - <opt>hide_normal:</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Medium</name> - <key>FECFRAME_MEDIUM</key> - <opt>val:dtv.FECFRAME_MEDIUM</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Short</name> - <key>FECFRAME_SHORT</key> - <opt>val:dtv.FECFRAME_SHORT</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate1</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_normal else 'all'</hide> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate2</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_short else 'all'</hide> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate3</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_normal else 'all'</hide> - <option> - <name>1/4</name> - <key>C1_4</key> - <opt>val:dtv.C1_4</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>8/9</name> - <key>C8_9</key> - <opt>val:dtv.C8_9</opt> - </option> - <option> - <name>9/10</name> - <key>C9_10</key> - <opt>val:dtv.C9_10</opt> - </option> - <option> - <name>2/9 VL-SNR</name> - <key>C2_9_VLSNR</key> - <opt>val:dtv.C2_9_VLSNR</opt> - </option> - <option> - <name>13/45</name> - <key>C13_45</key> - <opt>val:dtv.C13_45</opt> - </option> - <option> - <name>9/20</name> - <key>C9_20</key> - <opt>val:dtv.C9_20</opt> - </option> - <option> - <name>90/180</name> - <key>C90_180</key> - <opt>val:dtv.C90_180</opt> - </option> - <option> - <name>96/180</name> - <key>C96_180</key> - <opt>val:dtv.C96_180</opt> - </option> - <option> - <name>11/20</name> - <key>C11_20</key> - <opt>val:dtv.C11_20</opt> - </option> - <option> - <name>100/180</name> - <key>C100_180</key> - <opt>val:dtv.C100_180</opt> - </option> - <option> - <name>104/180</name> - <key>C104_180</key> - <opt>val:dtv.C104_180</opt> - </option> - <option> - <name>26/45</name> - <key>C26_45</key> - <opt>val:dtv.C26_45</opt> - </option> - <option> - <name>18/30</name> - <key>C18_30</key> - <opt>val:dtv.C18_30</opt> - </option> - <option> - <name>28/45</name> - <key>C28_45</key> - <opt>val:dtv.C28_45</opt> - </option> - <option> - <name>23/36</name> - <key>C23_36</key> - <opt>val:dtv.C23_36</opt> - </option> - <option> - <name>116/180</name> - <key>C116_180</key> - <opt>val:dtv.C116_180</opt> - </option> - <option> - <name>20/30</name> - <key>C20_30</key> - <opt>val:dtv.C20_30</opt> - </option> - <option> - <name>124/180</name> - <key>C124_180</key> - <opt>val:dtv.C124_180</opt> - </option> - <option> - <name>25/36</name> - <key>C25_36</key> - <opt>val:dtv.C25_36</opt> - </option> - <option> - <name>128/180</name> - <key>C128_180</key> - <opt>val:dtv.C128_180</opt> - </option> - <option> - <name>13/18</name> - <key>C13_18</key> - <opt>val:dtv.C13_18</opt> - </option> - <option> - <name>132/180</name> - <key>C132_180</key> - <opt>val:dtv.C132_180</opt> - </option> - <option> - <name>22/30</name> - <key>C22_30</key> - <opt>val:dtv.C22_30</opt> - </option> - <option> - <name>135/180</name> - <key>C135_180</key> - <opt>val:dtv.C135_180</opt> - </option> - <option> - <name>140/180</name> - <key>C140_180</key> - <opt>val:dtv.C140_180</opt> - </option> - <option> - <name>7/9</name> - <key>C7_9</key> - <opt>val:dtv.C7_9</opt> - </option> - <option> - <name>154/180</name> - <key>C154_180</key> - <opt>val:dtv.C154_180</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate4</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_medium else 'all'</hide> - <option> - <name>1/5</name> - <key>C1_5_MEDIUM</key> - <opt>val:dtv.C1_5_MEDIUM</opt> - </option> - <option> - <name>11/45</name> - <key>C11_45_MEDIUM</key> - <opt>val:dtv.C11_45_MEDIUM</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3_MEDIUM</key> - <opt>val:dtv.C1_3_MEDIUM</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate5</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_short else 'all'</hide> - <option> - <name>1/4</name> - <key>C1_4</key> - <opt>val:dtv.C1_4</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>8/9</name> - <key>C8_9</key> - <opt>val:dtv.C8_9</opt> - </option> - <option> - <name>11/45</name> - <key>C11_45</key> - <opt>val:dtv.C11_45</opt> - </option> - <option> - <name>4/15</name> - <key>C4_15</key> - <opt>val:dtv.C4_15</opt> - </option> - <option> - <name>14/45</name> - <key>C14_45</key> - <opt>val:dtv.C14_45</opt> - </option> - <option> - <name>7/15</name> - <key>C7_15</key> - <opt>val:dtv.C7_15</opt> - </option> - <option> - <name>8/15</name> - <key>C8_15</key> - <opt>val:dtv.C8_15</opt> - </option> - <option> - <name>26/45</name> - <key>C26_45</key> - <opt>val:dtv.C26_45</opt> - </option> - <option> - <name>32/45</name> - <key>C32_45</key> - <opt>val:dtv.C32_45</opt> - </option> - <option> - <name>1/5 VL-SNR SF2</name> - <key>C1_5_VLSNR_SF2</key> - <opt>val:dtv.C1_5_VLSNR_SF2</opt> - </option> - <option> - <name>11/45 VL-SNR SF2</name> - <key>C11_45_VLSNR_SF2</key> - <opt>val:dtv.C11_45_VLSNR_SF2</opt> - </option> - <option> - <name>1/5 VL-SNR</name> - <key>C1_5_VLSNR</key> - <opt>val:dtv.C1_5_VLSNR</opt> - </option> - <option> - <name>4/15 VL-SNR</name> - <key>C4_15_VLSNR</key> - <opt>val:dtv.C4_15_VLSNR</opt> - </option> - <option> - <name>1/3 VL-SNR</name> - <key>C1_3_VLSNR</key> - <opt>val:dtv.C1_3_VLSNR</opt> - </option> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvb_ldpc_bb.block.yml b/gr-dtv/grc/dtv_dvb_ldpc_bb.block.yml new file mode 100644 index 0000000000..c8b5df4274 --- /dev/null +++ b/gr-dtv/grc/dtv_dvb_ldpc_bb.block.yml @@ -0,0 +1,144 @@ +id: dtv_dvb_ldpc_bb +label: LDPC Encoder + +parameters: +- id: standard + label: Standard + dtype: enum + options: [STANDARD_DVBS2, STANDARD_DVBT2] + option_labels: [DVB-S2, DVB-T2] + option_attributes: + hide_dvbs2: ['', all] + hide_dvbt2: [all, ''] + val: [dtv.STANDARD_DVBS2, dtv.STANDARD_DVBT2] +- id: framesize1 + label: FECFRAME size + dtype: enum + options: [FECFRAME_NORMAL, FECFRAME_SHORT] + option_labels: [Normal, Short] + option_attributes: + hide_medium: [all, all] + hide_normal: ['', all] + hide_short: [all, ''] + val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT] + hide: ${ standard.hide_dvbt2 } +- id: framesize2 + label: FECFRAME size + dtype: enum + options: [FECFRAME_NORMAL, FECFRAME_MEDIUM, FECFRAME_SHORT] + option_labels: [Normal, Medium, Short] + option_attributes: + hide_medium: [all, '', all] + hide_normal: ['', all, all] + hide_short: [all, all, ''] + val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_MEDIUM, dtv.FECFRAME_SHORT] + hide: ${ standard.hide_dvbs2 } +- id: rate1 + label: Code rate + dtype: enum + options: [C1_2, C3_5, C2_3, C3_4, C4_5, C5_6] + option_labels: [1/2, 3/5, 2/3, 3/4, 4/5, 5/6] + option_attributes: + val: [dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5, dtv.C5_6] + hide: ${ (framesize1.hide_normal if str(standard) == 'STANDARD_DVBT2' else 'all') + } +- id: rate2 + label: Code rate + dtype: enum + options: [C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6] + option_labels: [1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6] + option_attributes: + val: [dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5, + dtv.C5_6] + hide: ${ (framesize1.hide_short if str(standard) == 'STANDARD_DVBT2' else 'all') + } +- id: rate3 + label: Code rate + dtype: enum + options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C9_10, C2_9_VLSNR, + C13_45, C9_20, C90_180, C96_180, C11_20, C100_180, C104_180, C26_45, C18_30, + C28_45, C23_36, C116_180, C20_30, C124_180, C25_36, C128_180, C13_18, C132_180, + C22_30, C135_180, C140_180, C7_9, C154_180] + option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10, 2/9 VL-SNR, + 13/45, 9/20, 90/180, 96/180, 11/20, 100/180, 104/180, 26/45, 18/30, 28/45, + 23/36, 116/180, 20/30, 124/180, 25/36, 128/180, 13/18, 132/180, 22/30, 135/180, + 140/180, 7/9, 154/180] + option_attributes: + val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, + dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C9_10, dtv.C2_9_VLSNR, dtv.C13_45, dtv.C9_20, + dtv.C90_180, dtv.C96_180, dtv.C11_20, dtv.C100_180, dtv.C104_180, dtv.C26_45, + dtv.C18_30, dtv.C28_45, dtv.C23_36, dtv.C116_180, dtv.C20_30, dtv.C124_180, + dtv.C25_36, dtv.C128_180, dtv.C13_18, dtv.C132_180, dtv.C22_30, dtv.C135_180, + dtv.C140_180, dtv.C7_9, dtv.C154_180] + hide: ${ (framesize2.hide_normal if str(standard) == 'STANDARD_DVBS2' else 'all') + } +- id: rate4 + label: Code rate + dtype: enum + options: [C1_5_MEDIUM, C11_45_MEDIUM, C1_3_MEDIUM] + option_labels: [1/5, 11/45, 1/3] + option_attributes: + val: [dtv.C1_5_MEDIUM, dtv.C11_45_MEDIUM, dtv.C1_3_MEDIUM] + hide: ${ (framesize2.hide_medium if str(standard) == 'STANDARD_DVBS2' else 'all') + } +- id: rate5 + label: Code rate + dtype: enum + options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C11_45, + C4_15, C14_45, C7_15, C8_15, C26_45, C32_45, C1_5_VLSNR_SF2, C11_45_VLSNR_SF2, + C1_5_VLSNR, C4_15_VLSNR, C1_3_VLSNR] + option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 11/45, 4/15, + 14/45, 7/15, 8/15, 26/45, 32/45, 1/5 VL-SNR SF2, 11/45 VL-SNR SF2, 1/5 VL-SNR, + 4/15 VL-SNR, 1/3 VL-SNR] + option_attributes: + val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, + dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C11_45, dtv.C4_15, dtv.C14_45, dtv.C7_15, + dtv.C8_15, dtv.C26_45, dtv.C32_45, dtv.C1_5_VLSNR_SF2, dtv.C11_45_VLSNR_SF2, + dtv.C1_5_VLSNR, dtv.C4_15_VLSNR, dtv.C1_3_VLSNR] + hide: ${ (framesize2.hide_short if str(standard) == 'STANDARD_DVBS2' else 'all') + } +- id: constellation + label: Constellation + dtype: enum + options: [MOD_OTHER, MOD_128APSK] + option_labels: [Other, 128APSK] + option_attributes: + val: [dtv.MOD_OTHER, dtv.MOD_128APSK] + hide: ${ standard.hide_dvbs2 } + +inputs: +- domain: stream + dtype: byte + +outputs: +- domain: stream + dtype: byte + +templates: + imports: from gnuradio import dtv + make: |- + dtv.dvb_ldpc_bb( + ${standard.val}, + if str(standard) == 'STANDARD_DVBT2': + ${framesize1.val}, + % else: + ${framesize2.val}, + % endif + % if str(standard) == 'STANDARD_DVBT2': + % if str(framesize1) == 'FECFRAME_NORMAL': + ${rate1.val}, + % else: + ${rate2.val}, + % endif + % else: + % if str(framesize2) == 'FECFRAME_NORMAL': + ${rate3.val}, + % elif str(framesize2) == 'FECFRAME_MEDIUM': + ${rate4.val}, + % else: + ${rate5.val}, + % endif + % endif + ${constellation.val}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvb_ldpc_bb.xml b/gr-dtv/grc/dtv_dvb_ldpc_bb.xml deleted file mode 100644 index f1cff16091..0000000000 --- a/gr-dtv/grc/dtv_dvb_ldpc_bb.xml +++ /dev/null @@ -1,528 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB LDPC Encoder -################################################### - --> -<block> - <name>LDPC Encoder</name> - <key>dtv_dvb_ldpc_bb</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvb_ldpc_bb($standard.val, #slurp -#if str($standard) == 'STANDARD_DVBT2' -$framesize1.val, #slurp -#else -$framesize2.val, #slurp -#end if -#if str($standard) == 'STANDARD_DVBT2' -#if str($framesize1) == 'FECFRAME_NORMAL' -$rate1.val, #slurp -#else -$rate2.val, #slurp -#end if -#else -#if str($framesize2) == 'FECFRAME_NORMAL' -$rate3.val, #slurp -#else if str($framesize2) == 'FECFRAME_MEDIUM' -$rate4.val, #slurp -#else -$rate5.val, #slurp -#end if -#end if -$constellation.val)</make> - <param> - <name>Standard</name> - <key>standard</key> - <type>enum</type> - <option> - <name>DVB-S2</name> - <key>STANDARD_DVBS2</key> - <opt>val:dtv.STANDARD_DVBS2</opt> - <opt>hide_dvbs2:</opt> - <opt>hide_dvbt2:all</opt> - </option> - <option> - <name>DVB-T2</name> - <key>STANDARD_DVBT2</key> - <opt>val:dtv.STANDARD_DVBT2</opt> - <opt>hide_dvbs2:all</opt> - <opt>hide_dvbt2:</opt> - </option> - </param> - <param> - <name>FECFRAME size</name> - <key>framesize1</key> - <type>enum</type> - <hide>$standard.hide_dvbt2</hide> - <option> - <name>Normal</name> - <key>FECFRAME_NORMAL</key> - <opt>val:dtv.FECFRAME_NORMAL</opt> - <opt>hide_normal:</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Short</name> - <key>FECFRAME_SHORT</key> - <opt>val:dtv.FECFRAME_SHORT</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:</opt> - </option> - </param> - <param> - <name>FECFRAME size</name> - <key>framesize2</key> - <type>enum</type> - <hide>$standard.hide_dvbs2</hide> - <option> - <name>Normal</name> - <key>FECFRAME_NORMAL</key> - <opt>val:dtv.FECFRAME_NORMAL</opt> - <opt>hide_normal:</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Medium</name> - <key>FECFRAME_MEDIUM</key> - <opt>val:dtv.FECFRAME_MEDIUM</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Short</name> - <key>FECFRAME_SHORT</key> - <opt>val:dtv.FECFRAME_SHORT</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate1</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_normal else 'all'</hide> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate2</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBT2' then $framesize1.hide_short else 'all'</hide> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate3</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_normal else 'all'</hide> - <option> - <name>1/4</name> - <key>C1_4</key> - <opt>val:dtv.C1_4</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>8/9</name> - <key>C8_9</key> - <opt>val:dtv.C8_9</opt> - </option> - <option> - <name>9/10</name> - <key>C9_10</key> - <opt>val:dtv.C9_10</opt> - </option> - <option> - <name>2/9 VL-SNR</name> - <key>C2_9_VLSNR</key> - <opt>val:dtv.C2_9_VLSNR</opt> - </option> - <option> - <name>13/45</name> - <key>C13_45</key> - <opt>val:dtv.C13_45</opt> - </option> - <option> - <name>9/20</name> - <key>C9_20</key> - <opt>val:dtv.C9_20</opt> - </option> - <option> - <name>90/180</name> - <key>C90_180</key> - <opt>val:dtv.C90_180</opt> - </option> - <option> - <name>96/180</name> - <key>C96_180</key> - <opt>val:dtv.C96_180</opt> - </option> - <option> - <name>11/20</name> - <key>C11_20</key> - <opt>val:dtv.C11_20</opt> - </option> - <option> - <name>100/180</name> - <key>C100_180</key> - <opt>val:dtv.C100_180</opt> - </option> - <option> - <name>104/180</name> - <key>C104_180</key> - <opt>val:dtv.C104_180</opt> - </option> - <option> - <name>26/45</name> - <key>C26_45</key> - <opt>val:dtv.C26_45</opt> - </option> - <option> - <name>18/30</name> - <key>C18_30</key> - <opt>val:dtv.C18_30</opt> - </option> - <option> - <name>28/45</name> - <key>C28_45</key> - <opt>val:dtv.C28_45</opt> - </option> - <option> - <name>23/36</name> - <key>C23_36</key> - <opt>val:dtv.C23_36</opt> - </option> - <option> - <name>116/180</name> - <key>C116_180</key> - <opt>val:dtv.C116_180</opt> - </option> - <option> - <name>20/30</name> - <key>C20_30</key> - <opt>val:dtv.C20_30</opt> - </option> - <option> - <name>124/180</name> - <key>C124_180</key> - <opt>val:dtv.C124_180</opt> - </option> - <option> - <name>25/36</name> - <key>C25_36</key> - <opt>val:dtv.C25_36</opt> - </option> - <option> - <name>128/180</name> - <key>C128_180</key> - <opt>val:dtv.C128_180</opt> - </option> - <option> - <name>13/18</name> - <key>C13_18</key> - <opt>val:dtv.C13_18</opt> - </option> - <option> - <name>132/180</name> - <key>C132_180</key> - <opt>val:dtv.C132_180</opt> - </option> - <option> - <name>22/30</name> - <key>C22_30</key> - <opt>val:dtv.C22_30</opt> - </option> - <option> - <name>135/180</name> - <key>C135_180</key> - <opt>val:dtv.C135_180</opt> - </option> - <option> - <name>140/180</name> - <key>C140_180</key> - <opt>val:dtv.C140_180</opt> - </option> - <option> - <name>7/9</name> - <key>C7_9</key> - <opt>val:dtv.C7_9</opt> - </option> - <option> - <name>154/180</name> - <key>C154_180</key> - <opt>val:dtv.C154_180</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate4</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_medium else 'all'</hide> - <option> - <name>1/5</name> - <key>C1_5_MEDIUM</key> - <opt>val:dtv.C1_5_MEDIUM</opt> - </option> - <option> - <name>11/45</name> - <key>C11_45_MEDIUM</key> - <opt>val:dtv.C11_45_MEDIUM</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3_MEDIUM</key> - <opt>val:dtv.C1_3_MEDIUM</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate5</key> - <type>enum</type> - <hide>#if str($standard) == 'STANDARD_DVBS2' then $framesize2.hide_short else 'all'</hide> - <option> - <name>1/4</name> - <key>C1_4</key> - <opt>val:dtv.C1_4</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>8/9</name> - <key>C8_9</key> - <opt>val:dtv.C8_9</opt> - </option> - <option> - <name>11/45</name> - <key>C11_45</key> - <opt>val:dtv.C11_45</opt> - </option> - <option> - <name>4/15</name> - <key>C4_15</key> - <opt>val:dtv.C4_15</opt> - </option> - <option> - <name>14/45</name> - <key>C14_45</key> - <opt>val:dtv.C14_45</opt> - </option> - <option> - <name>7/15</name> - <key>C7_15</key> - <opt>val:dtv.C7_15</opt> - </option> - <option> - <name>8/15</name> - <key>C8_15</key> - <opt>val:dtv.C8_15</opt> - </option> - <option> - <name>26/45</name> - <key>C26_45</key> - <opt>val:dtv.C26_45</opt> - </option> - <option> - <name>32/45</name> - <key>C32_45</key> - <opt>val:dtv.C32_45</opt> - </option> - <option> - <name>1/5 VL-SNR SF2</name> - <key>C1_5_VLSNR_SF2</key> - <opt>val:dtv.C1_5_VLSNR_SF2</opt> - </option> - <option> - <name>11/45 VL-SNR SF2</name> - <key>C11_45_VLSNR_SF2</key> - <opt>val:dtv.C11_45_VLSNR_SF2</opt> - </option> - <option> - <name>1/5 VL-SNR</name> - <key>C1_5_VLSNR</key> - <opt>val:dtv.C1_5_VLSNR</opt> - </option> - <option> - <name>4/15 VL-SNR</name> - <key>C4_15_VLSNR</key> - <opt>val:dtv.C4_15_VLSNR</opt> - </option> - <option> - <name>1/3 VL-SNR</name> - <key>C1_3_VLSNR</key> - <opt>val:dtv.C1_3_VLSNR</opt> - </option> - </param> - <param> - <name>Constellation</name> - <key>constellation</key> - <type>enum</type> - <hide>$standard.hide_dvbs2</hide> - <option> - <name>Other</name> - <key>MOD_OTHER</key> - <opt>val:dtv.MOD_OTHER</opt> - </option> - <option> - <name>128APSK</name> - <key>MOD_128APSK</key> - <opt>val:dtv.MOD_128APSK</opt> - </option> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbs2_interleaver_bb.block.yml b/gr-dtv/grc/dtv_dvbs2_interleaver_bb.block.yml new file mode 100644 index 0000000000..d3a8a77abd --- /dev/null +++ b/gr-dtv/grc/dtv_dvbs2_interleaver_bb.block.yml @@ -0,0 +1,94 @@ +id: dtv_dvbs2_interleaver_bb +label: Interleaver + +parameters: +- id: framesize + label: FECFRAME size + dtype: enum + options: [FECFRAME_NORMAL, FECFRAME_MEDIUM, FECFRAME_SHORT] + option_labels: [Normal, Medium, Short] + option_attributes: + hide_medium: [all, '', all] + hide_normal: ['', all, all] + hide_short: [all, all, ''] + val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_MEDIUM, dtv.FECFRAME_SHORT] +- id: rate1 + label: Code rate + dtype: enum + options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C9_10, C2_9_VLSNR, + C13_45, C9_20, C90_180, C96_180, C11_20, C100_180, C104_180, C26_45, C18_30, + C28_45, C23_36, C116_180, C20_30, C124_180, C25_36, C128_180, C13_18, C132_180, + C22_30, C135_180, C140_180, C7_9, C154_180] + option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10, 2/9 VL-SNR, + 13/45, 9/20, 90/180, 96/180, 11/20, 100/180, 104/180, 26/45, 18/30, 28/45, + 23/36, 116/180, 20/30, 124/180, 25/36, 128/180, 13/18, 132/180, 22/30, 135/180, + 140/180, 7/9, 154/180] + option_attributes: + val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, + dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C9_10, dtv.C2_9_VLSNR, dtv.C13_45, dtv.C9_20, + dtv.C90_180, dtv.C96_180, dtv.C11_20, dtv.C100_180, dtv.C104_180, dtv.C26_45, + dtv.C18_30, dtv.C28_45, dtv.C23_36, dtv.C116_180, dtv.C20_30, dtv.C124_180, + dtv.C25_36, dtv.C128_180, dtv.C13_18, dtv.C132_180, dtv.C22_30, dtv.C135_180, + dtv.C140_180, dtv.C7_9, dtv.C154_180] + hide: ${ framesize.hide_normal } +- id: rate2 + label: Code rate + dtype: enum + options: [C1_5_MEDIUM, C11_45_MEDIUM, C1_3_MEDIUM] + option_labels: [1/5, 11/45, 1/3] + option_attributes: + val: [dtv.C1_5_MEDIUM, dtv.C11_45_MEDIUM, dtv.C1_3_MEDIUM] + hide: ${ framesize.hide_medium } +- id: rate3 + label: Code rate + dtype: enum + options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C11_45, + C4_15, C14_45, C7_15, C8_15, C26_45, C32_45, C1_5_VLSNR_SF2, C11_45_VLSNR_SF2, + C1_5_VLSNR, C4_15_VLSNR, C1_3_VLSNR] + option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 11/45, 4/15, + 14/45, 7/15, 8/15, 26/45, 32/45, 1/5 VL-SNR SF2, 11/45 VL-SNR SF2, 1/5 VL-SNR, + 4/15 VL-SNR, 1/3 VL-SNR] + option_attributes: + val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, + dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C11_45, dtv.C4_15, dtv.C14_45, dtv.C7_15, + dtv.C8_15, dtv.C26_45, dtv.C32_45, dtv.C1_5_VLSNR_SF2, dtv.C11_45_VLSNR_SF2, + dtv.C1_5_VLSNR, dtv.C4_15_VLSNR, dtv.C1_3_VLSNR] + hide: ${ framesize.hide_short } +- id: constellation + label: Constellation + dtype: enum + options: [MOD_QPSK, MOD_8PSK, MOD_8APSK, MOD_16APSK, MOD_8_8APSK, MOD_32APSK, + MOD_4_12_16APSK, MOD_4_8_4_16APSK, MOD_64APSK, MOD_8_16_20_20APSK, MOD_4_12_20_28APSK, + MOD_128APSK, MOD_256APSK, MOD_BPSK, MOD_BPSK_SF2] + option_labels: [QPSK, 8PSK, 8APSK, 16APSK, 8+8APSK, 32APSK, 4+12+16rbAPSK, 4+8+4+16APSK, + 64APSK, 8+16+20+20APSK, 4+12+20+28APSK, 128APSK, 256APSK, PI/2 BPSK, PI/2 + BPSK-SF2] + option_attributes: + val: [dtv.MOD_QPSK, dtv.MOD_8PSK, dtv.MOD_8APSK, dtv.MOD_16APSK, dtv.MOD_8_8APSK, + dtv.MOD_32APSK, dtv.MOD_4_12_16APSK, dtv.MOD_4_8_4_16APSK, dtv.MOD_64APSK, + dtv.MOD_8_16_20_20APSK, dtv.MOD_4_12_20_28APSK, dtv.MOD_128APSK, dtv.MOD_256APSK, + dtv.MOD_BPSK, dtv.MOD_BPSK_SF2] + +inputs: +- domain: stream + dtype: byte + +outputs: +- domain: stream + dtype: byte + +templates: + imports: from gnuradio import dtv + make: |- + dtv.dvbs2_interleaver_bb( + ${framesize.val}, + % if str(framesize) == 'FECFRAME_NORMAL': + ${rate1.val}, + % elif str(framesize) == 'FECFRAME_MEDIUM': + ${rate2.val}, + % else: + ${rate3.val}, + % endif + ${constellation.val}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbs2_interleaver_bb.xml b/gr-dtv/grc/dtv_dvbs2_interleaver_bb.xml deleted file mode 100644 index 675f70d26a..0000000000 --- a/gr-dtv/grc/dtv_dvbs2_interleaver_bb.xml +++ /dev/null @@ -1,455 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-S2 Bit Interleaver -################################################### - --> -<block> - <name>Interleaver</name> - <key>dtv_dvbs2_interleaver_bb</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbs2_interleaver_bb($framesize.val, #slurp -#if str($framesize) == 'FECFRAME_NORMAL' -$rate1.val, #slurp -#else if str($framesize) == 'FECFRAME_MEDIUM' -$rate2.val, #slurp -#else -$rate3.val, #slurp -#end if -$constellation.val)</make> - <param> - <name>FECFRAME size</name> - <key>framesize</key> - <type>enum</type> - <option> - <name>Normal</name> - <key>FECFRAME_NORMAL</key> - <opt>val:dtv.FECFRAME_NORMAL</opt> - <opt>hide_normal:</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Medium</name> - <key>FECFRAME_MEDIUM</key> - <opt>val:dtv.FECFRAME_MEDIUM</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Short</name> - <key>FECFRAME_SHORT</key> - <opt>val:dtv.FECFRAME_SHORT</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate1</key> - <type>enum</type> - <hide>$framesize.hide_normal</hide> - <option> - <name>1/4</name> - <key>C1_4</key> - <opt>val:dtv.C1_4</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>8/9</name> - <key>C8_9</key> - <opt>val:dtv.C8_9</opt> - </option> - <option> - <name>9/10</name> - <key>C9_10</key> - <opt>val:dtv.C9_10</opt> - </option> - <option> - <name>2/9 VL-SNR</name> - <key>C2_9_VLSNR</key> - <opt>val:dtv.C2_9_VLSNR</opt> - </option> - <option> - <name>13/45</name> - <key>C13_45</key> - <opt>val:dtv.C13_45</opt> - </option> - <option> - <name>9/20</name> - <key>C9_20</key> - <opt>val:dtv.C9_20</opt> - </option> - <option> - <name>90/180</name> - <key>C90_180</key> - <opt>val:dtv.C90_180</opt> - </option> - <option> - <name>96/180</name> - <key>C96_180</key> - <opt>val:dtv.C96_180</opt> - </option> - <option> - <name>11/20</name> - <key>C11_20</key> - <opt>val:dtv.C11_20</opt> - </option> - <option> - <name>100/180</name> - <key>C100_180</key> - <opt>val:dtv.C100_180</opt> - </option> - <option> - <name>104/180</name> - <key>C104_180</key> - <opt>val:dtv.C104_180</opt> - </option> - <option> - <name>26/45</name> - <key>C26_45</key> - <opt>val:dtv.C26_45</opt> - </option> - <option> - <name>18/30</name> - <key>C18_30</key> - <opt>val:dtv.C18_30</opt> - </option> - <option> - <name>28/45</name> - <key>C28_45</key> - <opt>val:dtv.C28_45</opt> - </option> - <option> - <name>23/36</name> - <key>C23_36</key> - <opt>val:dtv.C23_36</opt> - </option> - <option> - <name>116/180</name> - <key>C116_180</key> - <opt>val:dtv.C116_180</opt> - </option> - <option> - <name>20/30</name> - <key>C20_30</key> - <opt>val:dtv.C20_30</opt> - </option> - <option> - <name>124/180</name> - <key>C124_180</key> - <opt>val:dtv.C124_180</opt> - </option> - <option> - <name>25/36</name> - <key>C25_36</key> - <opt>val:dtv.C25_36</opt> - </option> - <option> - <name>128/180</name> - <key>C128_180</key> - <opt>val:dtv.C128_180</opt> - </option> - <option> - <name>13/18</name> - <key>C13_18</key> - <opt>val:dtv.C13_18</opt> - </option> - <option> - <name>132/180</name> - <key>C132_180</key> - <opt>val:dtv.C132_180</opt> - </option> - <option> - <name>22/30</name> - <key>C22_30</key> - <opt>val:dtv.C22_30</opt> - </option> - <option> - <name>135/180</name> - <key>C135_180</key> - <opt>val:dtv.C135_180</opt> - </option> - <option> - <name>140/180</name> - <key>C140_180</key> - <opt>val:dtv.C140_180</opt> - </option> - <option> - <name>7/9</name> - <key>C7_9</key> - <opt>val:dtv.C7_9</opt> - </option> - <option> - <name>154/180</name> - <key>C154_180</key> - <opt>val:dtv.C154_180</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate2</key> - <type>enum</type> - <hide>$framesize.hide_medium</hide> - <option> - <name>1/5</name> - <key>C1_5_MEDIUM</key> - <opt>val:dtv.C1_5_MEDIUM</opt> - </option> - <option> - <name>11/45</name> - <key>C11_45_MEDIUM</key> - <opt>val:dtv.C11_45_MEDIUM</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3_MEDIUM</key> - <opt>val:dtv.C1_3_MEDIUM</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate3</key> - <type>enum</type> - <hide>$framesize.hide_short</hide> - <option> - <name>1/4</name> - <key>C1_4</key> - <opt>val:dtv.C1_4</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>8/9</name> - <key>C8_9</key> - <opt>val:dtv.C8_9</opt> - </option> - <option> - <name>11/45</name> - <key>C11_45</key> - <opt>val:dtv.C11_45</opt> - </option> - <option> - <name>4/15</name> - <key>C4_15</key> - <opt>val:dtv.C4_15</opt> - </option> - <option> - <name>14/45</name> - <key>C14_45</key> - <opt>val:dtv.C14_45</opt> - </option> - <option> - <name>7/15</name> - <key>C7_15</key> - <opt>val:dtv.C7_15</opt> - </option> - <option> - <name>8/15</name> - <key>C8_15</key> - <opt>val:dtv.C8_15</opt> - </option> - <option> - <name>26/45</name> - <key>C26_45</key> - <opt>val:dtv.C26_45</opt> - </option> - <option> - <name>32/45</name> - <key>C32_45</key> - <opt>val:dtv.C32_45</opt> - </option> - <option> - <name>1/5 VL-SNR SF2</name> - <key>C1_5_VLSNR_SF2</key> - <opt>val:dtv.C1_5_VLSNR_SF2</opt> - </option> - <option> - <name>11/45 VL-SNR SF2</name> - <key>C11_45_VLSNR_SF2</key> - <opt>val:dtv.C11_45_VLSNR_SF2</opt> - </option> - <option> - <name>1/5 VL-SNR</name> - <key>C1_5_VLSNR</key> - <opt>val:dtv.C1_5_VLSNR</opt> - </option> - <option> - <name>4/15 VL-SNR</name> - <key>C4_15_VLSNR</key> - <opt>val:dtv.C4_15_VLSNR</opt> - </option> - <option> - <name>1/3 VL-SNR</name> - <key>C1_3_VLSNR</key> - <opt>val:dtv.C1_3_VLSNR</opt> - </option> - </param> - <param> - <name>Constellation</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>QPSK</name> - <key>MOD_QPSK</key> - <opt>val:dtv.MOD_QPSK</opt> - </option> - <option> - <name>8PSK</name> - <key>MOD_8PSK</key> - <opt>val:dtv.MOD_8PSK</opt> - </option> - <option> - <name>8APSK</name> - <key>MOD_8APSK</key> - <opt>val:dtv.MOD_8APSK</opt> - </option> - <option> - <name>16APSK</name> - <key>MOD_16APSK</key> - <opt>val:dtv.MOD_16APSK</opt> - </option> - <option> - <name>8+8APSK</name> - <key>MOD_8_8APSK</key> - <opt>val:dtv.MOD_8_8APSK</opt> - </option> - <option> - <name>32APSK</name> - <key>MOD_32APSK</key> - <opt>val:dtv.MOD_32APSK</opt> - </option> - <option> - <name>4+12+16rbAPSK</name> - <key>MOD_4_12_16APSK</key> - <opt>val:dtv.MOD_4_12_16APSK</opt> - </option> - <option> - <name>4+8+4+16APSK</name> - <key>MOD_4_8_4_16APSK</key> - <opt>val:dtv.MOD_4_8_4_16APSK</opt> - </option> - <option> - <name>64APSK</name> - <key>MOD_64APSK</key> - <opt>val:dtv.MOD_64APSK</opt> - </option> - <option> - <name>8+16+20+20APSK</name> - <key>MOD_8_16_20_20APSK</key> - <opt>val:dtv.MOD_8_16_20_20APSK</opt> - </option> - <option> - <name>4+12+20+28APSK</name> - <key>MOD_4_12_20_28APSK</key> - <opt>val:dtv.MOD_4_12_20_28APSK</opt> - </option> - <option> - <name>128APSK</name> - <key>MOD_128APSK</key> - <opt>val:dtv.MOD_128APSK</opt> - </option> - <option> - <name>256APSK</name> - <key>MOD_256APSK</key> - <opt>val:dtv.MOD_256APSK</opt> - </option> - <option> - <name>PI/2 BPSK</name> - <key>MOD_BPSK</key> - <opt>val:dtv.MOD_BPSK</opt> - </option> - <option> - <name>PI/2 BPSK-SF2</name> - <key>MOD_BPSK_SF2</key> - <opt>val:dtv.MOD_BPSK_SF2</opt> - </option> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbs2_modulator_bc.block.yml b/gr-dtv/grc/dtv_dvbs2_modulator_bc.block.yml new file mode 100644 index 0000000000..dee9dba9b0 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbs2_modulator_bc.block.yml @@ -0,0 +1,111 @@ +id: dtv_dvbs2_modulator_bc +label: DVB-S2X Modulator + +parameters: +- id: framesize + label: FECFRAME size + dtype: enum + options: [FECFRAME_NORMAL, FECFRAME_MEDIUM, FECFRAME_SHORT] + option_labels: [Normal, Medium, Short] + option_attributes: + hide_medium: [all, '', all] + hide_normal: ['', all, all] + hide_short: [all, all, ''] + val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_MEDIUM, dtv.FECFRAME_SHORT] + hide: ${ constellation.hide_dvb } +- id: rate1 + label: Code rate + dtype: enum + options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C9_10, C2_9_VLSNR, + C13_45, C9_20, C90_180, C96_180, C11_20, C100_180, C104_180, C26_45, C18_30, + C28_45, C23_36, C116_180, C20_30, C124_180, C25_36, C128_180, C13_18, C132_180, + C22_30, C135_180, C140_180, C7_9, C154_180] + option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10, 2/9 VL-SNR, + 13/45, 9/20, 90/180, 96/180, 11/20, 100/180, 104/180, 26/45, 18/30, 28/45, + 23/36, 116/180, 20/30, 124/180, 25/36, 128/180, 13/18, 132/180, 22/30, 135/180, + 140/180, 7/9, 154/180] + option_attributes: + val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, + dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C9_10, dtv.C2_9_VLSNR, dtv.C13_45, dtv.C9_20, + dtv.C90_180, dtv.C96_180, dtv.C11_20, dtv.C100_180, dtv.C104_180, dtv.C26_45, + dtv.C18_30, dtv.C28_45, dtv.C23_36, dtv.C116_180, dtv.C20_30, dtv.C124_180, + dtv.C25_36, dtv.C128_180, dtv.C13_18, dtv.C132_180, dtv.C22_30, dtv.C135_180, + dtv.C140_180, dtv.C7_9, dtv.C154_180] + hide: ${ (constellation.hide_dvb if str(constellation) == 'MOD_8VSB' or str(constellation) + == 'MOD_64QAM' or str(constellation) == 'MOD_256QAM' else framesize.hide_normal) + } +- id: rate2 + label: Code rate + dtype: enum + options: [C1_5_MEDIUM, C11_45_MEDIUM, C1_3_MEDIUM] + option_labels: [1/5, 11/45, 1/3] + option_attributes: + val: [dtv.C1_5_MEDIUM, dtv.C11_45_MEDIUM, dtv.C1_3_MEDIUM] + hide: ${ (constellation.hide_dvb if str(constellation) == 'MOD_8VSB' or str(constellation) + == 'MOD_64QAM' or str(constellation) == 'MOD_256QAM' else framesize.hide_medium) + } +- id: rate3 + label: Code rate + dtype: enum + options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C11_45, + C4_15, C14_45, C7_15, C8_15, C26_45, C32_45, C1_5_VLSNR_SF2, C11_45_VLSNR_SF2, + C1_5_VLSNR, C4_15_VLSNR, C1_3_VLSNR] + option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 11/45, 4/15, + 14/45, 7/15, 8/15, 26/45, 32/45, 1/5 VL-SNR SF2, 11/45 VL-SNR SF2, 1/5 VL-SNR, + 4/15 VL-SNR, 1/3 VL-SNR] + option_attributes: + val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, + dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C11_45, dtv.C4_15, dtv.C14_45, dtv.C7_15, + dtv.C8_15, dtv.C26_45, dtv.C32_45, dtv.C1_5_VLSNR_SF2, dtv.C11_45_VLSNR_SF2, + dtv.C1_5_VLSNR, dtv.C4_15_VLSNR, dtv.C1_3_VLSNR] + hide: ${ (constellation.hide_dvb if str(constellation) == 'MOD_8VSB' or str(constellation) + == 'MOD_64QAM' or str(constellation) == 'MOD_256QAM' else framesize.hide_short) + } +- id: constellation + label: Constellation + dtype: enum + options: [MOD_QPSK, MOD_8PSK, MOD_8APSK, MOD_16APSK, MOD_8_8APSK, MOD_32APSK, + MOD_4_12_16APSK, MOD_4_8_4_16APSK, MOD_64APSK, MOD_8_16_20_20APSK, MOD_4_12_20_28APSK, + MOD_128APSK, MOD_256APSK, MOD_64QAM, MOD_256QAM, MOD_BPSK, MOD_BPSK_SF2, MOD_8VSB] + option_labels: [QPSK, 8PSK, 8APSK, 16APSK, 8+8APSK, 32APSK, 4+12+16rbAPSK, 4+8+4+16APSK, + 64APSK, 8+16+20+20APSK, 4+12+20+28APSK, 128APSK, 256APSK, 64QAM (ITU-T J.83B), + 256QAM (ITU-T J.83B), PI/2 BPSK, PI/2 BPSK-SF2, 8VSB (ATSC)] + option_attributes: + hide_dvb: ['', '', '', '', '', '', '', '', '', '', '', '', '', all, all, '', + '', all] + val: [dtv.MOD_QPSK, dtv.MOD_8PSK, dtv.MOD_8APSK, dtv.MOD_16APSK, dtv.MOD_8_8APSK, + dtv.MOD_32APSK, dtv.MOD_4_12_16APSK, dtv.MOD_4_8_4_16APSK, dtv.MOD_64APSK, + dtv.MOD_8_16_20_20APSK, dtv.MOD_4_12_20_28APSK, dtv.MOD_128APSK, dtv.MOD_256APSK, + dtv.MOD_64QAM, dtv.MOD_256QAM, dtv.MOD_BPSK, dtv.MOD_BPSK_SF2, dtv.MOD_8VSB] +- id: interpolation + label: 2X Interpolation + dtype: enum + options: [INTERPOLATION_OFF, INTERPOLATION_ON] + option_labels: ['Off', 'On'] + option_attributes: + val: [dtv.INTERPOLATION_OFF, dtv.INTERPOLATION_ON] + +inputs: +- domain: stream + dtype: byte + +outputs: +- domain: stream + dtype: complex + +templates: + imports: from gnuradio import dtv + make: |- + dtv.dvbs2_modulator_bc( + ${framesize.val}, + % if str(framesize) == 'FECFRAME_NORMAL': + ${rate1.val}, + % elif str(framesize) == 'FECFRAME_MEDIUM': + ${rate2.val}, + % else: + ${rate3.val}, + % endif + ${constellation.val}, + ${interpolation.val}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbs2_modulator_bc.xml b/gr-dtv/grc/dtv_dvbs2_modulator_bc.xml deleted file mode 100644 index d6b9f10048..0000000000 --- a/gr-dtv/grc/dtv_dvbs2_modulator_bc.xml +++ /dev/null @@ -1,504 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-S2X Modulator -################################################### - --> -<block> - <name>DVB-S2X Modulator</name> - <key>dtv_dvbs2_modulator_bc</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbs2_modulator_bc($framesize.val, -#if str($framesize) == 'FECFRAME_NORMAL' -$rate1.val, #slurp -#else if str($framesize) == 'FECFRAME_MEDIUM' -$rate2.val, #slurp -#else -$rate3.val, #slurp -#end if -$constellation.val, $interpolation.val)</make> - <param> - <name>FECFRAME size</name> - <key>framesize</key> - <type>enum</type> - <hide>$constellation.hide_dvb</hide> - <option> - <name>Normal</name> - <key>FECFRAME_NORMAL</key> - <opt>val:dtv.FECFRAME_NORMAL</opt> - <opt>hide_normal:</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Medium</name> - <key>FECFRAME_MEDIUM</key> - <opt>val:dtv.FECFRAME_MEDIUM</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Short</name> - <key>FECFRAME_SHORT</key> - <opt>val:dtv.FECFRAME_SHORT</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate1</key> - <type>enum</type> - <hide>#if str($constellation) == 'MOD_8VSB' or str($constellation) == 'MOD_64QAM' or str($constellation) == 'MOD_256QAM' then $constellation.hide_dvb else $framesize.hide_normal</hide> - <option> - <name>1/4</name> - <key>C1_4</key> - <opt>val:dtv.C1_4</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>8/9</name> - <key>C8_9</key> - <opt>val:dtv.C8_9</opt> - </option> - <option> - <name>9/10</name> - <key>C9_10</key> - <opt>val:dtv.C9_10</opt> - </option> - <option> - <name>2/9 VL-SNR</name> - <key>C2_9_VLSNR</key> - <opt>val:dtv.C2_9_VLSNR</opt> - </option> - <option> - <name>13/45</name> - <key>C13_45</key> - <opt>val:dtv.C13_45</opt> - </option> - <option> - <name>9/20</name> - <key>C9_20</key> - <opt>val:dtv.C9_20</opt> - </option> - <option> - <name>90/180</name> - <key>C90_180</key> - <opt>val:dtv.C90_180</opt> - </option> - <option> - <name>96/180</name> - <key>C96_180</key> - <opt>val:dtv.C96_180</opt> - </option> - <option> - <name>11/20</name> - <key>C11_20</key> - <opt>val:dtv.C11_20</opt> - </option> - <option> - <name>100/180</name> - <key>C100_180</key> - <opt>val:dtv.C100_180</opt> - </option> - <option> - <name>104/180</name> - <key>C104_180</key> - <opt>val:dtv.C104_180</opt> - </option> - <option> - <name>26/45</name> - <key>C26_45</key> - <opt>val:dtv.C26_45</opt> - </option> - <option> - <name>18/30</name> - <key>C18_30</key> - <opt>val:dtv.C18_30</opt> - </option> - <option> - <name>28/45</name> - <key>C28_45</key> - <opt>val:dtv.C28_45</opt> - </option> - <option> - <name>23/36</name> - <key>C23_36</key> - <opt>val:dtv.C23_36</opt> - </option> - <option> - <name>116/180</name> - <key>C116_180</key> - <opt>val:dtv.C116_180</opt> - </option> - <option> - <name>20/30</name> - <key>C20_30</key> - <opt>val:dtv.C20_30</opt> - </option> - <option> - <name>124/180</name> - <key>C124_180</key> - <opt>val:dtv.C124_180</opt> - </option> - <option> - <name>25/36</name> - <key>C25_36</key> - <opt>val:dtv.C25_36</opt> - </option> - <option> - <name>128/180</name> - <key>C128_180</key> - <opt>val:dtv.C128_180</opt> - </option> - <option> - <name>13/18</name> - <key>C13_18</key> - <opt>val:dtv.C13_18</opt> - </option> - <option> - <name>132/180</name> - <key>C132_180</key> - <opt>val:dtv.C132_180</opt> - </option> - <option> - <name>22/30</name> - <key>C22_30</key> - <opt>val:dtv.C22_30</opt> - </option> - <option> - <name>135/180</name> - <key>C135_180</key> - <opt>val:dtv.C135_180</opt> - </option> - <option> - <name>140/180</name> - <key>C140_180</key> - <opt>val:dtv.C140_180</opt> - </option> - <option> - <name>7/9</name> - <key>C7_9</key> - <opt>val:dtv.C7_9</opt> - </option> - <option> - <name>154/180</name> - <key>C154_180</key> - <opt>val:dtv.C154_180</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate2</key> - <type>enum</type> - <hide>#if str($constellation) == 'MOD_8VSB' or str($constellation) == 'MOD_64QAM' or str($constellation) == 'MOD_256QAM' then $constellation.hide_dvb else $framesize.hide_medium</hide> - <option> - <name>1/5</name> - <key>C1_5_MEDIUM</key> - <opt>val:dtv.C1_5_MEDIUM</opt> - </option> - <option> - <name>11/45</name> - <key>C11_45_MEDIUM</key> - <opt>val:dtv.C11_45_MEDIUM</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3_MEDIUM</key> - <opt>val:dtv.C1_3_MEDIUM</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate3</key> - <type>enum</type> - <hide>#if str($constellation) == 'MOD_8VSB' or str($constellation) == 'MOD_64QAM' or str($constellation) == 'MOD_256QAM' then $constellation.hide_dvb else $framesize.hide_short</hide> - <option> - <name>1/4</name> - <key>C1_4</key> - <opt>val:dtv.C1_4</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>8/9</name> - <key>C8_9</key> - <opt>val:dtv.C8_9</opt> - </option> - <option> - <name>11/45</name> - <key>C11_45</key> - <opt>val:dtv.C11_45</opt> - </option> - <option> - <name>4/15</name> - <key>C4_15</key> - <opt>val:dtv.C4_15</opt> - </option> - <option> - <name>14/45</name> - <key>C14_45</key> - <opt>val:dtv.C14_45</opt> - </option> - <option> - <name>7/15</name> - <key>C7_15</key> - <opt>val:dtv.C7_15</opt> - </option> - <option> - <name>8/15</name> - <key>C8_15</key> - <opt>val:dtv.C8_15</opt> - </option> - <option> - <name>26/45</name> - <key>C26_45</key> - <opt>val:dtv.C26_45</opt> - </option> - <option> - <name>32/45</name> - <key>C32_45</key> - <opt>val:dtv.C32_45</opt> - </option> - <option> - <name>1/5 VL-SNR SF2</name> - <key>C1_5_VLSNR_SF2</key> - <opt>val:dtv.C1_5_VLSNR_SF2</opt> - </option> - <option> - <name>11/45 VL-SNR SF2</name> - <key>C11_45_VLSNR_SF2</key> - <opt>val:dtv.C11_45_VLSNR_SF2</opt> - </option> - <option> - <name>1/5 VL-SNR</name> - <key>C1_5_VLSNR</key> - <opt>val:dtv.C1_5_VLSNR</opt> - </option> - <option> - <name>4/15 VL-SNR</name> - <key>C4_15_VLSNR</key> - <opt>val:dtv.C4_15_VLSNR</opt> - </option> - <option> - <name>1/3 VL-SNR</name> - <key>C1_3_VLSNR</key> - <opt>val:dtv.C1_3_VLSNR</opt> - </option> - </param> - <param> - <name>Constellation</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>QPSK</name> - <key>MOD_QPSK</key> - <opt>val:dtv.MOD_QPSK</opt> - <opt>hide_dvb:</opt> - </option> - <option> - <name>8PSK</name> - <key>MOD_8PSK</key> - <opt>val:dtv.MOD_8PSK</opt> - <opt>hide_dvb:</opt> - </option> - <option> - <name>8APSK</name> - <key>MOD_8APSK</key> - <opt>val:dtv.MOD_8APSK</opt> - <opt>hide_dvb:</opt> - </option> - <option> - <name>16APSK</name> - <key>MOD_16APSK</key> - <opt>val:dtv.MOD_16APSK</opt> - <opt>hide_dvb:</opt> - </option> - <option> - <name>8+8APSK</name> - <key>MOD_8_8APSK</key> - <opt>val:dtv.MOD_8_8APSK</opt> - <opt>hide_dvb:</opt> - </option> - <option> - <name>32APSK</name> - <key>MOD_32APSK</key> - <opt>val:dtv.MOD_32APSK</opt> - <opt>hide_dvb:</opt> - </option> - <option> - <name>4+12+16rbAPSK</name> - <key>MOD_4_12_16APSK</key> - <opt>val:dtv.MOD_4_12_16APSK</opt> - <opt>hide_dvb:</opt> - </option> - <option> - <name>4+8+4+16APSK</name> - <key>MOD_4_8_4_16APSK</key> - <opt>val:dtv.MOD_4_8_4_16APSK</opt> - <opt>hide_dvb:</opt> - </option> - <option> - <name>64APSK</name> - <key>MOD_64APSK</key> - <opt>val:dtv.MOD_64APSK</opt> - <opt>hide_dvb:</opt> - </option> - <option> - <name>8+16+20+20APSK</name> - <key>MOD_8_16_20_20APSK</key> - <opt>val:dtv.MOD_8_16_20_20APSK</opt> - <opt>hide_dvb:</opt> - </option> - <option> - <name>4+12+20+28APSK</name> - <key>MOD_4_12_20_28APSK</key> - <opt>val:dtv.MOD_4_12_20_28APSK</opt> - <opt>hide_dvb:</opt> - </option> - <option> - <name>128APSK</name> - <key>MOD_128APSK</key> - <opt>val:dtv.MOD_128APSK</opt> - <opt>hide_dvb:</opt> - </option> - <option> - <name>256APSK</name> - <key>MOD_256APSK</key> - <opt>val:dtv.MOD_256APSK</opt> - <opt>hide_dvb:</opt> - </option> - <option> - <name>64QAM (ITU-T J.83B)</name> - <key>MOD_64QAM</key> - <opt>val:dtv.MOD_64QAM</opt> - <opt>hide_dvb:all</opt> - </option> - <option> - <name>256QAM (ITU-T J.83B)</name> - <key>MOD_256QAM</key> - <opt>val:dtv.MOD_256QAM</opt> - <opt>hide_dvb:all</opt> - </option> - <option> - <name>PI/2 BPSK</name> - <key>MOD_BPSK</key> - <opt>val:dtv.MOD_BPSK</opt> - <opt>hide_dvb:</opt> - </option> - <option> - <name>PI/2 BPSK-SF2</name> - <key>MOD_BPSK_SF2</key> - <opt>val:dtv.MOD_BPSK_SF2</opt> - <opt>hide_dvb:</opt> - </option> - <option> - <name>8VSB (ATSC)</name> - <key>MOD_8VSB</key> - <opt>val:dtv.MOD_8VSB</opt> - <opt>hide_dvb:all</opt> - </option> - </param> - <param> - <name>2X Interpolation</name> - <key>interpolation</key> - <type>enum</type> - <option> - <name>Off</name> - <key>INTERPOLATION_OFF</key> - <opt>val:dtv.INTERPOLATION_OFF</opt> - </option> - <option> - <name>On</name> - <key>INTERPOLATION_ON</key> - <opt>val:dtv.INTERPOLATION_ON</opt> - </option> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbs2_physical_cc.block.yml b/gr-dtv/grc/dtv_dvbs2_physical_cc.block.yml new file mode 100644 index 0000000000..9872446d08 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbs2_physical_cc.block.yml @@ -0,0 +1,107 @@ +id: dtv_dvbs2_physical_cc +label: Physical Layer Framer + +parameters: +- id: framesize + label: FECFRAME size + dtype: enum + options: [FECFRAME_NORMAL, FECFRAME_MEDIUM, FECFRAME_SHORT] + option_labels: [Normal, Medium, Short] + option_attributes: + hide_medium: [all, '', all] + hide_normal: ['', all, all] + hide_short: [all, all, ''] + val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_MEDIUM, dtv.FECFRAME_SHORT] +- id: rate1 + label: Code rate + dtype: enum + options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C9_10, C2_9_VLSNR, + C13_45, C9_20, C90_180, C96_180, C11_20, C100_180, C104_180, C26_45, C18_30, + C28_45, C23_36, C116_180, C20_30, C124_180, C25_36, C128_180, C13_18, C132_180, + C22_30, C135_180, C140_180, C7_9, C154_180] + option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10, 2/9 VL-SNR, + 13/45, 9/20, 90/180, 96/180, 11/20, 100/180, 104/180, 26/45, 18/30, 28/45, + 23/36, 116/180, 20/30, 124/180, 25/36, 128/180, 13/18, 132/180, 22/30, 135/180, + 140/180, 7/9, 154/180] + option_attributes: + val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, + dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C9_10, dtv.C2_9_VLSNR, dtv.C13_45, dtv.C9_20, + dtv.C90_180, dtv.C96_180, dtv.C11_20, dtv.C100_180, dtv.C104_180, dtv.C26_45, + dtv.C18_30, dtv.C28_45, dtv.C23_36, dtv.C116_180, dtv.C20_30, dtv.C124_180, + dtv.C25_36, dtv.C128_180, dtv.C13_18, dtv.C132_180, dtv.C22_30, dtv.C135_180, + dtv.C140_180, dtv.C7_9, dtv.C154_180] + hide: ${ framesize.hide_normal } +- id: rate2 + label: Code rate + dtype: enum + options: [C1_5_MEDIUM, C11_45_MEDIUM, C1_3_MEDIUM] + option_labels: [1/5, 11/45, 1/3] + option_attributes: + val: [dtv.C1_5_MEDIUM, dtv.C11_45_MEDIUM, dtv.C1_3_MEDIUM] + hide: ${ framesize.hide_medium } +- id: rate3 + label: Code rate + dtype: enum + options: [C1_4, C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6, C8_9, C11_45, + C4_15, C14_45, C7_15, C8_15, C26_45, C32_45, C1_5_VLSNR_SF2, C11_45_VLSNR_SF2, + C1_5_VLSNR, C4_15_VLSNR, C1_3_VLSNR] + option_labels: [1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 11/45, 4/15, + 14/45, 7/15, 8/15, 26/45, 32/45, 1/5 VL-SNR SF2, 11/45 VL-SNR SF2, 1/5 VL-SNR, + 4/15 VL-SNR, 1/3 VL-SNR] + option_attributes: + val: [dtv.C1_4, dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, + dtv.C4_5, dtv.C5_6, dtv.C8_9, dtv.C11_45, dtv.C4_15, dtv.C14_45, dtv.C7_15, + dtv.C8_15, dtv.C26_45, dtv.C32_45, dtv.C1_5_VLSNR_SF2, dtv.C11_45_VLSNR_SF2, + dtv.C1_5_VLSNR, dtv.C4_15_VLSNR, dtv.C1_3_VLSNR] + hide: ${ framesize.hide_short } +- id: constellation + label: Constellation + dtype: enum + options: [MOD_QPSK, MOD_8PSK, MOD_8APSK, MOD_16APSK, MOD_8_8APSK, MOD_32APSK, + MOD_4_12_16APSK, MOD_4_8_4_16APSK, MOD_64APSK, MOD_8_16_20_20APSK, MOD_4_12_20_28APSK, + MOD_128APSK, MOD_256APSK, MOD_BPSK, MOD_BPSK_SF2] + option_labels: [QPSK, 8PSK, 8APSK, 16APSK, 8+8APSK, 32APSK, 4+12+16rbAPSK, 4+8+4+16APSK, + 64APSK, 8+16+20+20APSK, 4+12+20+28APSK, 128APSK, 256APSK, PI/2 BPSK, PI/2 + BPSK-SF2] + option_attributes: + val: [dtv.MOD_QPSK, dtv.MOD_8PSK, dtv.MOD_8APSK, dtv.MOD_16APSK, dtv.MOD_8_8APSK, + dtv.MOD_32APSK, dtv.MOD_4_12_16APSK, dtv.MOD_4_8_4_16APSK, dtv.MOD_64APSK, + dtv.MOD_8_16_20_20APSK, dtv.MOD_4_12_20_28APSK, dtv.MOD_128APSK, dtv.MOD_256APSK, + dtv.MOD_BPSK, dtv.MOD_BPSK_SF2] +- id: pilots + label: Pilots + dtype: enum + options: [PILOTS_OFF, PILOTS_ON] + option_labels: ['Off', 'On'] + option_attributes: + val: [dtv.PILOTS_OFF, dtv.PILOTS_ON] +- id: goldcode + label: Gold Code + dtype: int + default: '0' + +inputs: +- domain: stream + dtype: complex + +outputs: +- domain: stream + dtype: complex + +templates: + imports: from gnuradio import dtv + make: |- + dtv.dvbs2_physical_cc( + ${framesize.val}, + % if str(framesize) == 'FECFRAME_NORMAL': + ${rate1.val}, + % elif str(framesize) == 'FECFRAME_MEDIUM': + ${rate2.val}, + % else: + ${rate3.val}, + % endif + ${constellation.val}, + ${pilots.val}, + ${goldcode}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbs2_physical_cc.xml b/gr-dtv/grc/dtv_dvbs2_physical_cc.xml deleted file mode 100644 index 91d03ae9ab..0000000000 --- a/gr-dtv/grc/dtv_dvbs2_physical_cc.xml +++ /dev/null @@ -1,476 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-S2 Physical Layer Framer -################################################### - --> -<block> - <name>Physical Layer Framer</name> - <key>dtv_dvbs2_physical_cc</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbs2_physical_cc($framesize.val, #slurp -#if str($framesize) == 'FECFRAME_NORMAL' -$rate1.val, #slurp -#else if str($framesize) == 'FECFRAME_MEDIUM' -$rate2.val, #slurp -#else -$rate3.val, #slurp -#end if -$constellation.val, $pilots.val, $goldcode)</make> - <param> - <name>FECFRAME size</name> - <key>framesize</key> - <type>enum</type> - <option> - <name>Normal</name> - <key>FECFRAME_NORMAL</key> - <opt>val:dtv.FECFRAME_NORMAL</opt> - <opt>hide_normal:</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Medium</name> - <key>FECFRAME_MEDIUM</key> - <opt>val:dtv.FECFRAME_MEDIUM</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:</opt> - <opt>hide_short:all</opt> - </option> - <option> - <name>Short</name> - <key>FECFRAME_SHORT</key> - <opt>val:dtv.FECFRAME_SHORT</opt> - <opt>hide_normal:all</opt> - <opt>hide_medium:all</opt> - <opt>hide_short:</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate1</key> - <type>enum</type> - <hide>$framesize.hide_normal</hide> - <option> - <name>1/4</name> - <key>C1_4</key> - <opt>val:dtv.C1_4</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>8/9</name> - <key>C8_9</key> - <opt>val:dtv.C8_9</opt> - </option> - <option> - <name>9/10</name> - <key>C9_10</key> - <opt>val:dtv.C9_10</opt> - </option> - <option> - <name>2/9 VL-SNR</name> - <key>C2_9_VLSNR</key> - <opt>val:dtv.C2_9_VLSNR</opt> - </option> - <option> - <name>13/45</name> - <key>C13_45</key> - <opt>val:dtv.C13_45</opt> - </option> - <option> - <name>9/20</name> - <key>C9_20</key> - <opt>val:dtv.C9_20</opt> - </option> - <option> - <name>90/180</name> - <key>C90_180</key> - <opt>val:dtv.C90_180</opt> - </option> - <option> - <name>96/180</name> - <key>C96_180</key> - <opt>val:dtv.C96_180</opt> - </option> - <option> - <name>11/20</name> - <key>C11_20</key> - <opt>val:dtv.C11_20</opt> - </option> - <option> - <name>100/180</name> - <key>C100_180</key> - <opt>val:dtv.C100_180</opt> - </option> - <option> - <name>104/180</name> - <key>C104_180</key> - <opt>val:dtv.C104_180</opt> - </option> - <option> - <name>26/45</name> - <key>C26_45</key> - <opt>val:dtv.C26_45</opt> - </option> - <option> - <name>18/30</name> - <key>C18_30</key> - <opt>val:dtv.C18_30</opt> - </option> - <option> - <name>28/45</name> - <key>C28_45</key> - <opt>val:dtv.C28_45</opt> - </option> - <option> - <name>23/36</name> - <key>C23_36</key> - <opt>val:dtv.C23_36</opt> - </option> - <option> - <name>116/180</name> - <key>C116_180</key> - <opt>val:dtv.C116_180</opt> - </option> - <option> - <name>20/30</name> - <key>C20_30</key> - <opt>val:dtv.C20_30</opt> - </option> - <option> - <name>124/180</name> - <key>C124_180</key> - <opt>val:dtv.C124_180</opt> - </option> - <option> - <name>25/36</name> - <key>C25_36</key> - <opt>val:dtv.C25_36</opt> - </option> - <option> - <name>128/180</name> - <key>C128_180</key> - <opt>val:dtv.C128_180</opt> - </option> - <option> - <name>13/18</name> - <key>C13_18</key> - <opt>val:dtv.C13_18</opt> - </option> - <option> - <name>132/180</name> - <key>C132_180</key> - <opt>val:dtv.C132_180</opt> - </option> - <option> - <name>22/30</name> - <key>C22_30</key> - <opt>val:dtv.C22_30</opt> - </option> - <option> - <name>135/180</name> - <key>C135_180</key> - <opt>val:dtv.C135_180</opt> - </option> - <option> - <name>140/180</name> - <key>C140_180</key> - <opt>val:dtv.C140_180</opt> - </option> - <option> - <name>7/9</name> - <key>C7_9</key> - <opt>val:dtv.C7_9</opt> - </option> - <option> - <name>154/180</name> - <key>C154_180</key> - <opt>val:dtv.C154_180</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate2</key> - <type>enum</type> - <hide>$framesize.hide_medium</hide> - <option> - <name>1/5</name> - <key>C1_5_MEDIUM</key> - <opt>val:dtv.C1_5_MEDIUM</opt> - </option> - <option> - <name>11/45</name> - <key>C11_45_MEDIUM</key> - <opt>val:dtv.C11_45_MEDIUM</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3_MEDIUM</key> - <opt>val:dtv.C1_3_MEDIUM</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate3</key> - <type>enum</type> - <hide>$framesize.hide_short</hide> - <option> - <name>1/4</name> - <key>C1_4</key> - <opt>val:dtv.C1_4</opt> - </option> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>8/9</name> - <key>C8_9</key> - <opt>val:dtv.C8_9</opt> - </option> - <option> - <name>11/45</name> - <key>C11_45</key> - <opt>val:dtv.C11_45</opt> - </option> - <option> - <name>4/15</name> - <key>C4_15</key> - <opt>val:dtv.C4_15</opt> - </option> - <option> - <name>14/45</name> - <key>C14_45</key> - <opt>val:dtv.C14_45</opt> - </option> - <option> - <name>7/15</name> - <key>C7_15</key> - <opt>val:dtv.C7_15</opt> - </option> - <option> - <name>8/15</name> - <key>C8_15</key> - <opt>val:dtv.C8_15</opt> - </option> - <option> - <name>26/45</name> - <key>C26_45</key> - <opt>val:dtv.C26_45</opt> - </option> - <option> - <name>32/45</name> - <key>C32_45</key> - <opt>val:dtv.C32_45</opt> - </option> - <option> - <name>1/5 VL-SNR SF2</name> - <key>C1_5_VLSNR_SF2</key> - <opt>val:dtv.C1_5_VLSNR_SF2</opt> - </option> - <option> - <name>11/45 VL-SNR SF2</name> - <key>C11_45_VLSNR_SF2</key> - <opt>val:dtv.C11_45_VLSNR_SF2</opt> - </option> - <option> - <name>1/5 VL-SNR</name> - <key>C1_5_VLSNR</key> - <opt>val:dtv.C1_5_VLSNR</opt> - </option> - <option> - <name>4/15 VL-SNR</name> - <key>C4_15_VLSNR</key> - <opt>val:dtv.C4_15_VLSNR</opt> - </option> - <option> - <name>1/3 VL-SNR</name> - <key>C1_3_VLSNR</key> - <opt>val:dtv.C1_3_VLSNR</opt> - </option> - </param> - <param> - <name>Constellation</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>QPSK</name> - <key>MOD_QPSK</key> - <opt>val:dtv.MOD_QPSK</opt> - </option> - <option> - <name>8PSK</name> - <key>MOD_8PSK</key> - <opt>val:dtv.MOD_8PSK</opt> - </option> - <option> - <name>8APSK</name> - <key>MOD_8APSK</key> - <opt>val:dtv.MOD_8APSK</opt> - </option> - <option> - <name>16APSK</name> - <key>MOD_16APSK</key> - <opt>val:dtv.MOD_16APSK</opt> - </option> - <option> - <name>8+8APSK</name> - <key>MOD_8_8APSK</key> - <opt>val:dtv.MOD_8_8APSK</opt> - </option> - <option> - <name>32APSK</name> - <key>MOD_32APSK</key> - <opt>val:dtv.MOD_32APSK</opt> - </option> - <option> - <name>4+12+16rbAPSK</name> - <key>MOD_4_12_16APSK</key> - <opt>val:dtv.MOD_4_12_16APSK</opt> - </option> - <option> - <name>4+8+4+16APSK</name> - <key>MOD_4_8_4_16APSK</key> - <opt>val:dtv.MOD_4_8_4_16APSK</opt> - </option> - <option> - <name>64APSK</name> - <key>MOD_64APSK</key> - <opt>val:dtv.MOD_64APSK</opt> - </option> - <option> - <name>8+16+20+20APSK</name> - <key>MOD_8_16_20_20APSK</key> - <opt>val:dtv.MOD_8_16_20_20APSK</opt> - </option> - <option> - <name>4+12+20+28APSK</name> - <key>MOD_4_12_20_28APSK</key> - <opt>val:dtv.MOD_4_12_20_28APSK</opt> - </option> - <option> - <name>128APSK</name> - <key>MOD_128APSK</key> - <opt>val:dtv.MOD_128APSK</opt> - </option> - <option> - <name>256APSK</name> - <key>MOD_256APSK</key> - <opt>val:dtv.MOD_256APSK</opt> - </option> - <option> - <name>PI/2 BPSK</name> - <key>MOD_BPSK</key> - <opt>val:dtv.MOD_BPSK</opt> - </option> - <option> - <name>PI/2 BPSK-SF2</name> - <key>MOD_BPSK_SF2</key> - <opt>val:dtv.MOD_BPSK_SF2</opt> - </option> - </param> - <param> - <name>Pilots</name> - <key>pilots</key> - <type>enum</type> - <option> - <name>Off</name> - <key>PILOTS_OFF</key> - <opt>val:dtv.PILOTS_OFF</opt> - </option> - <option> - <name>On</name> - <key>PILOTS_ON</key> - <opt>val:dtv.PILOTS_ON</opt> - </option> - </param> - <param> - <name>Gold Code</name> - <key>goldcode</key> - <value>0</value> - <type>int</type> - </param> - <sink> - <name>in</name> - <type>complex</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.block.yml b/gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.block.yml new file mode 100644 index 0000000000..4f292fca08 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.block.yml @@ -0,0 +1,41 @@ +id: dtv_dvbt2_cellinterleaver_cc +label: Cell/Time Interleaver + +parameters: +- id: framesize + label: FECFRAME size + dtype: enum + options: [FECFRAME_NORMAL, FECFRAME_SHORT] + option_labels: [Normal, Short] + option_attributes: + val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT] +- id: constellation + label: Constellation + dtype: enum + options: [MOD_QPSK, MOD_16QAM, MOD_64QAM, MOD_256QAM] + option_labels: [QPSK, 16QAM, 64QAM, 256QAM] + option_attributes: + val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM, dtv.MOD_256QAM] +- id: fecblocks + label: FEC blocks per frame + dtype: int + default: '168' +- id: tiblocks + label: TI blocks per frame + dtype: int + default: '3' + +inputs: +- domain: stream + dtype: complex + +outputs: +- domain: stream + dtype: complex + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt2_cellinterleaver_cc(${framesize.val}, ${constellation.val}, ${fecblocks}, + ${tiblocks}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.xml b/gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.xml deleted file mode 100644 index 0f3aa76f5e..0000000000 --- a/gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T2 Cell and Time Interleaver -################################################### - --> -<block> - <name>Cell/Time Interleaver</name> - <key>dtv_dvbt2_cellinterleaver_cc</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt2_cellinterleaver_cc($framesize.val, $constellation.val, $fecblocks, $tiblocks)</make> - <param> - <name>FECFRAME size</name> - <key>framesize</key> - <type>enum</type> - <option> - <name>Normal</name> - <key>FECFRAME_NORMAL</key> - <opt>val:dtv.FECFRAME_NORMAL</opt> - </option> - <option> - <name>Short</name> - <key>FECFRAME_SHORT</key> - <opt>val:dtv.FECFRAME_SHORT</opt> - </option> - </param> - <param> - <name>Constellation</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>QPSK</name> - <key>MOD_QPSK</key> - <opt>val:dtv.MOD_QPSK</opt> - </option> - <option> - <name>16QAM</name> - <key>MOD_16QAM</key> - <opt>val:dtv.MOD_16QAM</opt> - </option> - <option> - <name>64QAM</name> - <key>MOD_64QAM</key> - <opt>val:dtv.MOD_64QAM</opt> - </option> - <option> - <name>256QAM</name> - <key>MOD_256QAM</key> - <opt>val:dtv.MOD_256QAM</opt> - </option> - </param> - <param> - <name>FEC blocks per frame</name> - <key>fecblocks</key> - <value>168</value> - <type>int</type> - </param> - <param> - <name>TI blocks per frame</name> - <key>tiblocks</key> - <value>3</value> - <type>int</type> - </param> - <sink> - <name>in</name> - <type>complex</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt2_framemapper_cc.block.yml b/gr-dtv/grc/dtv_dvbt2_framemapper_cc.block.yml new file mode 100644 index 0000000000..bb753e4625 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt2_framemapper_cc.block.yml @@ -0,0 +1,232 @@ +id: dtv_dvbt2_framemapper_cc +label: Frame Mapper + +parameters: +- id: framesize + label: FECFRAME size + dtype: enum + options: [FECFRAME_NORMAL, FECFRAME_SHORT] + option_labels: [Normal, Short] + option_attributes: + val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT] +- id: rate + label: Code rate + dtype: enum + options: [C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6] + option_labels: [1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6] + option_attributes: + val: [dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5, + dtv.C5_6] +- id: constellation + label: Constellation + dtype: enum + options: [MOD_QPSK, MOD_16QAM, MOD_64QAM, MOD_256QAM] + option_labels: [QPSK, 16QAM, 64QAM, 256QAM] + option_attributes: + val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM, dtv.MOD_256QAM] +- id: rotation + label: Constellation rotation + dtype: enum + options: [ROTATION_OFF, ROTATION_ON] + option_labels: ['Off', 'On'] + option_attributes: + val: [dtv.ROTATION_OFF, dtv.ROTATION_ON] +- id: fecblocks + label: FEC blocks per frame + dtype: int + default: '168' +- id: tiblocks + label: TI blocks per frame + dtype: int + default: '3' +- id: carriermode + label: Extended Carrier Mode + dtype: enum + options: [CARRIERS_NORMAL, CARRIERS_EXTENDED] + option_labels: [Normal, Extended] + option_attributes: + val: [dtv.CARRIERS_NORMAL, dtv.CARRIERS_EXTENDED] +- id: fftsize1 + label: FFT Size + dtype: enum + options: [FFTSIZE_1K, FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K, + FFTSIZE_32K, FFTSIZE_32K_T2GI] + option_labels: [1K, 2K, 4K, 8K, 8K DVB-T2 GI, 16K, 32K, 32K DVB-T2 GI] + option_attributes: + val: [dtv.FFTSIZE_1K, dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI, + dtv.FFTSIZE_16K, dtv.FFTSIZE_32K, dtv.FFTSIZE_32K_T2GI] + hide: ${ (preamble1.hide_base if str(version) == 'VERSION_111' else preamble2.hide_base) + } +- id: fftsize2 + label: FFT Size + dtype: enum + options: [FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K, FFTSIZE_16K_T2GI] + option_labels: [2K, 4K, 8K, 8K DVB-T2 GI, 16K, 16K DVB-T2 GI] + option_attributes: + val: [dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI, + dtv.FFTSIZE_16K, dtv.FFTSIZE_16K_T2GI] + hide: ${ (preamble1.hide_lite if str(version) == 'VERSION_111' else preamble2.hide_lite) + } +- id: guardinterval + label: Guard Interval + dtype: enum + options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4, GI_1_128, GI_19_128, GI_19_256] + option_labels: [1/32, 1/16, 1/8, 1/4, 1/128, 19/128, 19/256] + option_attributes: + val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4, dtv.GI_1_128, dtv.GI_19_128, + dtv.GI_19_256] +- id: l1constellation + label: L1 Constellation + dtype: enum + options: [L1_MOD_BPSK, L1_MOD_QPSK, L1_MOD_16QAM, L1_MOD_64QAM] + option_labels: [BPSK, QPSK, 16QAM, 64QAM] + option_attributes: + val: [dtv.L1_MOD_BPSK, dtv.L1_MOD_QPSK, dtv.L1_MOD_16QAM, dtv.L1_MOD_64QAM] +- id: pilotpattern + label: Pilot Pattern + dtype: enum + options: [PILOT_PP1, PILOT_PP2, PILOT_PP3, PILOT_PP4, PILOT_PP5, PILOT_PP6, PILOT_PP7, + PILOT_PP8] + option_labels: [PP1, PP2, PP3, PP4, PP5, PP6, PP7, PP8] + option_attributes: + val: [dtv.PILOT_PP1, dtv.PILOT_PP2, dtv.PILOT_PP3, dtv.PILOT_PP4, dtv.PILOT_PP5, + dtv.PILOT_PP6, dtv.PILOT_PP7, dtv.PILOT_PP8] +- id: t2frames + label: T2 Frames per Super-frame + dtype: int + default: '2' +- id: numdatasyms + label: Number of Data Symbols + dtype: int + default: '100' +- id: paprmode1 + label: PAPR Mode + dtype: enum + options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH] + option_labels: ['Off', Active Constellation Extension, Tone Reservation, Both + ACE and TR] + option_attributes: + val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH] + hide: ${ version.hide_111 } +- id: paprmode2 + label: PAPR Mode + dtype: enum + options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH] + option_labels: [P2 Only, Active Constellation Extension, Tone Reservation, Both + ACE and TR] + option_attributes: + val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH] + hide: ${ version.hide_131 } +- id: version + label: Specification Version + dtype: enum + options: [VERSION_111, VERSION_131] + option_labels: [1.1.1, 1.3.1] + option_attributes: + hide_111: ['', all] + hide_131: [all, ''] + val: [dtv.VERSION_111, dtv.VERSION_131] +- id: preamble1 + label: Preamble + dtype: enum + options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO] + option_labels: [T2 SISO, T2 MISO] + option_attributes: + hide_base: ['', ''] + hide_lite: [all, all] + val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO] + hide: ${ version.hide_111 } +- id: preamble2 + label: Preamble + dtype: enum + options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO, PREAMBLE_T2_LITE_SISO, PREAMBLE_T2_LITE_MISO] + option_labels: [T2 SISO, T2 MISO, T2-Lite SISO, T2-Lite MISO] + option_attributes: + hide_base: ['', '', all, all] + hide_lite: [all, all, '', ''] + val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO, dtv.PREAMBLE_T2_LITE_SISO, + dtv.PREAMBLE_T2_LITE_MISO] + hide: ${ version.hide_131 } +- id: inputmode + label: Baseband Framing Mode + dtype: enum + options: [INPUTMODE_NORMAL, INPUTMODE_HIEFF] + option_labels: [Normal, High Efficiency] + option_attributes: + val: [dtv.INPUTMODE_NORMAL, dtv.INPUTMODE_HIEFF] + hide: ${ version.hide_131 } +- id: reservedbiasbits + label: Reserved Bits Bias Balancing + dtype: enum + options: [RESERVED_OFF, RESERVED_ON] + option_labels: ['Off', 'On'] + option_attributes: + val: [dtv.RESERVED_OFF, dtv.RESERVED_ON] + hide: ${ version.hide_131 } +- id: l1scrambled + label: L1-post Scrambling + dtype: enum + options: [L1_SCRAMBLED_OFF, L1_SCRAMBLED_ON] + option_labels: ['Off', 'On'] + option_attributes: + val: [dtv.L1_SCRAMBLED_OFF, dtv.L1_SCRAMBLED_ON] + hide: ${ version.hide_131 } +- id: inband + label: In-band Signalling + dtype: enum + options: [INBAND_OFF, INBAND_ON] + option_labels: ['Off', Type B] + option_attributes: + val: [dtv.INBAND_OFF, dtv.INBAND_ON] + hide: ${ version.hide_131 } + +inputs: +- domain: stream + dtype: complex + +outputs: +- domain: stream + dtype: complex + +templates: + imports: from gnuradio import dtv + make: |- + dtv.dvbt2_framemapper_cc( + ${framesize.val}, + ${rate.val}, + ${constellation.val}, + ${rotation.val}, + ${fecblocks}, + ${tiblocks}, + ${carriermode.val}, + % if str(version) == 'VERSION_111': + ${fftsize1.val}, + % else: + % if str(preamble2) == 'PREAMBLE_T2_SISO' or str(preamble2) == 'PREAMBLE_T2_MISO': + ${fftsize1.val}, + % else: + ${fftsize2.val}, + % endif + % endif + ${guardinterval.val}, + ${l1constellation.val}, + ${pilotpattern.val}, + ${t2frames}, + ${numdatasyms}, + % if str(version) == 'VERSION_111': + ${paprmode1.val}, + % else: + ${paprmode2.val}, + % endif + ${version.val}, + % if str(version) == 'VERSION_111': + ${preamble1.val}, + % else: + ${preamble2.val}, + % endif + ${inputmode.val}, + ${reservedbiasbits.val}, + ${l1scrambled.val}, + ${inband.val}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt2_framemapper_cc.xml b/gr-dtv/grc/dtv_dvbt2_framemapper_cc.xml deleted file mode 100644 index e795c8a1dc..0000000000 --- a/gr-dtv/grc/dtv_dvbt2_framemapper_cc.xml +++ /dev/null @@ -1,562 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T2 Frame Mapper -################################################### - --> -<block> - <name>Frame Mapper</name> - <key>dtv_dvbt2_framemapper_cc</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt2_framemapper_cc($framesize.val, $rate.val, $constellation.val, $rotation.val, $fecblocks, $tiblocks, $carriermode.val, #slurp -#if str($version) == 'VERSION_111' -$fftsize1.val, #slurp -#else -#if str($preamble2) == 'PREAMBLE_T2_SISO' or str($preamble2) == 'PREAMBLE_T2_MISO' -$fftsize1.val, #slurp -#else -$fftsize2.val, #slurp -#end if -#end if -$guardinterval.val, $l1constellation.val, $pilotpattern.val, $t2frames, $numdatasyms, #slurp -#if str($version) == 'VERSION_111' -$paprmode1.val, #slurp -#else -$paprmode2.val, #slurp -#end if -$version.val, #slurp -#if str($version) == 'VERSION_111' -$preamble1.val, #slurp -#else -$preamble2.val, #slurp -#end if -$inputmode.val, $reservedbiasbits.val, $l1scrambled.val, $inband.val)</make> - <param> - <name>FECFRAME size</name> - <key>framesize</key> - <type>enum</type> - <option> - <name>Normal</name> - <key>FECFRAME_NORMAL</key> - <opt>val:dtv.FECFRAME_NORMAL</opt> - </option> - <option> - <name>Short</name> - <key>FECFRAME_SHORT</key> - <opt>val:dtv.FECFRAME_SHORT</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate</key> - <type>enum</type> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - </param> - <param> - <name>Constellation</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>QPSK</name> - <key>MOD_QPSK</key> - <opt>val:dtv.MOD_QPSK</opt> - </option> - <option> - <name>16QAM</name> - <key>MOD_16QAM</key> - <opt>val:dtv.MOD_16QAM</opt> - </option> - <option> - <name>64QAM</name> - <key>MOD_64QAM</key> - <opt>val:dtv.MOD_64QAM</opt> - </option> - <option> - <name>256QAM</name> - <key>MOD_256QAM</key> - <opt>val:dtv.MOD_256QAM</opt> - </option> - </param> - <param> - <name>Constellation rotation</name> - <key>rotation</key> - <type>enum</type> - <option> - <name>Off</name> - <key>ROTATION_OFF</key> - <opt>val:dtv.ROTATION_OFF</opt> - </option> - <option> - <name>On</name> - <key>ROTATION_ON</key> - <opt>val:dtv.ROTATION_ON</opt> - </option> - </param> - <param> - <name>FEC blocks per frame</name> - <key>fecblocks</key> - <value>168</value> - <type>int</type> - </param> - <param> - <name>TI blocks per frame</name> - <key>tiblocks</key> - <value>3</value> - <type>int</type> - </param> - <param> - <name>Extended Carrier Mode</name> - <key>carriermode</key> - <type>enum</type> - <option> - <name>Normal</name> - <key>CARRIERS_NORMAL</key> - <opt>val:dtv.CARRIERS_NORMAL</opt> - </option> - <option> - <name>Extended</name> - <key>CARRIERS_EXTENDED</key> - <opt>val:dtv.CARRIERS_EXTENDED</opt> - </option> - </param> - <param> - <name>FFT Size</name> - <key>fftsize1</key> - <type>enum</type> - <hide>#if str($version) == 'VERSION_111' then $preamble1.hide_base else $preamble2.hide_base</hide> - <option> - <name>1K</name> - <key>FFTSIZE_1K</key> - <opt>val:dtv.FFTSIZE_1K</opt> - </option> - <option> - <name>2K</name> - <key>FFTSIZE_2K</key> - <opt>val:dtv.FFTSIZE_2K</opt> - </option> - <option> - <name>4K</name> - <key>FFTSIZE_4K</key> - <opt>val:dtv.FFTSIZE_4K</opt> - </option> - <option> - <name>8K</name> - <key>FFTSIZE_8K</key> - <opt>val:dtv.FFTSIZE_8K</opt> - </option> - <option> - <name>8K DVB-T2 GI</name> - <key>FFTSIZE_8K_T2GI</key> - <opt>val:dtv.FFTSIZE_8K_T2GI</opt> - </option> - <option> - <name>16K</name> - <key>FFTSIZE_16K</key> - <opt>val:dtv.FFTSIZE_16K</opt> - </option> - <option> - <name>32K</name> - <key>FFTSIZE_32K</key> - <opt>val:dtv.FFTSIZE_32K</opt> - </option> - <option> - <name>32K DVB-T2 GI</name> - <key>FFTSIZE_32K_T2GI</key> - <opt>val:dtv.FFTSIZE_32K_T2GI</opt> - </option> - </param> - <param> - <name>FFT Size</name> - <key>fftsize2</key> - <type>enum</type> - <hide>#if str($version) == 'VERSION_111' then $preamble1.hide_lite else $preamble2.hide_lite</hide> - <option> - <name>2K</name> - <key>FFTSIZE_2K</key> - <opt>val:dtv.FFTSIZE_2K</opt> - </option> - <option> - <name>4K</name> - <key>FFTSIZE_4K</key> - <opt>val:dtv.FFTSIZE_4K</opt> - </option> - <option> - <name>8K</name> - <key>FFTSIZE_8K</key> - <opt>val:dtv.FFTSIZE_8K</opt> - </option> - <option> - <name>8K DVB-T2 GI</name> - <key>FFTSIZE_8K_T2GI</key> - <opt>val:dtv.FFTSIZE_8K_T2GI</opt> - </option> - <option> - <name>16K</name> - <key>FFTSIZE_16K</key> - <opt>val:dtv.FFTSIZE_16K</opt> - </option> - <option> - <name>16K DVB-T2 GI</name> - <key>FFTSIZE_16K_T2GI</key> - <opt>val:dtv.FFTSIZE_16K_T2GI</opt> - </option> - </param> - <param> - <name>Guard Interval</name> - <key>guardinterval</key> - <type>enum</type> - <option> - <name>1/32</name> - <key>GI_1_32</key> - <opt>val:dtv.GI_1_32</opt> - </option> - <option> - <name>1/16</name> - <key>GI_1_16</key> - <opt>val:dtv.GI_1_16</opt> - </option> - <option> - <name>1/8</name> - <key>GI_1_8</key> - <opt>val:dtv.GI_1_8</opt> - </option> - <option> - <name>1/4</name> - <key>GI_1_4</key> - <opt>val:dtv.GI_1_4</opt> - </option> - <option> - <name>1/128</name> - <key>GI_1_128</key> - <opt>val:dtv.GI_1_128</opt> - </option> - <option> - <name>19/128</name> - <key>GI_19_128</key> - <opt>val:dtv.GI_19_128</opt> - </option> - <option> - <name>19/256</name> - <key>GI_19_256</key> - <opt>val:dtv.GI_19_256</opt> - </option> - </param> - <param> - <name>L1 Constellation</name> - <key>l1constellation</key> - <type>enum</type> - <option> - <name>BPSK</name> - <key>L1_MOD_BPSK</key> - <opt>val:dtv.L1_MOD_BPSK</opt> - </option> - <option> - <name>QPSK</name> - <key>L1_MOD_QPSK</key> - <opt>val:dtv.L1_MOD_QPSK</opt> - </option> - <option> - <name>16QAM</name> - <key>L1_MOD_16QAM</key> - <opt>val:dtv.L1_MOD_16QAM</opt> - </option> - <option> - <name>64QAM</name> - <key>L1_MOD_64QAM</key> - <opt>val:dtv.L1_MOD_64QAM</opt> - </option> - </param> - <param> - <name>Pilot Pattern</name> - <key>pilotpattern</key> - <type>enum</type> - <option> - <name>PP1</name> - <key>PILOT_PP1</key> - <opt>val:dtv.PILOT_PP1</opt> - </option> - <option> - <name>PP2</name> - <key>PILOT_PP2</key> - <opt>val:dtv.PILOT_PP2</opt> - </option> - <option> - <name>PP3</name> - <key>PILOT_PP3</key> - <opt>val:dtv.PILOT_PP3</opt> - </option> - <option> - <name>PP4</name> - <key>PILOT_PP4</key> - <opt>val:dtv.PILOT_PP4</opt> - </option> - <option> - <name>PP5</name> - <key>PILOT_PP5</key> - <opt>val:dtv.PILOT_PP5</opt> - </option> - <option> - <name>PP6</name> - <key>PILOT_PP6</key> - <opt>val:dtv.PILOT_PP6</opt> - </option> - <option> - <name>PP7</name> - <key>PILOT_PP7</key> - <opt>val:dtv.PILOT_PP7</opt> - </option> - <option> - <name>PP8</name> - <key>PILOT_PP8</key> - <opt>val:dtv.PILOT_PP8</opt> - </option> - </param> - <param> - <name>T2 Frames per Super-frame</name> - <key>t2frames</key> - <value>2</value> - <type>int</type> - </param> - <param> - <name>Number of Data Symbols</name> - <key>numdatasyms</key> - <value>100</value> - <type>int</type> - </param> - <param> - <name>PAPR Mode</name> - <key>paprmode1</key> - <type>enum</type> - <hide>$version.hide_111</hide> - <option> - <name>Off</name> - <key>PAPR_OFF</key> - <opt>val:dtv.PAPR_OFF</opt> - </option> - <option> - <name>Active Constellation Extension</name> - <key>PAPR_ACE</key> - <opt>val:dtv.PAPR_ACE</opt> - </option> - <option> - <name>Tone Reservation</name> - <key>PAPR_TR</key> - <opt>val:dtv.PAPR_TR</opt> - </option> - <option> - <name>Both ACE and TR</name> - <key>PAPR_BOTH</key> - <opt>val:dtv.PAPR_BOTH</opt> - </option> - </param> - <param> - <name>PAPR Mode</name> - <key>paprmode2</key> - <type>enum</type> - <hide>$version.hide_131</hide> - <option> - <name>P2 Only</name> - <key>PAPR_OFF</key> - <opt>val:dtv.PAPR_OFF</opt> - </option> - <option> - <name>Active Constellation Extension</name> - <key>PAPR_ACE</key> - <opt>val:dtv.PAPR_ACE</opt> - </option> - <option> - <name>Tone Reservation</name> - <key>PAPR_TR</key> - <opt>val:dtv.PAPR_TR</opt> - </option> - <option> - <name>Both ACE and TR</name> - <key>PAPR_BOTH</key> - <opt>val:dtv.PAPR_BOTH</opt> - </option> - </param> - <param> - <name>Specification Version</name> - <key>version</key> - <type>enum</type> - <option> - <name>1.1.1</name> - <key>VERSION_111</key> - <opt>val:dtv.VERSION_111</opt> - <opt>hide_111:</opt> - <opt>hide_131:all</opt> - </option> - <option> - <name>1.3.1</name> - <key>VERSION_131</key> - <opt>val:dtv.VERSION_131</opt> - <opt>hide_111:all</opt> - <opt>hide_131:</opt> - </option> - </param> - <param> - <name>Preamble</name> - <key>preamble1</key> - <type>enum</type> - <hide>$version.hide_111</hide> - <option> - <name>T2 SISO</name> - <key>PREAMBLE_T2_SISO</key> - <opt>val:dtv.PREAMBLE_T2_SISO</opt> - <opt>hide_lite:all</opt> - <opt>hide_base:</opt> - </option> - <option> - <name>T2 MISO</name> - <key>PREAMBLE_T2_MISO</key> - <opt>val:dtv.PREAMBLE_T2_MISO</opt> - <opt>hide_lite:all</opt> - <opt>hide_base:</opt> - </option> - </param> - <param> - <name>Preamble</name> - <key>preamble2</key> - <type>enum</type> - <hide>$version.hide_131</hide> - <option> - <name>T2 SISO</name> - <key>PREAMBLE_T2_SISO</key> - <opt>val:dtv.PREAMBLE_T2_SISO</opt> - <opt>hide_lite:all</opt> - <opt>hide_base:</opt> - </option> - <option> - <name>T2 MISO</name> - <key>PREAMBLE_T2_MISO</key> - <opt>val:dtv.PREAMBLE_T2_MISO</opt> - <opt>hide_lite:all</opt> - <opt>hide_base:</opt> - </option> - <option> - <name>T2-Lite SISO</name> - <key>PREAMBLE_T2_LITE_SISO</key> - <opt>val:dtv.PREAMBLE_T2_LITE_SISO</opt> - <opt>hide_lite:</opt> - <opt>hide_base:all</opt> - </option> - <option> - <name>T2-Lite MISO</name> - <key>PREAMBLE_T2_LITE_MISO</key> - <opt>val:dtv.PREAMBLE_T2_LITE_MISO</opt> - <opt>hide_lite:</opt> - <opt>hide_base:all</opt> - </option> - </param> - <param> - <name>Baseband Framing Mode</name> - <key>inputmode</key> - <type>enum</type> - <hide>$version.hide_131</hide> - <option> - <name>Normal</name> - <key>INPUTMODE_NORMAL</key> - <opt>val:dtv.INPUTMODE_NORMAL</opt> - </option> - <option> - <name>High Efficiency</name> - <key>INPUTMODE_HIEFF</key> - <opt>val:dtv.INPUTMODE_HIEFF</opt> - </option> - </param> - <param> - <name>Reserved Bits Bias Balancing</name> - <key>reservedbiasbits</key> - <type>enum</type> - <hide>$version.hide_131</hide> - <option> - <name>Off</name> - <key>RESERVED_OFF</key> - <opt>val:dtv.RESERVED_OFF</opt> - </option> - <option> - <name>On</name> - <key>RESERVED_ON</key> - <opt>val:dtv.RESERVED_ON</opt> - </option> - </param> - <param> - <name>L1-post Scrambling</name> - <key>l1scrambled</key> - <type>enum</type> - <hide>$version.hide_131</hide> - <option> - <name>Off</name> - <key>L1_SCRAMBLED_OFF</key> - <opt>val:dtv.L1_SCRAMBLED_OFF</opt> - </option> - <option> - <name>On</name> - <key>L1_SCRAMBLED_ON</key> - <opt>val:dtv.L1_SCRAMBLED_ON</opt> - </option> - </param> - <param> - <name>In-band Signalling</name> - <key>inband</key> - <type>enum</type> - <hide>$version.hide_131</hide> - <option> - <name>Off</name> - <key>INBAND_OFF</key> - <opt>val:dtv.INBAND_OFF</opt> - </option> - <option> - <name>Type B</name> - <key>INBAND_ON</key> - <opt>val:dtv.INBAND_ON</opt> - </option> - </param> - <sink> - <name>in</name> - <type>complex</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.block.yml b/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.block.yml new file mode 100644 index 0000000000..e6977374f0 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.block.yml @@ -0,0 +1,118 @@ +id: dtv_dvbt2_freqinterleaver_cc +label: Frequency Interleaver + +parameters: +- id: carriermode + label: Extended Carrier Mode + dtype: enum + options: [CARRIERS_NORMAL, CARRIERS_EXTENDED] + option_labels: [Normal, Extended] + option_attributes: + val: [dtv.CARRIERS_NORMAL, dtv.CARRIERS_EXTENDED] +- id: fftsize + label: FFT Size + dtype: enum + options: [FFTSIZE_1K, FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K, + FFTSIZE_16K_T2GI, FFTSIZE_32K, FFTSIZE_32K_T2GI] + option_labels: [1K, 2K, 4K, 8K, 8K DVB-T2 GI, 16K, 16K DVB-T2 GI, 32K, 32K DVB-T2 + GI] + option_attributes: + val: [dtv.FFTSIZE_1K, dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI, + dtv.FFTSIZE_16K, dtv.FFTSIZE_16K_T2GI, dtv.FFTSIZE_32K, dtv.FFTSIZE_32K_T2GI] +- id: pilotpattern + label: Pilot Pattern + dtype: enum + options: [PILOT_PP1, PILOT_PP2, PILOT_PP3, PILOT_PP4, PILOT_PP5, PILOT_PP6, PILOT_PP7, + PILOT_PP8] + option_labels: [PP1, PP2, PP3, PP4, PP5, PP6, PP7, PP8] + option_attributes: + val: [dtv.PILOT_PP1, dtv.PILOT_PP2, dtv.PILOT_PP3, dtv.PILOT_PP4, dtv.PILOT_PP5, + dtv.PILOT_PP6, dtv.PILOT_PP7, dtv.PILOT_PP8] +- id: guardinterval + label: Guard Interval + dtype: enum + options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4, GI_1_128, GI_19_128, GI_19_256] + option_labels: [1/32, 1/16, 1/8, 1/4, 1/128, 19/128, 19/256] + option_attributes: + val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4, dtv.GI_1_128, dtv.GI_19_128, + dtv.GI_19_256] +- id: numdatasyms + label: Number of Data Symbols + dtype: int + default: '100' +- id: paprmode1 + label: PAPR Mode + dtype: enum + options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH] + option_labels: ['Off', Active Constellation Extension, Tone Reservation, Both + ACE and TR] + option_attributes: + val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH] + hide: ${ version.hide_111 } +- id: paprmode2 + label: PAPR Mode + dtype: enum + options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH] + option_labels: [P2 Only, Active Constellation Extension, Tone Reservation, Both + ACE and TR] + option_attributes: + val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH] + hide: ${ version.hide_131 } +- id: version + label: Specification Version + dtype: enum + options: [VERSION_111, VERSION_131] + option_labels: [1.1.1, 1.3.1] + option_attributes: + hide_111: ['', all] + hide_131: [all, ''] + val: [dtv.VERSION_111, dtv.VERSION_131] +- id: preamble1 + label: Preamble + dtype: enum + options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO] + option_labels: [T2 SISO, T2 MISO] + option_attributes: + val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO] + hide: ${ version.hide_111 } +- id: preamble2 + label: Preamble + dtype: enum + options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO, PREAMBLE_T2_LITE_SISO, PREAMBLE_T2_LITE_MISO] + option_labels: [T2 SISO, T2 MISO, T2-Lite SISO, T2-Lite MISO] + option_attributes: + val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO, dtv.PREAMBLE_T2_LITE_SISO, + dtv.PREAMBLE_T2_LITE_MISO] + hide: ${ version.hide_131 } + +inputs: +- domain: stream + dtype: complex + +outputs: +- domain: stream + dtype: complex + +templates: + imports: from gnuradio import dtv + make: |- + dtv.dvbt2_freqinterleaver_cc( + ${carriermode.val}, + ${fftsize.val}, + ${pilotpattern.val}, + ${guardinterval.val}, + ${numdatasyms}, + % if str(version) == 'VERSION_111': + ${paprmode1.val}, + % else: + ${paprmode2.val}, + % endif + ${version.val}, + % if str(version) == 'VERSION_111': + ${preamble1.val} + % else: + ${preamble2.val} + % endif + ) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.xml b/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.xml deleted file mode 100644 index bd7ba2bbfa..0000000000 --- a/gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.xml +++ /dev/null @@ -1,301 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T2 Frequency Interleaver -################################################### - --> -<block> - <name>Frequency Interleaver</name> - <key>dtv_dvbt2_freqinterleaver_cc</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt2_freqinterleaver_cc($carriermode.val, $fftsize.val, $pilotpattern.val, $guardinterval.val, $numdatasyms, #slurp -#if str($version) == 'VERSION_111' -$paprmode1.val, #slurp -#else -$paprmode2.val, #slurp -#end if -$version.val, #slurp -#if str($version) == 'VERSION_111' -$preamble1.val#slurp -#else -$preamble2.val#slurp -#end if -)</make> - <param> - <name>Extended Carrier Mode</name> - <key>carriermode</key> - <type>enum</type> - <option> - <name>Normal</name> - <key>CARRIERS_NORMAL</key> - <opt>val:dtv.CARRIERS_NORMAL</opt> - </option> - <option> - <name>Extended</name> - <key>CARRIERS_EXTENDED</key> - <opt>val:dtv.CARRIERS_EXTENDED</opt> - </option> - </param> - <param> - <name>FFT Size</name> - <key>fftsize</key> - <type>enum</type> - <option> - <name>1K</name> - <key>FFTSIZE_1K</key> - <opt>val:dtv.FFTSIZE_1K</opt> - </option> - <option> - <name>2K</name> - <key>FFTSIZE_2K</key> - <opt>val:dtv.FFTSIZE_2K</opt> - </option> - <option> - <name>4K</name> - <key>FFTSIZE_4K</key> - <opt>val:dtv.FFTSIZE_4K</opt> - </option> - <option> - <name>8K</name> - <key>FFTSIZE_8K</key> - <opt>val:dtv.FFTSIZE_8K</opt> - </option> - <option> - <name>8K DVB-T2 GI</name> - <key>FFTSIZE_8K_T2GI</key> - <opt>val:dtv.FFTSIZE_8K_T2GI</opt> - </option> - <option> - <name>16K</name> - <key>FFTSIZE_16K</key> - <opt>val:dtv.FFTSIZE_16K</opt> - </option> - <option> - <name>16K DVB-T2 GI</name> - <key>FFTSIZE_16K_T2GI</key> - <opt>val:dtv.FFTSIZE_16K_T2GI</opt> - </option> - <option> - <name>32K</name> - <key>FFTSIZE_32K</key> - <opt>val:dtv.FFTSIZE_32K</opt> - </option> - <option> - <name>32K DVB-T2 GI</name> - <key>FFTSIZE_32K_T2GI</key> - <opt>val:dtv.FFTSIZE_32K_T2GI</opt> - </option> - </param> - <param> - <name>Pilot Pattern</name> - <key>pilotpattern</key> - <type>enum</type> - <option> - <name>PP1</name> - <key>PILOT_PP1</key> - <opt>val:dtv.PILOT_PP1</opt> - </option> - <option> - <name>PP2</name> - <key>PILOT_PP2</key> - <opt>val:dtv.PILOT_PP2</opt> - </option> - <option> - <name>PP3</name> - <key>PILOT_PP3</key> - <opt>val:dtv.PILOT_PP3</opt> - </option> - <option> - <name>PP4</name> - <key>PILOT_PP4</key> - <opt>val:dtv.PILOT_PP4</opt> - </option> - <option> - <name>PP5</name> - <key>PILOT_PP5</key> - <opt>val:dtv.PILOT_PP5</opt> - </option> - <option> - <name>PP6</name> - <key>PILOT_PP6</key> - <opt>val:dtv.PILOT_PP6</opt> - </option> - <option> - <name>PP7</name> - <key>PILOT_PP7</key> - <opt>val:dtv.PILOT_PP7</opt> - </option> - <option> - <name>PP8</name> - <key>PILOT_PP8</key> - <opt>val:dtv.PILOT_PP8</opt> - </option> - </param> - <param> - <name>Guard Interval</name> - <key>guardinterval</key> - <type>enum</type> - <option> - <name>1/32</name> - <key>GI_1_32</key> - <opt>val:dtv.GI_1_32</opt> - </option> - <option> - <name>1/16</name> - <key>GI_1_16</key> - <opt>val:dtv.GI_1_16</opt> - </option> - <option> - <name>1/8</name> - <key>GI_1_8</key> - <opt>val:dtv.GI_1_8</opt> - </option> - <option> - <name>1/4</name> - <key>GI_1_4</key> - <opt>val:dtv.GI_1_4</opt> - </option> - <option> - <name>1/128</name> - <key>GI_1_128</key> - <opt>val:dtv.GI_1_128</opt> - </option> - <option> - <name>19/128</name> - <key>GI_19_128</key> - <opt>val:dtv.GI_19_128</opt> - </option> - <option> - <name>19/256</name> - <key>GI_19_256</key> - <opt>val:dtv.GI_19_256</opt> - </option> - </param> - <param> - <name>Number of Data Symbols</name> - <key>numdatasyms</key> - <value>100</value> - <type>int</type> - </param> - <param> - <name>PAPR Mode</name> - <key>paprmode1</key> - <type>enum</type> - <hide>$version.hide_111</hide> - <option> - <name>Off</name> - <key>PAPR_OFF</key> - <opt>val:dtv.PAPR_OFF</opt> - </option> - <option> - <name>Active Constellation Extension</name> - <key>PAPR_ACE</key> - <opt>val:dtv.PAPR_ACE</opt> - </option> - <option> - <name>Tone Reservation</name> - <key>PAPR_TR</key> - <opt>val:dtv.PAPR_TR</opt> - </option> - <option> - <name>Both ACE and TR</name> - <key>PAPR_BOTH</key> - <opt>val:dtv.PAPR_BOTH</opt> - </option> - </param> - <param> - <name>PAPR Mode</name> - <key>paprmode2</key> - <type>enum</type> - <hide>$version.hide_131</hide> - <option> - <name>P2 Only</name> - <key>PAPR_OFF</key> - <opt>val:dtv.PAPR_OFF</opt> - </option> - <option> - <name>Active Constellation Extension</name> - <key>PAPR_ACE</key> - <opt>val:dtv.PAPR_ACE</opt> - </option> - <option> - <name>Tone Reservation</name> - <key>PAPR_TR</key> - <opt>val:dtv.PAPR_TR</opt> - </option> - <option> - <name>Both ACE and TR</name> - <key>PAPR_BOTH</key> - <opt>val:dtv.PAPR_BOTH</opt> - </option> - </param> - <param> - <name>Specification Version</name> - <key>version</key> - <type>enum</type> - <option> - <name>1.1.1</name> - <key>VERSION_111</key> - <opt>val:dtv.VERSION_111</opt> - <opt>hide_111:</opt> - <opt>hide_131:all</opt> - </option> - <option> - <name>1.3.1</name> - <key>VERSION_131</key> - <opt>val:dtv.VERSION_131</opt> - <opt>hide_111:all</opt> - <opt>hide_131:</opt> - </option> - </param> - <param> - <name>Preamble</name> - <key>preamble1</key> - <type>enum</type> - <hide>$version.hide_111</hide> - <option> - <name>T2 SISO</name> - <key>PREAMBLE_T2_SISO</key> - <opt>val:dtv.PREAMBLE_T2_SISO</opt> - </option> - <option> - <name>T2 MISO</name> - <key>PREAMBLE_T2_MISO</key> - <opt>val:dtv.PREAMBLE_T2_MISO</opt> - </option> - </param> - <param> - <name>Preamble</name> - <key>preamble2</key> - <type>enum</type> - <hide>$version.hide_131</hide> - <option> - <name>T2 SISO</name> - <key>PREAMBLE_T2_SISO</key> - <opt>val:dtv.PREAMBLE_T2_SISO</opt> - </option> - <option> - <name>T2 MISO</name> - <key>PREAMBLE_T2_MISO</key> - <opt>val:dtv.PREAMBLE_T2_MISO</opt> - </option> - <option> - <name>T2-Lite SISO</name> - <key>PREAMBLE_T2_LITE_SISO</key> - <opt>val:dtv.PREAMBLE_T2_LITE_SISO</opt> - </option> - <option> - <name>T2-Lite MISO</name> - <key>PREAMBLE_T2_LITE_MISO</key> - <opt>val:dtv.PREAMBLE_T2_LITE_MISO</opt> - </option> - </param> - <sink> - <name>in</name> - <type>complex</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt2_interleaver_bb.block.yml b/gr-dtv/grc/dtv_dvbt2_interleaver_bb.block.yml new file mode 100644 index 0000000000..c7ca955996 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt2_interleaver_bb.block.yml @@ -0,0 +1,40 @@ +id: dtv_dvbt2_interleaver_bb +label: Bit Interleaver + +parameters: +- id: framesize + label: FECFRAME size + dtype: enum + options: [FECFRAME_NORMAL, FECFRAME_SHORT] + option_labels: [Normal, Short] + option_attributes: + val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT] +- id: rate + label: Code rate + dtype: enum + options: [C1_3, C2_5, C1_2, C3_5, C2_3, C3_4, C4_5, C5_6] + option_labels: [1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6] + option_attributes: + val: [dtv.C1_3, dtv.C2_5, dtv.C1_2, dtv.C3_5, dtv.C2_3, dtv.C3_4, dtv.C4_5, + dtv.C5_6] +- id: constellation + label: Constellation + dtype: enum + options: [MOD_QPSK, MOD_16QAM, MOD_64QAM, MOD_256QAM] + option_labels: [QPSK, 16QAM, 64QAM, 256QAM] + option_attributes: + val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM, dtv.MOD_256QAM] + +inputs: +- domain: stream + dtype: byte + +outputs: +- domain: stream + dtype: byte + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt2_interleaver_bb(${framesize.val}, ${rate.val}, ${constellation.val}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt2_interleaver_bb.xml b/gr-dtv/grc/dtv_dvbt2_interleaver_bb.xml deleted file mode 100644 index 0e4e1eaf45..0000000000 --- a/gr-dtv/grc/dtv_dvbt2_interleaver_bb.xml +++ /dev/null @@ -1,105 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T2 Bit Interleaver -################################################### - --> -<block> - <name>Bit Interleaver</name> - <key>dtv_dvbt2_interleaver_bb</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt2_interleaver_bb($framesize.val, $rate.val, $constellation.val)</make> - <param> - <name>FECFRAME size</name> - <key>framesize</key> - <type>enum</type> - <option> - <name>Normal</name> - <key>FECFRAME_NORMAL</key> - <opt>val:dtv.FECFRAME_NORMAL</opt> - </option> - <option> - <name>Short</name> - <key>FECFRAME_SHORT</key> - <opt>val:dtv.FECFRAME_SHORT</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>rate</key> - <type>enum</type> - <option> - <name>1/3</name> - <key>C1_3</key> - <opt>val:dtv.C1_3</opt> - </option> - <option> - <name>2/5</name> - <key>C2_5</key> - <opt>val:dtv.C2_5</opt> - </option> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>3/5</name> - <key>C3_5</key> - <opt>val:dtv.C3_5</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>4/5</name> - <key>C4_5</key> - <opt>val:dtv.C4_5</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - </param> - <param> - <name>Constellation</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>QPSK</name> - <key>MOD_QPSK</key> - <opt>val:dtv.MOD_QPSK</opt> - </option> - <option> - <name>16QAM</name> - <key>MOD_16QAM</key> - <opt>val:dtv.MOD_16QAM</opt> - </option> - <option> - <name>64QAM</name> - <key>MOD_64QAM</key> - <opt>val:dtv.MOD_64QAM</opt> - </option> - <option> - <name>256QAM</name> - <key>MOD_256QAM</key> - <opt>val:dtv.MOD_256QAM</opt> - </option> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>byte</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt2_miso_cc.block.yml b/gr-dtv/grc/dtv_dvbt2_miso_cc.block.yml new file mode 100644 index 0000000000..e00a0b047e --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt2_miso_cc.block.yml @@ -0,0 +1,96 @@ +id: dtv_dvbt2_miso_cc +label: MISO Processing + +parameters: +- id: carriermode + label: Extended Carrier Mode + dtype: enum + options: [CARRIERS_NORMAL, CARRIERS_EXTENDED] + option_labels: [Normal, Extended] + option_attributes: + val: [dtv.CARRIERS_NORMAL, dtv.CARRIERS_EXTENDED] +- id: fftsize + label: FFT Size + dtype: enum + options: [FFTSIZE_1K, FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K, + FFTSIZE_16K_T2GI, FFTSIZE_32K, FFTSIZE_32K_T2GI] + option_labels: [1K, 2K, 4K, 8K, 8K DVB-T2 GI, 16K, 16K DVB-T2 GI, 32K, 32K DVB-T2 + GI] + option_attributes: + val: [dtv.FFTSIZE_1K, dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI, + dtv.FFTSIZE_16K, dtv.FFTSIZE_16K_T2GI, dtv.FFTSIZE_32K, dtv.FFTSIZE_32K_T2GI] +- id: pilotpattern + label: Pilot Pattern + dtype: enum + options: [PILOT_PP1, PILOT_PP2, PILOT_PP3, PILOT_PP4, PILOT_PP5, PILOT_PP6, PILOT_PP7, + PILOT_PP8] + option_labels: [PP1, PP2, PP3, PP4, PP5, PP6, PP7, PP8] + option_attributes: + val: [dtv.PILOT_PP1, dtv.PILOT_PP2, dtv.PILOT_PP3, dtv.PILOT_PP4, dtv.PILOT_PP5, + dtv.PILOT_PP6, dtv.PILOT_PP7, dtv.PILOT_PP8] +- id: guardinterval + label: Guard Interval + dtype: enum + options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4, GI_1_128, GI_19_128, GI_19_256] + option_labels: [1/32, 1/16, 1/8, 1/4, 1/128, 19/128, 19/256] + option_attributes: + val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4, dtv.GI_1_128, dtv.GI_19_128, + dtv.GI_19_256] +- id: numdatasyms + label: Number of Data Symbols + dtype: int + default: '100' +- id: paprmode1 + label: PAPR Mode + dtype: enum + options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH] + option_labels: ['Off', Active Constellation Extension, Tone Reservation, Both + ACE and TR] + option_attributes: + val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH] + hide: ${ version.hide_111 } +- id: paprmode2 + label: PAPR Mode + dtype: enum + options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH] + option_labels: [P2 Only, Active Constellation Extension, Tone Reservation, Both + ACE and TR] + option_attributes: + val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH] + hide: ${ version.hide_131 } +- id: version + label: Specification Version + dtype: enum + options: [VERSION_111, VERSION_131] + option_labels: [1.1.1, 1.3.1] + option_attributes: + hide_111: ['', all] + hide_131: [all, ''] + val: [dtv.VERSION_111, dtv.VERSION_131] + +inputs: +- domain: stream + dtype: complex + +outputs: +- domain: stream + dtype: complex + multiplicity: '2' + +templates: + imports: from gnuradio import dtv + make: |- + dtv.dvbt2_miso_cc( + ${carriermode.val}, + ${fftsize.val}, + ${pilotpattern.val}, + ${guardinterval.val}, + ${numdatasyms}, + % if str(version) == 'VERSION_111': + ${paprmode1.val} + % else: + ${paprmode2.val} + % endif + ) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt2_miso_cc.xml b/gr-dtv/grc/dtv_dvbt2_miso_cc.xml deleted file mode 100644 index 1ef4d2afc1..0000000000 --- a/gr-dtv/grc/dtv_dvbt2_miso_cc.xml +++ /dev/null @@ -1,254 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T2 MISO Processing -################################################### - --> -<block> - <name>MISO Processing</name> - <key>dtv_dvbt2_miso_cc</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt2_miso_cc($carriermode.val, $fftsize.val, $pilotpattern.val, $guardinterval.val, $numdatasyms, #slurp -#if str($version) == 'VERSION_111' -$paprmode1.val, #slurp -#else -$paprmode2.val, #slurp -#end if -)</make> - <param> - <name>Extended Carrier Mode</name> - <key>carriermode</key> - <type>enum</type> - <option> - <name>Normal</name> - <key>CARRIERS_NORMAL</key> - <opt>val:dtv.CARRIERS_NORMAL</opt> - </option> - <option> - <name>Extended</name> - <key>CARRIERS_EXTENDED</key> - <opt>val:dtv.CARRIERS_EXTENDED</opt> - </option> - </param> - <param> - <name>FFT Size</name> - <key>fftsize</key> - <type>enum</type> - <option> - <name>1K</name> - <key>FFTSIZE_1K</key> - <opt>val:dtv.FFTSIZE_1K</opt> - </option> - <option> - <name>2K</name> - <key>FFTSIZE_2K</key> - <opt>val:dtv.FFTSIZE_2K</opt> - </option> - <option> - <name>4K</name> - <key>FFTSIZE_4K</key> - <opt>val:dtv.FFTSIZE_4K</opt> - </option> - <option> - <name>8K</name> - <key>FFTSIZE_8K</key> - <opt>val:dtv.FFTSIZE_8K</opt> - </option> - <option> - <name>8K DVB-T2 GI</name> - <key>FFTSIZE_8K_T2GI</key> - <opt>val:dtv.FFTSIZE_8K_T2GI</opt> - </option> - <option> - <name>16K</name> - <key>FFTSIZE_16K</key> - <opt>val:dtv.FFTSIZE_16K</opt> - </option> - <option> - <name>16K DVB-T2 GI</name> - <key>FFTSIZE_16K_T2GI</key> - <opt>val:dtv.FFTSIZE_16K_T2GI</opt> - </option> - <option> - <name>32K</name> - <key>FFTSIZE_32K</key> - <opt>val:dtv.FFTSIZE_32K</opt> - </option> - <option> - <name>32K DVB-T2 GI</name> - <key>FFTSIZE_32K_T2GI</key> - <opt>val:dtv.FFTSIZE_32K_T2GI</opt> - </option> - </param> - <param> - <name>Pilot Pattern</name> - <key>pilotpattern</key> - <type>enum</type> - <option> - <name>PP1</name> - <key>PILOT_PP1</key> - <opt>val:dtv.PILOT_PP1</opt> - </option> - <option> - <name>PP2</name> - <key>PILOT_PP2</key> - <opt>val:dtv.PILOT_PP2</opt> - </option> - <option> - <name>PP3</name> - <key>PILOT_PP3</key> - <opt>val:dtv.PILOT_PP3</opt> - </option> - <option> - <name>PP4</name> - <key>PILOT_PP4</key> - <opt>val:dtv.PILOT_PP4</opt> - </option> - <option> - <name>PP5</name> - <key>PILOT_PP5</key> - <opt>val:dtv.PILOT_PP5</opt> - </option> - <option> - <name>PP6</name> - <key>PILOT_PP6</key> - <opt>val:dtv.PILOT_PP6</opt> - </option> - <option> - <name>PP7</name> - <key>PILOT_PP7</key> - <opt>val:dtv.PILOT_PP7</opt> - </option> - <option> - <name>PP8</name> - <key>PILOT_PP8</key> - <opt>val:dtv.PILOT_PP8</opt> - </option> - </param> - <param> - <name>Guard Interval</name> - <key>guardinterval</key> - <type>enum</type> - <option> - <name>1/32</name> - <key>GI_1_32</key> - <opt>val:dtv.GI_1_32</opt> - </option> - <option> - <name>1/16</name> - <key>GI_1_16</key> - <opt>val:dtv.GI_1_16</opt> - </option> - <option> - <name>1/8</name> - <key>GI_1_8</key> - <opt>val:dtv.GI_1_8</opt> - </option> - <option> - <name>1/4</name> - <key>GI_1_4</key> - <opt>val:dtv.GI_1_4</opt> - </option> - <option> - <name>1/128</name> - <key>GI_1_128</key> - <opt>val:dtv.GI_1_128</opt> - </option> - <option> - <name>19/128</name> - <key>GI_19_128</key> - <opt>val:dtv.GI_19_128</opt> - </option> - <option> - <name>19/256</name> - <key>GI_19_256</key> - <opt>val:dtv.GI_19_256</opt> - </option> - </param> - <param> - <name>Number of Data Symbols</name> - <key>numdatasyms</key> - <value>100</value> - <type>int</type> - </param> - <param> - <name>PAPR Mode</name> - <key>paprmode1</key> - <type>enum</type> - <hide>$version.hide_111</hide> - <option> - <name>Off</name> - <key>PAPR_OFF</key> - <opt>val:dtv.PAPR_OFF</opt> - </option> - <option> - <name>Active Constellation Extension</name> - <key>PAPR_ACE</key> - <opt>val:dtv.PAPR_ACE</opt> - </option> - <option> - <name>Tone Reservation</name> - <key>PAPR_TR</key> - <opt>val:dtv.PAPR_TR</opt> - </option> - <option> - <name>Both ACE and TR</name> - <key>PAPR_BOTH</key> - <opt>val:dtv.PAPR_BOTH</opt> - </option> - </param> - <param> - <name>PAPR Mode</name> - <key>paprmode2</key> - <type>enum</type> - <hide>$version.hide_131</hide> - <option> - <name>P2 Only</name> - <key>PAPR_OFF</key> - <opt>val:dtv.PAPR_OFF</opt> - </option> - <option> - <name>Active Constellation Extension</name> - <key>PAPR_ACE</key> - <opt>val:dtv.PAPR_ACE</opt> - </option> - <option> - <name>Tone Reservation</name> - <key>PAPR_TR</key> - <opt>val:dtv.PAPR_TR</opt> - </option> - <option> - <name>Both ACE and TR</name> - <key>PAPR_BOTH</key> - <opt>val:dtv.PAPR_BOTH</opt> - </option> - </param> - <param> - <name>Specification Version</name> - <key>version</key> - <type>enum</type> - <option> - <name>1.1.1</name> - <key>VERSION_111</key> - <opt>val:dtv.VERSION_111</opt> - <opt>hide_111:</opt> - <opt>hide_131:all</opt> - </option> - <option> - <name>1.3.1</name> - <key>VERSION_131</key> - <opt>val:dtv.VERSION_131</opt> - <opt>hide_111:all</opt> - <opt>hide_131:</opt> - </option> - </param> - <sink> - <name>in</name> - <type>complex</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - <nports>2</nports> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt2_modulator_bc.block.yml b/gr-dtv/grc/dtv_dvbt2_modulator_bc.block.yml new file mode 100644 index 0000000000..5b1a9dd831 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt2_modulator_bc.block.yml @@ -0,0 +1,39 @@ +id: dtv_dvbt2_modulator_bc +label: DVB-T2 Modulator + +parameters: +- id: framesize + label: FECFRAME size + dtype: enum + options: [FECFRAME_NORMAL, FECFRAME_SHORT] + option_labels: [Normal, Short] + option_attributes: + val: [dtv.FECFRAME_NORMAL, dtv.FECFRAME_SHORT] +- id: constellation + label: Constellation + dtype: enum + options: [MOD_QPSK, MOD_16QAM, MOD_64QAM, MOD_256QAM] + option_labels: [QPSK, 16QAM, 64QAM, 256QAM] + option_attributes: + val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM, dtv.MOD_256QAM] +- id: rotation + label: Constellation rotation + dtype: enum + options: [ROTATION_OFF, ROTATION_ON] + option_labels: ['Off', 'On'] + option_attributes: + val: [dtv.ROTATION_OFF, dtv.ROTATION_ON] + +inputs: +- domain: stream + dtype: byte + +outputs: +- domain: stream + dtype: complex + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt2_modulator_bc(${framesize.val}, ${constellation.val}, ${rotation.val}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt2_modulator_bc.xml b/gr-dtv/grc/dtv_dvbt2_modulator_bc.xml deleted file mode 100644 index 6bf17b831d..0000000000 --- a/gr-dtv/grc/dtv_dvbt2_modulator_bc.xml +++ /dev/null @@ -1,75 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T2 QPSK/QAM Modulator -################################################### - --> -<block> - <name>DVB-T2 Modulator</name> - <key>dtv_dvbt2_modulator_bc</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt2_modulator_bc($framesize.val, $constellation.val, $rotation.val)</make> - <param> - <name>FECFRAME size</name> - <key>framesize</key> - <type>enum</type> - <option> - <name>Normal</name> - <key>FECFRAME_NORMAL</key> - <opt>val:dtv.FECFRAME_NORMAL</opt> - </option> - <option> - <name>Short</name> - <key>FECFRAME_SHORT</key> - <opt>val:dtv.FECFRAME_SHORT</opt> - </option> - </param> - <param> - <name>Constellation</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>QPSK</name> - <key>MOD_QPSK</key> - <opt>val:dtv.MOD_QPSK</opt> - </option> - <option> - <name>16QAM</name> - <key>MOD_16QAM</key> - <opt>val:dtv.MOD_16QAM</opt> - </option> - <option> - <name>64QAM</name> - <key>MOD_64QAM</key> - <opt>val:dtv.MOD_64QAM</opt> - </option> - <option> - <name>256QAM</name> - <key>MOD_256QAM</key> - <opt>val:dtv.MOD_256QAM</opt> - </option> - </param> - <param> - <name>Constellation rotation</name> - <key>rotation</key> - <type>enum</type> - <option> - <name>Off</name> - <key>ROTATION_OFF</key> - <opt>val:dtv.ROTATION_OFF</opt> - </option> - <option> - <name>On</name> - <key>ROTATION_ON</key> - <opt>val:dtv.ROTATION_ON</opt> - </option> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt2_p1insertion_cc.block.yml b/gr-dtv/grc/dtv_dvbt2_p1insertion_cc.block.yml new file mode 100644 index 0000000000..2749f035d0 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt2_p1insertion_cc.block.yml @@ -0,0 +1,122 @@ +id: dtv_dvbt2_p1insertion_cc +label: P1 Symbol Insertion + +parameters: +- id: carriermode + label: Extended Carrier Mode + dtype: enum + options: [CARRIERS_NORMAL, CARRIERS_EXTENDED] + option_labels: [Normal, Extended] + option_attributes: + val: [dtv.CARRIERS_NORMAL, dtv.CARRIERS_EXTENDED] +- id: fftsize1 + label: FFT Size + dtype: enum + options: [FFTSIZE_1K, FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K, + FFTSIZE_32K, FFTSIZE_32K_T2GI] + option_labels: [1K, 2K, 4K, 8K, 8K DVB-T2 GI, 16K, 32K, 32K DVB-T2 GI] + option_attributes: + val: [dtv.FFTSIZE_1K, dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI, + dtv.FFTSIZE_16K, dtv.FFTSIZE_32K, dtv.FFTSIZE_32K_T2GI] + hide: ${ (preamble1.hide_base if str(version) == 'VERSION_111' else preamble2.hide_base) + } +- id: fftsize2 + label: FFT Size + dtype: enum + options: [FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K, FFTSIZE_16K_T2GI] + option_labels: [2K, 4K, 8K, 8K DVB-T2 GI, 16K, 16K DVB-T2 GI] + option_attributes: + val: [dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI, + dtv.FFTSIZE_16K, dtv.FFTSIZE_16K_T2GI] + hide: ${ (preamble1.hide_lite if str(version) == 'VERSION_111' else preamble2.hide_lite) + } +- id: guardinterval + label: Guard Interval + dtype: enum + options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4, GI_1_128, GI_19_128, GI_19_256] + option_labels: [1/32, 1/16, 1/8, 1/4, 1/128, 19/128, 19/256] + option_attributes: + val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4, dtv.GI_1_128, dtv.GI_19_128, + dtv.GI_19_256] +- id: numdatasyms + label: Number of Data Symbols + dtype: int + default: '100' +- id: version + label: Specification Version + dtype: enum + options: [VERSION_111, VERSION_131] + option_labels: [1.1.1, 1.3.1] + option_attributes: + hide_111: ['', all] + hide_131: [all, ''] + val: [dtv.VERSION_111, dtv.VERSION_131] +- id: preamble1 + label: Preamble + dtype: enum + options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO] + option_labels: [T2 SISO, T2 MISO] + option_attributes: + hide_base: ['', ''] + hide_lite: [all, all] + val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO] + hide: ${ version.hide_111 } +- id: preamble2 + label: Preamble + dtype: enum + options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO, PREAMBLE_T2_LITE_SISO, PREAMBLE_T2_LITE_MISO] + option_labels: [T2 SISO, T2 MISO, T2-Lite SISO, T2-Lite MISO] + option_attributes: + hide_base: ['', '', all, all] + hide_lite: [all, all, '', ''] + val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO, dtv.PREAMBLE_T2_LITE_SISO, + dtv.PREAMBLE_T2_LITE_MISO] + hide: ${ version.hide_131 } +- id: showlevels + label: Show Peak IQ Levels + dtype: enum + options: [SHOWLEVELS_OFF, SHOWLEVELS_ON] + option_labels: ['Off', 'On'] + option_attributes: + hide_vclip: [all, ''] + val: [dtv.SHOWLEVELS_OFF, dtv.SHOWLEVELS_ON] +- id: vclip + label: Vclip + dtype: float + default: '3.3' + hide: ${ showlevels.hide_vclip } + +inputs: +- domain: stream + dtype: complex + +outputs: +- domain: stream + dtype: complex + +templates: + imports: from gnuradio import dtv + make: |- + dtv.dvbt2_p1insertion_cc( + ${carriermode.val}, + % if str(version) == 'VERSION_111': + ${fftsize1.val}, + % else: + % if str(preamble2) == 'PREAMBLE_T2_SISO' or str(preamble2) == 'PREAMBLE_T2_MISO': + ${fftsize1.val}, + % else: + ${fftsize2.val}, + % endif + % endif + ${guardinterval.val}, + ${numdatasyms}, + % if str(version) == 'VERSION_111': + ${preamble1.val}, + % else: + ${preamble2.val}, + % endif + ${showlevels.val}, + ${vclip} + ) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt2_p1insertion_cc.xml b/gr-dtv/grc/dtv_dvbt2_p1insertion_cc.xml deleted file mode 100644 index c73cf72ae0..0000000000 --- a/gr-dtv/grc/dtv_dvbt2_p1insertion_cc.xml +++ /dev/null @@ -1,276 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T2 P1 Symbol Insertion -################################################### - --> -<block> - <name>P1 Symbol Insertion</name> - <key>dtv_dvbt2_p1insertion_cc</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt2_p1insertion_cc($carriermode.val, #slurp -#if str($version) == 'VERSION_111' -$fftsize1.val, #slurp -#else -#if str($preamble2) == 'PREAMBLE_T2_SISO' or str($preamble2) == 'PREAMBLE_T2_MISO' -$fftsize1.val, #slurp -#else -$fftsize2.val, #slurp -#end if -#end if -$guardinterval.val, $numdatasyms, #slurp -#if str($version) == 'VERSION_111' -$preamble1.val, #slurp -#else -$preamble2.val, #slurp -#end if -$showlevels.val, $vclip)</make> - <param> - <name>Extended Carrier Mode</name> - <key>carriermode</key> - <type>enum</type> - <option> - <name>Normal</name> - <key>CARRIERS_NORMAL</key> - <opt>val:dtv.CARRIERS_NORMAL</opt> - </option> - <option> - <name>Extended</name> - <key>CARRIERS_EXTENDED</key> - <opt>val:dtv.CARRIERS_EXTENDED</opt> - </option> - </param> - <param> - <name>FFT Size</name> - <key>fftsize1</key> - <type>enum</type> - <hide>#if str($version) == 'VERSION_111' then $preamble1.hide_base else $preamble2.hide_base</hide> - <option> - <name>1K</name> - <key>FFTSIZE_1K</key> - <opt>val:dtv.FFTSIZE_1K</opt> - </option> - <option> - <name>2K</name> - <key>FFTSIZE_2K</key> - <opt>val:dtv.FFTSIZE_2K</opt> - </option> - <option> - <name>4K</name> - <key>FFTSIZE_4K</key> - <opt>val:dtv.FFTSIZE_4K</opt> - </option> - <option> - <name>8K</name> - <key>FFTSIZE_8K</key> - <opt>val:dtv.FFTSIZE_8K</opt> - </option> - <option> - <name>8K DVB-T2 GI</name> - <key>FFTSIZE_8K_T2GI</key> - <opt>val:dtv.FFTSIZE_8K_T2GI</opt> - </option> - <option> - <name>16K</name> - <key>FFTSIZE_16K</key> - <opt>val:dtv.FFTSIZE_16K</opt> - </option> - <option> - <name>32K</name> - <key>FFTSIZE_32K</key> - <opt>val:dtv.FFTSIZE_32K</opt> - </option> - <option> - <name>32K DVB-T2 GI</name> - <key>FFTSIZE_32K_T2GI</key> - <opt>val:dtv.FFTSIZE_32K_T2GI</opt> - </option> - </param> - <param> - <name>FFT Size</name> - <key>fftsize2</key> - <type>enum</type> - <hide>#if str($version) == 'VERSION_111' then $preamble1.hide_lite else $preamble2.hide_lite</hide> - <option> - <name>2K</name> - <key>FFTSIZE_2K</key> - <opt>val:dtv.FFTSIZE_2K</opt> - </option> - <option> - <name>4K</name> - <key>FFTSIZE_4K</key> - <opt>val:dtv.FFTSIZE_4K</opt> - </option> - <option> - <name>8K</name> - <key>FFTSIZE_8K</key> - <opt>val:dtv.FFTSIZE_8K</opt> - </option> - <option> - <name>8K DVB-T2 GI</name> - <key>FFTSIZE_8K_T2GI</key> - <opt>val:dtv.FFTSIZE_8K_T2GI</opt> - </option> - <option> - <name>16K</name> - <key>FFTSIZE_16K</key> - <opt>val:dtv.FFTSIZE_16K</opt> - </option> - <option> - <name>16K DVB-T2 GI</name> - <key>FFTSIZE_16K_T2GI</key> - <opt>val:dtv.FFTSIZE_16K_T2GI</opt> - </option> - </param> - <param> - <name>Guard Interval</name> - <key>guardinterval</key> - <type>enum</type> - <option> - <name>1/32</name> - <key>GI_1_32</key> - <opt>val:dtv.GI_1_32</opt> - </option> - <option> - <name>1/16</name> - <key>GI_1_16</key> - <opt>val:dtv.GI_1_16</opt> - </option> - <option> - <name>1/8</name> - <key>GI_1_8</key> - <opt>val:dtv.GI_1_8</opt> - </option> - <option> - <name>1/4</name> - <key>GI_1_4</key> - <opt>val:dtv.GI_1_4</opt> - </option> - <option> - <name>1/128</name> - <key>GI_1_128</key> - <opt>val:dtv.GI_1_128</opt> - </option> - <option> - <name>19/128</name> - <key>GI_19_128</key> - <opt>val:dtv.GI_19_128</opt> - </option> - <option> - <name>19/256</name> - <key>GI_19_256</key> - <opt>val:dtv.GI_19_256</opt> - </option> - </param> - <param> - <name>Number of Data Symbols</name> - <key>numdatasyms</key> - <value>100</value> - <type>int</type> - </param> - <param> - <name>Specification Version</name> - <key>version</key> - <type>enum</type> - <option> - <name>1.1.1</name> - <key>VERSION_111</key> - <opt>val:dtv.VERSION_111</opt> - <opt>hide_111:</opt> - <opt>hide_131:all</opt> - </option> - <option> - <name>1.3.1</name> - <key>VERSION_131</key> - <opt>val:dtv.VERSION_131</opt> - <opt>hide_111:all</opt> - <opt>hide_131:</opt> - </option> - </param> - <param> - <name>Preamble</name> - <key>preamble1</key> - <type>enum</type> - <hide>$version.hide_111</hide> - <option> - <name>T2 SISO</name> - <key>PREAMBLE_T2_SISO</key> - <opt>val:dtv.PREAMBLE_T2_SISO</opt> - <opt>hide_lite:all</opt> - <opt>hide_base:</opt> - </option> - <option> - <name>T2 MISO</name> - <key>PREAMBLE_T2_MISO</key> - <opt>val:dtv.PREAMBLE_T2_MISO</opt> - <opt>hide_lite:all</opt> - <opt>hide_base:</opt> - </option> - </param> - <param> - <name>Preamble</name> - <key>preamble2</key> - <type>enum</type> - <hide>$version.hide_131</hide> - <option> - <name>T2 SISO</name> - <key>PREAMBLE_T2_SISO</key> - <opt>val:dtv.PREAMBLE_T2_SISO</opt> - <opt>hide_lite:all</opt> - <opt>hide_base:</opt> - </option> - <option> - <name>T2 MISO</name> - <key>PREAMBLE_T2_MISO</key> - <opt>val:dtv.PREAMBLE_T2_MISO</opt> - <opt>hide_lite:all</opt> - <opt>hide_base:</opt> - </option> - <option> - <name>T2-Lite SISO</name> - <key>PREAMBLE_T2_LITE_SISO</key> - <opt>val:dtv.PREAMBLE_T2_LITE_SISO</opt> - <opt>hide_lite:</opt> - <opt>hide_base:all</opt> - </option> - <option> - <name>T2-Lite MISO</name> - <key>PREAMBLE_T2_LITE_MISO</key> - <opt>val:dtv.PREAMBLE_T2_LITE_MISO</opt> - <opt>hide_lite:</opt> - <opt>hide_base:all</opt> - </option> - </param> - <param> - <name>Show Peak IQ Levels</name> - <key>showlevels</key> - <type>enum</type> - <option> - <name>Off</name> - <key>SHOWLEVELS_OFF</key> - <opt>val:dtv.SHOWLEVELS_OFF</opt> - <opt>hide_vclip:all</opt> - </option> - <option> - <name>On</name> - <key>SHOWLEVELS_ON</key> - <opt>val:dtv.SHOWLEVELS_ON</opt> - <opt>hide_vclip:</opt> - </option> - </param> - <param> - <name>Vclip</name> - <key>vclip</key> - <value>3.3</value> - <type>float</type> - <hide>$showlevels.hide_vclip</hide> - </param> - <sink> - <name>in</name> - <type>complex</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt2_paprtr_cc.block.yml b/gr-dtv/grc/dtv_dvbt2_paprtr_cc.block.yml new file mode 100644 index 0000000000..646291b1af --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt2_paprtr_cc.block.yml @@ -0,0 +1,118 @@ +id: dtv_dvbt2_paprtr_cc +label: Tone Reservation PAPR + +parameters: +- id: carriermode + label: Extended Carrier Mode + dtype: enum + options: [CARRIERS_NORMAL, CARRIERS_EXTENDED] + option_labels: [Normal, Extended] + option_attributes: + val: [dtv.CARRIERS_NORMAL, dtv.CARRIERS_EXTENDED] +- id: fftsize + label: FFT Size + dtype: enum + options: [FFTSIZE_1K, FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K, + FFTSIZE_16K_T2GI, FFTSIZE_32K, FFTSIZE_32K_T2GI] + option_labels: [1K, 2K, 4K, 8K, 8K DVB-T2 GI, 16K, 16K DVB-T2 GI, 32K, 32K DVB-T2 + GI] + option_attributes: + val: [dtv.FFTSIZE_1K, dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI, + dtv.FFTSIZE_16K, dtv.FFTSIZE_16K_T2GI, dtv.FFTSIZE_32K, dtv.FFTSIZE_32K_T2GI] + vlength: ['1024', '2048', '4096', '8192', '8192', '16384', '16384', '32768', + '32768'] + hide: ${ 'part' if vlen == 1 else 'none' } +- id: pilotpattern + label: Pilot Pattern + dtype: enum + options: [PILOT_PP1, PILOT_PP2, PILOT_PP3, PILOT_PP4, PILOT_PP5, PILOT_PP6, PILOT_PP7, + PILOT_PP8] + option_labels: [PP1, PP2, PP3, PP4, PP5, PP6, PP7, PP8] + option_attributes: + val: [dtv.PILOT_PP1, dtv.PILOT_PP2, dtv.PILOT_PP3, dtv.PILOT_PP4, dtv.PILOT_PP5, + dtv.PILOT_PP6, dtv.PILOT_PP7, dtv.PILOT_PP8] +- id: guardinterval + label: Guard Interval + dtype: enum + options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4, GI_1_128, GI_19_128, GI_19_256] + option_labels: [1/32, 1/16, 1/8, 1/4, 1/128, 19/128, 19/256] + option_attributes: + val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4, dtv.GI_1_128, dtv.GI_19_128, + dtv.GI_19_256] +- id: numdatasyms + label: Number of Data Symbols + dtype: int + default: '100' +- id: paprmode1 + label: PAPR Mode + dtype: enum + options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH] + option_labels: ['Off', Active Constellation Extension, Tone Reservation, Both + ACE and TR] + option_attributes: + hide_vclip: [all, all, '', ''] + val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH] + hide: ${ version.hide_111 } +- id: paprmode2 + label: PAPR Mode + dtype: enum + options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH] + option_labels: [P2 Only, Active Constellation Extension, Tone Reservation, Both + ACE and TR] + option_attributes: + hide_vclip: [all, all, '', ''] + val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH] + hide: ${ version.hide_131 } +- id: version + label: Specification Version + dtype: enum + options: [VERSION_111, VERSION_131] + option_labels: [1.1.1, 1.3.1] + option_attributes: + hide_111: ['', all] + hide_131: [all, ''] + val: [dtv.VERSION_111, dtv.VERSION_131] +- id: vclip + label: Vclip + dtype: float + default: '3.3' + hide: ${ (paprmode1.hide_vclip if str(version) == 'VERSION_111' else paprmode2.hide_vclip) + } +- id: iterations + label: Iterations + dtype: int + default: '10' + hide: ${ (paprmode1.hide_vclip if str(version) == 'VERSION_111' else paprmode2.hide_vclip) + } + +inputs: +- domain: stream + dtype: complex + vlen: ${ fftsize.vlength } + +outputs: +- domain: stream + dtype: complex + vlen: ${ fftsize.vlength } + +templates: + imports: from gnuradio import dtv + make: |- + dtv.dvbt2_paprtr_cc( + ${carriermode.val}, + ${fftsize.val}, + ${pilotpattern.val}, + ${guardinterval.val}, + ${numdatasyms}, + % if str(version) == 'VERSION_111': + ${paprmode1.val}, + % else: + ${paprmode2.val}, + % endif + ${version.val}, + ${vclip}, + ${iterations}, + ${fftsize.vlength} + ) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt2_paprtr_cc.xml b/gr-dtv/grc/dtv_dvbt2_paprtr_cc.xml deleted file mode 100644 index 4fa37ef5b8..0000000000 --- a/gr-dtv/grc/dtv_dvbt2_paprtr_cc.xml +++ /dev/null @@ -1,286 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T2 Tone Reservation PAPR -################################################### - --> -<block> - <name>Tone Reservation PAPR</name> - <key>dtv_dvbt2_paprtr_cc</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt2_paprtr_cc($carriermode.val, $fftsize.val, $pilotpattern.val, $guardinterval.val, $numdatasyms, #slurp -#if str($version) == 'VERSION_111' -$paprmode1.val, #slurp -#else -$paprmode2.val, #slurp -#end if -$version.val, $vclip, $iterations, $fftsize.vlength)</make> - <param> - <name>Extended Carrier Mode</name> - <key>carriermode</key> - <type>enum</type> - <option> - <name>Normal</name> - <key>CARRIERS_NORMAL</key> - <opt>val:dtv.CARRIERS_NORMAL</opt> - </option> - <option> - <name>Extended</name> - <key>CARRIERS_EXTENDED</key> - <opt>val:dtv.CARRIERS_EXTENDED</opt> - </option> - </param> - <param> - <name>FFT Size</name> - <key>fftsize</key> - <type>enum</type> - <option> - <name>1K</name> - <key>FFTSIZE_1K</key> - <opt>val:dtv.FFTSIZE_1K</opt> - <opt>vlength:1024</opt> - </option> - <option> - <name>2K</name> - <key>FFTSIZE_2K</key> - <opt>val:dtv.FFTSIZE_2K</opt> - <opt>vlength:2048</opt> - </option> - <option> - <name>4K</name> - <key>FFTSIZE_4K</key> - <opt>val:dtv.FFTSIZE_4K</opt> - <opt>vlength:4096</opt> - </option> - <option> - <name>8K</name> - <key>FFTSIZE_8K</key> - <opt>val:dtv.FFTSIZE_8K</opt> - <opt>vlength:8192</opt> - </option> - <option> - <name>8K DVB-T2 GI</name> - <key>FFTSIZE_8K_T2GI</key> - <opt>val:dtv.FFTSIZE_8K_T2GI</opt> - <opt>vlength:8192</opt> - </option> - <option> - <name>16K</name> - <key>FFTSIZE_16K</key> - <opt>val:dtv.FFTSIZE_16K</opt> - <opt>vlength:16384</opt> - </option> - <option> - <name>16K DVB-T2 GI</name> - <key>FFTSIZE_16K_T2GI</key> - <opt>val:dtv.FFTSIZE_16K_T2GI</opt> - <opt>vlength:16384</opt> - </option> - <option> - <name>32K</name> - <key>FFTSIZE_32K</key> - <opt>val:dtv.FFTSIZE_32K</opt> - <opt>vlength:32768</opt> - </option> - <option> - <name>32K DVB-T2 GI</name> - <key>FFTSIZE_32K_T2GI</key> - <opt>val:dtv.FFTSIZE_32K_T2GI</opt> - <opt>vlength:32768</opt> - </option> - </param> - <param> - <name>Pilot Pattern</name> - <key>pilotpattern</key> - <type>enum</type> - <option> - <name>PP1</name> - <key>PILOT_PP1</key> - <opt>val:dtv.PILOT_PP1</opt> - </option> - <option> - <name>PP2</name> - <key>PILOT_PP2</key> - <opt>val:dtv.PILOT_PP2</opt> - </option> - <option> - <name>PP3</name> - <key>PILOT_PP3</key> - <opt>val:dtv.PILOT_PP3</opt> - </option> - <option> - <name>PP4</name> - <key>PILOT_PP4</key> - <opt>val:dtv.PILOT_PP4</opt> - </option> - <option> - <name>PP5</name> - <key>PILOT_PP5</key> - <opt>val:dtv.PILOT_PP5</opt> - </option> - <option> - <name>PP6</name> - <key>PILOT_PP6</key> - <opt>val:dtv.PILOT_PP6</opt> - </option> - <option> - <name>PP7</name> - <key>PILOT_PP7</key> - <opt>val:dtv.PILOT_PP7</opt> - </option> - <option> - <name>PP8</name> - <key>PILOT_PP8</key> - <opt>val:dtv.PILOT_PP8</opt> - </option> - </param> - <param> - <name>Guard Interval</name> - <key>guardinterval</key> - <type>enum</type> - <option> - <name>1/32</name> - <key>GI_1_32</key> - <opt>val:dtv.GI_1_32</opt> - </option> - <option> - <name>1/16</name> - <key>GI_1_16</key> - <opt>val:dtv.GI_1_16</opt> - </option> - <option> - <name>1/8</name> - <key>GI_1_8</key> - <opt>val:dtv.GI_1_8</opt> - </option> - <option> - <name>1/4</name> - <key>GI_1_4</key> - <opt>val:dtv.GI_1_4</opt> - </option> - <option> - <name>1/128</name> - <key>GI_1_128</key> - <opt>val:dtv.GI_1_128</opt> - </option> - <option> - <name>19/128</name> - <key>GI_19_128</key> - <opt>val:dtv.GI_19_128</opt> - </option> - <option> - <name>19/256</name> - <key>GI_19_256</key> - <opt>val:dtv.GI_19_256</opt> - </option> - </param> - <param> - <name>Number of Data Symbols</name> - <key>numdatasyms</key> - <value>100</value> - <type>int</type> - </param> - <param> - <name>PAPR Mode</name> - <key>paprmode1</key> - <type>enum</type> - <hide>$version.hide_111</hide> - <option> - <name>Off</name> - <key>PAPR_OFF</key> - <opt>val:dtv.PAPR_OFF</opt> - <opt>hide_vclip:all</opt> - </option> - <option> - <name>Active Constellation Extension</name> - <key>PAPR_ACE</key> - <opt>val:dtv.PAPR_ACE</opt> - <opt>hide_vclip:all</opt> - </option> - <option> - <name>Tone Reservation</name> - <key>PAPR_TR</key> - <opt>val:dtv.PAPR_TR</opt> - <opt>hide_vclip:</opt> - </option> - <option> - <name>Both ACE and TR</name> - <key>PAPR_BOTH</key> - <opt>val:dtv.PAPR_BOTH</opt> - <opt>hide_vclip:</opt> - </option> - </param> - <param> - <name>PAPR Mode</name> - <key>paprmode2</key> - <type>enum</type> - <hide>$version.hide_131</hide> - <option> - <name>P2 Only</name> - <key>PAPR_OFF</key> - <opt>val:dtv.PAPR_OFF</opt> - <opt>hide_vclip:all</opt> - </option> - <option> - <name>Active Constellation Extension</name> - <key>PAPR_ACE</key> - <opt>val:dtv.PAPR_ACE</opt> - <opt>hide_vclip:all</opt> - </option> - <option> - <name>Tone Reservation</name> - <key>PAPR_TR</key> - <opt>val:dtv.PAPR_TR</opt> - <opt>hide_vclip:</opt> - </option> - <option> - <name>Both ACE and TR</name> - <key>PAPR_BOTH</key> - <opt>val:dtv.PAPR_BOTH</opt> - <opt>hide_vclip:</opt> - </option> - </param> - <param> - <name>Specification Version</name> - <key>version</key> - <type>enum</type> - <option> - <name>1.1.1</name> - <key>VERSION_111</key> - <opt>val:dtv.VERSION_111</opt> - <opt>hide_111:</opt> - <opt>hide_131:all</opt> - </option> - <option> - <name>1.3.1</name> - <key>VERSION_131</key> - <opt>val:dtv.VERSION_131</opt> - <opt>hide_111:all</opt> - <opt>hide_131:</opt> - </option> - </param> - <param> - <name>Vclip</name> - <key>vclip</key> - <value>3.3</value> - <type>float</type> - <hide>#if str($version) == 'VERSION_111' then $paprmode1.hide_vclip else $paprmode2.hide_vclip</hide> - </param> - <param> - <name>Iterations</name> - <key>iterations</key> - <value>10</value> - <type>int</type> - <hide>#if str($version) == 'VERSION_111' then $paprmode1.hide_vclip else $paprmode2.hide_vclip</hide> - </param> - <sink> - <name>in</name> - <type>complex</type> - <vlen>$fftsize.vlength</vlen> - </sink> - <source> - <name>out</name> - <type>complex</type> - <vlen>$fftsize.vlength</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.block.yml b/gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.block.yml new file mode 100644 index 0000000000..1e9d7a9b74 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.block.yml @@ -0,0 +1,155 @@ +id: dtv_dvbt2_pilotgenerator_cc +label: Pilot Generator and IFFT + +parameters: +- id: carriermode + label: Extended Carrier Mode + dtype: enum + options: [CARRIERS_NORMAL, CARRIERS_EXTENDED] + option_labels: [Normal, Extended] + option_attributes: + val: [dtv.CARRIERS_NORMAL, dtv.CARRIERS_EXTENDED] +- id: fftsize + label: FFT Size + dtype: enum + options: [FFTSIZE_1K, FFTSIZE_2K, FFTSIZE_4K, FFTSIZE_8K, FFTSIZE_8K_T2GI, FFTSIZE_16K, + FFTSIZE_16K_T2GI, FFTSIZE_32K, FFTSIZE_32K_T2GI] + option_labels: [1K, 2K, 4K, 8K, 8K DVB-T2 GI, 16K, 16K DVB-T2 GI, 32K, 32K DVB-T2 + GI] + option_attributes: + val: [dtv.FFTSIZE_1K, dtv.FFTSIZE_2K, dtv.FFTSIZE_4K, dtv.FFTSIZE_8K, dtv.FFTSIZE_8K_T2GI, + dtv.FFTSIZE_16K, dtv.FFTSIZE_16K_T2GI, dtv.FFTSIZE_32K, dtv.FFTSIZE_32K_T2GI] + vlength: ['1024', '2048', '4096', '8192', '8192', '16384', '16384', '32768', + '32768'] + hide: ${ 'part' if vlen == 1 else 'none' } +- id: pilotpattern + label: Pilot Pattern + dtype: enum + options: [PILOT_PP1, PILOT_PP2, PILOT_PP3, PILOT_PP4, PILOT_PP5, PILOT_PP6, PILOT_PP7, + PILOT_PP8] + option_labels: [PP1, PP2, PP3, PP4, PP5, PP6, PP7, PP8] + option_attributes: + val: [dtv.PILOT_PP1, dtv.PILOT_PP2, dtv.PILOT_PP3, dtv.PILOT_PP4, dtv.PILOT_PP5, + dtv.PILOT_PP6, dtv.PILOT_PP7, dtv.PILOT_PP8] +- id: guardinterval + label: Guard Interval + dtype: enum + options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4, GI_1_128, GI_19_128, GI_19_256] + option_labels: [1/32, 1/16, 1/8, 1/4, 1/128, 19/128, 19/256] + option_attributes: + val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4, dtv.GI_1_128, dtv.GI_19_128, + dtv.GI_19_256] +- id: numdatasyms + label: Number of Data Symbols + dtype: int + default: '100' +- id: paprmode1 + label: PAPR Mode + dtype: enum + options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH] + option_labels: ['Off', Active Constellation Extension, Tone Reservation, Both + ACE and TR] + option_attributes: + val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH] + hide: ${ version.hide_111 } +- id: paprmode2 + label: PAPR Mode + dtype: enum + options: [PAPR_OFF, PAPR_ACE, PAPR_TR, PAPR_BOTH] + option_labels: [P2 Only, Active Constellation Extension, Tone Reservation, Both + ACE and TR] + option_attributes: + val: [dtv.PAPR_OFF, dtv.PAPR_ACE, dtv.PAPR_TR, dtv.PAPR_BOTH] + hide: ${ version.hide_131 } +- id: version + label: Specification Version + dtype: enum + options: [VERSION_111, VERSION_131] + option_labels: [1.1.1, 1.3.1] + option_attributes: + hide_111: ['', all] + hide_131: [all, ''] + val: [dtv.VERSION_111, dtv.VERSION_131] +- id: preamble1 + label: Preamble + dtype: enum + options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO] + option_labels: [T2 SISO, T2 MISO] + option_attributes: + hide_miso: [all, ''] + val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO] + hide: ${ version.hide_111 } +- id: preamble2 + label: Preamble + dtype: enum + options: [PREAMBLE_T2_SISO, PREAMBLE_T2_MISO, PREAMBLE_T2_LITE_SISO, PREAMBLE_T2_LITE_MISO] + option_labels: [T2 SISO, T2 MISO, T2-Lite SISO, T2-Lite MISO] + option_attributes: + hide_miso: [all, '', all, ''] + val: [dtv.PREAMBLE_T2_SISO, dtv.PREAMBLE_T2_MISO, dtv.PREAMBLE_T2_LITE_SISO, + dtv.PREAMBLE_T2_LITE_MISO] + hide: ${ version.hide_131 } +- id: misogroup + label: MISO Group + dtype: enum + options: [MISO_TX1, MISO_TX2] + option_labels: [TX1, TX2] + option_attributes: + val: [dtv.MISO_TX1, dtv.MISO_TX2] + hide: ${ (preamble1.hide_miso if str(version) == 'VERSION_111' else preamble2.hide_miso) + } +- id: equalization + label: Sin(x)/x Equalization + dtype: enum + options: [EQUALIZATION_OFF, EQUALIZATION_ON] + option_labels: ['Off', 'On'] + option_attributes: + hide_bandwidth: [all, ''] + val: [dtv.EQUALIZATION_OFF, dtv.EQUALIZATION_ON] +- id: bandwidth + label: Bandwidth + dtype: enum + options: [BANDWIDTH_1_7_MHZ, BANDWIDTH_5_0_MHZ, BANDWIDTH_6_0_MHZ, BANDWIDTH_7_0_MHZ, + BANDWIDTH_8_0_MHZ, BANDWIDTH_10_0_MHZ] + option_labels: [1.7 MHz, 5 MHz, 6 MHz, 7 MHz, 8 MHz, 10 MHz] + option_attributes: + val: [dtv.BANDWIDTH_1_7_MHZ, dtv.BANDWIDTH_5_0_MHZ, dtv.BANDWIDTH_6_0_MHZ, + dtv.BANDWIDTH_7_0_MHZ, dtv.BANDWIDTH_8_0_MHZ, dtv.BANDWIDTH_10_0_MHZ] + hide: ${ equalization.hide_bandwidth } + +inputs: +- domain: stream + dtype: complex + +outputs: +- domain: stream + dtype: complex + vlen: ${ fftsize.vlength } + +templates: + imports: from gnuradio import dtv + make: |- + dtv.dvbt2_pilotgenerator_cc( + ${carriermode.val}, + ${fftsize.val}, + ${pilotpattern.val}, + ${guardinterval.val}, + ${numdatasyms}, + % if str(version) == 'VERSION_111': + ${paprmode1.val}, + % else: + ${paprmode2.val}, + % endif + ${version.val}, + % if str(version) == 'VERSION_111': + ${preamble1.val}, + % else: + ${preamble2.val}, + % endif + ${misogroup.val}, + ${equalization.val}, + ${bandwidth.val}, + ${fftsize.vlength} + ) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.xml b/gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.xml deleted file mode 100644 index fdcac6489d..0000000000 --- a/gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.xml +++ /dev/null @@ -1,386 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T2 Pilot Generator -################################################### - --> -<block> - <name>Pilot Generator and IFFT</name> - <key>dtv_dvbt2_pilotgenerator_cc</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt2_pilotgenerator_cc($carriermode.val, $fftsize.val, $pilotpattern.val, $guardinterval.val, $numdatasyms, #slurp -#if str($version) == 'VERSION_111' -$paprmode1.val, #slurp -#else -$paprmode2.val, #slurp -#end if -$version.val, #slurp -#if str($version) == 'VERSION_111' -$preamble1.val, #slurp -#else -$preamble2.val, #slurp -#end if -$misogroup.val, $equalization.val, $bandwidth.val, $fftsize.vlength)</make> - <param> - <name>Extended Carrier Mode</name> - <key>carriermode</key> - <type>enum</type> - <option> - <name>Normal</name> - <key>CARRIERS_NORMAL</key> - <opt>val:dtv.CARRIERS_NORMAL</opt> - </option> - <option> - <name>Extended</name> - <key>CARRIERS_EXTENDED</key> - <opt>val:dtv.CARRIERS_EXTENDED</opt> - </option> - </param> - <param> - <name>FFT Size</name> - <key>fftsize</key> - <type>enum</type> - <option> - <name>1K</name> - <key>FFTSIZE_1K</key> - <opt>val:dtv.FFTSIZE_1K</opt> - <opt>vlength:1024</opt> - </option> - <option> - <name>2K</name> - <key>FFTSIZE_2K</key> - <opt>val:dtv.FFTSIZE_2K</opt> - <opt>vlength:2048</opt> - </option> - <option> - <name>4K</name> - <key>FFTSIZE_4K</key> - <opt>val:dtv.FFTSIZE_4K</opt> - <opt>vlength:4096</opt> - </option> - <option> - <name>8K</name> - <key>FFTSIZE_8K</key> - <opt>val:dtv.FFTSIZE_8K</opt> - <opt>vlength:8192</opt> - </option> - <option> - <name>8K DVB-T2 GI</name> - <key>FFTSIZE_8K_T2GI</key> - <opt>val:dtv.FFTSIZE_8K_T2GI</opt> - <opt>vlength:8192</opt> - </option> - <option> - <name>16K</name> - <key>FFTSIZE_16K</key> - <opt>val:dtv.FFTSIZE_16K</opt> - <opt>vlength:16384</opt> - </option> - <option> - <name>16K DVB-T2 GI</name> - <key>FFTSIZE_16K_T2GI</key> - <opt>val:dtv.FFTSIZE_16K_T2GI</opt> - <opt>vlength:16384</opt> - </option> - <option> - <name>32K</name> - <key>FFTSIZE_32K</key> - <opt>val:dtv.FFTSIZE_32K</opt> - <opt>vlength:32768</opt> - </option> - <option> - <name>32K DVB-T2 GI</name> - <key>FFTSIZE_32K_T2GI</key> - <opt>val:dtv.FFTSIZE_32K_T2GI</opt> - <opt>vlength:32768</opt> - </option> - </param> - <param> - <name>Pilot Pattern</name> - <key>pilotpattern</key> - <type>enum</type> - <option> - <name>PP1</name> - <key>PILOT_PP1</key> - <opt>val:dtv.PILOT_PP1</opt> - </option> - <option> - <name>PP2</name> - <key>PILOT_PP2</key> - <opt>val:dtv.PILOT_PP2</opt> - </option> - <option> - <name>PP3</name> - <key>PILOT_PP3</key> - <opt>val:dtv.PILOT_PP3</opt> - </option> - <option> - <name>PP4</name> - <key>PILOT_PP4</key> - <opt>val:dtv.PILOT_PP4</opt> - </option> - <option> - <name>PP5</name> - <key>PILOT_PP5</key> - <opt>val:dtv.PILOT_PP5</opt> - </option> - <option> - <name>PP6</name> - <key>PILOT_PP6</key> - <opt>val:dtv.PILOT_PP6</opt> - </option> - <option> - <name>PP7</name> - <key>PILOT_PP7</key> - <opt>val:dtv.PILOT_PP7</opt> - </option> - <option> - <name>PP8</name> - <key>PILOT_PP8</key> - <opt>val:dtv.PILOT_PP8</opt> - </option> - </param> - <param> - <name>Guard Interval</name> - <key>guardinterval</key> - <type>enum</type> - <option> - <name>1/32</name> - <key>GI_1_32</key> - <opt>val:dtv.GI_1_32</opt> - </option> - <option> - <name>1/16</name> - <key>GI_1_16</key> - <opt>val:dtv.GI_1_16</opt> - </option> - <option> - <name>1/8</name> - <key>GI_1_8</key> - <opt>val:dtv.GI_1_8</opt> - </option> - <option> - <name>1/4</name> - <key>GI_1_4</key> - <opt>val:dtv.GI_1_4</opt> - </option> - <option> - <name>1/128</name> - <key>GI_1_128</key> - <opt>val:dtv.GI_1_128</opt> - </option> - <option> - <name>19/128</name> - <key>GI_19_128</key> - <opt>val:dtv.GI_19_128</opt> - </option> - <option> - <name>19/256</name> - <key>GI_19_256</key> - <opt>val:dtv.GI_19_256</opt> - </option> - </param> - <param> - <name>Number of Data Symbols</name> - <key>numdatasyms</key> - <value>100</value> - <type>int</type> - </param> - <param> - <name>PAPR Mode</name> - <key>paprmode1</key> - <type>enum</type> - <hide>$version.hide_111</hide> - <option> - <name>Off</name> - <key>PAPR_OFF</key> - <opt>val:dtv.PAPR_OFF</opt> - </option> - <option> - <name>Active Constellation Extension</name> - <key>PAPR_ACE</key> - <opt>val:dtv.PAPR_ACE</opt> - </option> - <option> - <name>Tone Reservation</name> - <key>PAPR_TR</key> - <opt>val:dtv.PAPR_TR</opt> - </option> - <option> - <name>Both ACE and TR</name> - <key>PAPR_BOTH</key> - <opt>val:dtv.PAPR_BOTH</opt> - </option> - </param> - <param> - <name>PAPR Mode</name> - <key>paprmode2</key> - <type>enum</type> - <hide>$version.hide_131</hide> - <option> - <name>P2 Only</name> - <key>PAPR_OFF</key> - <opt>val:dtv.PAPR_OFF</opt> - </option> - <option> - <name>Active Constellation Extension</name> - <key>PAPR_ACE</key> - <opt>val:dtv.PAPR_ACE</opt> - </option> - <option> - <name>Tone Reservation</name> - <key>PAPR_TR</key> - <opt>val:dtv.PAPR_TR</opt> - </option> - <option> - <name>Both ACE and TR</name> - <key>PAPR_BOTH</key> - <opt>val:dtv.PAPR_BOTH</opt> - </option> - </param> - <param> - <name>Specification Version</name> - <key>version</key> - <type>enum</type> - <option> - <name>1.1.1</name> - <key>VERSION_111</key> - <opt>val:dtv.VERSION_111</opt> - <opt>hide_111:</opt> - <opt>hide_131:all</opt> - </option> - <option> - <name>1.3.1</name> - <key>VERSION_131</key> - <opt>val:dtv.VERSION_131</opt> - <opt>hide_111:all</opt> - <opt>hide_131:</opt> - </option> - </param> - <param> - <name>Preamble</name> - <key>preamble1</key> - <type>enum</type> - <hide>$version.hide_111</hide> - <option> - <name>T2 SISO</name> - <key>PREAMBLE_T2_SISO</key> - <opt>val:dtv.PREAMBLE_T2_SISO</opt> - <opt>hide_miso:all</opt> - </option> - <option> - <name>T2 MISO</name> - <key>PREAMBLE_T2_MISO</key> - <opt>val:dtv.PREAMBLE_T2_MISO</opt> - <opt>hide_miso:</opt> - </option> - </param> - <param> - <name>Preamble</name> - <key>preamble2</key> - <type>enum</type> - <hide>$version.hide_131</hide> - <option> - <name>T2 SISO</name> - <key>PREAMBLE_T2_SISO</key> - <opt>val:dtv.PREAMBLE_T2_SISO</opt> - <opt>hide_miso:all</opt> - </option> - <option> - <name>T2 MISO</name> - <key>PREAMBLE_T2_MISO</key> - <opt>val:dtv.PREAMBLE_T2_MISO</opt> - <opt>hide_miso:</opt> - </option> - <option> - <name>T2-Lite SISO</name> - <key>PREAMBLE_T2_LITE_SISO</key> - <opt>val:dtv.PREAMBLE_T2_LITE_SISO</opt> - <opt>hide_miso:all</opt> - </option> - <option> - <name>T2-Lite MISO</name> - <key>PREAMBLE_T2_LITE_MISO</key> - <opt>val:dtv.PREAMBLE_T2_LITE_MISO</opt> - <opt>hide_miso:</opt> - </option> - </param> - <param> - <name>MISO Group</name> - <key>misogroup</key> - <type>enum</type> - <hide>#if str($version) == 'VERSION_111' then $preamble1.hide_miso else $preamble2.hide_miso</hide> - <option> - <name>TX1</name> - <key>MISO_TX1</key> - <opt>val:dtv.MISO_TX1</opt> - </option> - <option> - <name>TX2</name> - <key>MISO_TX2</key> - <opt>val:dtv.MISO_TX2</opt> - </option> - </param> - <param> - <name>Sin(x)/x Equalization</name> - <key>equalization</key> - <type>enum</type> - <option> - <name>Off</name> - <key>EQUALIZATION_OFF</key> - <opt>val:dtv.EQUALIZATION_OFF</opt> - <opt>hide_bandwidth:all</opt> - </option> - <option> - <name>On</name> - <key>EQUALIZATION_ON</key> - <opt>val:dtv.EQUALIZATION_ON</opt> - <opt>hide_bandwidth:</opt> - </option> - </param> - <param> - <name>Bandwidth</name> - <key>bandwidth</key> - <type>enum</type> - <hide>$equalization.hide_bandwidth</hide> - <option> - <name>1.7 MHz</name> - <key>BANDWIDTH_1_7_MHZ</key> - <opt>val:dtv.BANDWIDTH_1_7_MHZ</opt> - </option> - <option> - <name>5 MHz</name> - <key>BANDWIDTH_5_0_MHZ</key> - <opt>val:dtv.BANDWIDTH_5_0_MHZ</opt> - </option> - <option> - <name>6 MHz</name> - <key>BANDWIDTH_6_0_MHZ</key> - <opt>val:dtv.BANDWIDTH_6_0_MHZ</opt> - </option> - <option> - <name>7 MHz</name> - <key>BANDWIDTH_7_0_MHZ</key> - <opt>val:dtv.BANDWIDTH_7_0_MHZ</opt> - </option> - <option> - <name>8 MHz</name> - <key>BANDWIDTH_8_0_MHZ</key> - <opt>val:dtv.BANDWIDTH_8_0_MHZ</opt> - </option> - <option> - <name>10 MHz</name> - <key>BANDWIDTH_10_0_MHZ</key> - <opt>val:dtv.BANDWIDTH_10_0_MHZ</opt> - </option> - </param> - <sink> - <name>in</name> - <type>complex</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - <vlen>$fftsize.vlength</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.block.yml b/gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.block.yml new file mode 100644 index 0000000000..0431f30881 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.block.yml @@ -0,0 +1,47 @@ +id: dtv_dvbt_bit_inner_deinterleaver +label: Bit Inner Deinterleaver + +parameters: +- id: constellation + label: Constellation Type + dtype: enum + options: [qpsk, 16qam, 64qam] + option_labels: [QPSK, 16QAM, 64QAM] + option_attributes: + val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM] +- id: hierarchy + label: Hierarchy Type + dtype: enum + options: [nh, alpha1, alpha2, alpha4] + option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4] + option_attributes: + num_streams: ['1', '2', '2', '2'] + val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4] + hide: part +- id: transmission_mode + label: Transmission Mode + dtype: enum + options: [T2k, T8k] + option_labels: [2K, 8K] + option_attributes: + payload_length: ['1512', '6048'] + val: [dtv.T2k, dtv.T8k] + hide: ${ 'part' if vlen == 1 else 'none' } + +inputs: +- domain: stream + dtype: byte + vlen: ${ transmission_mode.payload_length } + +outputs: +- domain: stream + dtype: byte + vlen: ${ transmission_mode.payload_length } + multiplicity: ${ hierarchy.num_streams } + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt_bit_inner_deinterleaver(${transmission_mode.payload_length}, ${constellation.val}, + ${hierarchy.val}, ${transmission_mode.val}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.xml b/gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.xml deleted file mode 100644 index ff338d2118..0000000000 --- a/gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.xml +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T Bit Inner Deinterleaver -################################################### - --> -<block> - <name>Bit Inner Deinterleaver</name> - <key>dtv_dvbt_bit_inner_deinterleaver</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_bit_inner_deinterleaver($transmission_mode.payload_length, $constellation.val, $hierarchy.val, $transmission_mode.val)</make> - <param> - <name>Constellation Type</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>QPSK</name> - <key>qpsk</key> - <opt>val:dtv.MOD_QPSK</opt> - </option> - <option> - <name>16QAM</name> - <key>16qam</key> - <opt>val:dtv.MOD_16QAM</opt> - </option> - <option> - <name>64QAM</name> - <key>64qam</key> - <opt>val:dtv.MOD_64QAM</opt> - </option> - </param> - <param> - <name>Hierarchy Type</name> - <key>hierarchy</key> - <type>enum</type> - <option> - <name>Non Hierarchical</name> - <key>nh</key> - <opt>val:dtv.NH</opt> - <opt>num_streams:1</opt> - </option> - <option> - <name>Alpha 1</name> - <key>alpha1</key> - <opt>val:dtv.ALPHA1</opt> - <opt>num_streams:2</opt> - </option> - <option> - <name>Alpha 2</name> - <key>alpha2</key> - <opt>val:dtv.ALPHA2</opt> - <opt>num_streams:2</opt> - </option> - <option> - <name>Alpha 4</name> - <key>alpha4</key> - <opt>val:dtv.ALPHA4</opt> - <opt>num_streams:2</opt> - </option> - </param> - <param> - <name>Transmission Mode</name> - <key>transmission_mode</key> - <type>enum</type> - <option> - <name>2K</name> - <key>T2k</key> - <opt>val:dtv.T2k</opt> - <opt>payload_length:1512</opt> - </option> - <option> - <name>8K</name> - <key>T8k</key> - <opt>val:dtv.T8k</opt> - <opt>payload_length:6048</opt> - </option> - </param> - <sink> - <name>in</name> - <type>byte</type> - <vlen>$transmission_mode.payload_length</vlen> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>$transmission_mode.payload_length</vlen> - <nports>$hierarchy.num_streams</nports> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.block.yml b/gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.block.yml new file mode 100644 index 0000000000..1d9b40473f --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.block.yml @@ -0,0 +1,47 @@ +id: dtv_dvbt_bit_inner_interleaver +label: Bit Inner Interleaver + +parameters: +- id: constellation + label: Constellation Type + dtype: enum + options: [qpsk, 16qam, 64qam] + option_labels: [QPSK, 16QAM, 64QAM] + option_attributes: + val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM] +- id: hierarchy + label: Hierarchy Type + dtype: enum + options: [nh, alpha1, alpha2, alpha4] + option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4] + option_attributes: + num_streams: ['1', '2', '2', '2'] + val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4] + hide: part +- id: transmission_mode + label: Transmission Mode + dtype: enum + options: [T2k, T8k] + option_labels: [2K, 8K] + option_attributes: + payload_length: ['1512', '6048'] + val: [dtv.T2k, dtv.T8k] + hide: ${ 'part' if vlen == 1 else 'none' } + +inputs: +- domain: stream + dtype: byte + vlen: ${ transmission_mode.payload_length } + multiplicity: ${ hierarchy.num_streams } + +outputs: +- domain: stream + dtype: byte + vlen: ${ transmission_mode.payload_length } + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt_bit_inner_interleaver(${transmission_mode.payload_length}, ${constellation.val}, + ${hierarchy.val}, ${transmission_mode.val}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.xml b/gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.xml deleted file mode 100644 index 31f1c2cfa5..0000000000 --- a/gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.xml +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T Bit Inner Interleaver -################################################### - --> -<block> - <name>Bit Inner Interleaver</name> - <key>dtv_dvbt_bit_inner_interleaver</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_bit_inner_interleaver($transmission_mode.payload_length, $constellation.val, $hierarchy.val, $transmission_mode.val)</make> - <param> - <name>Constellation Type</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>QPSK</name> - <key>qpsk</key> - <opt>val:dtv.MOD_QPSK</opt> - </option> - <option> - <name>16QAM</name> - <key>16qam</key> - <opt>val:dtv.MOD_16QAM</opt> - </option> - <option> - <name>64QAM</name> - <key>64qam</key> - <opt>val:dtv.MOD_64QAM</opt> - </option> - </param> - <param> - <name>Hierarchy Type</name> - <key>hierarchy</key> - <type>enum</type> - <option> - <name>Non Hierarchical</name> - <key>nh</key> - <opt>val:dtv.NH</opt> - <opt>num_streams:1</opt> - </option> - <option> - <name>Alpha 1</name> - <key>alpha1</key> - <opt>val:dtv.ALPHA1</opt> - <opt>num_streams:2</opt> - </option> - <option> - <name>Alpha 2</name> - <key>alpha2</key> - <opt>val:dtv.ALPHA2</opt> - <opt>num_streams:2</opt> - </option> - <option> - <name>Alpha 4</name> - <key>alpha4</key> - <opt>val:dtv.ALPHA4</opt> - <opt>num_streams:2</opt> - </option> - </param> - <param> - <name>Transmission Mode</name> - <key>transmission_mode</key> - <type>enum</type> - <option> - <name>2K</name> - <key>T2k</key> - <opt>val:dtv.T2k</opt> - <opt>payload_length:1512</opt> - </option> - <option> - <name>8K</name> - <key>T8k</key> - <opt>val:dtv.T8k</opt> - <opt>payload_length:6048</opt> - </option> - </param> - <sink> - <name>in</name> - <type>byte</type> - <vlen>$transmission_mode.payload_length</vlen> - <nports>$hierarchy.num_streams</nports> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>$transmission_mode.payload_length</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.block.yml b/gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.block.yml new file mode 100644 index 0000000000..b4b5708bcc --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.block.yml @@ -0,0 +1,39 @@ +id: dtv_dvbt_convolutional_deinterleaver +label: Convolutional Deinterleaver + +parameters: +- id: blocks + label: Blocks (12 Bytes) + dtype: int + default: '136' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: I + label: Number of Shift registers + dtype: int + default: '12' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: M + label: Depth of shift registers + dtype: int + default: '17' + +inputs: +- domain: stream + dtype: byte + vlen: 1 + +outputs: +- domain: stream + dtype: byte + vlen: ${ blocks*I } + +asserts: +- ${ blocks > 0 } +- ${ I > 0 } +- ${ M > 0 } + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt_convolutional_deinterleaver(${blocks}, ${I}, ${M}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.xml b/gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.xml deleted file mode 100644 index 315920bd42..0000000000 --- a/gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.xml +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T Convolutional Deinterleaver -################################################### - --> -<block> - <name>Convolutional Deinterleaver</name> - <key>dtv_dvbt_convolutional_deinterleaver</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_convolutional_deinterleaver($blocks, $I, $M)</make> - <param> - <name>Blocks (12 Bytes)</name> - <key>blocks</key> - <value>136</value> - <type>int</type> - </param> - <param> - <name>Number of Shift registers</name> - <key>I</key> - <value>12</value> - <type>int</type> - </param> - <param> - <name>Depth of shift registers</name> - <key>M</key> - <value>17</value> - <type>int</type> - </param> - <check>$blocks > 0</check> - <check>$I > 0</check> - <check>$M > 0</check> - <sink> - <name>in</name> - <type>byte</type> - <vlen>1</vlen> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>$blocks*$I</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_convolutional_interleaver.block.yml b/gr-dtv/grc/dtv_dvbt_convolutional_interleaver.block.yml new file mode 100644 index 0000000000..e47f1d09e9 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_convolutional_interleaver.block.yml @@ -0,0 +1,39 @@ +id: dtv_dvbt_convolutional_interleaver +label: Convolutional Interleaver + +parameters: +- id: blocks + label: Blocks (12 Bytes) + dtype: int + default: '136' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: I + label: Number of Shift registers + dtype: int + default: '12' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: M + label: Depth of shift registers + dtype: int + default: '17' + +inputs: +- domain: stream + dtype: byte + vlen: ${ blocks*I } + +outputs: +- domain: stream + dtype: byte + vlen: 1 + +asserts: +- ${ blocks > 0 } +- ${ I > 0 } +- ${ M > 0 } + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt_convolutional_interleaver(${blocks}, ${I}, ${M}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_convolutional_interleaver.xml b/gr-dtv/grc/dtv_dvbt_convolutional_interleaver.xml deleted file mode 100644 index 04518dd622..0000000000 --- a/gr-dtv/grc/dtv_dvbt_convolutional_interleaver.xml +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T Convolutional Interleaver -################################################### - --> -<block> - <name>Convolutional Interleaver</name> - <key>dtv_dvbt_convolutional_interleaver</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_convolutional_interleaver($blocks, $I, $M)</make> - <param> - <name>Blocks (12 Bytes)</name> - <key>blocks</key> - <value>136</value> - <type>int</type> - </param> - <param> - <name>Number of Shift registers</name> - <key>I</key> - <value>12</value> - <type>int</type> - </param> - <param> - <name>Depth of shift registers</name> - <key>M</key> - <value>17</value> - <type>int</type> - </param> - <check>$blocks > 0</check> - <check>$I > 0</check> - <check>$M > 0</check> - <sink> - <name>in</name> - <type>byte</type> - <vlen>$blocks*$I</vlen> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>1</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_demap.block.yml b/gr-dtv/grc/dtv_dvbt_demap.block.yml new file mode 100644 index 0000000000..857bcf3463 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_demap.block.yml @@ -0,0 +1,48 @@ +id: dtv_dvbt_demap +label: DVB-T Demap + +parameters: +- id: constellation + label: Constellation Type + dtype: enum + options: [qpsk, 16qam, 64qam] + option_labels: [QPSK, 16QAM, 64QAM] + option_attributes: + val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM] +- id: hierarchy + label: Hierarchy Type + dtype: enum + options: [nh, alpha1, alpha2, alpha4] + option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4] + option_attributes: + val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4] +- id: transmission_mode + label: Transmission Mode + dtype: enum + options: [T2k, T8k] + option_labels: [2K, 8K] + option_attributes: + payload_length: ['1512', '6048'] + val: [dtv.T2k, dtv.T8k] + hide: ${ 'part' if vlen == 1 else 'none' } +- id: gain + label: Gain + dtype: complex + default: '1' + +inputs: +- domain: stream + dtype: complex + vlen: ${ transmission_mode.payload_length } + +outputs: +- domain: stream + dtype: byte + vlen: ${ transmission_mode.payload_length } + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt_demap(${transmission_mode.payload_length}, ${constellation.val}, + ${hierarchy.val}, ${transmission_mode.val}, ${gain}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_demap.xml b/gr-dtv/grc/dtv_dvbt_demap.xml deleted file mode 100644 index 2268ed7cf5..0000000000 --- a/gr-dtv/grc/dtv_dvbt_demap.xml +++ /dev/null @@ -1,90 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T Demap -################################################### - --> -<block> - <name>DVB-T Demap</name> - <key>dtv_dvbt_demap</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_demap($transmission_mode.payload_length, $constellation.val, $hierarchy.val, $transmission_mode.val, $gain)</make> - <param> - <name>Constellation Type</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>QPSK</name> - <key>qpsk</key> - <opt>val:dtv.MOD_QPSK</opt> - </option> - <option> - <name>16QAM</name> - <key>16qam</key> - <opt>val:dtv.MOD_16QAM</opt> - </option> - <option> - <name>64QAM</name> - <key>64qam</key> - <opt>val:dtv.MOD_64QAM</opt> - </option> - </param> - <param> - <name>Hierarchy Type</name> - <key>hierarchy</key> - <type>enum</type> - <option> - <name>Non Hierarchical</name> - <key>nh</key> - <opt>val:dtv.NH</opt> - </option> - <option> - <name>Alpha 1</name> - <key>alpha1</key> - <opt>val:dtv.ALPHA1</opt> - </option> - <option> - <name>Alpha 2</name> - <key>alpha2</key> - <opt>val:dtv.ALPHA2</opt> - </option> - <option> - <name>Alpha 4</name> - <key>alpha4</key> - <opt>val:dtv.ALPHA4</opt> - </option> - </param> - <param> - <name>Transmission Mode</name> - <key>transmission_mode</key> - <type>enum</type> - <option> - <name>2K</name> - <key>T2k</key> - <opt>val:dtv.T2k</opt> - <opt>payload_length:1512</opt> - </option> - <option> - <name>8K</name> - <key>T8k</key> - <opt>val:dtv.T8k</opt> - <opt>payload_length:6048</opt> - </option> - </param> - <param> - <name>Gain</name> - <key>gain</key> - <value>1</value> - <type>complex</type> - </param> - <sink> - <name>in</name> - <type>complex</type> - <vlen>$transmission_mode.payload_length</vlen> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>$transmission_mode.payload_length</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_demod_reference_signals.block.yml b/gr-dtv/grc/dtv_dvbt_demod_reference_signals.block.yml new file mode 100644 index 0000000000..dbd26e9502 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_demod_reference_signals.block.yml @@ -0,0 +1,95 @@ +id: dtv_dvbt_demod_reference_signals +label: Demod Reference Signals + +parameters: +- id: type + label: IO Type + dtype: enum + options: [complex, float, int, short, byte] + option_attributes: + size: [gr.sizeof_gr_complex, gr.sizeof_float, gr.sizeof_int, gr.sizeof_short, + gr.sizeof_char] +- id: constellation + label: Constellation Type + dtype: enum + options: [qpsk, 16qam, 64qam] + option_labels: [QPSK, 16QAM, 64QAM] + option_attributes: + val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM] +- id: hierarchy + label: Hierarchy Type + dtype: enum + options: [nh, alpha1, alpha2, alpha4] + option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4] + option_attributes: + val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4] +- id: code_rate_hp + label: Code rate HP + dtype: enum + options: [C1_2, C2_3, C3_4, C5_6, C7_8] + option_labels: [1/2, 2/3, 3/4, 5/6, 7/8] + option_attributes: + val: [dtv.C1_2, dtv.C2_3, dtv.C3_4, dtv.C5_6, dtv.C7_8] +- id: code_rate_lp + label: Code rate LP + dtype: enum + options: [C1_2, C2_3, C3_4, C5_6, C7_8] + option_labels: [1/2, 2/3, 3/4, 5/6, 7/8] + option_attributes: + val: [dtv.C1_2, dtv.C2_3, dtv.C3_4, dtv.C5_6, dtv.C7_8] +- id: guard_interval + label: Guard Interval + dtype: enum + options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4] + option_labels: [1/32, 1/16, 1/8, 1/4] + option_attributes: + val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4] +- id: transmission_mode + label: Transmission Mode + dtype: enum + options: [T2k, T8k] + option_labels: [2K, 8K] + option_attributes: + fft_length: ['2048', '8192'] + payload_length: ['1512', '6048'] + val: [dtv.T2k, dtv.T8k] + hide: ${ 'part' if vlen == 1 else 'none' } +- id: include_cell_id + label: Include Cell ID + dtype: enum + options: [call_id_yes, cell_id_no] + option_labels: ['Yes', 'No'] + option_attributes: + val: ['1', '0'] +- id: cell_id + label: Cell Id + dtype: int + default: '0' + +inputs: +- domain: stream + dtype: complex + vlen: ${ transmission_mode.fft_length } + +outputs: +- domain: stream + dtype: complex + vlen: ${ transmission_mode.payload_length } + +templates: + imports: from gnuradio import dtv + make: |- + dtv.dvbt_demod_reference_signals( + ${type.size}, + ${transmission_mode.fft_length}, + ${transmission_mode.payload_length}, + ${constellation.val}, + ${hierarchy.val}, + ${code_rate_hp.val}, + ${code_rate_lp.val}, + ${guard_interval.val}, + ${transmission_mode.val}, + ${include_cell_id.val}, + ${cell_id}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_demod_reference_signals.xml b/gr-dtv/grc/dtv_dvbt_demod_reference_signals.xml deleted file mode 100644 index f92469b7e6..0000000000 --- a/gr-dtv/grc/dtv_dvbt_demod_reference_signals.xml +++ /dev/null @@ -1,222 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## Demod Reference Signals -################################################### - --> -<block> - <name>Demod Reference Signals</name> - <key>dtv_dvbt_demod_reference_signals</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_demod_reference_signals($type.size, $transmission_mode.fft_length, $transmission_mode.payload_length, $constellation.val, $hierarchy.val, $code_rate_hp.val, $code_rate_lp.val, $guard_interval.val, $transmission_mode.val, $include_cell_id.val, $cell_id)</make> - <param> - <name>IO Type</name> - <key>type</key> - <type>enum</type> - <option> - <name>Complex</name> - <key>complex</key> - <opt>size:gr.sizeof_gr_complex</opt> - </option> - <option> - <name>Float</name> - <key>float</key> - <opt>size:gr.sizeof_float</opt> - </option> - <option> - <name>Int</name> - <key>int</key> - <opt>size:gr.sizeof_int</opt> - </option> - <option> - <name>Short</name> - <key>short</key> - <opt>size:gr.sizeof_short</opt> - </option> - <option> - <name>Byte</name> - <key>byte</key> - <opt>size:gr.sizeof_char</opt> - </option> - </param> - <param> - <name>Constellation Type</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>QPSK</name> - <key>qpsk</key> - <opt>val:dtv.MOD_QPSK</opt> - </option> - <option> - <name>16QAM</name> - <key>16qam</key> - <opt>val:dtv.MOD_16QAM</opt> - </option> - <option> - <name>64QAM</name> - <key>64qam</key> - <opt>val:dtv.MOD_64QAM</opt> - </option> - </param> - <param> - <name>Hierarchy Type</name> - <key>hierarchy</key> - <type>enum</type> - <option> - <name>Non Hierarchical</name> - <key>nh</key> - <opt>val:dtv.NH</opt> - </option> - <option> - <name>Alpha 1</name> - <key>alpha1</key> - <opt>val:dtv.ALPHA1</opt> - </option> - <option> - <name>Alpha 2</name> - <key>alpha2</key> - <opt>val:dtv.ALPHA2</opt> - </option> - <option> - <name>Alpha 4</name> - <key>alpha4</key> - <opt>val:dtv.ALPHA4</opt> - </option> - </param> - <param> - <name>Code rate HP</name> - <key>code_rate_hp</key> - <type>enum</type> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>7/8</name> - <key>C7_8</key> - <opt>val:dtv.C7_8</opt> - </option> - </param> - <param> - <name>Code rate LP</name> - <key>code_rate_lp</key> - <type>enum</type> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>7/8</name> - <key>C7_8</key> - <opt>val:dtv.C7_8</opt> - </option> - </param> - <param> - <name>Guard Interval</name> - <key>guard_interval</key> - <type>enum</type> - <option> - <name>1/32</name> - <key>GI_1_32</key> - <opt>val:dtv.GI_1_32</opt> - </option> - <option> - <name>1/16</name> - <key>GI_1_16</key> - <opt>val:dtv.GI_1_16</opt> - </option> - <option> - <name>1/8</name> - <key>GI_1_8</key> - <opt>val:dtv.GI_1_8</opt> - </option> - <option> - <name>1/4</name> - <key>GI_1_4</key> - <opt>val:dtv.GI_1_4</opt> - </option> - </param> - <param> - <name>Transmission Mode</name> - <key>transmission_mode</key> - <type>enum</type> - <option> - <name>2K</name> - <key>T2k</key> - <opt>val:dtv.T2k</opt> - <opt>fft_length:2048</opt> - <opt>payload_length:1512</opt> - </option> - <option> - <name>8K</name> - <key>T8k</key> - <opt>val:dtv.T8k</opt> - <opt>fft_length:8192</opt> - <opt>payload_length:6048</opt> - </option> - </param> - <param> - <name>Include Cell ID</name> - <key>include_cell_id</key> - <type>enum</type> - <option> - <name>Yes</name> - <key>call_id_yes</key> - <opt>val:1</opt> - </option> - <option> - <name>No</name> - <key>cell_id_no</key> - <opt>val:0</opt> - </option> - </param> - <param> - <name>Cell Id</name> - <key>cell_id</key> - <value>0</value> - <type>int</type> - </param> - <sink> - <name>in</name> - <type>complex</type> - <vlen>$transmission_mode.fft_length</vlen> - </sink> - <source> - <name>out</name> - <type>complex</type> - <vlen>$transmission_mode.payload_length</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_energy_descramble.block.yml b/gr-dtv/grc/dtv_dvbt_energy_descramble.block.yml new file mode 100644 index 0000000000..9ca3fee196 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_energy_descramble.block.yml @@ -0,0 +1,27 @@ +id: dtv_dvbt_energy_descramble +label: Energy Descramble + +parameters: +- id: nsize + label: Blocks(188 Bytes) + dtype: int + default: '8' + +inputs: +- domain: stream + dtype: byte + vlen: 188*8 + +outputs: +- domain: stream + dtype: byte + vlen: 1 + +asserts: +- ${ nsize > 0 } + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt_energy_descramble(${nsize}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_energy_descramble.xml b/gr-dtv/grc/dtv_dvbt_energy_descramble.xml deleted file mode 100644 index 689f85424f..0000000000 --- a/gr-dtv/grc/dtv_dvbt_energy_descramble.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T Energy Descramble -################################################### - --> -<block> - <name>Energy Descramble</name> - <key>dtv_dvbt_energy_descramble</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_energy_descramble($nsize)</make> - <param> - <name>Blocks(188 Bytes)</name> - <key>nsize</key> - <value>8</value> - <type>int</type> - </param> - <check>$nsize > 0</check> - <sink> - <name>in</name> - <type>byte</type> - <vlen>188*8</vlen> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>1</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_energy_dispersal.block.yml b/gr-dtv/grc/dtv_dvbt_energy_dispersal.block.yml new file mode 100644 index 0000000000..1b7628fb65 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_energy_dispersal.block.yml @@ -0,0 +1,28 @@ +id: dtv_dvbt_energy_dispersal +label: Energy Dispersal + +parameters: +- id: nsize + label: Blocks(1504 Bytes) + dtype: int + default: '8' + hide: ${ 'part' if vlen == 1 else 'none' } + +inputs: +- domain: stream + dtype: byte + vlen: 1 + +outputs: +- domain: stream + dtype: byte + vlen: ${ 1504*nsize } + +asserts: +- ${ nsize > 0 } + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt_energy_dispersal(${nsize}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_energy_dispersal.xml b/gr-dtv/grc/dtv_dvbt_energy_dispersal.xml deleted file mode 100644 index 50746c8e4d..0000000000 --- a/gr-dtv/grc/dtv_dvbt_energy_dispersal.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T Energy Dispersal -################################################### - --> -<block> - <name>Energy Dispersal</name> - <key>dtv_dvbt_energy_dispersal</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_energy_dispersal($nsize)</make> - <param> - <name>Blocks(1504 Bytes)</name> - <key>nsize</key> - <value>8</value> - <type>int</type> - </param> - <check>$nsize > 0</check> - <sink> - <name>in</name> - <type>byte</type> - <vlen>1</vlen> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>1504*$nsize</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_inner_coder.block.yml b/gr-dtv/grc/dtv_dvbt_inner_coder.block.yml new file mode 100644 index 0000000000..ca9c2eda4a --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_inner_coder.block.yml @@ -0,0 +1,57 @@ +id: dtv_dvbt_inner_coder +label: Inner Coder + +parameters: +- id: ninput + label: Input length + dtype: int + default: '1' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: noutput + label: Output length + dtype: int + default: '1512' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: constellation + label: Constellation Type + dtype: enum + options: [qpsk, 16qam, 64qam] + option_labels: [QPSK, 16QAM, 64QAM] + option_attributes: + val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM] +- id: hierarchy + label: Hierarchy Type + dtype: enum + options: [nh, alpha1, alpha2, alpha4] + option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4] + option_attributes: + val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4] +- id: code_rate + label: Code rate + dtype: enum + options: [C1_2, C2_3, C3_4, C5_6, C7_8] + option_labels: [1/2, 2/3, 3/4, 5/6, 7/8] + option_attributes: + val: [dtv.C1_2, dtv.C2_3, dtv.C3_4, dtv.C5_6, dtv.C7_8] + +inputs: +- domain: stream + dtype: byte + vlen: ${ ninput } + +outputs: +- domain: stream + dtype: byte + vlen: ${ noutput } + +asserts: +- ${ ninput > 0 } +- ${ noutput > 0 } +- ${ noutput >= ninput } + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt_inner_coder(${ninput}, ${noutput}, ${constellation.val}, ${hierarchy.val}, + ${code_rate.val}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_inner_coder.xml b/gr-dtv/grc/dtv_dvbt_inner_coder.xml deleted file mode 100644 index 4751065dd1..0000000000 --- a/gr-dtv/grc/dtv_dvbt_inner_coder.xml +++ /dev/null @@ -1,112 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T Inner Coder -################################################### - --> -<block> - <name>Inner Coder</name> - <key>dtv_dvbt_inner_coder</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_inner_coder($ninput, $noutput, $constellation.val, $hierarchy.val, $code_rate.val)</make> - <param> - <name>Input length</name> - <key>ninput</key> - <value>1</value> - <type>int</type> - </param> - <param> - <name>Output length</name> - <key>noutput</key> - <value>1512</value> - <type>int</type> - </param> - <param> - <name>Constellation Type</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>QPSK</name> - <key>qpsk</key> - <opt>val:dtv.MOD_QPSK</opt> - </option> - <option> - <name>16QAM</name> - <key>16qam</key> - <opt>val:dtv.MOD_16QAM</opt> - </option> - <option> - <name>64QAM</name> - <key>64qam</key> - <opt>val:dtv.MOD_64QAM</opt> - </option> - </param> - <param> - <name>Hierarchy Type</name> - <key>hierarchy</key> - <type>enum</type> - <option> - <name>Non Hierarchical</name> - <key>nh</key> - <opt>val:dtv.NH</opt> - </option> - <option> - <name>Alpha 1</name> - <key>alpha1</key> - <opt>val:dtv.ALPHA1</opt> - </option> - <option> - <name>Alpha 2</name> - <key>alpha2</key> - <opt>val:dtv.ALPHA2</opt> - </option> - <option> - <name>Alpha 4</name> - <key>alpha4</key> - <opt>val:dtv.ALPHA4</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>code_rate</key> - <type>enum</type> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>7/8</name> - <key>C7_8</key> - <opt>val:dtv.C7_8</opt> - </option> - </param> - <check>$ninput > 0</check> - <check>$noutput > 0</check> - <check>$noutput >= $ninput</check> - <sink> - <name>in</name> - <type>byte</type> - <vlen>$ninput</vlen> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>$noutput</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_map.block.yml b/gr-dtv/grc/dtv_dvbt_map.block.yml new file mode 100644 index 0000000000..76ffa0400b --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_map.block.yml @@ -0,0 +1,48 @@ +id: dtv_dvbt_map +label: DVB-T Map + +parameters: +- id: constellation + label: Constellation Type + dtype: enum + options: [qpsk, 16qam, 64qam] + option_labels: [QPSK, 16QAM, 64QAM] + option_attributes: + val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM] +- id: hierarchy + label: Hierarchy Type + dtype: enum + options: [nh, alpha1, alpha2, alpha4] + option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4] + option_attributes: + val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4] +- id: transmission_mode + label: Transmission Mode + dtype: enum + options: [T2k, T8k] + option_labels: [2K, 8K] + option_attributes: + payload_length: ['1512', '6048'] + val: [dtv.T2k, dtv.T8k] + hide: ${ 'part' if vlen == 1 else 'none' } +- id: gain + label: Gain + dtype: complex + default: '1' + +inputs: +- domain: stream + dtype: byte + vlen: ${ transmission_mode.payload_length } + +outputs: +- domain: stream + dtype: complex + vlen: ${ transmission_mode.payload_length } + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt_map(${transmission_mode.payload_length}, ${constellation.val}, + ${hierarchy.val}, ${transmission_mode.val}, ${gain}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_map.xml b/gr-dtv/grc/dtv_dvbt_map.xml deleted file mode 100644 index 705a508033..0000000000 --- a/gr-dtv/grc/dtv_dvbt_map.xml +++ /dev/null @@ -1,90 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T Map -################################################### - --> -<block> - <name>DVB-T Map</name> - <key>dtv_dvbt_map</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_map($transmission_mode.payload_length, $constellation.val, $hierarchy.val, $transmission_mode.val, $gain)</make> - <param> - <name>Constellation Type</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>QPSK</name> - <key>qpsk</key> - <opt>val:dtv.MOD_QPSK</opt> - </option> - <option> - <name>16QAM</name> - <key>16qam</key> - <opt>val:dtv.MOD_16QAM</opt> - </option> - <option> - <name>64QAM</name> - <key>64qam</key> - <opt>val:dtv.MOD_64QAM</opt> - </option> - </param> - <param> - <name>Hierarchy Type</name> - <key>hierarchy</key> - <type>enum</type> - <option> - <name>Non Hierarchical</name> - <key>nh</key> - <opt>val:dtv.NH</opt> - </option> - <option> - <name>Alpha 1</name> - <key>alpha1</key> - <opt>val:dtv.ALPHA1</opt> - </option> - <option> - <name>Alpha 2</name> - <key>alpha2</key> - <opt>val:dtv.ALPHA2</opt> - </option> - <option> - <name>Alpha 4</name> - <key>alpha4</key> - <opt>val:dtv.ALPHA4</opt> - </option> - </param> - <param> - <name>Transmission Mode</name> - <key>transmission_mode</key> - <type>enum</type> - <option> - <name>2K</name> - <key>T2k</key> - <opt>val:dtv.T2k</opt> - <opt>payload_length:1512</opt> - </option> - <option> - <name>8K</name> - <key>T8k</key> - <opt>val:dtv.T8k</opt> - <opt>payload_length:6048</opt> - </option> - </param> - <param> - <name>Gain</name> - <key>gain</key> - <value>1</value> - <type>complex</type> - </param> - <sink> - <name>in</name> - <type>byte</type> - <vlen>$transmission_mode.payload_length</vlen> - </sink> - <source> - <name>out</name> - <type>complex</type> - <vlen>$transmission_mode.payload_length</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.block.yml b/gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.block.yml new file mode 100644 index 0000000000..fc00654488 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.block.yml @@ -0,0 +1,45 @@ +id: dtv_dvbt_ofdm_sym_acquisition +label: OFDM Symbol Acquisition + +parameters: +- id: type + label: Output Type + dtype: enum + default: float + options: [complex, float, int, short, byte] + option_attributes: + fcn: [c, f, i, s, b] + hide: part +- id: fft_length + label: FFT Length + dtype: int + default: '2048' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: occupied_tones + label: Occupied Tones + dtype: int + default: '1705' +- id: cp_length + label: Cyclic Prefix Length + dtype: int + default: '64' +- id: snr + label: SNR + dtype: real + default: '10' + +inputs: +- domain: stream + dtype: complex + +outputs: +- domain: stream + dtype: ${ type } + vlen: ${ fft_length } + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt_ofdm_sym_acquisition(1, ${fft_length}, ${occupied_tones}, ${cp_length}, + ${snr}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.xml b/gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.xml deleted file mode 100644 index a75dcc02c3..0000000000 --- a/gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.xml +++ /dev/null @@ -1,76 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## OFDM Symbol Acquisition -################################################### - --> -<block> - <name>OFDM Symbol Acquisition</name> - <key>dtv_dvbt_ofdm_sym_acquisition</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_ofdm_sym_acquisition(1, $fft_length, $occupied_tones, $cp_length, $snr)</make> - <param> - <name>Output Type</name> - <key>type</key> - <value>float</value> - <type>enum</type> - <option> - <name>Complex</name> - <key>complex</key> - <opt>fcn:c</opt> - </option> - <option> - <name>Float</name> - <key>float</key> - <opt>fcn:f</opt> - </option> - <option> - <name>Int</name> - <key>int</key> - <opt>fcn:i</opt> - </option> - <option> - <name>Short</name> - <key>short</key> - <opt>fcn:s</opt> - </option> - <option> - <name>Byte</name> - <key>byte</key> - <opt>fcn:b</opt> - </option> - </param> - <param> - <name>FFT Length</name> - <key>fft_length</key> - <value>2048</value> - <type>int</type> - </param> - <param> - <name>Occupied Tones</name> - <key>occupied_tones</key> - <value>1705</value> - <type>int</type> - </param> - <param> - <name>Cyclic Prefix Length</name> - <key>cp_length</key> - <value>64</value> - <type>int</type> - </param> - <param> - <name>SNR</name> - <key>snr</key> - <value>10</value> - <type>real</type> - </param> - <sink> - <name>in</name> - <type>complex</type> - </sink> - <source> - <name>out</name> - <type>$type</type> - <vlen>$fft_length</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_reed_solomon_dec.block.yml b/gr-dtv/grc/dtv_dvbt_reed_solomon_dec.block.yml new file mode 100644 index 0000000000..e037c42e08 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_reed_solomon_dec.block.yml @@ -0,0 +1,57 @@ +id: dtv_dvbt_reed_solomon_dec +label: Reed-Solomon Decoder + +parameters: +- id: p + label: p + dtype: int + default: '2' +- id: m + label: m + dtype: int + default: '8' +- id: gfpoly + label: GF polynomial + dtype: raw + default: '0x11d' +- id: n + label: N + dtype: int + default: '255' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: k + label: K + dtype: int + default: '239' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: t + label: t + dtype: int + default: '8' +- id: s + label: Shortening size + dtype: int + default: '51' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: blocks + label: Blocks + dtype: int + default: '8' + hide: ${ 'part' if vlen == 1 else 'none' } + +inputs: +- domain: stream + dtype: byte + vlen: ${ blocks*(n-s) } + +outputs: +- domain: stream + dtype: byte + vlen: ${ blocks*(k-s) } + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt_reed_solomon_dec(${p}, ${m}, ${gfpoly}, ${n}, ${k}, ${t}, ${s}, + ${blocks}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_reed_solomon_dec.xml b/gr-dtv/grc/dtv_dvbt_reed_solomon_dec.xml deleted file mode 100644 index 798a6d40f8..0000000000 --- a/gr-dtv/grc/dtv_dvbt_reed_solomon_dec.xml +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T Reed Solomon Decoder -################################################### - --> -<block> - <name>Reed-Solomon Decoder</name> - <key>dtv_dvbt_reed_solomon_dec</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_reed_solomon_dec($p, $m, $gfpoly, $n, $k, $t, $s, $blocks)</make> - <param> - <name>p</name> - <key>p</key> - <value>2</value> - <type>int</type> - </param> - <param> - <name>m</name> - <key>m</key> - <value>8</value> - <type>int</type> - </param> - <param> - <name>GF polynomial</name> - <key>gfpoly</key> - <value>0x11d</value> - <type>raw</type> - </param> - <param> - <name>N</name> - <key>n</key> - <value>255</value> - <type>int</type> - </param> - <param> - <name>K</name> - <key>k</key> - <value>239</value> - <type>int</type> - </param> - <param> - <name>t</name> - <key>t</key> - <value>8</value> - <type>int</type> - </param> - <param> - <name>Shortening size</name> - <key>s</key> - <value>51</value> - <type>int</type> - </param> - <param> - <name>Blocks</name> - <key>blocks</key> - <value>8</value> - <type>int</type> - </param> - <sink> - <name>in</name> - <type>byte</type> - <vlen>$blocks*($n-$s)</vlen> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>$blocks*($k-$s)</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_reed_solomon_enc.block.yml b/gr-dtv/grc/dtv_dvbt_reed_solomon_enc.block.yml new file mode 100644 index 0000000000..af463cad4e --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_reed_solomon_enc.block.yml @@ -0,0 +1,57 @@ +id: dtv_dvbt_reed_solomon_enc +label: Reed-Solomon Encoder + +parameters: +- id: p + label: p + dtype: int + default: '2' +- id: m + label: m + dtype: int + default: '8' +- id: gfpoly + label: GF polynomial + dtype: raw + default: '0x11d' +- id: n + label: N + dtype: int + default: '255' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: k + label: K + dtype: int + default: '239' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: t + label: t + dtype: int + default: '8' +- id: s + label: Shortening size + dtype: int + default: '51' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: blocks + label: Blocks + dtype: int + default: '8' + hide: ${ 'part' if vlen == 1 else 'none' } + +inputs: +- domain: stream + dtype: byte + vlen: ${ blocks*(k-s) } + +outputs: +- domain: stream + dtype: byte + vlen: ${ blocks*(n-s) } + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt_reed_solomon_enc(${p}, ${m}, ${gfpoly}, ${n}, ${k}, ${t}, ${s}, + ${blocks}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_reed_solomon_enc.xml b/gr-dtv/grc/dtv_dvbt_reed_solomon_enc.xml deleted file mode 100644 index 3dd57a7df0..0000000000 --- a/gr-dtv/grc/dtv_dvbt_reed_solomon_enc.xml +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T Reed Solomon Encoder -################################################### - --> -<block> - <name>Reed-Solomon Encoder</name> - <key>dtv_dvbt_reed_solomon_enc</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_reed_solomon_enc($p, $m, $gfpoly, $n, $k, $t, $s, $blocks)</make> - <param> - <name>p</name> - <key>p</key> - <value>2</value> - <type>int</type> - </param> - <param> - <name>m</name> - <key>m</key> - <value>8</value> - <type>int</type> - </param> - <param> - <name>GF polynomial</name> - <key>gfpoly</key> - <value>0x11d</value> - <type>raw</type> - </param> - <param> - <name>N</name> - <key>n</key> - <value>255</value> - <type>int</type> - </param> - <param> - <name>K</name> - <key>k</key> - <value>239</value> - <type>int</type> - </param> - <param> - <name>t</name> - <key>t</key> - <value>8</value> - <type>int</type> - </param> - <param> - <name>Shortening size</name> - <key>s</key> - <value>51</value> - <type>int</type> - </param> - <param> - <name>Blocks</name> - <key>blocks</key> - <value>8</value> - <type>int</type> - </param> - <sink> - <name>in</name> - <type>byte</type> - <vlen>$blocks*($k-$s)</vlen> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>$blocks*($n-$s)</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_reference_signals.block.yml b/gr-dtv/grc/dtv_dvbt_reference_signals.block.yml new file mode 100644 index 0000000000..3a3e879391 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_reference_signals.block.yml @@ -0,0 +1,95 @@ +id: dtv_dvbt_reference_signals +label: Reference Signals + +parameters: +- id: type + label: IO Type + dtype: enum + options: [complex, float, int, short, byte] + option_attributes: + size: [gr.sizeof_gr_complex, gr.sizeof_float, gr.sizeof_int, gr.sizeof_short, + gr.sizeof_char] +- id: constellation + label: Constellation Type + dtype: enum + options: [qpsk, 16qam, 64qam] + option_labels: [QPSK, 16QAM, 64QAM] + option_attributes: + val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM] +- id: hierarchy + label: Hierarchy Type + dtype: enum + options: [nh, alpha1, alpha2, alpha4] + option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4] + option_attributes: + val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4] +- id: code_rate_hp + label: Code rate HP + dtype: enum + options: [C1_2, C2_3, C3_4, C5_6, C7_8] + option_labels: [1/2, 2/3, 3/4, 5/6, 7/8] + option_attributes: + val: [dtv.C1_2, dtv.C2_3, dtv.C3_4, dtv.C5_6, dtv.C7_8] +- id: code_rate_lp + label: Code rate LP + dtype: enum + options: [C1_2, C2_3, C3_4, C5_6, C7_8] + option_labels: [1/2, 2/3, 3/4, 5/6, 7/8] + option_attributes: + val: [dtv.C1_2, dtv.C2_3, dtv.C3_4, dtv.C5_6, dtv.C7_8] +- id: guard_interval + label: Guard Interval + dtype: enum + options: [GI_1_32, GI_1_16, GI_1_8, GI_1_4] + option_labels: [1/32, 1/16, 1/8, 1/4] + option_attributes: + val: [dtv.GI_1_32, dtv.GI_1_16, dtv.GI_1_8, dtv.GI_1_4] +- id: transmission_mode + label: Transmission Mode + dtype: enum + options: [T2k, T8k] + option_labels: [2K, 8K] + option_attributes: + fft_length: ['2048', '8192'] + payload_length: ['1512', '6048'] + val: [dtv.T2k, dtv.T8k] + hide: ${ 'part' if vlen == 1 else 'none' } +- id: include_cell_id + label: Include Cell ID + dtype: enum + options: [call_id_yes, cell_id_no] + option_labels: ['Yes', 'No'] + option_attributes: + val: ['1', '0'] +- id: cell_id + label: Cell Id + dtype: int + default: '0' + +inputs: +- domain: stream + dtype: complex + vlen: ${ transmission_mode.payload_length } + +outputs: +- domain: stream + dtype: complex + vlen: ${ transmission_mode.fft_length } + +templates: + imports: from gnuradio import dtv + make: |- + dtv.dvbt_reference_signals( + ${type.size}, + ${transmission_mode.payload_length}, + ${transmission_mode.fft_length}, + ${constellation.val}, + ${hierarchy.val}, + ${code_rate_hp.val}, + ${code_rate_lp.val}, + ${guard_interval.val}, + ${transmission_mode.val}, + ${include_cell_id.val}, + ${cell_id}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_reference_signals.xml b/gr-dtv/grc/dtv_dvbt_reference_signals.xml deleted file mode 100644 index 3a4282cc50..0000000000 --- a/gr-dtv/grc/dtv_dvbt_reference_signals.xml +++ /dev/null @@ -1,222 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## Reference Signals -################################################### - --> -<block> - <name>Reference Signals</name> - <key>dtv_dvbt_reference_signals</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_reference_signals($type.size, $transmission_mode.payload_length, $transmission_mode.fft_length, $constellation.val, $hierarchy.val, $code_rate_hp.val, $code_rate_lp.val, $guard_interval.val, $transmission_mode.val, $include_cell_id.val, $cell_id)</make> - <param> - <name>IO Type</name> - <key>type</key> - <type>enum</type> - <option> - <name>Complex</name> - <key>complex</key> - <opt>size:gr.sizeof_gr_complex</opt> - </option> - <option> - <name>Float</name> - <key>float</key> - <opt>size:gr.sizeof_float</opt> - </option> - <option> - <name>Int</name> - <key>int</key> - <opt>size:gr.sizeof_int</opt> - </option> - <option> - <name>Short</name> - <key>short</key> - <opt>size:gr.sizeof_short</opt> - </option> - <option> - <name>Byte</name> - <key>byte</key> - <opt>size:gr.sizeof_char</opt> - </option> - </param> - <param> - <name>Constellation Type</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>QPSK</name> - <key>qpsk</key> - <opt>val:dtv.MOD_QPSK</opt> - </option> - <option> - <name>16QAM</name> - <key>16qam</key> - <opt>val:dtv.MOD_16QAM</opt> - </option> - <option> - <name>64QAM</name> - <key>64qam</key> - <opt>val:dtv.MOD_64QAM</opt> - </option> - </param> - <param> - <name>Hierarchy Type</name> - <key>hierarchy</key> - <type>enum</type> - <option> - <name>Non Hierarchical</name> - <key>nh</key> - <opt>val:dtv.NH</opt> - </option> - <option> - <name>Alpha 1</name> - <key>alpha1</key> - <opt>val:dtv.ALPHA1</opt> - </option> - <option> - <name>Alpha 2</name> - <key>alpha2</key> - <opt>val:dtv.ALPHA2</opt> - </option> - <option> - <name>Alpha 4</name> - <key>alpha4</key> - <opt>val:dtv.ALPHA4</opt> - </option> - </param> - <param> - <name>Code rate HP</name> - <key>code_rate_hp</key> - <type>enum</type> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>7/8</name> - <key>C7_8</key> - <opt>val:dtv.C7_8</opt> - </option> - </param> - <param> - <name>Code rate LP</name> - <key>code_rate_lp</key> - <type>enum</type> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>7/8</name> - <key>C7_8</key> - <opt>val:dtv.C7_8</opt> - </option> - </param> - <param> - <name>Guard Interval</name> - <key>guard_interval</key> - <type>enum</type> - <option> - <name>1/32</name> - <key>GI_1_32</key> - <opt>val:dtv.GI_1_32</opt> - </option> - <option> - <name>1/16</name> - <key>GI_1_16</key> - <opt>val:dtv.GI_1_16</opt> - </option> - <option> - <name>1/8</name> - <key>GI_1_8</key> - <opt>val:dtv.GI_1_8</opt> - </option> - <option> - <name>1/4</name> - <key>GI_1_4</key> - <opt>val:dtv.GI_1_4</opt> - </option> - </param> - <param> - <name>Transmission Mode</name> - <key>transmission_mode</key> - <type>enum</type> - <option> - <name>2K</name> - <key>T2k</key> - <opt>val:dtv.T2k</opt> - <opt>fft_length:2048</opt> - <opt>payload_length:1512</opt> - </option> - <option> - <name>8K</name> - <key>T8k</key> - <opt>val:dtv.T8k</opt> - <opt>fft_length:8192</opt> - <opt>payload_length:6048</opt> - </option> - </param> - <param> - <name>Include Cell ID</name> - <key>include_cell_id</key> - <type>enum</type> - <option> - <name>Yes</name> - <key>call_id_yes</key> - <opt>val:1</opt> - </option> - <option> - <name>No</name> - <key>cell_id_no</key> - <opt>val:0</opt> - </option> - </param> - <param> - <name>Cell Id</name> - <key>cell_id</key> - <value>0</value> - <type>int</type> - </param> - <sink> - <name>in</name> - <type>complex</type> - <vlen>$transmission_mode.payload_length</vlen> - </sink> - <source> - <name>out</name> - <type>complex</type> - <vlen>$transmission_mode.fft_length</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.block.yml b/gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.block.yml new file mode 100644 index 0000000000..d516f0ec7a --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.block.yml @@ -0,0 +1,37 @@ +id: dtv_dvbt_symbol_inner_interleaver +label: Symbol Inner Interleaver + +parameters: +- id: transmission_mode + label: Transmission Mode + dtype: enum + options: [T2k, T8k] + option_labels: [2K, 8K] + option_attributes: + fft_length: ['2048', '8192'] + payload_length: ['1512', '6048'] + val: [dtv.T2k, dtv.T8k] + hide: ${ 'part' if vlen == 1 else 'none' } +- id: direction + label: Direction + dtype: enum + options: [Interleave, Deinterleave] + option_attributes: + val: ['1', '0'] + +inputs: +- domain: stream + dtype: byte + vlen: ${ transmission_mode.payload_length } + +outputs: +- domain: stream + dtype: byte + vlen: ${ transmission_mode.payload_length } + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt_symbol_inner_interleaver(${transmission_mode.payload_length}, ${transmission_mode.val}, + ${direction.val}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.xml b/gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.xml deleted file mode 100644 index f440769a46..0000000000 --- a/gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.xml +++ /dev/null @@ -1,56 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T Symbol Inner Interleaver -################################################### - --> -<block> - <name>Symbol Inner Interleaver</name> - <key>dtv_dvbt_symbol_inner_interleaver</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_symbol_inner_interleaver($transmission_mode.payload_length, $transmission_mode.val, $direction.val)</make> - <param> - <name>Transmission Mode</name> - <key>transmission_mode</key> - <type>enum</type> - <option> - <name>2K</name> - <key>T2k</key> - <opt>val:dtv.T2k</opt> - <opt>fft_length:2048</opt> - <opt>payload_length:1512</opt> - </option> - <option> - <name>8K</name> - <key>T8k</key> - <opt>val:dtv.T8k</opt> - <opt>fft_length:8192</opt> - <opt>payload_length:6048</opt> - </option> - </param> - <param> - <name>Direction</name> - <key>direction</key> - <type>enum</type> - <option> - <name>Interleave</name> - <key>Interleave</key> - <opt>val:1</opt> - </option> - <option> - <name>Deinterleave</name> - <key>Deinterleave</key> - <opt>val:0</opt> - </option> - </param> - <sink> - <name>in</name> - <type>byte</type> - <vlen>$transmission_mode.payload_length</vlen> - </sink> - <source> - <name>out</name> - <type>byte</type> - <vlen>$transmission_mode.payload_length</vlen> - </source> -</block> diff --git a/gr-dtv/grc/dtv_dvbt_viterbi_decoder.block.yml b/gr-dtv/grc/dtv_dvbt_viterbi_decoder.block.yml new file mode 100644 index 0000000000..367b581014 --- /dev/null +++ b/gr-dtv/grc/dtv_dvbt_viterbi_decoder.block.yml @@ -0,0 +1,51 @@ +id: dtv_dvbt_viterbi_decoder +label: Viterbi Decoder + +parameters: +- id: constellation + label: Constellation Type + dtype: enum + options: [qpsk, 16qam, 64qam] + option_labels: [QPSK, 16QAM, 64QAM] + option_attributes: + val: [dtv.MOD_QPSK, dtv.MOD_16QAM, dtv.MOD_64QAM] +- id: hierarchy + label: Hierarchy Type + dtype: enum + options: [nh, alpha1, alpha2, alpha4] + option_labels: [Non Hierarchical, Alpha 1, Alpha 2, Alpha 4] + option_attributes: + val: [dtv.NH, dtv.ALPHA1, dtv.ALPHA2, dtv.ALPHA4] +- id: code_rate + label: Code rate + dtype: enum + options: [C1_2, C2_3, C3_4, C5_6, C7_8] + option_labels: [1/2, 2/3, 3/4, 5/6, 7/8] + option_attributes: + val: [dtv.C1_2, dtv.C2_3, dtv.C3_4, dtv.C5_6, dtv.C7_8] +- id: type + label: Type + dtype: enum + options: [i, s, b] + option_labels: [Int, Short, Byte] + option_attributes: + io: [int, short, byte] + hide: part +- id: block_size + label: Block Size + dtype: int + +inputs: +- domain: stream + dtype: byte + +outputs: +- domain: stream + dtype: ${ type.io } + +templates: + imports: from gnuradio import dtv + make: dtv.dvbt_viterbi_decoder(${constellation.val}, ${hierarchy.val}, ${code_rate.val}, + ${block_size}) + +file_format: 1 diff --git a/gr-dtv/grc/dtv_dvbt_viterbi_decoder.xml b/gr-dtv/grc/dtv_dvbt_viterbi_decoder.xml deleted file mode 100644 index 1dde80c281..0000000000 --- a/gr-dtv/grc/dtv_dvbt_viterbi_decoder.xml +++ /dev/null @@ -1,120 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -## DVB-T Viterbi Decoder -################################################### - --> -<block> - <name>Viterbi Decoder</name> - <key>dtv_dvbt_viterbi_decoder</key> - <import>from gnuradio import dtv</import> - <make>dtv.dvbt_viterbi_decoder($constellation.val, $hierarchy.val, $code_rate.val, $block_size)</make> - <param> - <name>Constellation Type</name> - <key>constellation</key> - <type>enum</type> - <option> - <name>QPSK</name> - <key>qpsk</key> - <opt>val:dtv.MOD_QPSK</opt> - </option> - <option> - <name>16QAM</name> - <key>16qam</key> - <opt>val:dtv.MOD_16QAM</opt> - </option> - <option> - <name>64QAM</name> - <key>64qam</key> - <opt>val:dtv.MOD_64QAM</opt> - </option> - </param> - <param> - <name>Hierarchy Type</name> - <key>hierarchy</key> - <type>enum</type> - <option> - <name>Non Hierarchical</name> - <key>nh</key> - <opt>val:dtv.NH</opt> - </option> - <option> - <name>Alpha 1</name> - <key>alpha1</key> - <opt>val:dtv.ALPHA1</opt> - </option> - <option> - <name>Alpha 2</name> - <key>alpha2</key> - <opt>val:dtv.ALPHA2</opt> - </option> - <option> - <name>Alpha 4</name> - <key>alpha4</key> - <opt>val:dtv.ALPHA4</opt> - </option> - </param> - <param> - <name>Code rate</name> - <key>code_rate</key> - <type>enum</type> - <option> - <name>1/2</name> - <key>C1_2</key> - <opt>val:dtv.C1_2</opt> - </option> - <option> - <name>2/3</name> - <key>C2_3</key> - <opt>val:dtv.C2_3</opt> - </option> - <option> - <name>3/4</name> - <key>C3_4</key> - <opt>val:dtv.C3_4</opt> - </option> - <option> - <name>5/6</name> - <key>C5_6</key> - <opt>val:dtv.C5_6</opt> - </option> - <option> - <name>7/8</name> - <key>C7_8</key> - <opt>val:dtv.C7_8</opt> - </option> - </param> - <param> - <name>Type</name> - <key>type</key> - <type>enum</type> - <option> - <name>Int</name> - <key>i</key> - <opt>io:int</opt> - </option> - <option> - <name>Short</name> - <key>s</key> - <opt>io:short</opt> - </option> - <option> - <name>Byte</name> - <key>b</key> - <opt>io:byte</opt> - </option> - </param> - <param> - <name>Block Size</name> - <key>block_size</key> - <type>int</type> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>$type.io</type> - </source> -</block> diff --git a/gr-dtv/include/gnuradio/dtv/CMakeLists.txt b/gr-dtv/include/gnuradio/dtv/CMakeLists.txt index efe9b5e12a..dc38c2dc45 100644 --- a/gr-dtv/include/gnuradio/dtv/CMakeLists.txt +++ b/gr-dtv/include/gnuradio/dtv/CMakeLists.txt @@ -82,5 +82,4 @@ install(FILES catv_trellis_enc_bb.h DESTINATION ${GR_INCLUDE_DIR}/gnuradio/dtv - COMPONENT "dtv_devel" ) diff --git a/gr-dtv/lib/CMakeLists.txt b/gr-dtv/lib/CMakeLists.txt index 18043fd8a0..9efbd7f9b0 100644 --- a/gr-dtv/lib/CMakeLists.txt +++ b/gr-dtv/lib/CMakeLists.txt @@ -110,7 +110,7 @@ list(APPEND dtv_libs include (CheckCCompilerFlag) if (MSVC) - # 64-bit MSVC always supports SSE2 + # 64-bit MSVC always supports SSE2 if (CMAKE_SIZEOF_VOID_P EQUAL 8) set(SSE2_SUPPORTED true) else () @@ -147,4 +147,4 @@ endif(MSVC) add_library(gnuradio-dtv SHARED ${dtv_sources}) target_link_libraries(gnuradio-dtv ${dtv_libs}) -GR_LIBRARY_FOO(gnuradio-dtv RUNTIME_COMPONENT "dtv_runtime" DEVEL_COMPONENT "dtv_devel") +GR_LIBRARY_FOO(gnuradio-dtv) diff --git a/gr-dtv/lib/atsc/atsc_fpll_impl.cc b/gr-dtv/lib/atsc/atsc_fpll_impl.cc index 2015e350ef..a552004972 100644 --- a/gr-dtv/lib/atsc/atsc_fpll_impl.cc +++ b/gr-dtv/lib/atsc/atsc_fpll_impl.cc @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2014 Free Software Foundation, Inc. + * Copyright 2014,2018 Free Software Foundation, Inc. * * This file is part of GNU Radio * @@ -45,7 +45,7 @@ namespace gr { io_signature::make(1, 1, sizeof(float))) { d_afc.set_taps(1.0-exp(-1.0/rate/5e-6)); - d_nco.set_freq((-3e6 + 0.309e6)/rate*2*M_PI); + d_nco.set_freq((-3e6 + 0.309e6)/rate*2*GR_M_PI); d_nco.set_phase(0.0); } @@ -76,7 +76,7 @@ namespace gr { float x = gr::fast_atan2f(filtered.imag(), filtered.real()); // avoid slamming filter with big transitions - static const float limit = M_PI/2.0; + static const float limit = GR_M_PI/2.0; if (x > limit) x = limit; else if (x < -limit) diff --git a/gr-dtv/lib/atsc/atsc_rs_decoder_impl.cc b/gr-dtv/lib/atsc/atsc_rs_decoder_impl.cc index b8ee91a52d..a0ca0c1c07 100644 --- a/gr-dtv/lib/atsc/atsc_rs_decoder_impl.cc +++ b/gr-dtv/lib/atsc/atsc_rs_decoder_impl.cc @@ -38,7 +38,6 @@ namespace gr { static const int rs_init_nroots = 20; static const int N = (1 << rs_init_symsize) - 1; // 255 - static const int K = N - rs_init_nroots; // 235 static const int amount_of_pad = N - ATSC_MPEG_RS_ENCODED_LENGTH; // 48 diff --git a/gr-dtv/lib/atsc/atsc_rs_decoder_impl.h b/gr-dtv/lib/atsc/atsc_rs_decoder_impl.h index adbc4879a9..c657e699dc 100644 --- a/gr-dtv/lib/atsc/atsc_rs_decoder_impl.h +++ b/gr-dtv/lib/atsc/atsc_rs_decoder_impl.h @@ -39,7 +39,6 @@ namespace gr { int d_nerrors_corrrected_count; int d_bad_packet_count; int d_total_packets; - int d_total_bits; void *d_rs; public: diff --git a/gr-dtv/lib/atsc/atsc_sync_impl.cc b/gr-dtv/lib/atsc/atsc_sync_impl.cc index b4de5fca56..fe2f0ea3eb 100644 --- a/gr-dtv/lib/atsc/atsc_sync_impl.cc +++ b/gr-dtv/lib/atsc/atsc_sync_impl.cc @@ -49,7 +49,7 @@ namespace gr { : gr::block("dtv_atsc_sync", io_signature::make(1, 1, sizeof(float)), io_signature::make(1, 1, sizeof(atsc_soft_data_segment))), - d_next_input(0), d_rx_clock_to_symbol_freq(rate/ATSC_SYMBOL_RATE), + d_rx_clock_to_symbol_freq(rate/ATSC_SYMBOL_RATE), d_si(0) { d_loop.set_taps(LOOP_FILTER_TAP); diff --git a/gr-dtv/lib/atsc/atsc_sync_impl.h b/gr-dtv/lib/atsc/atsc_sync_impl.h index 670cb311e1..cf5fccd1b3 100644 --- a/gr-dtv/lib/atsc/atsc_sync_impl.h +++ b/gr-dtv/lib/atsc/atsc_sync_impl.h @@ -37,7 +37,6 @@ namespace gr { gr::filter::single_pole_iir<float,float,float> d_loop; // ``VCO'' loop filter gr::filter::mmse_fir_interpolator_ff d_interp; - unsigned long long d_next_input; double d_rx_clock_to_symbol_freq; int d_si; double d_w; // ratio of PERIOD of Tx to Rx clocks diff --git a/gr-dtv/lib/atsc/atsc_viterbi_decoder_impl.h b/gr-dtv/lib/atsc/atsc_viterbi_decoder_impl.h index ef4faab313..e52aea7fa0 100644 --- a/gr-dtv/lib/atsc/atsc_viterbi_decoder_impl.h +++ b/gr-dtv/lib/atsc/atsc_viterbi_decoder_impl.h @@ -49,7 +49,6 @@ namespace gr { class atsc_viterbi_decoder_impl : public atsc_viterbi_decoder { private: - int last_start; typedef interleaver_fifo<unsigned char> fifo_t; static const int SEGMENT_SIZE = ATSC_MPEG_RS_ENCODED_LENGTH; // 207 diff --git a/gr-dtv/lib/dvbs2/dvbs2_modulator_bc_impl.cc b/gr-dtv/lib/dvbs2/dvbs2_modulator_bc_impl.cc index 4ceefa1503..e40e602494 100644 --- a/gr-dtv/lib/dvbs2/dvbs2_modulator_bc_impl.cc +++ b/gr-dtv/lib/dvbs2/dvbs2_modulator_bc_impl.cc @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2015-2017 Free Software Foundation, Inc. + * Copyright 2015-2018 Free Software Foundation, Inc. * * This is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,8 +22,9 @@ #include "config.h" #endif -#include <gnuradio/io_signature.h> #include "dvbs2_modulator_bc_impl.h" +#include <gnuradio/io_signature.h> +#include <gnuradio/math.h> namespace gr { namespace dtv { @@ -49,26 +50,26 @@ namespace gr { switch (constellation) { case MOD_BPSK: case MOD_BPSK_SF2: - m_bpsk[0][0] = gr_complex((r1 * cos(M_PI / 4.0)), (r1 * sin(M_PI / 4.0))); - m_bpsk[0][1] = gr_complex((r1 * cos(5.0 * M_PI / 4.0)), (r1 * sin(5.0 * M_PI / 4.0))); - m_bpsk[1][0] = gr_complex((r1 * cos(5.0 * M_PI / 4.0)), (r1 * sin(M_PI / 4.0))); - m_bpsk[1][1] = gr_complex((r1 * cos(M_PI / 4.0)), (r1 * sin(5.0 * M_PI /4.0))); + m_bpsk[0][0] = gr_complex((r1 * cos(GR_M_PI / 4.0)), (r1 * sin(GR_M_PI / 4.0))); + m_bpsk[0][1] = gr_complex((r1 * cos(5.0 * GR_M_PI / 4.0)), (r1 * sin(5.0 * GR_M_PI / 4.0))); + m_bpsk[1][0] = gr_complex((r1 * cos(5.0 * GR_M_PI / 4.0)), (r1 * sin(GR_M_PI / 4.0))); + m_bpsk[1][1] = gr_complex((r1 * cos(GR_M_PI / 4.0)), (r1 * sin(5.0 * GR_M_PI /4.0))); break; case MOD_QPSK: - m_qpsk[0] = gr_complex((r1 * cos(M_PI / 4.0)), (r1 * sin(M_PI / 4.0))); - m_qpsk[1] = gr_complex((r1 * cos(7 * M_PI / 4.0)), (r1 * sin(7 * M_PI / 4.0))); - m_qpsk[2] = gr_complex((r1 * cos(3 * M_PI / 4.0)), (r1 * sin(3 * M_PI / 4.0))); - m_qpsk[3] = gr_complex((r1 * cos(5 * M_PI / 4.0)), (r1 * sin(5 * M_PI / 4.0))); + m_qpsk[0] = gr_complex((r1 * cos(GR_M_PI / 4.0)), (r1 * sin(GR_M_PI / 4.0))); + m_qpsk[1] = gr_complex((r1 * cos(7 * GR_M_PI / 4.0)), (r1 * sin(7 * GR_M_PI / 4.0))); + m_qpsk[2] = gr_complex((r1 * cos(3 * GR_M_PI / 4.0)), (r1 * sin(3 * GR_M_PI / 4.0))); + m_qpsk[3] = gr_complex((r1 * cos(5 * GR_M_PI / 4.0)), (r1 * sin(5 * GR_M_PI / 4.0))); break; case MOD_8PSK: - m_8psk[0] = gr_complex((r1 * cos(M_PI / 4.0)), (r1 * sin(M_PI / 4.0))); + m_8psk[0] = gr_complex((r1 * cos(GR_M_PI / 4.0)), (r1 * sin(GR_M_PI / 4.0))); m_8psk[1] = gr_complex((r1 * cos(0.0)), (r1 * sin(0.0))); - m_8psk[2] = gr_complex((r1 * cos(4 * M_PI / 4.0)), (r1 * sin(4 * M_PI / 4.0))); - m_8psk[3] = gr_complex((r1 * cos(5 * M_PI / 4.0)), (r1 * sin(5 * M_PI / 4.0))); - m_8psk[4] = gr_complex((r1 * cos(2 * M_PI / 4.0)), (r1 * sin(2 * M_PI / 4.0))); - m_8psk[5] = gr_complex((r1 * cos(7 * M_PI / 4.0)), (r1 * sin(7 * M_PI / 4.0))); - m_8psk[6] = gr_complex((r1 * cos(3 * M_PI / 4.0)), (r1 * sin(3 * M_PI / 4.0))); - m_8psk[7] = gr_complex((r1 * cos(6 * M_PI / 4.0)), (r1 * sin(6 * M_PI / 4.0))); + m_8psk[2] = gr_complex((r1 * cos(4 * GR_M_PI / 4.0)), (r1 * sin(4 * GR_M_PI / 4.0))); + m_8psk[3] = gr_complex((r1 * cos(5 * GR_M_PI / 4.0)), (r1 * sin(5 * GR_M_PI / 4.0))); + m_8psk[4] = gr_complex((r1 * cos(2 * GR_M_PI / 4.0)), (r1 * sin(2 * GR_M_PI / 4.0))); + m_8psk[5] = gr_complex((r1 * cos(7 * GR_M_PI / 4.0)), (r1 * sin(7 * GR_M_PI / 4.0))); + m_8psk[6] = gr_complex((r1 * cos(3 * GR_M_PI / 4.0)), (r1 * sin(3 * GR_M_PI / 4.0))); + m_8psk[7] = gr_complex((r1 * cos(6 * GR_M_PI / 4.0)), (r1 * sin(6 * GR_M_PI / 4.0))); break; case MOD_8APSK: r3 = m; @@ -86,13 +87,13 @@ namespace gr { r2 = 0; break; } - m_8psk[0] = gr_complex((r1 * cos(M_PI)), (r1 * sin(M_PI))); - m_8psk[1] = gr_complex((r2 * cos(M_PI * 1.352)), (r2 * sin(M_PI * 1.352))); - m_8psk[2] = gr_complex((r2 * cos(M_PI * -1.352)), (r2 * sin(M_PI * -1.352))); - m_8psk[3] = gr_complex((r3 * cos(M_PI)), (r3 * sin(M_PI))); + m_8psk[0] = gr_complex((r1 * cos(GR_M_PI)), (r1 * sin(GR_M_PI))); + m_8psk[1] = gr_complex((r2 * cos(GR_M_PI * 1.352)), (r2 * sin(GR_M_PI * 1.352))); + m_8psk[2] = gr_complex((r2 * cos(GR_M_PI * -1.352)), (r2 * sin(GR_M_PI * -1.352))); + m_8psk[3] = gr_complex((r3 * cos(GR_M_PI)), (r3 * sin(GR_M_PI))); m_8psk[4] = gr_complex((r1 * cos(0.0)), (r1 * sin(0.0))); - m_8psk[5] = gr_complex((r2 * cos(M_PI * -0.352)), (r2 * sin(M_PI * -0.352))); - m_8psk[6] = gr_complex((r2 * cos(M_PI * 0.352)), (r2 * sin(M_PI * 0.352))); + m_8psk[5] = gr_complex((r2 * cos(GR_M_PI * -0.352)), (r2 * sin(GR_M_PI * -0.352))); + m_8psk[6] = gr_complex((r2 * cos(GR_M_PI * 0.352)), (r2 * sin(GR_M_PI * 0.352))); m_8psk[7] = gr_complex((r3 * cos(0.0)), (r3 * sin(0.0))); break; case MOD_16APSK: @@ -177,22 +178,22 @@ namespace gr { break; } } - m_16apsk[0] = gr_complex((r2 * cos(M_PI / 4.0)), (r2 * sin(M_PI / 4.0))); - m_16apsk[1] = gr_complex((r2 * cos(-M_PI / 4.0)), (r2 * sin(-M_PI / 4.0))); - m_16apsk[2] = gr_complex((r2 * cos(3 * M_PI / 4.0)), (r2 * sin(3 * M_PI / 4.0))); - m_16apsk[3] = gr_complex((r2 * cos(-3 * M_PI / 4.0)), (r2 * sin(-3 * M_PI / 4.0))); - m_16apsk[4] = gr_complex((r2 * cos(M_PI / 12.0)), (r2 * sin(M_PI / 12.0))); - m_16apsk[5] = gr_complex((r2 * cos(-M_PI / 12.0)), (r2 * sin(-M_PI / 12.0))); - m_16apsk[6] = gr_complex((r2 * cos(11 * M_PI / 12.0)), (r2 * sin(11 * M_PI / 12.0))); - m_16apsk[7] = gr_complex((r2 * cos(-11 * M_PI / 12.0)), (r2 * sin(-11 * M_PI / 12.0))); - m_16apsk[8] = gr_complex((r2 * cos(5 * M_PI / 12.0)), (r2 * sin(5 * M_PI / 12.0))); - m_16apsk[9] = gr_complex((r2 * cos(-5 * M_PI / 12.0)), (r2 * sin(-5 * M_PI / 12.0))); - m_16apsk[10] = gr_complex((r2 * cos(7 * M_PI / 12.0)), (r2 * sin(7 * M_PI / 12.0))); - m_16apsk[11] = gr_complex((r2 * cos(-7 * M_PI / 12.0)), (r2 * sin(-7 * M_PI / 12.0))); - m_16apsk[12] = gr_complex((r1 * cos(M_PI / 4.0)), (r1 * sin(M_PI / 4.0))); - m_16apsk[13] = gr_complex((r1 * cos(-M_PI / 4.0)), (r1 * sin(-M_PI / 4.0))); - m_16apsk[14] = gr_complex((r1 * cos(3 * M_PI / 4.0)), (r1 * sin(3 * M_PI / 4.0))); - m_16apsk[15] = gr_complex((r1 * cos(-3 * M_PI / 4.0)), (r1 * sin(-3 * M_PI / 4.0))); + m_16apsk[0] = gr_complex((r2 * cos(GR_M_PI / 4.0)), (r2 * sin(GR_M_PI / 4.0))); + m_16apsk[1] = gr_complex((r2 * cos(-GR_M_PI / 4.0)), (r2 * sin(-GR_M_PI / 4.0))); + m_16apsk[2] = gr_complex((r2 * cos(3 * GR_M_PI / 4.0)), (r2 * sin(3 * GR_M_PI / 4.0))); + m_16apsk[3] = gr_complex((r2 * cos(-3 * GR_M_PI / 4.0)), (r2 * sin(-3 * GR_M_PI / 4.0))); + m_16apsk[4] = gr_complex((r2 * cos(GR_M_PI / 12.0)), (r2 * sin(GR_M_PI / 12.0))); + m_16apsk[5] = gr_complex((r2 * cos(-GR_M_PI / 12.0)), (r2 * sin(-GR_M_PI / 12.0))); + m_16apsk[6] = gr_complex((r2 * cos(11 * GR_M_PI / 12.0)), (r2 * sin(11 * GR_M_PI / 12.0))); + m_16apsk[7] = gr_complex((r2 * cos(-11 * GR_M_PI / 12.0)), (r2 * sin(-11 * GR_M_PI / 12.0))); + m_16apsk[8] = gr_complex((r2 * cos(5 * GR_M_PI / 12.0)), (r2 * sin(5 * GR_M_PI / 12.0))); + m_16apsk[9] = gr_complex((r2 * cos(-5 * GR_M_PI / 12.0)), (r2 * sin(-5 * GR_M_PI / 12.0))); + m_16apsk[10] = gr_complex((r2 * cos(7 * GR_M_PI / 12.0)), (r2 * sin(7 * GR_M_PI / 12.0))); + m_16apsk[11] = gr_complex((r2 * cos(-7 * GR_M_PI / 12.0)), (r2 * sin(-7 * GR_M_PI / 12.0))); + m_16apsk[12] = gr_complex((r1 * cos(GR_M_PI / 4.0)), (r1 * sin(GR_M_PI / 4.0))); + m_16apsk[13] = gr_complex((r1 * cos(-GR_M_PI / 4.0)), (r1 * sin(-GR_M_PI / 4.0))); + m_16apsk[14] = gr_complex((r1 * cos(3 * GR_M_PI / 4.0)), (r1 * sin(3 * GR_M_PI / 4.0))); + m_16apsk[15] = gr_complex((r1 * cos(-3 * GR_M_PI / 4.0)), (r1 * sin(-3 * GR_M_PI / 4.0))); break; case MOD_8_8APSK: if (rate == C18_30) { @@ -243,22 +244,22 @@ namespace gr { r1 = 0; break; } - m_16apsk[0] = gr_complex((r1 * cos(M_PI / 8.0)), (r1 * sin(M_PI / 8.0))); - m_16apsk[1] = gr_complex((r1 * cos(3 * M_PI / 8.0)), (r1 * sin(3 * M_PI / 8.0))); - m_16apsk[2] = gr_complex((r1 * cos(7 * M_PI / 8.0)), (r1 * sin(7 * M_PI / 8.0))); - m_16apsk[3] = gr_complex((r1 * cos(5 * M_PI / 8.0)), (r1 * sin(5 * M_PI / 8.0))); - m_16apsk[4] = gr_complex((r1 * cos(15 * M_PI / 8.0)), (r1 * sin(15 * M_PI / 8.0))); - m_16apsk[5] = gr_complex((r1 * cos(13 * M_PI / 8.0)), (r1 * sin(13 * M_PI / 8.0))); - m_16apsk[6] = gr_complex((r1 * cos(9 * M_PI / 8.0)), (r1 * sin(9 * M_PI / 8.0))); - m_16apsk[7] = gr_complex((r1 * cos(11 * M_PI / 8.0)), (r1 * sin(11 * M_PI / 8.0))); - m_16apsk[8] = gr_complex((r2 * cos(M_PI / 8.0)), (r2 * sin(M_PI / 8.0))); - m_16apsk[9] = gr_complex((r2 * cos(3 * M_PI / 8.0)), (r2 * sin(3 * M_PI / 8.0))); - m_16apsk[10] = gr_complex((r2 * cos(7 * M_PI / 8.0)), (r2 * sin(7 * M_PI / 8.0))); - m_16apsk[11] = gr_complex((r2 * cos(5 * M_PI / 8.0)), (r2 * sin(5 * M_PI / 8.0))); - m_16apsk[12] = gr_complex((r2 * cos(15 * M_PI / 8.0)), (r2 * sin(15 * M_PI / 8.0))); - m_16apsk[13] = gr_complex((r2 * cos(13 * M_PI / 8.0)), (r2 * sin(13 * M_PI / 8.0))); - m_16apsk[14] = gr_complex((r2 * cos(9 * M_PI / 8.0)), (r2 * sin(9 * M_PI / 8.0))); - m_16apsk[15] = gr_complex((r2 * cos(11 * M_PI / 8.0)), (r2 * sin(11 * M_PI / 8.0))); + m_16apsk[0] = gr_complex((r1 * cos(GR_M_PI / 8.0)), (r1 * sin(GR_M_PI / 8.0))); + m_16apsk[1] = gr_complex((r1 * cos(3 * GR_M_PI / 8.0)), (r1 * sin(3 * GR_M_PI / 8.0))); + m_16apsk[2] = gr_complex((r1 * cos(7 * GR_M_PI / 8.0)), (r1 * sin(7 * GR_M_PI / 8.0))); + m_16apsk[3] = gr_complex((r1 * cos(5 * GR_M_PI / 8.0)), (r1 * sin(5 * GR_M_PI / 8.0))); + m_16apsk[4] = gr_complex((r1 * cos(15 * GR_M_PI / 8.0)), (r1 * sin(15 * GR_M_PI / 8.0))); + m_16apsk[5] = gr_complex((r1 * cos(13 * GR_M_PI / 8.0)), (r1 * sin(13 * GR_M_PI / 8.0))); + m_16apsk[6] = gr_complex((r1 * cos(9 * GR_M_PI / 8.0)), (r1 * sin(9 * GR_M_PI / 8.0))); + m_16apsk[7] = gr_complex((r1 * cos(11 * GR_M_PI / 8.0)), (r1 * sin(11 * GR_M_PI / 8.0))); + m_16apsk[8] = gr_complex((r2 * cos(GR_M_PI / 8.0)), (r2 * sin(GR_M_PI / 8.0))); + m_16apsk[9] = gr_complex((r2 * cos(3 * GR_M_PI / 8.0)), (r2 * sin(3 * GR_M_PI / 8.0))); + m_16apsk[10] = gr_complex((r2 * cos(7 * GR_M_PI / 8.0)), (r2 * sin(7 * GR_M_PI / 8.0))); + m_16apsk[11] = gr_complex((r2 * cos(5 * GR_M_PI / 8.0)), (r2 * sin(5 * GR_M_PI / 8.0))); + m_16apsk[12] = gr_complex((r2 * cos(15 * GR_M_PI / 8.0)), (r2 * sin(15 * GR_M_PI / 8.0))); + m_16apsk[13] = gr_complex((r2 * cos(13 * GR_M_PI / 8.0)), (r2 * sin(13 * GR_M_PI / 8.0))); + m_16apsk[14] = gr_complex((r2 * cos(9 * GR_M_PI / 8.0)), (r2 * sin(9 * GR_M_PI / 8.0))); + m_16apsk[15] = gr_complex((r2 * cos(11 * GR_M_PI / 8.0)), (r2 * sin(11 * GR_M_PI / 8.0))); } break; case MOD_32APSK: @@ -289,38 +290,38 @@ namespace gr { r2 = 0; break; } - m_32apsk[0] = gr_complex((r2 * cos(M_PI / 4.0)), (r2 * sin(M_PI / 4.0))); - m_32apsk[1] = gr_complex((r2 * cos(5 * M_PI / 12.0)), (r2 * sin(5 * M_PI / 12.0))); - m_32apsk[2] = gr_complex((r2 * cos(-M_PI / 4.0)), (r2 * sin(-M_PI / 4.0))); - m_32apsk[3] = gr_complex((r2 * cos(-5 * M_PI / 12.0)), (r2 * sin(-5 * M_PI / 12.0))); - m_32apsk[4] = gr_complex((r2 * cos(3 * M_PI / 4.0)), (r2 * sin(3 * M_PI / 4.0))); - m_32apsk[5] = gr_complex((r2 * cos(7 * M_PI / 12.0)), (r2 * sin(7 * M_PI / 12.0))); - m_32apsk[6] = gr_complex((r2 * cos(-3 * M_PI / 4.0)), (r2 * sin(-3 * M_PI / 4.0))); - m_32apsk[7] = gr_complex((r2 * cos(-7 * M_PI / 12.0)), (r2 * sin(-7 * M_PI / 12.0))); - m_32apsk[8] = gr_complex((r3 * cos(M_PI / 8.0)), (r3 * sin(M_PI / 8.0))); - m_32apsk[9] = gr_complex((r3 * cos(3 * M_PI / 8.0)), (r3 * sin(3 * M_PI / 8.0))); - m_32apsk[10] = gr_complex((r3 * cos(-M_PI / 4.0)), (r3 * sin(-M_PI / 4.0))); - m_32apsk[11] = gr_complex((r3 * cos(-M_PI / 2.0)), (r3 * sin(-M_PI / 2.0))); - m_32apsk[12] = gr_complex((r3 * cos(3 * M_PI / 4.0)), (r3 * sin(3 * M_PI / 4.0))); - m_32apsk[13] = gr_complex((r3 * cos(M_PI / 2.0)), (r3 * sin(M_PI / 2.0))); - m_32apsk[14] = gr_complex((r3 * cos(-7 * M_PI / 8.0)), (r3 * sin(-7 * M_PI / 8.0))); - m_32apsk[15] = gr_complex((r3 * cos(-5 * M_PI / 8.0)), (r3 * sin(-5 * M_PI / 8.0))); - m_32apsk[16] = gr_complex((r2 * cos(M_PI / 12.0)), (r2 * sin(M_PI / 12.0))); - m_32apsk[17] = gr_complex((r1 * cos(M_PI / 4.0)), (r1 * sin(M_PI / 4.0))); - m_32apsk[18] = gr_complex((r2 * cos(-M_PI / 12.0)), (r2 * sin(-M_PI / 12.0))); - m_32apsk[19] = gr_complex((r1 * cos(-M_PI / 4.0)), (r1 * sin(-M_PI / 4.0))); - m_32apsk[20] = gr_complex((r2 * cos(11 * M_PI / 12.0)), (r2 * sin(11 * M_PI / 12.0))); - m_32apsk[21] = gr_complex((r1 * cos(3 * M_PI / 4.0)), (r1 * sin(3 * M_PI / 4.0))); - m_32apsk[22] = gr_complex((r2 * cos(-11 * M_PI / 12.0)), (r2 * sin(-11 * M_PI / 12.0))); - m_32apsk[23] = gr_complex((r1 * cos(-3 * M_PI / 4.0)), (r1 * sin(-3 * M_PI / 4.0))); + m_32apsk[0] = gr_complex((r2 * cos(GR_M_PI / 4.0)), (r2 * sin(GR_M_PI / 4.0))); + m_32apsk[1] = gr_complex((r2 * cos(5 * GR_M_PI / 12.0)), (r2 * sin(5 * GR_M_PI / 12.0))); + m_32apsk[2] = gr_complex((r2 * cos(-GR_M_PI / 4.0)), (r2 * sin(-GR_M_PI / 4.0))); + m_32apsk[3] = gr_complex((r2 * cos(-5 * GR_M_PI / 12.0)), (r2 * sin(-5 * GR_M_PI / 12.0))); + m_32apsk[4] = gr_complex((r2 * cos(3 * GR_M_PI / 4.0)), (r2 * sin(3 * GR_M_PI / 4.0))); + m_32apsk[5] = gr_complex((r2 * cos(7 * GR_M_PI / 12.0)), (r2 * sin(7 * GR_M_PI / 12.0))); + m_32apsk[6] = gr_complex((r2 * cos(-3 * GR_M_PI / 4.0)), (r2 * sin(-3 * GR_M_PI / 4.0))); + m_32apsk[7] = gr_complex((r2 * cos(-7 * GR_M_PI / 12.0)), (r2 * sin(-7 * GR_M_PI / 12.0))); + m_32apsk[8] = gr_complex((r3 * cos(GR_M_PI / 8.0)), (r3 * sin(GR_M_PI / 8.0))); + m_32apsk[9] = gr_complex((r3 * cos(3 * GR_M_PI / 8.0)), (r3 * sin(3 * GR_M_PI / 8.0))); + m_32apsk[10] = gr_complex((r3 * cos(-GR_M_PI / 4.0)), (r3 * sin(-GR_M_PI / 4.0))); + m_32apsk[11] = gr_complex((r3 * cos(-GR_M_PI / 2.0)), (r3 * sin(-GR_M_PI / 2.0))); + m_32apsk[12] = gr_complex((r3 * cos(3 * GR_M_PI / 4.0)), (r3 * sin(3 * GR_M_PI / 4.0))); + m_32apsk[13] = gr_complex((r3 * cos(GR_M_PI / 2.0)), (r3 * sin(GR_M_PI / 2.0))); + m_32apsk[14] = gr_complex((r3 * cos(-7 * GR_M_PI / 8.0)), (r3 * sin(-7 * GR_M_PI / 8.0))); + m_32apsk[15] = gr_complex((r3 * cos(-5 * GR_M_PI / 8.0)), (r3 * sin(-5 * GR_M_PI / 8.0))); + m_32apsk[16] = gr_complex((r2 * cos(GR_M_PI / 12.0)), (r2 * sin(GR_M_PI / 12.0))); + m_32apsk[17] = gr_complex((r1 * cos(GR_M_PI / 4.0)), (r1 * sin(GR_M_PI / 4.0))); + m_32apsk[18] = gr_complex((r2 * cos(-GR_M_PI / 12.0)), (r2 * sin(-GR_M_PI / 12.0))); + m_32apsk[19] = gr_complex((r1 * cos(-GR_M_PI / 4.0)), (r1 * sin(-GR_M_PI / 4.0))); + m_32apsk[20] = gr_complex((r2 * cos(11 * GR_M_PI / 12.0)), (r2 * sin(11 * GR_M_PI / 12.0))); + m_32apsk[21] = gr_complex((r1 * cos(3 * GR_M_PI / 4.0)), (r1 * sin(3 * GR_M_PI / 4.0))); + m_32apsk[22] = gr_complex((r2 * cos(-11 * GR_M_PI / 12.0)), (r2 * sin(-11 * GR_M_PI / 12.0))); + m_32apsk[23] = gr_complex((r1 * cos(-3 * GR_M_PI / 4.0)), (r1 * sin(-3 * GR_M_PI / 4.0))); m_32apsk[24] = gr_complex((r3 * cos(0.0)), (r3 * sin(0.0))); - m_32apsk[25] = gr_complex((r3 * cos(M_PI / 4.0)), (r3 * sin(M_PI / 4.0))); - m_32apsk[26] = gr_complex((r3 * cos(-M_PI / 8.0)), (r3 * sin(-M_PI / 8.0))); - m_32apsk[27] = gr_complex((r3 * cos(-3 * M_PI / 8.0)), (r3 * sin(-3 * M_PI / 8.0))); - m_32apsk[28] = gr_complex((r3 * cos(7 * M_PI / 8.0)), (r3 * sin(7 * M_PI / 8.0))); - m_32apsk[29] = gr_complex((r3 * cos(5 * M_PI / 8.0)), (r3 * sin(5 * M_PI / 8.0))); - m_32apsk[30] = gr_complex((r3 * cos(M_PI)), (r3 * sin(M_PI))); - m_32apsk[31] = gr_complex((r3 * cos(-3 * M_PI / 4.0)), (r3 * sin(-3 * M_PI / 4.0))); + m_32apsk[25] = gr_complex((r3 * cos(GR_M_PI / 4.0)), (r3 * sin(GR_M_PI / 4.0))); + m_32apsk[26] = gr_complex((r3 * cos(-GR_M_PI / 8.0)), (r3 * sin(-GR_M_PI / 8.0))); + m_32apsk[27] = gr_complex((r3 * cos(-3 * GR_M_PI / 8.0)), (r3 * sin(-3 * GR_M_PI / 8.0))); + m_32apsk[28] = gr_complex((r3 * cos(7 * GR_M_PI / 8.0)), (r3 * sin(7 * GR_M_PI / 8.0))); + m_32apsk[29] = gr_complex((r3 * cos(5 * GR_M_PI / 8.0)), (r3 * sin(5 * GR_M_PI / 8.0))); + m_32apsk[30] = gr_complex((r3 * cos(GR_M_PI)), (r3 * sin(GR_M_PI))); + m_32apsk[31] = gr_complex((r3 * cos(-3 * GR_M_PI / 4.0)), (r3 * sin(-3 * GR_M_PI / 4.0))); break; case MOD_4_12_16APSK: r3 = m; @@ -352,38 +353,38 @@ namespace gr { break; } } - m_32apsk[0] = gr_complex((r3 * cos(11 * M_PI / 16.0)), (r3 * sin(11 * M_PI / 16.0))); - m_32apsk[1] = gr_complex((r3 * cos(9 * M_PI / 16.0)), (r3 * sin(9 * M_PI / 16.0))); - m_32apsk[2] = gr_complex((r3 * cos(5 * M_PI / 16.0)), (r3 * sin(5 * M_PI / 16.0))); - m_32apsk[3] = gr_complex((r3 * cos(7 * M_PI / 16.0)), (r3 * sin(7 * M_PI / 16.0))); - m_32apsk[4] = gr_complex((r2 * cos(3 * M_PI / 4.0)), (r2 * sin(3 * M_PI / 4.0))); - m_32apsk[5] = gr_complex((r2 * cos(7 * M_PI / 12.0)), (r2 * sin(7 * M_PI / 12.0))); - m_32apsk[6] = gr_complex((r2 * cos(M_PI / 4.0)), (r2 * sin(M_PI / 4.0))); - m_32apsk[7] = gr_complex((r2 * cos(5 * M_PI / 12.0)), (r2 * sin(5 * M_PI / 12.0))); - m_32apsk[8] = gr_complex((r3 * cos(13 * M_PI / 16.0)), (r3 * sin(13 * M_PI / 16.0))); - m_32apsk[9] = gr_complex((r3 * cos(15 * M_PI / 16.0)), (r3 * sin(15 * M_PI / 16.0))); - m_32apsk[10] = gr_complex((r3 * cos(3 * M_PI / 16.0)), (r3 * sin(3 * M_PI / 16.0))); - m_32apsk[11] = gr_complex((r3 * cos(M_PI / 16.0)), (r3 * sin(M_PI / 16.0))); - m_32apsk[12] = gr_complex((r2 * cos(11 * M_PI / 12.0)), (r2 * sin(11 * M_PI / 12.0))); - m_32apsk[13] = gr_complex((r1 * cos(3 * M_PI / 4.0)), (r1 * sin(3 * M_PI / 4.0))); - m_32apsk[14] = gr_complex((r2 * cos(M_PI / 12.0)), (r2 * sin(M_PI / 12.0))); - m_32apsk[15] = gr_complex((r1 * cos(M_PI / 4.0)), (r1 * sin(M_PI / 4.0))); - m_32apsk[16] = gr_complex((r3 * cos(21 * M_PI / 16.0)), (r3 * sin(21 * M_PI / 16.0))); - m_32apsk[17] = gr_complex((r3 * cos(23 * M_PI / 16.0)), (r3 * sin(23 * M_PI / 16.0))); - m_32apsk[18] = gr_complex((r3 * cos(27 * M_PI / 16.0)), (r3 * sin(27 * M_PI / 16.0))); - m_32apsk[19] = gr_complex((r3 * cos(25 * M_PI / 16.0)), (r3 * sin(25 * M_PI / 16.0))); - m_32apsk[20] = gr_complex((r2 * cos(5 * M_PI / 4.0)), (r2 * sin(5 * M_PI / 4.0))); - m_32apsk[21] = gr_complex((r2 * cos(17 * M_PI / 12.0)), (r2 * sin(17 * M_PI / 12.0))); - m_32apsk[22] = gr_complex((r2 * cos(7 * M_PI / 4.0)), (r2 * sin(7 * M_PI / 4.0))); - m_32apsk[23] = gr_complex((r2 * cos(19 * M_PI / 12.0)), (r2 * sin(19 * M_PI / 12.0))); - m_32apsk[24] = gr_complex((r3 * cos(19 * M_PI / 16.0)), (r3 * sin(19 * M_PI / 16.0))); - m_32apsk[25] = gr_complex((r3 * cos(17 * M_PI / 16.0)), (r3 * sin(17 * M_PI / 16.0))); - m_32apsk[26] = gr_complex((r3 * cos(29 * M_PI / 16.0)), (r3 * sin(29 * M_PI / 16.0))); - m_32apsk[27] = gr_complex((r3 * cos(31 * M_PI / 16.0)), (r3 * sin(31 * M_PI / 16.0))); - m_32apsk[28] = gr_complex((r2 * cos(13 * M_PI / 12.0)), (r2 * sin(13 * M_PI / 12.0))); - m_32apsk[29] = gr_complex((r1 * cos(5 * M_PI / 4.0)), (r1 * sin(5 * M_PI / 4.0))); - m_32apsk[30] = gr_complex((r2 * cos(23 * M_PI / 12.0)), (r2 * sin(23 * M_PI / 12.0))); - m_32apsk[31] = gr_complex((r1 * cos(7 * M_PI / 4.0)), (r1 * sin(7 * M_PI / 4.0))); + m_32apsk[0] = gr_complex((r3 * cos(11 * GR_M_PI / 16.0)), (r3 * sin(11 * GR_M_PI / 16.0))); + m_32apsk[1] = gr_complex((r3 * cos(9 * GR_M_PI / 16.0)), (r3 * sin(9 * GR_M_PI / 16.0))); + m_32apsk[2] = gr_complex((r3 * cos(5 * GR_M_PI / 16.0)), (r3 * sin(5 * GR_M_PI / 16.0))); + m_32apsk[3] = gr_complex((r3 * cos(7 * GR_M_PI / 16.0)), (r3 * sin(7 * GR_M_PI / 16.0))); + m_32apsk[4] = gr_complex((r2 * cos(3 * GR_M_PI / 4.0)), (r2 * sin(3 * GR_M_PI / 4.0))); + m_32apsk[5] = gr_complex((r2 * cos(7 * GR_M_PI / 12.0)), (r2 * sin(7 * GR_M_PI / 12.0))); + m_32apsk[6] = gr_complex((r2 * cos(GR_M_PI / 4.0)), (r2 * sin(GR_M_PI / 4.0))); + m_32apsk[7] = gr_complex((r2 * cos(5 * GR_M_PI / 12.0)), (r2 * sin(5 * GR_M_PI / 12.0))); + m_32apsk[8] = gr_complex((r3 * cos(13 * GR_M_PI / 16.0)), (r3 * sin(13 * GR_M_PI / 16.0))); + m_32apsk[9] = gr_complex((r3 * cos(15 * GR_M_PI / 16.0)), (r3 * sin(15 * GR_M_PI / 16.0))); + m_32apsk[10] = gr_complex((r3 * cos(3 * GR_M_PI / 16.0)), (r3 * sin(3 * GR_M_PI / 16.0))); + m_32apsk[11] = gr_complex((r3 * cos(GR_M_PI / 16.0)), (r3 * sin(GR_M_PI / 16.0))); + m_32apsk[12] = gr_complex((r2 * cos(11 * GR_M_PI / 12.0)), (r2 * sin(11 * GR_M_PI / 12.0))); + m_32apsk[13] = gr_complex((r1 * cos(3 * GR_M_PI / 4.0)), (r1 * sin(3 * GR_M_PI / 4.0))); + m_32apsk[14] = gr_complex((r2 * cos(GR_M_PI / 12.0)), (r2 * sin(GR_M_PI / 12.0))); + m_32apsk[15] = gr_complex((r1 * cos(GR_M_PI / 4.0)), (r1 * sin(GR_M_PI / 4.0))); + m_32apsk[16] = gr_complex((r3 * cos(21 * GR_M_PI / 16.0)), (r3 * sin(21 * GR_M_PI / 16.0))); + m_32apsk[17] = gr_complex((r3 * cos(23 * GR_M_PI / 16.0)), (r3 * sin(23 * GR_M_PI / 16.0))); + m_32apsk[18] = gr_complex((r3 * cos(27 * GR_M_PI / 16.0)), (r3 * sin(27 * GR_M_PI / 16.0))); + m_32apsk[19] = gr_complex((r3 * cos(25 * GR_M_PI / 16.0)), (r3 * sin(25 * GR_M_PI / 16.0))); + m_32apsk[20] = gr_complex((r2 * cos(5 * GR_M_PI / 4.0)), (r2 * sin(5 * GR_M_PI / 4.0))); + m_32apsk[21] = gr_complex((r2 * cos(17 * GR_M_PI / 12.0)), (r2 * sin(17 * GR_M_PI / 12.0))); + m_32apsk[22] = gr_complex((r2 * cos(7 * GR_M_PI / 4.0)), (r2 * sin(7 * GR_M_PI / 4.0))); + m_32apsk[23] = gr_complex((r2 * cos(19 * GR_M_PI / 12.0)), (r2 * sin(19 * GR_M_PI / 12.0))); + m_32apsk[24] = gr_complex((r3 * cos(19 * GR_M_PI / 16.0)), (r3 * sin(19 * GR_M_PI / 16.0))); + m_32apsk[25] = gr_complex((r3 * cos(17 * GR_M_PI / 16.0)), (r3 * sin(17 * GR_M_PI / 16.0))); + m_32apsk[26] = gr_complex((r3 * cos(29 * GR_M_PI / 16.0)), (r3 * sin(29 * GR_M_PI / 16.0))); + m_32apsk[27] = gr_complex((r3 * cos(31 * GR_M_PI / 16.0)), (r3 * sin(31 * GR_M_PI / 16.0))); + m_32apsk[28] = gr_complex((r2 * cos(13 * GR_M_PI / 12.0)), (r2 * sin(13 * GR_M_PI / 12.0))); + m_32apsk[29] = gr_complex((r1 * cos(5 * GR_M_PI / 4.0)), (r1 * sin(5 * GR_M_PI / 4.0))); + m_32apsk[30] = gr_complex((r2 * cos(23 * GR_M_PI / 12.0)), (r2 * sin(23 * GR_M_PI / 12.0))); + m_32apsk[31] = gr_complex((r1 * cos(7 * GR_M_PI / 4.0)), (r1 * sin(7 * GR_M_PI / 4.0))); break; case MOD_4_8_4_16APSK: r4 = m; @@ -409,38 +410,38 @@ namespace gr { r3 = 0; break; } - m_32apsk[0] = gr_complex((r1 * cos(M_PI / 4.0)), (r1 * sin(M_PI / 4.0))); - m_32apsk[1] = gr_complex((r4 * cos(7 * M_PI / 16.0)), (r4 * sin(7 * M_PI / 16.0))); - m_32apsk[2] = gr_complex((r1 * cos(7 * M_PI / 4.0)), (r1 * sin(7 * M_PI / 4.0))); - m_32apsk[3] = gr_complex((r4 * cos(25 * M_PI / 16.0)), (r4 * sin(25 * M_PI / 16.0))); - m_32apsk[4] = gr_complex((r1 * cos(3 * M_PI / 4.0)), (r1 * sin(3 * M_PI / 4.0))); - m_32apsk[5] = gr_complex((r4 * cos(9 * M_PI / 16.0)), (r4 * sin(9 * M_PI / 16.0))); - m_32apsk[6] = gr_complex((r1 * cos(5 * M_PI / 4.0)), (r1 * sin(5 * M_PI / 4.0))); - m_32apsk[7] = gr_complex((r4 * cos(23 * M_PI / 16.0)), (r4 * sin(23 * M_PI / 16.0))); - m_32apsk[8] = gr_complex((r2 * cos(M_PI / 12.0)), (r2 * sin(M_PI / 12.0))); - m_32apsk[9] = gr_complex((r4 * cos(M_PI / 16.0)), (r4 * sin(M_PI / 16.0))); - m_32apsk[10] = gr_complex((r2 * cos(23 * M_PI / 12.0)), (r2 * sin(23 * M_PI / 12.0))); - m_32apsk[11] = gr_complex((r4 * cos(31 * M_PI / 16.0)), (r4 * sin(31 * M_PI / 16.0))); - m_32apsk[12] = gr_complex((r2 * cos(11 * M_PI / 12.0)), (r2 * sin(11 * M_PI / 12.0))); - m_32apsk[13] = gr_complex((r4 * cos(15 * M_PI / 16.0)), (r4 * sin(15 * M_PI / 16.0))); - m_32apsk[14] = gr_complex((r2 * cos(13 * M_PI / 12.0)), (r2 * sin(13 * M_PI / 12.0))); - m_32apsk[15] = gr_complex((r4 * cos(17 * M_PI / 16.0)), (r4 * sin(17 * M_PI / 16.0))); - m_32apsk[16] = gr_complex((r2 * cos(5 * M_PI / 12.0)), (r2 * sin(5 * M_PI / 12.0))); - m_32apsk[17] = gr_complex((r4 * cos(5 * M_PI / 16.0)), (r4 * sin(5 * M_PI / 16.0))); - m_32apsk[18] = gr_complex((r2 * cos(19 * M_PI / 12.0)), (r2 * sin(19 * M_PI / 12.0))); - m_32apsk[19] = gr_complex((r4 * cos(27 * M_PI / 16.0)), (r4 * sin(27 * M_PI / 16.0))); - m_32apsk[20] = gr_complex((r2 * cos(7 * M_PI / 12.0)), (r2 * sin(7 * M_PI / 12.0))); - m_32apsk[21] = gr_complex((r4 * cos(11 * M_PI / 16.0)), (r4 * sin(11 * M_PI / 16.0))); - m_32apsk[22] = gr_complex((r2 * cos(17 * M_PI / 12.0)), (r2 * sin(17 * M_PI / 12.0))); - m_32apsk[23] = gr_complex((r4 * cos(21 * M_PI / 16.0)), (r4 * sin(21 * M_PI / 16.0))); - m_32apsk[24] = gr_complex((r3 * cos(M_PI / 4.0)), (r3 * sin(M_PI / 4.0))); - m_32apsk[25] = gr_complex((r4 * cos(3 * M_PI / 16.0)), (r4 * sin(3 * M_PI / 16.0))); - m_32apsk[26] = gr_complex((r3 * cos(7 * M_PI / 4.0)), (r3 * sin(7 * M_PI / 4.0))); - m_32apsk[27] = gr_complex((r4 * cos(29 * M_PI / 16.0)), (r4 * sin(29 * M_PI / 16.0))); - m_32apsk[28] = gr_complex((r3 * cos(3 * M_PI / 4.0)), (r3 * sin(3 * M_PI / 4.0))); - m_32apsk[29] = gr_complex((r4 * cos(13 * M_PI / 16.0)), (r4 * sin(13 * M_PI / 16.0))); - m_32apsk[30] = gr_complex((r3 * cos(5 * M_PI / 4.0)), (r3 * sin(5 * M_PI / 4.0))); - m_32apsk[31] = gr_complex((r4 * cos(19 * M_PI / 16.0)), (r4 * sin(19 * M_PI / 16.0))); + m_32apsk[0] = gr_complex((r1 * cos(GR_M_PI / 4.0)), (r1 * sin(GR_M_PI / 4.0))); + m_32apsk[1] = gr_complex((r4 * cos(7 * GR_M_PI / 16.0)), (r4 * sin(7 * GR_M_PI / 16.0))); + m_32apsk[2] = gr_complex((r1 * cos(7 * GR_M_PI / 4.0)), (r1 * sin(7 * GR_M_PI / 4.0))); + m_32apsk[3] = gr_complex((r4 * cos(25 * GR_M_PI / 16.0)), (r4 * sin(25 * GR_M_PI / 16.0))); + m_32apsk[4] = gr_complex((r1 * cos(3 * GR_M_PI / 4.0)), (r1 * sin(3 * GR_M_PI / 4.0))); + m_32apsk[5] = gr_complex((r4 * cos(9 * GR_M_PI / 16.0)), (r4 * sin(9 * GR_M_PI / 16.0))); + m_32apsk[6] = gr_complex((r1 * cos(5 * GR_M_PI / 4.0)), (r1 * sin(5 * GR_M_PI / 4.0))); + m_32apsk[7] = gr_complex((r4 * cos(23 * GR_M_PI / 16.0)), (r4 * sin(23 * GR_M_PI / 16.0))); + m_32apsk[8] = gr_complex((r2 * cos(GR_M_PI / 12.0)), (r2 * sin(GR_M_PI / 12.0))); + m_32apsk[9] = gr_complex((r4 * cos(GR_M_PI / 16.0)), (r4 * sin(GR_M_PI / 16.0))); + m_32apsk[10] = gr_complex((r2 * cos(23 * GR_M_PI / 12.0)), (r2 * sin(23 * GR_M_PI / 12.0))); + m_32apsk[11] = gr_complex((r4 * cos(31 * GR_M_PI / 16.0)), (r4 * sin(31 * GR_M_PI / 16.0))); + m_32apsk[12] = gr_complex((r2 * cos(11 * GR_M_PI / 12.0)), (r2 * sin(11 * GR_M_PI / 12.0))); + m_32apsk[13] = gr_complex((r4 * cos(15 * GR_M_PI / 16.0)), (r4 * sin(15 * GR_M_PI / 16.0))); + m_32apsk[14] = gr_complex((r2 * cos(13 * GR_M_PI / 12.0)), (r2 * sin(13 * GR_M_PI / 12.0))); + m_32apsk[15] = gr_complex((r4 * cos(17 * GR_M_PI / 16.0)), (r4 * sin(17 * GR_M_PI / 16.0))); + m_32apsk[16] = gr_complex((r2 * cos(5 * GR_M_PI / 12.0)), (r2 * sin(5 * GR_M_PI / 12.0))); + m_32apsk[17] = gr_complex((r4 * cos(5 * GR_M_PI / 16.0)), (r4 * sin(5 * GR_M_PI / 16.0))); + m_32apsk[18] = gr_complex((r2 * cos(19 * GR_M_PI / 12.0)), (r2 * sin(19 * GR_M_PI / 12.0))); + m_32apsk[19] = gr_complex((r4 * cos(27 * GR_M_PI / 16.0)), (r4 * sin(27 * GR_M_PI / 16.0))); + m_32apsk[20] = gr_complex((r2 * cos(7 * GR_M_PI / 12.0)), (r2 * sin(7 * GR_M_PI / 12.0))); + m_32apsk[21] = gr_complex((r4 * cos(11 * GR_M_PI / 16.0)), (r4 * sin(11 * GR_M_PI / 16.0))); + m_32apsk[22] = gr_complex((r2 * cos(17 * GR_M_PI / 12.0)), (r2 * sin(17 * GR_M_PI / 12.0))); + m_32apsk[23] = gr_complex((r4 * cos(21 * GR_M_PI / 16.0)), (r4 * sin(21 * GR_M_PI / 16.0))); + m_32apsk[24] = gr_complex((r3 * cos(GR_M_PI / 4.0)), (r3 * sin(GR_M_PI / 4.0))); + m_32apsk[25] = gr_complex((r4 * cos(3 * GR_M_PI / 16.0)), (r4 * sin(3 * GR_M_PI / 16.0))); + m_32apsk[26] = gr_complex((r3 * cos(7 * GR_M_PI / 4.0)), (r3 * sin(7 * GR_M_PI / 4.0))); + m_32apsk[27] = gr_complex((r4 * cos(29 * GR_M_PI / 16.0)), (r4 * sin(29 * GR_M_PI / 16.0))); + m_32apsk[28] = gr_complex((r3 * cos(3 * GR_M_PI / 4.0)), (r3 * sin(3 * GR_M_PI / 4.0))); + m_32apsk[29] = gr_complex((r4 * cos(13 * GR_M_PI / 16.0)), (r4 * sin(13 * GR_M_PI / 16.0))); + m_32apsk[30] = gr_complex((r3 * cos(5 * GR_M_PI / 4.0)), (r3 * sin(5 * GR_M_PI / 4.0))); + m_32apsk[31] = gr_complex((r4 * cos(19 * GR_M_PI / 16.0)), (r4 * sin(19 * GR_M_PI / 16.0))); break; case MOD_64APSK: r4 = m; @@ -456,70 +457,70 @@ namespace gr { r3 = 0; break; } - m_64apsk[0] = gr_complex((r1 * cos(M_PI / 16.0)), (r1 * sin(M_PI / 16.0))); - m_64apsk[1] = gr_complex((r1 * cos(3 * M_PI / 16.0)), (r1 * sin(3 * M_PI / 16.0))); - m_64apsk[2] = gr_complex((r1 * cos(7 * M_PI / 16.0)), (r1 * sin(7 * M_PI / 16.0))); - m_64apsk[3] = gr_complex((r1 * cos(5 * M_PI / 16.0)), (r1 * sin(5 * M_PI / 16.0))); - m_64apsk[4] = gr_complex((r1 * cos(31 * M_PI / 16.0)), (r1 * sin(31 * M_PI / 16.0))); - m_64apsk[5] = gr_complex((r1 * cos(29 * M_PI / 16.0)), (r1 * sin(29 * M_PI / 16.0))); - m_64apsk[6] = gr_complex((r1 * cos(25 * M_PI / 16.0)), (r1 * sin(25 * M_PI / 16.0))); - m_64apsk[7] = gr_complex((r1 * cos(27 * M_PI / 16.0)), (r1 * sin(27 * M_PI / 16.0))); - m_64apsk[8] = gr_complex((r1 * cos(15 * M_PI / 16.0)), (r1 * sin(15 * M_PI / 16.0))); - m_64apsk[9] = gr_complex((r1 * cos(13 * M_PI / 16.0)), (r1 * sin(13 * M_PI / 16.0))); - m_64apsk[10] = gr_complex((r1 * cos(9 * M_PI / 16.0)), (r1 * sin(9 * M_PI / 16.0))); - m_64apsk[11] = gr_complex((r1 * cos(11 * M_PI / 16.0)), (r1 * sin(11 * M_PI / 16.0))); - m_64apsk[12] = gr_complex((r1 * cos(17 * M_PI / 16.0)), (r1 * sin(17 * M_PI / 16.0))); - m_64apsk[13] = gr_complex((r1 * cos(19 * M_PI / 16.0)), (r1 * sin(19 * M_PI / 16.0))); - m_64apsk[14] = gr_complex((r1 * cos(23 * M_PI / 16.0)), (r1 * sin(23 * M_PI / 16.0))); - m_64apsk[15] = gr_complex((r1 * cos(21 * M_PI / 16.0)), (r1 * sin(21 * M_PI / 16.0))); - m_64apsk[16] = gr_complex((r2 * cos(M_PI / 16.0)), (r2 * sin(M_PI / 16.0))); - m_64apsk[17] = gr_complex((r2 * cos(3 * M_PI / 16.0)), (r2 * sin(3 * M_PI / 16.0))); - m_64apsk[18] = gr_complex((r2 * cos(7 * M_PI / 16.0)), (r2 * sin(7 * M_PI / 16.0))); - m_64apsk[19] = gr_complex((r2 * cos(5 * M_PI / 16.0)), (r2 * sin(5 * M_PI / 16.0))); - m_64apsk[20] = gr_complex((r2 * cos(31 * M_PI / 16.0)), (r2 * sin(31* M_PI / 16.0))); - m_64apsk[21] = gr_complex((r2 * cos(29 * M_PI / 16.0)), (r2 * sin(29 * M_PI / 16.0))); - m_64apsk[22] = gr_complex((r2 * cos(25 * M_PI / 16.0)), (r2 * sin(25 * M_PI / 16.0))); - m_64apsk[23] = gr_complex((r2 * cos(27 * M_PI / 16.0)), (r2 * sin(27 * M_PI / 16.0))); - m_64apsk[24] = gr_complex((r2 * cos(15 * M_PI / 16.0)), (r2 * sin(15 * M_PI / 16.0))); - m_64apsk[25] = gr_complex((r2 * cos(13 * M_PI / 16.0)), (r2 * sin(13 * M_PI / 16.0))); - m_64apsk[26] = gr_complex((r2 * cos(9 * M_PI / 16.0)), (r2 * sin(9 * M_PI / 16.0))); - m_64apsk[27] = gr_complex((r2 * cos(11 * M_PI / 16.0)), (r2 * sin(11 * M_PI / 16.0))); - m_64apsk[28] = gr_complex((r2 * cos(17 * M_PI / 16.0)), (r2 * sin(17 * M_PI / 16.0))); - m_64apsk[29] = gr_complex((r2 * cos(19 * M_PI / 16.0)), (r2 * sin(19 * M_PI / 16.0))); - m_64apsk[30] = gr_complex((r2 * cos(23 * M_PI / 16.0)), (r2 * sin(23 * M_PI / 16.0))); - m_64apsk[31] = gr_complex((r2 * cos(21 * M_PI / 16.0)), (r2 * sin(21 * M_PI / 16.0))); - m_64apsk[32] = gr_complex((r4 * cos(M_PI / 16.0)), (r4 * sin(M_PI / 16.0))); - m_64apsk[33] = gr_complex((r4 * cos(3 * M_PI / 16.0)), (r4 * sin(3 * M_PI / 16.0))); - m_64apsk[34] = gr_complex((r4 * cos(7 * M_PI / 16.0)), (r4 * sin(7 * M_PI / 16.0))); - m_64apsk[35] = gr_complex((r4 * cos(5 * M_PI / 16.0)), (r4 * sin(5 * M_PI / 16.0))); - m_64apsk[36] = gr_complex((r4 * cos(31 * M_PI / 16.0)), (r4 * sin(31 * M_PI / 16.0))); - m_64apsk[37] = gr_complex((r4 * cos(29 * M_PI / 16.0)), (r4 * sin(29 * M_PI / 16.0))); - m_64apsk[38] = gr_complex((r4 * cos(25 * M_PI / 16.0)), (r4 * sin(25 * M_PI / 16.0))); - m_64apsk[39] = gr_complex((r4 * cos(27 * M_PI / 16.0)), (r4 * sin(27 * M_PI / 16.0))); - m_64apsk[40] = gr_complex((r4 * cos(15 * M_PI / 16.0)), (r4 * sin(15 * M_PI / 16.0))); - m_64apsk[41] = gr_complex((r4 * cos(13 * M_PI / 16.0)), (r4 * sin(13 * M_PI / 16.0))); - m_64apsk[42] = gr_complex((r4 * cos(9 * M_PI / 16.0)), (r4 * sin(9 * M_PI / 16.0))); - m_64apsk[43] = gr_complex((r4 * cos(11 * M_PI / 16.0)), (r4 * sin(11 * M_PI / 16.0))); - m_64apsk[44] = gr_complex((r4 * cos(17 * M_PI / 16.0)), (r4 * sin(17 * M_PI / 16.0))); - m_64apsk[45] = gr_complex((r4 * cos(19 * M_PI / 16.0)), (r4 * sin(19 * M_PI / 16.0))); - m_64apsk[46] = gr_complex((r4 * cos(23 * M_PI / 16.0)), (r4 * sin(23 * M_PI / 16.0))); - m_64apsk[47] = gr_complex((r4 * cos(21 * M_PI / 16.0)), (r4 * sin(21 * M_PI / 16.0))); - m_64apsk[48] = gr_complex((r3 * cos(M_PI / 16.0)), (r3 * sin(M_PI / 16.0))); - m_64apsk[49] = gr_complex((r3 * cos(3 * M_PI / 16.0)), (r3 * sin(3 * M_PI / 16.0))); - m_64apsk[50] = gr_complex((r3 * cos(7 * M_PI / 16.0)), (r3 * sin(7 * M_PI / 16.0))); - m_64apsk[51] = gr_complex((r3 * cos(5 * M_PI / 16.0)), (r3 * sin(5 * M_PI / 16.0))); - m_64apsk[52] = gr_complex((r3 * cos(31 * M_PI / 16.0)), (r3 * sin(31 * M_PI / 16.0))); - m_64apsk[53] = gr_complex((r3 * cos(29 * M_PI / 16.0)), (r3 * sin(29 * M_PI / 16.0))); - m_64apsk[54] = gr_complex((r3 * cos(25 * M_PI / 16.0)), (r3 * sin(25 * M_PI / 16.0))); - m_64apsk[55] = gr_complex((r3 * cos(27 * M_PI / 16.0)), (r3 * sin(27 * M_PI / 16.0))); - m_64apsk[56] = gr_complex((r3 * cos(15 * M_PI / 16.0)), (r3 * sin(15 * M_PI / 16.0))); - m_64apsk[57] = gr_complex((r3 * cos(13 * M_PI / 16.0)), (r3 * sin(13 * M_PI / 16.0))); - m_64apsk[58] = gr_complex((r3 * cos(9 * M_PI / 16.0)), (r3 * sin(9 * M_PI / 16.0))); - m_64apsk[59] = gr_complex((r3 * cos(11 * M_PI / 16.0)), (r3 * sin(11 * M_PI / 16.0))); - m_64apsk[60] = gr_complex((r3 * cos(17 * M_PI / 16.0)), (r3 * sin(17 * M_PI / 16.0))); - m_64apsk[61] = gr_complex((r3 * cos(19 * M_PI / 16.0)), (r3 * sin(19 * M_PI / 16.0))); - m_64apsk[62] = gr_complex((r3 * cos(23 * M_PI / 16.0)), (r3 * sin(23 * M_PI / 16.0))); - m_64apsk[63] = gr_complex((r3 * cos(21 * M_PI / 16.0)), (r3 * sin(21 * M_PI / 16.0))); + m_64apsk[0] = gr_complex((r1 * cos(GR_M_PI / 16.0)), (r1 * sin(GR_M_PI / 16.0))); + m_64apsk[1] = gr_complex((r1 * cos(3 * GR_M_PI / 16.0)), (r1 * sin(3 * GR_M_PI / 16.0))); + m_64apsk[2] = gr_complex((r1 * cos(7 * GR_M_PI / 16.0)), (r1 * sin(7 * GR_M_PI / 16.0))); + m_64apsk[3] = gr_complex((r1 * cos(5 * GR_M_PI / 16.0)), (r1 * sin(5 * GR_M_PI / 16.0))); + m_64apsk[4] = gr_complex((r1 * cos(31 * GR_M_PI / 16.0)), (r1 * sin(31 * GR_M_PI / 16.0))); + m_64apsk[5] = gr_complex((r1 * cos(29 * GR_M_PI / 16.0)), (r1 * sin(29 * GR_M_PI / 16.0))); + m_64apsk[6] = gr_complex((r1 * cos(25 * GR_M_PI / 16.0)), (r1 * sin(25 * GR_M_PI / 16.0))); + m_64apsk[7] = gr_complex((r1 * cos(27 * GR_M_PI / 16.0)), (r1 * sin(27 * GR_M_PI / 16.0))); + m_64apsk[8] = gr_complex((r1 * cos(15 * GR_M_PI / 16.0)), (r1 * sin(15 * GR_M_PI / 16.0))); + m_64apsk[9] = gr_complex((r1 * cos(13 * GR_M_PI / 16.0)), (r1 * sin(13 * GR_M_PI / 16.0))); + m_64apsk[10] = gr_complex((r1 * cos(9 * GR_M_PI / 16.0)), (r1 * sin(9 * GR_M_PI / 16.0))); + m_64apsk[11] = gr_complex((r1 * cos(11 * GR_M_PI / 16.0)), (r1 * sin(11 * GR_M_PI / 16.0))); + m_64apsk[12] = gr_complex((r1 * cos(17 * GR_M_PI / 16.0)), (r1 * sin(17 * GR_M_PI / 16.0))); + m_64apsk[13] = gr_complex((r1 * cos(19 * GR_M_PI / 16.0)), (r1 * sin(19 * GR_M_PI / 16.0))); + m_64apsk[14] = gr_complex((r1 * cos(23 * GR_M_PI / 16.0)), (r1 * sin(23 * GR_M_PI / 16.0))); + m_64apsk[15] = gr_complex((r1 * cos(21 * GR_M_PI / 16.0)), (r1 * sin(21 * GR_M_PI / 16.0))); + m_64apsk[16] = gr_complex((r2 * cos(GR_M_PI / 16.0)), (r2 * sin(GR_M_PI / 16.0))); + m_64apsk[17] = gr_complex((r2 * cos(3 * GR_M_PI / 16.0)), (r2 * sin(3 * GR_M_PI / 16.0))); + m_64apsk[18] = gr_complex((r2 * cos(7 * GR_M_PI / 16.0)), (r2 * sin(7 * GR_M_PI / 16.0))); + m_64apsk[19] = gr_complex((r2 * cos(5 * GR_M_PI / 16.0)), (r2 * sin(5 * GR_M_PI / 16.0))); + m_64apsk[20] = gr_complex((r2 * cos(31 * GR_M_PI / 16.0)), (r2 * sin(31* GR_M_PI / 16.0))); + m_64apsk[21] = gr_complex((r2 * cos(29 * GR_M_PI / 16.0)), (r2 * sin(29 * GR_M_PI / 16.0))); + m_64apsk[22] = gr_complex((r2 * cos(25 * GR_M_PI / 16.0)), (r2 * sin(25 * GR_M_PI / 16.0))); + m_64apsk[23] = gr_complex((r2 * cos(27 * GR_M_PI / 16.0)), (r2 * sin(27 * GR_M_PI / 16.0))); + m_64apsk[24] = gr_complex((r2 * cos(15 * GR_M_PI / 16.0)), (r2 * sin(15 * GR_M_PI / 16.0))); + m_64apsk[25] = gr_complex((r2 * cos(13 * GR_M_PI / 16.0)), (r2 * sin(13 * GR_M_PI / 16.0))); + m_64apsk[26] = gr_complex((r2 * cos(9 * GR_M_PI / 16.0)), (r2 * sin(9 * GR_M_PI / 16.0))); + m_64apsk[27] = gr_complex((r2 * cos(11 * GR_M_PI / 16.0)), (r2 * sin(11 * GR_M_PI / 16.0))); + m_64apsk[28] = gr_complex((r2 * cos(17 * GR_M_PI / 16.0)), (r2 * sin(17 * GR_M_PI / 16.0))); + m_64apsk[29] = gr_complex((r2 * cos(19 * GR_M_PI / 16.0)), (r2 * sin(19 * GR_M_PI / 16.0))); + m_64apsk[30] = gr_complex((r2 * cos(23 * GR_M_PI / 16.0)), (r2 * sin(23 * GR_M_PI / 16.0))); + m_64apsk[31] = gr_complex((r2 * cos(21 * GR_M_PI / 16.0)), (r2 * sin(21 * GR_M_PI / 16.0))); + m_64apsk[32] = gr_complex((r4 * cos(GR_M_PI / 16.0)), (r4 * sin(GR_M_PI / 16.0))); + m_64apsk[33] = gr_complex((r4 * cos(3 * GR_M_PI / 16.0)), (r4 * sin(3 * GR_M_PI / 16.0))); + m_64apsk[34] = gr_complex((r4 * cos(7 * GR_M_PI / 16.0)), (r4 * sin(7 * GR_M_PI / 16.0))); + m_64apsk[35] = gr_complex((r4 * cos(5 * GR_M_PI / 16.0)), (r4 * sin(5 * GR_M_PI / 16.0))); + m_64apsk[36] = gr_complex((r4 * cos(31 * GR_M_PI / 16.0)), (r4 * sin(31 * GR_M_PI / 16.0))); + m_64apsk[37] = gr_complex((r4 * cos(29 * GR_M_PI / 16.0)), (r4 * sin(29 * GR_M_PI / 16.0))); + m_64apsk[38] = gr_complex((r4 * cos(25 * GR_M_PI / 16.0)), (r4 * sin(25 * GR_M_PI / 16.0))); + m_64apsk[39] = gr_complex((r4 * cos(27 * GR_M_PI / 16.0)), (r4 * sin(27 * GR_M_PI / 16.0))); + m_64apsk[40] = gr_complex((r4 * cos(15 * GR_M_PI / 16.0)), (r4 * sin(15 * GR_M_PI / 16.0))); + m_64apsk[41] = gr_complex((r4 * cos(13 * GR_M_PI / 16.0)), (r4 * sin(13 * GR_M_PI / 16.0))); + m_64apsk[42] = gr_complex((r4 * cos(9 * GR_M_PI / 16.0)), (r4 * sin(9 * GR_M_PI / 16.0))); + m_64apsk[43] = gr_complex((r4 * cos(11 * GR_M_PI / 16.0)), (r4 * sin(11 * GR_M_PI / 16.0))); + m_64apsk[44] = gr_complex((r4 * cos(17 * GR_M_PI / 16.0)), (r4 * sin(17 * GR_M_PI / 16.0))); + m_64apsk[45] = gr_complex((r4 * cos(19 * GR_M_PI / 16.0)), (r4 * sin(19 * GR_M_PI / 16.0))); + m_64apsk[46] = gr_complex((r4 * cos(23 * GR_M_PI / 16.0)), (r4 * sin(23 * GR_M_PI / 16.0))); + m_64apsk[47] = gr_complex((r4 * cos(21 * GR_M_PI / 16.0)), (r4 * sin(21 * GR_M_PI / 16.0))); + m_64apsk[48] = gr_complex((r3 * cos(GR_M_PI / 16.0)), (r3 * sin(GR_M_PI / 16.0))); + m_64apsk[49] = gr_complex((r3 * cos(3 * GR_M_PI / 16.0)), (r3 * sin(3 * GR_M_PI / 16.0))); + m_64apsk[50] = gr_complex((r3 * cos(7 * GR_M_PI / 16.0)), (r3 * sin(7 * GR_M_PI / 16.0))); + m_64apsk[51] = gr_complex((r3 * cos(5 * GR_M_PI / 16.0)), (r3 * sin(5 * GR_M_PI / 16.0))); + m_64apsk[52] = gr_complex((r3 * cos(31 * GR_M_PI / 16.0)), (r3 * sin(31 * GR_M_PI / 16.0))); + m_64apsk[53] = gr_complex((r3 * cos(29 * GR_M_PI / 16.0)), (r3 * sin(29 * GR_M_PI / 16.0))); + m_64apsk[54] = gr_complex((r3 * cos(25 * GR_M_PI / 16.0)), (r3 * sin(25 * GR_M_PI / 16.0))); + m_64apsk[55] = gr_complex((r3 * cos(27 * GR_M_PI / 16.0)), (r3 * sin(27 * GR_M_PI / 16.0))); + m_64apsk[56] = gr_complex((r3 * cos(15 * GR_M_PI / 16.0)), (r3 * sin(15 * GR_M_PI / 16.0))); + m_64apsk[57] = gr_complex((r3 * cos(13 * GR_M_PI / 16.0)), (r3 * sin(13 * GR_M_PI / 16.0))); + m_64apsk[58] = gr_complex((r3 * cos(9 * GR_M_PI / 16.0)), (r3 * sin(9 * GR_M_PI / 16.0))); + m_64apsk[59] = gr_complex((r3 * cos(11 * GR_M_PI / 16.0)), (r3 * sin(11 * GR_M_PI / 16.0))); + m_64apsk[60] = gr_complex((r3 * cos(17 * GR_M_PI / 16.0)), (r3 * sin(17 * GR_M_PI / 16.0))); + m_64apsk[61] = gr_complex((r3 * cos(19 * GR_M_PI / 16.0)), (r3 * sin(19 * GR_M_PI / 16.0))); + m_64apsk[62] = gr_complex((r3 * cos(23 * GR_M_PI / 16.0)), (r3 * sin(23 * GR_M_PI / 16.0))); + m_64apsk[63] = gr_complex((r3 * cos(21 * GR_M_PI / 16.0)), (r3 * sin(21 * GR_M_PI / 16.0))); break; case MOD_8_16_20_20APSK: r4 = m; @@ -541,70 +542,70 @@ namespace gr { r3 = 0; break; } - m_64apsk[0] = gr_complex((r2 * cos(25 * M_PI / 16.0)), (r2 * sin(25 * M_PI / 16.0))); - m_64apsk[1] = gr_complex((r4 * cos(7 * M_PI / 4.0)), (r4 * sin(7 * M_PI / 4.0))); - m_64apsk[2] = gr_complex((r2 * cos(27 * M_PI / 16.0)), (r2 * sin(27 * M_PI / 16.0))); - m_64apsk[3] = gr_complex((r3 * cos(7 * M_PI / 4.0)), (r3 * sin(7 * M_PI / 4.0))); - m_64apsk[4] = gr_complex((r4 * cos(31 * M_PI / 20.0)), (r4 * sin(31 * M_PI / 20.0))); - m_64apsk[5] = gr_complex((r4 * cos(33 * M_PI / 20.0)), (r4 * sin(33 * M_PI / 20.0))); - m_64apsk[6] = gr_complex((r3 * cos(31 * M_PI / 20.0)), (r3 * sin(31 * M_PI / 20.0))); - m_64apsk[7] = gr_complex((r3 * cos(33 * M_PI / 20.0)), (r3 * sin(33 * M_PI / 20.0))); - m_64apsk[8] = gr_complex((r2 * cos(23 * M_PI / 16.0)), (r2 * sin(23 * M_PI / 16.0))); - m_64apsk[9] = gr_complex((r4 * cos(5 * M_PI / 4.0)), (r4 * sin(5 * M_PI / 4.0))); - m_64apsk[10] = gr_complex((r2 * cos(21 * M_PI / 16.0)), (r2 * sin(21 * M_PI / 16.0))); - m_64apsk[11] = gr_complex((r3 * cos(5 * M_PI / 4.0)), (r3 * sin(5 * M_PI / 4.0))); - m_64apsk[12] = gr_complex((r4 * cos(29 * M_PI / 20.0)), (r4 * sin(29 * M_PI / 20.0))); - m_64apsk[13] = gr_complex((r4 * cos(27 * M_PI / 20.0)), (r4 * sin(27 * M_PI / 20.0))); - m_64apsk[14] = gr_complex((r3 * cos(29 * M_PI / 20.0)), (r3 * sin(29 * M_PI / 20.0))); - m_64apsk[15] = gr_complex((r3 * cos(27 * M_PI / 20.0)), (r3 * sin(27 * M_PI / 20.0))); - m_64apsk[16] = gr_complex((r1 * cos(13 * M_PI / 8.0)), (r1 * sin(13 * M_PI / 8.0))); - m_64apsk[17] = gr_complex((r4 * cos(37 * M_PI / 20.0)), (r4 * sin(37 * M_PI / 20.0))); - m_64apsk[18] = gr_complex((r2 * cos(29 * M_PI / 16.0)), (r2 * sin(29 * M_PI / 16.0))); - m_64apsk[19] = gr_complex((r3 * cos(37 * M_PI / 20.0)), (r3 * sin(37 * M_PI / 20.0))); - m_64apsk[20] = gr_complex((r1 * cos(15 * M_PI / 8.0)), (r1 * sin(15 * M_PI / 8.0))); - m_64apsk[21] = gr_complex((r4 * cos(39 * M_PI / 20.0)), (r4 * sin(39 * M_PI / 20.0))); - m_64apsk[22] = gr_complex((r2 * cos(31 * M_PI / 16.0)), (r2 * sin(31 * M_PI / 16.0))); - m_64apsk[23] = gr_complex((r3 * cos(39 * M_PI / 20.0)), (r3 * sin(39 * M_PI / 20.0))); - m_64apsk[24] = gr_complex((r1 * cos(11 * M_PI / 8.0)), (r1 * sin(11 * M_PI / 8.0))); - m_64apsk[25] = gr_complex((r4 * cos(23 * M_PI / 20.0)), (r4 * sin(23 * M_PI / 20.0))); - m_64apsk[26] = gr_complex((r2 * cos(19 * M_PI / 16.0)), (r2 * sin(19 * M_PI / 16.0))); - m_64apsk[27] = gr_complex((r3 * cos(23 * M_PI / 20.0)), (r3 * sin(23 * M_PI / 20.0))); - m_64apsk[28] = gr_complex((r1 * cos(9 * M_PI / 8.0)), (r1 * sin(9 * M_PI / 8.0))); - m_64apsk[29] = gr_complex((r4 * cos(21 * M_PI / 20.0)), (r4 * sin(21 * M_PI / 20.0))); - m_64apsk[30] = gr_complex((r2 * cos(17 * M_PI / 16.0)), (r2 * sin(17 * M_PI / 16.0))); - m_64apsk[31] = gr_complex((r3 * cos(21 * M_PI / 20.0)), (r3 * sin(21 * M_PI / 20.0))); - m_64apsk[32] = gr_complex((r2 * cos(7 * M_PI / 16.0)), (r2 * sin(7 * M_PI / 16.0))); - m_64apsk[33] = gr_complex((r4 * cos(M_PI / 4.0)), (r4 * sin(M_PI / 4.0))); - m_64apsk[34] = gr_complex((r2 * cos(5 * M_PI / 16.0)), (r2 * sin(5 * M_PI / 16.0))); - m_64apsk[35] = gr_complex((r3 * cos(M_PI / 4.0)), (r3 * sin(M_PI / 4.0))); - m_64apsk[36] = gr_complex((r4 * cos(9 * M_PI / 20.0)), (r4 * sin(9 * M_PI / 20.0))); - m_64apsk[37] = gr_complex((r4 * cos(7 * M_PI / 20.0)), (r4 * sin(7 * M_PI / 20.0))); - m_64apsk[38] = gr_complex((r3 * cos(9 * M_PI / 20.0)), (r3 * sin(9 * M_PI / 20.0))); - m_64apsk[39] = gr_complex((r3 * cos(7 * M_PI / 20.0)), (r3 * sin(7 * M_PI / 20.0))); - m_64apsk[40] = gr_complex((r2 * cos(9 * M_PI / 16.0)), (r2 * sin(9 * M_PI / 16.0))); - m_64apsk[41] = gr_complex((r4 * cos(3 * M_PI / 4.0)), (r4 * sin(3 * M_PI / 4.0))); - m_64apsk[42] = gr_complex((r2 * cos(11 * M_PI / 16.0)), (r2 * sin(11 * M_PI / 16.0))); - m_64apsk[43] = gr_complex((r3 * cos(3 * M_PI / 4.0)), (r3 * sin(3 * M_PI / 4.0))); - m_64apsk[44] = gr_complex((r4 * cos(11 * M_PI / 20.0)), (r4 * sin(11 * M_PI / 20.0))); - m_64apsk[45] = gr_complex((r4 * cos(13 * M_PI / 20.0)), (r4 * sin(13 * M_PI / 20.0))); - m_64apsk[46] = gr_complex((r3 * cos(11 * M_PI / 20.0)), (r3 * sin(11 * M_PI / 20.0))); - m_64apsk[47] = gr_complex((r3 * cos(13 * M_PI / 20.0)), (r3 * sin(13 * M_PI / 20.0))); - m_64apsk[48] = gr_complex((r1 * cos(3 * M_PI / 8.0)), (r1 * sin(3 * M_PI / 8.0))); - m_64apsk[49] = gr_complex((r4 * cos(3 * M_PI / 20.0)), (r4 * sin(3 * M_PI / 20.0))); - m_64apsk[50] = gr_complex((r2 * cos(3 * M_PI / 16.0)), (r2 * sin(3 * M_PI / 16.0))); - m_64apsk[51] = gr_complex((r3 * cos(3 * M_PI / 20.0)), (r3 * sin(3 * M_PI / 20.0))); - m_64apsk[52] = gr_complex((r1 * cos(M_PI / 8.0)), (r1 * sin(M_PI / 8.0))); - m_64apsk[53] = gr_complex((r4 * cos(M_PI / 20.0)), (r4 * sin(M_PI / 20.0))); - m_64apsk[54] = gr_complex((r2 * cos(M_PI / 16.0)), (r2 * sin(M_PI / 16.0))); - m_64apsk[55] = gr_complex((r3 * cos(M_PI / 20.0)), (r3 * sin(M_PI / 20.0))); - m_64apsk[56] = gr_complex((r1 * cos(5 * M_PI / 8.0)), (r1 * sin(5 * M_PI / 8.0))); - m_64apsk[57] = gr_complex((r4 * cos(17 * M_PI / 20.0)), (r4 * sin(17 * M_PI / 20.0))); - m_64apsk[58] = gr_complex((r2 * cos(13 * M_PI / 16.0)), (r2 * sin(13 * M_PI / 16.0))); - m_64apsk[59] = gr_complex((r3 * cos(17 * M_PI / 20.0)), (r3 * sin(17 * M_PI / 20.0))); - m_64apsk[60] = gr_complex((r1 * cos(7 * M_PI / 8.0)), (r1 * sin(7 * M_PI / 8.0))); - m_64apsk[61] = gr_complex((r4 * cos(19 * M_PI / 20.0)), (r4 * sin(19 * M_PI / 20.0))); - m_64apsk[62] = gr_complex((r2 * cos(15 * M_PI / 16.0)), (r2 * sin(15 * M_PI / 16.0))); - m_64apsk[63] = gr_complex((r3 * cos(19 * M_PI / 20.0)), (r3 * sin(19 * M_PI / 20.0))); + m_64apsk[0] = gr_complex((r2 * cos(25 * GR_M_PI / 16.0)), (r2 * sin(25 * GR_M_PI / 16.0))); + m_64apsk[1] = gr_complex((r4 * cos(7 * GR_M_PI / 4.0)), (r4 * sin(7 * GR_M_PI / 4.0))); + m_64apsk[2] = gr_complex((r2 * cos(27 * GR_M_PI / 16.0)), (r2 * sin(27 * GR_M_PI / 16.0))); + m_64apsk[3] = gr_complex((r3 * cos(7 * GR_M_PI / 4.0)), (r3 * sin(7 * GR_M_PI / 4.0))); + m_64apsk[4] = gr_complex((r4 * cos(31 * GR_M_PI / 20.0)), (r4 * sin(31 * GR_M_PI / 20.0))); + m_64apsk[5] = gr_complex((r4 * cos(33 * GR_M_PI / 20.0)), (r4 * sin(33 * GR_M_PI / 20.0))); + m_64apsk[6] = gr_complex((r3 * cos(31 * GR_M_PI / 20.0)), (r3 * sin(31 * GR_M_PI / 20.0))); + m_64apsk[7] = gr_complex((r3 * cos(33 * GR_M_PI / 20.0)), (r3 * sin(33 * GR_M_PI / 20.0))); + m_64apsk[8] = gr_complex((r2 * cos(23 * GR_M_PI / 16.0)), (r2 * sin(23 * GR_M_PI / 16.0))); + m_64apsk[9] = gr_complex((r4 * cos(5 * GR_M_PI / 4.0)), (r4 * sin(5 * GR_M_PI / 4.0))); + m_64apsk[10] = gr_complex((r2 * cos(21 * GR_M_PI / 16.0)), (r2 * sin(21 * GR_M_PI / 16.0))); + m_64apsk[11] = gr_complex((r3 * cos(5 * GR_M_PI / 4.0)), (r3 * sin(5 * GR_M_PI / 4.0))); + m_64apsk[12] = gr_complex((r4 * cos(29 * GR_M_PI / 20.0)), (r4 * sin(29 * GR_M_PI / 20.0))); + m_64apsk[13] = gr_complex((r4 * cos(27 * GR_M_PI / 20.0)), (r4 * sin(27 * GR_M_PI / 20.0))); + m_64apsk[14] = gr_complex((r3 * cos(29 * GR_M_PI / 20.0)), (r3 * sin(29 * GR_M_PI / 20.0))); + m_64apsk[15] = gr_complex((r3 * cos(27 * GR_M_PI / 20.0)), (r3 * sin(27 * GR_M_PI / 20.0))); + m_64apsk[16] = gr_complex((r1 * cos(13 * GR_M_PI / 8.0)), (r1 * sin(13 * GR_M_PI / 8.0))); + m_64apsk[17] = gr_complex((r4 * cos(37 * GR_M_PI / 20.0)), (r4 * sin(37 * GR_M_PI / 20.0))); + m_64apsk[18] = gr_complex((r2 * cos(29 * GR_M_PI / 16.0)), (r2 * sin(29 * GR_M_PI / 16.0))); + m_64apsk[19] = gr_complex((r3 * cos(37 * GR_M_PI / 20.0)), (r3 * sin(37 * GR_M_PI / 20.0))); + m_64apsk[20] = gr_complex((r1 * cos(15 * GR_M_PI / 8.0)), (r1 * sin(15 * GR_M_PI / 8.0))); + m_64apsk[21] = gr_complex((r4 * cos(39 * GR_M_PI / 20.0)), (r4 * sin(39 * GR_M_PI / 20.0))); + m_64apsk[22] = gr_complex((r2 * cos(31 * GR_M_PI / 16.0)), (r2 * sin(31 * GR_M_PI / 16.0))); + m_64apsk[23] = gr_complex((r3 * cos(39 * GR_M_PI / 20.0)), (r3 * sin(39 * GR_M_PI / 20.0))); + m_64apsk[24] = gr_complex((r1 * cos(11 * GR_M_PI / 8.0)), (r1 * sin(11 * GR_M_PI / 8.0))); + m_64apsk[25] = gr_complex((r4 * cos(23 * GR_M_PI / 20.0)), (r4 * sin(23 * GR_M_PI / 20.0))); + m_64apsk[26] = gr_complex((r2 * cos(19 * GR_M_PI / 16.0)), (r2 * sin(19 * GR_M_PI / 16.0))); + m_64apsk[27] = gr_complex((r3 * cos(23 * GR_M_PI / 20.0)), (r3 * sin(23 * GR_M_PI / 20.0))); + m_64apsk[28] = gr_complex((r1 * cos(9 * GR_M_PI / 8.0)), (r1 * sin(9 * GR_M_PI / 8.0))); + m_64apsk[29] = gr_complex((r4 * cos(21 * GR_M_PI / 20.0)), (r4 * sin(21 * GR_M_PI / 20.0))); + m_64apsk[30] = gr_complex((r2 * cos(17 * GR_M_PI / 16.0)), (r2 * sin(17 * GR_M_PI / 16.0))); + m_64apsk[31] = gr_complex((r3 * cos(21 * GR_M_PI / 20.0)), (r3 * sin(21 * GR_M_PI / 20.0))); + m_64apsk[32] = gr_complex((r2 * cos(7 * GR_M_PI / 16.0)), (r2 * sin(7 * GR_M_PI / 16.0))); + m_64apsk[33] = gr_complex((r4 * cos(GR_M_PI / 4.0)), (r4 * sin(GR_M_PI / 4.0))); + m_64apsk[34] = gr_complex((r2 * cos(5 * GR_M_PI / 16.0)), (r2 * sin(5 * GR_M_PI / 16.0))); + m_64apsk[35] = gr_complex((r3 * cos(GR_M_PI / 4.0)), (r3 * sin(GR_M_PI / 4.0))); + m_64apsk[36] = gr_complex((r4 * cos(9 * GR_M_PI / 20.0)), (r4 * sin(9 * GR_M_PI / 20.0))); + m_64apsk[37] = gr_complex((r4 * cos(7 * GR_M_PI / 20.0)), (r4 * sin(7 * GR_M_PI / 20.0))); + m_64apsk[38] = gr_complex((r3 * cos(9 * GR_M_PI / 20.0)), (r3 * sin(9 * GR_M_PI / 20.0))); + m_64apsk[39] = gr_complex((r3 * cos(7 * GR_M_PI / 20.0)), (r3 * sin(7 * GR_M_PI / 20.0))); + m_64apsk[40] = gr_complex((r2 * cos(9 * GR_M_PI / 16.0)), (r2 * sin(9 * GR_M_PI / 16.0))); + m_64apsk[41] = gr_complex((r4 * cos(3 * GR_M_PI / 4.0)), (r4 * sin(3 * GR_M_PI / 4.0))); + m_64apsk[42] = gr_complex((r2 * cos(11 * GR_M_PI / 16.0)), (r2 * sin(11 * GR_M_PI / 16.0))); + m_64apsk[43] = gr_complex((r3 * cos(3 * GR_M_PI / 4.0)), (r3 * sin(3 * GR_M_PI / 4.0))); + m_64apsk[44] = gr_complex((r4 * cos(11 * GR_M_PI / 20.0)), (r4 * sin(11 * GR_M_PI / 20.0))); + m_64apsk[45] = gr_complex((r4 * cos(13 * GR_M_PI / 20.0)), (r4 * sin(13 * GR_M_PI / 20.0))); + m_64apsk[46] = gr_complex((r3 * cos(11 * GR_M_PI / 20.0)), (r3 * sin(11 * GR_M_PI / 20.0))); + m_64apsk[47] = gr_complex((r3 * cos(13 * GR_M_PI / 20.0)), (r3 * sin(13 * GR_M_PI / 20.0))); + m_64apsk[48] = gr_complex((r1 * cos(3 * GR_M_PI / 8.0)), (r1 * sin(3 * GR_M_PI / 8.0))); + m_64apsk[49] = gr_complex((r4 * cos(3 * GR_M_PI / 20.0)), (r4 * sin(3 * GR_M_PI / 20.0))); + m_64apsk[50] = gr_complex((r2 * cos(3 * GR_M_PI / 16.0)), (r2 * sin(3 * GR_M_PI / 16.0))); + m_64apsk[51] = gr_complex((r3 * cos(3 * GR_M_PI / 20.0)), (r3 * sin(3 * GR_M_PI / 20.0))); + m_64apsk[52] = gr_complex((r1 * cos(GR_M_PI / 8.0)), (r1 * sin(GR_M_PI / 8.0))); + m_64apsk[53] = gr_complex((r4 * cos(GR_M_PI / 20.0)), (r4 * sin(GR_M_PI / 20.0))); + m_64apsk[54] = gr_complex((r2 * cos(GR_M_PI / 16.0)), (r2 * sin(GR_M_PI / 16.0))); + m_64apsk[55] = gr_complex((r3 * cos(GR_M_PI / 20.0)), (r3 * sin(GR_M_PI / 20.0))); + m_64apsk[56] = gr_complex((r1 * cos(5 * GR_M_PI / 8.0)), (r1 * sin(5 * GR_M_PI / 8.0))); + m_64apsk[57] = gr_complex((r4 * cos(17 * GR_M_PI / 20.0)), (r4 * sin(17 * GR_M_PI / 20.0))); + m_64apsk[58] = gr_complex((r2 * cos(13 * GR_M_PI / 16.0)), (r2 * sin(13 * GR_M_PI / 16.0))); + m_64apsk[59] = gr_complex((r3 * cos(17 * GR_M_PI / 20.0)), (r3 * sin(17 * GR_M_PI / 20.0))); + m_64apsk[60] = gr_complex((r1 * cos(7 * GR_M_PI / 8.0)), (r1 * sin(7 * GR_M_PI / 8.0))); + m_64apsk[61] = gr_complex((r4 * cos(19 * GR_M_PI / 20.0)), (r4 * sin(19 * GR_M_PI / 20.0))); + m_64apsk[62] = gr_complex((r2 * cos(15 * GR_M_PI / 16.0)), (r2 * sin(15 * GR_M_PI / 16.0))); + m_64apsk[63] = gr_complex((r3 * cos(19 * GR_M_PI / 20.0)), (r3 * sin(19 * GR_M_PI / 20.0))); break; case MOD_4_12_20_28APSK: r4 = m; @@ -620,70 +621,70 @@ namespace gr { r3 = 0; break; } - m_64apsk[0] = gr_complex((r4 * cos(M_PI / 4.0)), (r4 * sin(M_PI / 4.0))); - m_64apsk[1] = gr_complex((r4 * cos(7 * M_PI / 4.0)), (r4 * sin(7 * M_PI / 4.0))); - m_64apsk[2] = gr_complex((r4 * cos(3 * M_PI / 4.0)), (r4 * sin(3 * M_PI / 4.0))); - m_64apsk[3] = gr_complex((r4 * cos(5 * M_PI / 4.0)), (r4 * sin(5 * M_PI / 4.0))); - m_64apsk[4] = gr_complex((r4 * cos(13 * M_PI / 28.0)), (r4 * sin(13 * M_PI / 28.0))); - m_64apsk[5] = gr_complex((r4 * cos(43 * M_PI / 28.0)), (r4 * sin(43 * M_PI / 28.0))); - m_64apsk[6] = gr_complex((r4 * cos(15 * M_PI / 28.0)), (r4 * sin(15 * M_PI / 28.0))); - m_64apsk[7] = gr_complex((r4 * cos(41 * M_PI / 28.0)), (r4 * sin(41 * M_PI / 28.0))); - m_64apsk[8] = gr_complex((r4 * cos(M_PI / 28.0)), (r4 * sin(M_PI / 28.0))); - m_64apsk[9] = gr_complex((r4 * cos(55 * M_PI / 28.0)), (r4 * sin(55 * M_PI / 28.0))); - m_64apsk[10] = gr_complex((r4 * cos(27 * M_PI / 28.0)), (r4 * sin(27 * M_PI / 28.0))); - m_64apsk[11] = gr_complex((r4 * cos(29 * M_PI / 28.0)), (r4 * sin(29 * M_PI / 28.0))); - m_64apsk[12] = gr_complex((r1 * cos(M_PI / 4.0)), (r1 * sin(M_PI / 4.0))); - m_64apsk[13] = gr_complex((r1 * cos(7 * M_PI / 4.0)), (r1 * sin(7 * M_PI / 4.0))); - m_64apsk[14] = gr_complex((r1 * cos(3 * M_PI / 4.0)), (r1 * sin(3 * M_PI / 4.0))); - m_64apsk[15] = gr_complex((r1 * cos(5 * M_PI / 4.0)), (r1 * sin(5 * M_PI / 4.0))); - m_64apsk[16] = gr_complex((r4 * cos(9 * M_PI / 28.0)), (r4 * sin(9 * M_PI / 28.0))); - m_64apsk[17] = gr_complex((r4 * cos(47 * M_PI / 28.0)), (r4 * sin(47 * M_PI / 28.0))); - m_64apsk[18] = gr_complex((r4 * cos(19 * M_PI / 28.0)), (r4 * sin(19 * M_PI / 28.0))); - m_64apsk[19] = gr_complex((r4 * cos(37 * M_PI / 28.0)), (r4 * sin(37 * M_PI / 28.0))); - m_64apsk[20] = gr_complex((r4 * cos(11 * M_PI / 28.0)), (r4 * sin(11 * M_PI / 28.0))); - m_64apsk[21] = gr_complex((r4 * cos(45 * M_PI / 28.0)), (r4 * sin(45 * M_PI / 28.0))); - m_64apsk[22] = gr_complex((r4 * cos(17 * M_PI / 28.0)), (r4 * sin(17 * M_PI / 28.0))); - m_64apsk[23] = gr_complex((r4 * cos(39 * M_PI / 28.0)), (r4 * sin(39 * M_PI / 28.0))); - m_64apsk[24] = gr_complex((r3 * cos(M_PI / 20.0)), (r3 * sin(M_PI / 20.0))); - m_64apsk[25] = gr_complex((r3 * cos(39 * M_PI / 20.0)), (r3 * sin(39 * M_PI / 20.0))); - m_64apsk[26] = gr_complex((r3 * cos(19 * M_PI / 20.0)), (r3 * sin(19 * M_PI / 20.0))); - m_64apsk[27] = gr_complex((r3 * cos(21 * M_PI / 20.0)), (r3 * sin(21 * M_PI / 20.0))); - m_64apsk[28] = gr_complex((r2 * cos(M_PI / 12.0)), (r2 * sin(M_PI / 12.0))); - m_64apsk[29] = gr_complex((r2 * cos(23 * M_PI / 12.0)), (r2 * sin(23 * M_PI / 12.0))); - m_64apsk[30] = gr_complex((r2 * cos(11 * M_PI / 12.0)), (r2 * sin(11 * M_PI / 12.0))); - m_64apsk[31] = gr_complex((r2 * cos(13 * M_PI / 12.0)), (r2 * sin(13 * M_PI / 12.0))); - m_64apsk[32] = gr_complex((r4 * cos(5 * M_PI / 28.0)), (r4 * sin(5 * M_PI / 28.0))); - m_64apsk[33] = gr_complex((r4 * cos(51 * M_PI / 28.0)), (r4 * sin(51 * M_PI / 28.0))); - m_64apsk[34] = gr_complex((r4 * cos(23 * M_PI / 28.0)), (r4 * sin(23 * M_PI / 28.0))); - m_64apsk[35] = gr_complex((r4 * cos(33 * M_PI / 28.0)), (r4 * sin(33 * M_PI / 28.0))); - m_64apsk[36] = gr_complex((r3 * cos(9 * M_PI / 20.0)), (r3 * sin(9 * M_PI / 20.0))); - m_64apsk[37] = gr_complex((r3 * cos(31 * M_PI / 20.0)), (r3 * sin(31 * M_PI / 20.0))); - m_64apsk[38] = gr_complex((r3 * cos(11 * M_PI / 20.0)), (r3 * sin(11 * M_PI / 20.0))); - m_64apsk[39] = gr_complex((r3 * cos(29 * M_PI / 20.0)), (r3 * sin(29 * M_PI / 20.0))); - m_64apsk[40] = gr_complex((r4 * cos(3 * M_PI / 28.0)), (r4 * sin(3 * M_PI / 28.0))); - m_64apsk[41] = gr_complex((r4 * cos(53 * M_PI / 28.0)), (r4 * sin(53 * M_PI / 28.0))); - m_64apsk[42] = gr_complex((r4 * cos(25 * M_PI / 28.0)), (r4 * sin(25 * M_PI / 28.0))); - m_64apsk[43] = gr_complex((r4 * cos(31 * M_PI / 28.0)), (r4 * sin(31 * M_PI / 28.0))); - m_64apsk[44] = gr_complex((r2 * cos(5 * M_PI / 12.0)), (r2 * sin(5 * M_PI / 12.0))); - m_64apsk[45] = gr_complex((r2 * cos(19 * M_PI / 12.0)), (r2 * sin(19 * M_PI / 12.0))); - m_64apsk[46] = gr_complex((r2 * cos(7 * M_PI / 12.0)), (r2 * sin(7 * M_PI / 12.0))); - m_64apsk[47] = gr_complex((r2 * cos(17 * M_PI / 12.0)), (r2 * sin(17 * M_PI / 12.0))); - m_64apsk[48] = gr_complex((r3 * cos(M_PI / 4.0)), (r3 * sin(M_PI / 4.0))); - m_64apsk[49] = gr_complex((r3 * cos(7 * M_PI / 4.0)), (r3 * sin(7 * M_PI / 4.0))); - m_64apsk[50] = gr_complex((r3 * cos(3 * M_PI / 4.0)), (r3 * sin(3 * M_PI / 4.0))); - m_64apsk[51] = gr_complex((r3 * cos(5 * M_PI / 4.0)), (r3 * sin(5 * M_PI / 4.0))); - m_64apsk[52] = gr_complex((r3 * cos(7 * M_PI / 20.0)), (r3 * sin(7 * M_PI / 20.0))); - m_64apsk[53] = gr_complex((r3 * cos(33 * M_PI / 20.0)), (r3 * sin(33 * M_PI / 20.0))); - m_64apsk[54] = gr_complex((r3 * cos(13 * M_PI / 20.0)), (r3 * sin(13 * M_PI / 20.0))); - m_64apsk[55] = gr_complex((r3 * cos(27 * M_PI / 20.0)), (r3 * sin(27 * M_PI / 20.0))); - m_64apsk[56] = gr_complex((r3 * cos(3 * M_PI / 20.0)), (r3 * sin(3 * M_PI / 20.0))); - m_64apsk[57] = gr_complex((r3 * cos(37 * M_PI / 20.0)), (r3 * sin(37 * M_PI / 20.0))); - m_64apsk[58] = gr_complex((r3 * cos(17 * M_PI / 20.0)), (r3 * sin(17 * M_PI / 20.0))); - m_64apsk[59] = gr_complex((r3 * cos(23 * M_PI / 20.0)), (r3 * sin(23 * M_PI / 20.0))); - m_64apsk[60] = gr_complex((r2 * cos(M_PI / 4.0)), (r2 * sin(M_PI / 4.0))); - m_64apsk[61] = gr_complex((r2 * cos(7 * M_PI / 4.0)), (r2 * sin(7 * M_PI / 4.0))); - m_64apsk[62] = gr_complex((r2 * cos(3 * M_PI / 4.0)), (r2 * sin(3 * M_PI / 4.0))); - m_64apsk[63] = gr_complex((r2 * cos(5 * M_PI / 4.0)), (r2 * sin(5 * M_PI / 4.0))); + m_64apsk[0] = gr_complex((r4 * cos(GR_M_PI / 4.0)), (r4 * sin(GR_M_PI / 4.0))); + m_64apsk[1] = gr_complex((r4 * cos(7 * GR_M_PI / 4.0)), (r4 * sin(7 * GR_M_PI / 4.0))); + m_64apsk[2] = gr_complex((r4 * cos(3 * GR_M_PI / 4.0)), (r4 * sin(3 * GR_M_PI / 4.0))); + m_64apsk[3] = gr_complex((r4 * cos(5 * GR_M_PI / 4.0)), (r4 * sin(5 * GR_M_PI / 4.0))); + m_64apsk[4] = gr_complex((r4 * cos(13 * GR_M_PI / 28.0)), (r4 * sin(13 * GR_M_PI / 28.0))); + m_64apsk[5] = gr_complex((r4 * cos(43 * GR_M_PI / 28.0)), (r4 * sin(43 * GR_M_PI / 28.0))); + m_64apsk[6] = gr_complex((r4 * cos(15 * GR_M_PI / 28.0)), (r4 * sin(15 * GR_M_PI / 28.0))); + m_64apsk[7] = gr_complex((r4 * cos(41 * GR_M_PI / 28.0)), (r4 * sin(41 * GR_M_PI / 28.0))); + m_64apsk[8] = gr_complex((r4 * cos(GR_M_PI / 28.0)), (r4 * sin(GR_M_PI / 28.0))); + m_64apsk[9] = gr_complex((r4 * cos(55 * GR_M_PI / 28.0)), (r4 * sin(55 * GR_M_PI / 28.0))); + m_64apsk[10] = gr_complex((r4 * cos(27 * GR_M_PI / 28.0)), (r4 * sin(27 * GR_M_PI / 28.0))); + m_64apsk[11] = gr_complex((r4 * cos(29 * GR_M_PI / 28.0)), (r4 * sin(29 * GR_M_PI / 28.0))); + m_64apsk[12] = gr_complex((r1 * cos(GR_M_PI / 4.0)), (r1 * sin(GR_M_PI / 4.0))); + m_64apsk[13] = gr_complex((r1 * cos(7 * GR_M_PI / 4.0)), (r1 * sin(7 * GR_M_PI / 4.0))); + m_64apsk[14] = gr_complex((r1 * cos(3 * GR_M_PI / 4.0)), (r1 * sin(3 * GR_M_PI / 4.0))); + m_64apsk[15] = gr_complex((r1 * cos(5 * GR_M_PI / 4.0)), (r1 * sin(5 * GR_M_PI / 4.0))); + m_64apsk[16] = gr_complex((r4 * cos(9 * GR_M_PI / 28.0)), (r4 * sin(9 * GR_M_PI / 28.0))); + m_64apsk[17] = gr_complex((r4 * cos(47 * GR_M_PI / 28.0)), (r4 * sin(47 * GR_M_PI / 28.0))); + m_64apsk[18] = gr_complex((r4 * cos(19 * GR_M_PI / 28.0)), (r4 * sin(19 * GR_M_PI / 28.0))); + m_64apsk[19] = gr_complex((r4 * cos(37 * GR_M_PI / 28.0)), (r4 * sin(37 * GR_M_PI / 28.0))); + m_64apsk[20] = gr_complex((r4 * cos(11 * GR_M_PI / 28.0)), (r4 * sin(11 * GR_M_PI / 28.0))); + m_64apsk[21] = gr_complex((r4 * cos(45 * GR_M_PI / 28.0)), (r4 * sin(45 * GR_M_PI / 28.0))); + m_64apsk[22] = gr_complex((r4 * cos(17 * GR_M_PI / 28.0)), (r4 * sin(17 * GR_M_PI / 28.0))); + m_64apsk[23] = gr_complex((r4 * cos(39 * GR_M_PI / 28.0)), (r4 * sin(39 * GR_M_PI / 28.0))); + m_64apsk[24] = gr_complex((r3 * cos(GR_M_PI / 20.0)), (r3 * sin(GR_M_PI / 20.0))); + m_64apsk[25] = gr_complex((r3 * cos(39 * GR_M_PI / 20.0)), (r3 * sin(39 * GR_M_PI / 20.0))); + m_64apsk[26] = gr_complex((r3 * cos(19 * GR_M_PI / 20.0)), (r3 * sin(19 * GR_M_PI / 20.0))); + m_64apsk[27] = gr_complex((r3 * cos(21 * GR_M_PI / 20.0)), (r3 * sin(21 * GR_M_PI / 20.0))); + m_64apsk[28] = gr_complex((r2 * cos(GR_M_PI / 12.0)), (r2 * sin(GR_M_PI / 12.0))); + m_64apsk[29] = gr_complex((r2 * cos(23 * GR_M_PI / 12.0)), (r2 * sin(23 * GR_M_PI / 12.0))); + m_64apsk[30] = gr_complex((r2 * cos(11 * GR_M_PI / 12.0)), (r2 * sin(11 * GR_M_PI / 12.0))); + m_64apsk[31] = gr_complex((r2 * cos(13 * GR_M_PI / 12.0)), (r2 * sin(13 * GR_M_PI / 12.0))); + m_64apsk[32] = gr_complex((r4 * cos(5 * GR_M_PI / 28.0)), (r4 * sin(5 * GR_M_PI / 28.0))); + m_64apsk[33] = gr_complex((r4 * cos(51 * GR_M_PI / 28.0)), (r4 * sin(51 * GR_M_PI / 28.0))); + m_64apsk[34] = gr_complex((r4 * cos(23 * GR_M_PI / 28.0)), (r4 * sin(23 * GR_M_PI / 28.0))); + m_64apsk[35] = gr_complex((r4 * cos(33 * GR_M_PI / 28.0)), (r4 * sin(33 * GR_M_PI / 28.0))); + m_64apsk[36] = gr_complex((r3 * cos(9 * GR_M_PI / 20.0)), (r3 * sin(9 * GR_M_PI / 20.0))); + m_64apsk[37] = gr_complex((r3 * cos(31 * GR_M_PI / 20.0)), (r3 * sin(31 * GR_M_PI / 20.0))); + m_64apsk[38] = gr_complex((r3 * cos(11 * GR_M_PI / 20.0)), (r3 * sin(11 * GR_M_PI / 20.0))); + m_64apsk[39] = gr_complex((r3 * cos(29 * GR_M_PI / 20.0)), (r3 * sin(29 * GR_M_PI / 20.0))); + m_64apsk[40] = gr_complex((r4 * cos(3 * GR_M_PI / 28.0)), (r4 * sin(3 * GR_M_PI / 28.0))); + m_64apsk[41] = gr_complex((r4 * cos(53 * GR_M_PI / 28.0)), (r4 * sin(53 * GR_M_PI / 28.0))); + m_64apsk[42] = gr_complex((r4 * cos(25 * GR_M_PI / 28.0)), (r4 * sin(25 * GR_M_PI / 28.0))); + m_64apsk[43] = gr_complex((r4 * cos(31 * GR_M_PI / 28.0)), (r4 * sin(31 * GR_M_PI / 28.0))); + m_64apsk[44] = gr_complex((r2 * cos(5 * GR_M_PI / 12.0)), (r2 * sin(5 * GR_M_PI / 12.0))); + m_64apsk[45] = gr_complex((r2 * cos(19 * GR_M_PI / 12.0)), (r2 * sin(19 * GR_M_PI / 12.0))); + m_64apsk[46] = gr_complex((r2 * cos(7 * GR_M_PI / 12.0)), (r2 * sin(7 * GR_M_PI / 12.0))); + m_64apsk[47] = gr_complex((r2 * cos(17 * GR_M_PI / 12.0)), (r2 * sin(17 * GR_M_PI / 12.0))); + m_64apsk[48] = gr_complex((r3 * cos(GR_M_PI / 4.0)), (r3 * sin(GR_M_PI / 4.0))); + m_64apsk[49] = gr_complex((r3 * cos(7 * GR_M_PI / 4.0)), (r3 * sin(7 * GR_M_PI / 4.0))); + m_64apsk[50] = gr_complex((r3 * cos(3 * GR_M_PI / 4.0)), (r3 * sin(3 * GR_M_PI / 4.0))); + m_64apsk[51] = gr_complex((r3 * cos(5 * GR_M_PI / 4.0)), (r3 * sin(5 * GR_M_PI / 4.0))); + m_64apsk[52] = gr_complex((r3 * cos(7 * GR_M_PI / 20.0)), (r3 * sin(7 * GR_M_PI / 20.0))); + m_64apsk[53] = gr_complex((r3 * cos(33 * GR_M_PI / 20.0)), (r3 * sin(33 * GR_M_PI / 20.0))); + m_64apsk[54] = gr_complex((r3 * cos(13 * GR_M_PI / 20.0)), (r3 * sin(13 * GR_M_PI / 20.0))); + m_64apsk[55] = gr_complex((r3 * cos(27 * GR_M_PI / 20.0)), (r3 * sin(27 * GR_M_PI / 20.0))); + m_64apsk[56] = gr_complex((r3 * cos(3 * GR_M_PI / 20.0)), (r3 * sin(3 * GR_M_PI / 20.0))); + m_64apsk[57] = gr_complex((r3 * cos(37 * GR_M_PI / 20.0)), (r3 * sin(37 * GR_M_PI / 20.0))); + m_64apsk[58] = gr_complex((r3 * cos(17 * GR_M_PI / 20.0)), (r3 * sin(17 * GR_M_PI / 20.0))); + m_64apsk[59] = gr_complex((r3 * cos(23 * GR_M_PI / 20.0)), (r3 * sin(23 * GR_M_PI / 20.0))); + m_64apsk[60] = gr_complex((r2 * cos(GR_M_PI / 4.0)), (r2 * sin(GR_M_PI / 4.0))); + m_64apsk[61] = gr_complex((r2 * cos(7 * GR_M_PI / 4.0)), (r2 * sin(7 * GR_M_PI / 4.0))); + m_64apsk[62] = gr_complex((r2 * cos(3 * GR_M_PI / 4.0)), (r2 * sin(3 * GR_M_PI / 4.0))); + m_64apsk[63] = gr_complex((r2 * cos(5 * GR_M_PI / 4.0)), (r2 * sin(5 * GR_M_PI / 4.0))); break; case MOD_128APSK: r6 = m; @@ -710,134 +711,134 @@ namespace gr { r5 = 0; break; } - m_128apsk[0] = gr_complex((r1 * cos(83 * M_PI / 1260.0)), (r1 * sin(83 * M_PI / 1260.0))); - m_128apsk[1] = gr_complex((r6 * cos(11 * M_PI / 105.0)), (r6 * sin(11 * M_PI / 105.0))); - m_128apsk[2] = gr_complex((r6 * cos(37 * M_PI / 1680.0)), (r6 * sin(37 * M_PI / 1680.0))); - m_128apsk[3] = gr_complex((r6 * cos(11 * M_PI / 168.0)), (r6 * sin(11 * M_PI / 168.0))); - m_128apsk[4] = gr_complex((r2 * cos(121 * M_PI / 2520.0)), (r2 * sin(121 * M_PI / 2520.0))); - m_128apsk[5] = gr_complex((r3 * cos(23 * M_PI / 280.0)), (r3 * sin(23 * M_PI / 280.0))); - m_128apsk[6] = gr_complex((r5 * cos(19 * M_PI / 720.0)), (r5 * sin(19 * M_PI / 720.0))); - m_128apsk[7] = gr_complex((r4 * cos(61 * M_PI / 720.0)), (r4 * sin(61 * M_PI / 720.0))); - m_128apsk[8] = gr_complex((r1 * cos(103 * M_PI / 560.0)), (r1 * sin(103 * M_PI / 560.0))); - m_128apsk[9] = gr_complex((r6 * cos(61 * M_PI / 420.0)), (r6 * sin(61 * M_PI / 420.0))); - m_128apsk[10] = gr_complex((r6 * cos(383 * M_PI / 1680.0)), (r6 * sin(383 * M_PI / 1680.0))); - m_128apsk[11] = gr_complex((r6 * cos(929 * M_PI / 5040.0)), (r6 * sin(929 * M_PI / 5040.0))); - m_128apsk[12] = gr_complex((r2 * cos(113 * M_PI / 560.0)), (r2 * sin(113 * M_PI / 560.0))); - m_128apsk[13] = gr_complex((r3 * cos(169 * M_PI / 1008.0)), (r3 * sin(169 * M_PI / 1008.0))); - m_128apsk[14] = gr_complex((r5 * cos(563 * M_PI / 2520.0)), (r5 * sin(563 * M_PI / 2520.0))); - m_128apsk[15] = gr_complex((r4 * cos(139 * M_PI / 840.0)), (r4 * sin(139 * M_PI / 840.0))); - m_128apsk[16] = gr_complex((r1 * cos(243 * M_PI / 560.0)), (r1 * sin(243 * M_PI / 560.0))); - m_128apsk[17] = gr_complex((r6 * cos(1993 * M_PI / 5040.0)), (r6 * sin(1993 * M_PI / 5040.0))); - m_128apsk[18] = gr_complex((r6 * cos(43 * M_PI / 90.0)), (r6 * sin(43 * M_PI / 90.0))); - m_128apsk[19] = gr_complex((r6 * cos(73 * M_PI / 168.0)), (r6 * sin(73 * M_PI / 168.0))); - m_128apsk[20] = gr_complex((r2 * cos(1139 * M_PI / 2520.0)), (r2 * sin(1139 * M_PI / 2520.0))); - m_128apsk[21] = gr_complex((r3 * cos(117 * M_PI / 280.0)), (r3 * sin(117 * M_PI / 280.0))); - m_128apsk[22] = gr_complex((r5 * cos(341 * M_PI / 720.0)), (r5 * sin(341 * M_PI / 720.0))); - m_128apsk[23] = gr_complex((r4 * cos(349 * M_PI / 840.0)), (r4 * sin(349 * M_PI / 840.0))); - m_128apsk[24] = gr_complex((r1 * cos(177 * M_PI / 560.0)), (r1 * sin(177 * M_PI / 560.0))); - m_128apsk[25] = gr_complex((r6 * cos(1789 * M_PI / 5040.0)), (r6 * sin(1789 * M_PI / 5040.0))); - m_128apsk[26] = gr_complex((r6 * cos(49 * M_PI / 180.0)), (r6 * sin(49 * M_PI / 180.0))); - m_128apsk[27] = gr_complex((r6 * cos(53 * M_PI / 168.0)), (r6 * sin(53 * M_PI / 168.0))); - m_128apsk[28] = gr_complex((r2 * cos(167 * M_PI / 560.0)), (r2 * sin(167 * M_PI / 560.0))); - m_128apsk[29] = gr_complex((r3 * cos(239 * M_PI / 720.0)), (r3 * sin(239 * M_PI / 720.0))); - m_128apsk[30] = gr_complex((r5 * cos(199 * M_PI / 720.0)), (r5 * sin(199 * M_PI / 720.0))); - m_128apsk[31] = gr_complex((r4 * cos(281 * M_PI / 840.0)), (r4 * sin(281 * M_PI / 840.0))); - m_128apsk[32] = gr_complex((r1 * cos(1177 * M_PI / 1260.0)), (r1 * sin(1177 * M_PI / 1260.0))); - m_128apsk[33] = gr_complex((r6 * cos(94 * M_PI / 105.0)), (r6 * sin(94 * M_PI / 105.0))); - m_128apsk[34] = gr_complex((r6 * cos(1643 * M_PI / 1680.0)), (r6 * sin(1643 * M_PI / 1680.0))); - m_128apsk[35] = gr_complex((r6 * cos(157 * M_PI / 168.0)), (r6 * sin(157 * M_PI / 168.0))); - m_128apsk[36] = gr_complex((r2 * cos(2399 * M_PI / 2520.0)), (r2 * sin(2399 * M_PI / 2520.0))); - m_128apsk[37] = gr_complex((r3 * cos(257 * M_PI / 280.0)), (r3 * sin(257 * M_PI / 280.0))); - m_128apsk[38] = gr_complex((r5 * cos(701 * M_PI / 720.0)), (r5 * sin(701 * M_PI / 720.0))); - m_128apsk[39] = gr_complex((r4 * cos(659 * M_PI / 720.0)), (r4 * sin(659 * M_PI / 720.0))); - m_128apsk[40] = gr_complex((r1 * cos(457 * M_PI / 560.0)), (r1 * sin(457 * M_PI / 560.0))); - m_128apsk[41] = gr_complex((r6 * cos(359 * M_PI / 420.0)), (r6 * sin(359 * M_PI / 420.0))); - m_128apsk[42] = gr_complex((r6 * cos(1297 * M_PI / 1680.0)), (r6 * sin(1297 * M_PI / 1680.0))); - m_128apsk[43] = gr_complex((r6 * cos(4111 * M_PI / 5040.0)), (r6 * sin(4111 * M_PI / 5040.0))); - m_128apsk[44] = gr_complex((r2 * cos(447 * M_PI / 560.0)), (r2 * sin(447 * M_PI / 560.0))); - m_128apsk[45] = gr_complex((r3 * cos(839 * M_PI / 1008.0)), (r3 * sin(839 * M_PI / 1008.0))); - m_128apsk[46] = gr_complex((r5 * cos(1957 * M_PI / 2520.0)), (r5 * sin(1957 * M_PI / 2520.0))); - m_128apsk[47] = gr_complex((r4 * cos(701 * M_PI / 840.0)), (r4 * sin(701 * M_PI / 840.0))); - m_128apsk[48] = gr_complex((r1 * cos(317 * M_PI / 560.0)), (r1 * sin(317 * M_PI / 560.0))); - m_128apsk[49] = gr_complex((r6 * cos(3047 * M_PI / 5040.0)), (r6 * sin(3047 * M_PI / 5040.0))); - m_128apsk[50] = gr_complex((r6 * cos(47 * M_PI / 90.0)), (r6 * sin(47 * M_PI / 90.0))); - m_128apsk[51] = gr_complex((r6 * cos(95 * M_PI / 168.0)), (r6 * sin(95 * M_PI / 168.0))); - m_128apsk[52] = gr_complex((r2 * cos(1381 * M_PI / 2520.0)), (r2 * sin(1381 * M_PI / 2520.0))); - m_128apsk[53] = gr_complex((r3 * cos(163 * M_PI / 280.0)), (r3 * sin(163 * M_PI / 280.0))); - m_128apsk[54] = gr_complex((r5 * cos(379 * M_PI / 720.0)), (r5 * sin(379 * M_PI / 720.0))); - m_128apsk[55] = gr_complex((r4 * cos(491 * M_PI / 840.0)), (r4 * sin(491 * M_PI / 840.0))); - m_128apsk[56] = gr_complex((r1 * cos(383 * M_PI / 560.0)), (r1 * sin(383 * M_PI / 560.0))); - m_128apsk[57] = gr_complex((r6 * cos(3251 * M_PI / 5040.0)), (r6 * sin(3251 * M_PI / 5040.0))); - m_128apsk[58] = gr_complex((r6 * cos(131 * M_PI / 180.0)), (r6 * sin(131 * M_PI / 180.0))); - m_128apsk[59] = gr_complex((r6 * cos(115 * M_PI / 168.0)), (r6 * sin(115 * M_PI / 168.0))); - m_128apsk[60] = gr_complex((r2 * cos(393 * M_PI / 560.0)), (r2 * sin(393 * M_PI / 560.0))); - m_128apsk[61] = gr_complex((r3 * cos(481 * M_PI / 720.0)), (r3 * sin(481 * M_PI / 720.0))); - m_128apsk[62] = gr_complex((r5 * cos(521 * M_PI / 720.0)), (r5 * sin(521 * M_PI / 720.0))); - m_128apsk[63] = gr_complex((r4 * cos(559 * M_PI / 840.0)), (r4 * sin(559 * M_PI / 840.0))); - m_128apsk[64] = gr_complex((r1 * cos(2437 * M_PI / 1260.0)), (r1 * sin(2437 * M_PI / 1260.0))); - m_128apsk[65] = gr_complex((r6 * cos(199 * M_PI / 105.0)), (r6 * sin(199 * M_PI / 105.0))); - m_128apsk[66] = gr_complex((r6 * cos(3323 * M_PI / 1680.0)), (r6 * sin(3323 * M_PI / 1680.0))); - m_128apsk[67] = gr_complex((r6 * cos(325 * M_PI / 168.0)), (r6 * sin(325 * M_PI / 168.0))); - m_128apsk[68] = gr_complex((r2 * cos(4919 * M_PI / 2520.0)), (r2 * sin(4919 * M_PI / 2520.0))); - m_128apsk[69] = gr_complex((r3 * cos(537 * M_PI / 280.0)), (r3 * sin(537 * M_PI / 280.0))); - m_128apsk[70] = gr_complex((r5 * cos(1421 * M_PI / 720.0)), (r5 * sin(1421 * M_PI / 720.0))); - m_128apsk[71] = gr_complex((r4 * cos(1379 * M_PI / 720.0)), (r4 * sin(1379 * M_PI / 720.0))); - m_128apsk[72] = gr_complex((r1 * cos(1017 * M_PI / 560.0)), (r1 * sin(1017 * M_PI / 560.0))); - m_128apsk[73] = gr_complex((r6 * cos(779 * M_PI / 420.0)), (r6 * sin(779 * M_PI / 420.0))); - m_128apsk[74] = gr_complex((r6 * cos(2977 * M_PI / 1680.0)), (r6 * sin(2977 * M_PI / 1680.0))); - m_128apsk[75] = gr_complex((r6 * cos(9151 * M_PI / 5040.0)), (r6 * sin(9151 * M_PI / 5040.0))); - m_128apsk[76] = gr_complex((r2 * cos(1007 * M_PI / 560.0)), (r2 * sin(1007 * M_PI / 560.0))); - m_128apsk[77] = gr_complex((r3 * cos(1847 * M_PI / 1008.0)), (r3 * sin(1847 * M_PI / 1008.0))); - m_128apsk[78] = gr_complex((r5 * cos(4477 * M_PI / 2520.0)), (r5 * sin(4477 * M_PI / 2520.0))); - m_128apsk[79] = gr_complex((r4 * cos(1541 * M_PI / 840.0)), (r4 * sin(1541 * M_PI / 840.0))); - m_128apsk[80] = gr_complex((r1 * cos(877 * M_PI / 560.0)), (r1 * sin(877 * M_PI / 560.0))); - m_128apsk[81] = gr_complex((r6 * cos(8087 * M_PI / 5040.0)), (r6 * sin(8087 * M_PI / 5040.0))); - m_128apsk[82] = gr_complex((r6 * cos(137 * M_PI / 90.0)), (r6 * sin(137 * M_PI / 90.0))); - m_128apsk[83] = gr_complex((r6 * cos(263 * M_PI / 168.0)), (r6 * sin(263 * M_PI / 168.0))); - m_128apsk[84] = gr_complex((r2 * cos(3901 * M_PI / 2520.0)), (r2 * sin(3901 * M_PI / 2520.0))); - m_128apsk[85] = gr_complex((r3 * cos(443 * M_PI / 280.0)), (r3 * sin(443 * M_PI / 280.0))); - m_128apsk[86] = gr_complex((r5 * cos(1099 * M_PI / 720.0)), (r5 * sin(1099 * M_PI / 720.0))); - m_128apsk[87] = gr_complex((r4 * cos(1331 * M_PI / 840.0)), (r4 * sin(1331 * M_PI / 840.0))); - m_128apsk[88] = gr_complex((r1 * cos(943 * M_PI / 560.0)), (r1 * sin(943 * M_PI / 560.0))); - m_128apsk[89] = gr_complex((r6 * cos(8291 * M_PI / 5040.0)), (r6 * sin(8291 * M_PI / 5040.0))); - m_128apsk[90] = gr_complex((r6 * cos(311 * M_PI / 180.0)), (r6 * sin(311 * M_PI / 180.0))); - m_128apsk[91] = gr_complex((r6 * cos(283 * M_PI / 168.0)), (r6 * sin(283 * M_PI / 168.0))); - m_128apsk[92] = gr_complex((r2 * cos(953 * M_PI / 560.0)), (r2 * sin(953 * M_PI / 560.0))); - m_128apsk[93] = gr_complex((r3 * cos(1201 * M_PI / 720.0)), (r3 * sin(1201 * M_PI / 720.0))); - m_128apsk[94] = gr_complex((r5 * cos(1241 * M_PI / 720.0)), (r5 * sin(1241 * M_PI / 720.0))); - m_128apsk[95] = gr_complex((r4 * cos(1399 * M_PI / 840.0)), (r4 * sin(1399 * M_PI / 840.0))); - m_128apsk[96] = gr_complex((r1 * cos(1343 * M_PI / 1260.0)), (r1 * sin(1343 * M_PI / 1260.0))); - m_128apsk[97] = gr_complex((r6 * cos(116 * M_PI / 105.0)), (r6 * sin(116 * M_PI / 105.0))); - m_128apsk[98] = gr_complex((r6 * cos(1717 * M_PI / 1680.0)), (r6 * sin(1717 * M_PI / 1680.0))); - m_128apsk[99] = gr_complex((r6 * cos(179 * M_PI / 168.0)), (r6 * sin(179 * M_PI / 168.0))); - m_128apsk[100] = gr_complex((r2 * cos(2641 * M_PI / 2520.0)), (r2 * sin(2641 * M_PI / 2520.0))); - m_128apsk[101] = gr_complex((r3 * cos(303 * M_PI / 280.0)), (r3 * sin(303 * M_PI / 280.0))); - m_128apsk[102] = gr_complex((r5 * cos(739 * M_PI / 720.0)), (r5 * sin(739 * M_PI / 720.0))); - m_128apsk[103] = gr_complex((r4 * cos(781 * M_PI / 720.0)), (r4 * sin(781 * M_PI / 720.0))); - m_128apsk[104] = gr_complex((r1 * cos(663 * M_PI / 560.0)), (r1 * sin(663 * M_PI / 560.0))); - m_128apsk[105] = gr_complex((r6 * cos(481 * M_PI / 420.0)), (r6 * sin(481 * M_PI / 420.0))); - m_128apsk[106] = gr_complex((r6 * cos(2063 * M_PI / 1680.0)), (r6 * sin(2063 * M_PI / 1680.0))); - m_128apsk[107] = gr_complex((r6 * cos(5969 * M_PI / 5040.0)), (r6 * sin(5969 * M_PI / 5040.0))); - m_128apsk[108] = gr_complex((r2 * cos(673 * M_PI / 560.0)), (r2 * sin(673 * M_PI / 560.0))); - m_128apsk[109] = gr_complex((r3 * cos(1177 * M_PI / 1008.0)), (r3 * sin(1177 * M_PI / 1008.0))); - m_128apsk[110] = gr_complex((r5 * cos(3083 * M_PI / 2520.0)), (r5 * sin(3083 * M_PI / 2520.0))); - m_128apsk[111] = gr_complex((r4 * cos(979 * M_PI / 840.0)), (r4 * sin(979 * M_PI / 840.0))); - m_128apsk[112] = gr_complex((r1 * cos(803 * M_PI / 560.0)), (r1 * sin(803 * M_PI / 560.0))); - m_128apsk[113] = gr_complex((r6 * cos(7033 * M_PI / 5040.0)), (r6 * sin(7033 * M_PI / 5040.0))); - m_128apsk[114] = gr_complex((r6 * cos(133 * M_PI / 90.0)), (r6 * sin(133 * M_PI / 90.0))); - m_128apsk[115] = gr_complex((r6 * cos(241 * M_PI / 168.0)), (r6 * sin(241 * M_PI / 168.0))); - m_128apsk[116] = gr_complex((r2 * cos(3659 * M_PI / 2520.0)), (r2 * sin(3659 * M_PI / 2520.0))); - m_128apsk[117] = gr_complex((r3 * cos(397 * M_PI / 280.0)), (r3 * sin(397 * M_PI / 280.0))); - m_128apsk[118] = gr_complex((r5 * cos(1061 * M_PI / 720.0)), (r5 * sin(1061 * M_PI / 720.0))); - m_128apsk[119] = gr_complex((r4 * cos(1189 * M_PI / 840.0)), (r4 * sin(1189 * M_PI / 840.0))); - m_128apsk[120] = gr_complex((r1 * cos(737 * M_PI / 560.0)), (r1 * sin(737 * M_PI / 560.0))); - m_128apsk[121] = gr_complex((r6 * cos(6829 * M_PI / 5040.0)), (r6 * sin(6829 * M_PI / 5040.0))); - m_128apsk[122] = gr_complex((r6 * cos(229 * M_PI / 180.0)), (r6 * sin(229 * M_PI / 180.0))); - m_128apsk[123] = gr_complex((r6 * cos(221 * M_PI / 168.0)), (r6 * sin(221 * M_PI / 168.0))); - m_128apsk[124] = gr_complex((r2 * cos(727 * M_PI / 560.0)), (r2 * sin(727 * M_PI / 560.0))); - m_128apsk[125] = gr_complex((r3 * cos(959 * M_PI / 720.0)), (r3 * sin(959 * M_PI / 720.0))); - m_128apsk[126] = gr_complex((r5 * cos(919 * M_PI / 720.0)), (r5 * sin(919 * M_PI / 720.0))); - m_128apsk[127] = gr_complex((r4 * cos(1121 * M_PI / 840.0)), (r4 * sin(1121 * M_PI / 840.0))); + m_128apsk[0] = gr_complex((r1 * cos(83 * GR_M_PI / 1260.0)), (r1 * sin(83 * GR_M_PI / 1260.0))); + m_128apsk[1] = gr_complex((r6 * cos(11 * GR_M_PI / 105.0)), (r6 * sin(11 * GR_M_PI / 105.0))); + m_128apsk[2] = gr_complex((r6 * cos(37 * GR_M_PI / 1680.0)), (r6 * sin(37 * GR_M_PI / 1680.0))); + m_128apsk[3] = gr_complex((r6 * cos(11 * GR_M_PI / 168.0)), (r6 * sin(11 * GR_M_PI / 168.0))); + m_128apsk[4] = gr_complex((r2 * cos(121 * GR_M_PI / 2520.0)), (r2 * sin(121 * GR_M_PI / 2520.0))); + m_128apsk[5] = gr_complex((r3 * cos(23 * GR_M_PI / 280.0)), (r3 * sin(23 * GR_M_PI / 280.0))); + m_128apsk[6] = gr_complex((r5 * cos(19 * GR_M_PI / 720.0)), (r5 * sin(19 * GR_M_PI / 720.0))); + m_128apsk[7] = gr_complex((r4 * cos(61 * GR_M_PI / 720.0)), (r4 * sin(61 * GR_M_PI / 720.0))); + m_128apsk[8] = gr_complex((r1 * cos(103 * GR_M_PI / 560.0)), (r1 * sin(103 * GR_M_PI / 560.0))); + m_128apsk[9] = gr_complex((r6 * cos(61 * GR_M_PI / 420.0)), (r6 * sin(61 * GR_M_PI / 420.0))); + m_128apsk[10] = gr_complex((r6 * cos(383 * GR_M_PI / 1680.0)), (r6 * sin(383 * GR_M_PI / 1680.0))); + m_128apsk[11] = gr_complex((r6 * cos(929 * GR_M_PI / 5040.0)), (r6 * sin(929 * GR_M_PI / 5040.0))); + m_128apsk[12] = gr_complex((r2 * cos(113 * GR_M_PI / 560.0)), (r2 * sin(113 * GR_M_PI / 560.0))); + m_128apsk[13] = gr_complex((r3 * cos(169 * GR_M_PI / 1008.0)), (r3 * sin(169 * GR_M_PI / 1008.0))); + m_128apsk[14] = gr_complex((r5 * cos(563 * GR_M_PI / 2520.0)), (r5 * sin(563 * GR_M_PI / 2520.0))); + m_128apsk[15] = gr_complex((r4 * cos(139 * GR_M_PI / 840.0)), (r4 * sin(139 * GR_M_PI / 840.0))); + m_128apsk[16] = gr_complex((r1 * cos(243 * GR_M_PI / 560.0)), (r1 * sin(243 * GR_M_PI / 560.0))); + m_128apsk[17] = gr_complex((r6 * cos(1993 * GR_M_PI / 5040.0)), (r6 * sin(1993 * GR_M_PI / 5040.0))); + m_128apsk[18] = gr_complex((r6 * cos(43 * GR_M_PI / 90.0)), (r6 * sin(43 * GR_M_PI / 90.0))); + m_128apsk[19] = gr_complex((r6 * cos(73 * GR_M_PI / 168.0)), (r6 * sin(73 * GR_M_PI / 168.0))); + m_128apsk[20] = gr_complex((r2 * cos(1139 * GR_M_PI / 2520.0)), (r2 * sin(1139 * GR_M_PI / 2520.0))); + m_128apsk[21] = gr_complex((r3 * cos(117 * GR_M_PI / 280.0)), (r3 * sin(117 * GR_M_PI / 280.0))); + m_128apsk[22] = gr_complex((r5 * cos(341 * GR_M_PI / 720.0)), (r5 * sin(341 * GR_M_PI / 720.0))); + m_128apsk[23] = gr_complex((r4 * cos(349 * GR_M_PI / 840.0)), (r4 * sin(349 * GR_M_PI / 840.0))); + m_128apsk[24] = gr_complex((r1 * cos(177 * GR_M_PI / 560.0)), (r1 * sin(177 * GR_M_PI / 560.0))); + m_128apsk[25] = gr_complex((r6 * cos(1789 * GR_M_PI / 5040.0)), (r6 * sin(1789 * GR_M_PI / 5040.0))); + m_128apsk[26] = gr_complex((r6 * cos(49 * GR_M_PI / 180.0)), (r6 * sin(49 * GR_M_PI / 180.0))); + m_128apsk[27] = gr_complex((r6 * cos(53 * GR_M_PI / 168.0)), (r6 * sin(53 * GR_M_PI / 168.0))); + m_128apsk[28] = gr_complex((r2 * cos(167 * GR_M_PI / 560.0)), (r2 * sin(167 * GR_M_PI / 560.0))); + m_128apsk[29] = gr_complex((r3 * cos(239 * GR_M_PI / 720.0)), (r3 * sin(239 * GR_M_PI / 720.0))); + m_128apsk[30] = gr_complex((r5 * cos(199 * GR_M_PI / 720.0)), (r5 * sin(199 * GR_M_PI / 720.0))); + m_128apsk[31] = gr_complex((r4 * cos(281 * GR_M_PI / 840.0)), (r4 * sin(281 * GR_M_PI / 840.0))); + m_128apsk[32] = gr_complex((r1 * cos(1177 * GR_M_PI / 1260.0)), (r1 * sin(1177 * GR_M_PI / 1260.0))); + m_128apsk[33] = gr_complex((r6 * cos(94 * GR_M_PI / 105.0)), (r6 * sin(94 * GR_M_PI / 105.0))); + m_128apsk[34] = gr_complex((r6 * cos(1643 * GR_M_PI / 1680.0)), (r6 * sin(1643 * GR_M_PI / 1680.0))); + m_128apsk[35] = gr_complex((r6 * cos(157 * GR_M_PI / 168.0)), (r6 * sin(157 * GR_M_PI / 168.0))); + m_128apsk[36] = gr_complex((r2 * cos(2399 * GR_M_PI / 2520.0)), (r2 * sin(2399 * GR_M_PI / 2520.0))); + m_128apsk[37] = gr_complex((r3 * cos(257 * GR_M_PI / 280.0)), (r3 * sin(257 * GR_M_PI / 280.0))); + m_128apsk[38] = gr_complex((r5 * cos(701 * GR_M_PI / 720.0)), (r5 * sin(701 * GR_M_PI / 720.0))); + m_128apsk[39] = gr_complex((r4 * cos(659 * GR_M_PI / 720.0)), (r4 * sin(659 * GR_M_PI / 720.0))); + m_128apsk[40] = gr_complex((r1 * cos(457 * GR_M_PI / 560.0)), (r1 * sin(457 * GR_M_PI / 560.0))); + m_128apsk[41] = gr_complex((r6 * cos(359 * GR_M_PI / 420.0)), (r6 * sin(359 * GR_M_PI / 420.0))); + m_128apsk[42] = gr_complex((r6 * cos(1297 * GR_M_PI / 1680.0)), (r6 * sin(1297 * GR_M_PI / 1680.0))); + m_128apsk[43] = gr_complex((r6 * cos(4111 * GR_M_PI / 5040.0)), (r6 * sin(4111 * GR_M_PI / 5040.0))); + m_128apsk[44] = gr_complex((r2 * cos(447 * GR_M_PI / 560.0)), (r2 * sin(447 * GR_M_PI / 560.0))); + m_128apsk[45] = gr_complex((r3 * cos(839 * GR_M_PI / 1008.0)), (r3 * sin(839 * GR_M_PI / 1008.0))); + m_128apsk[46] = gr_complex((r5 * cos(1957 * GR_M_PI / 2520.0)), (r5 * sin(1957 * GR_M_PI / 2520.0))); + m_128apsk[47] = gr_complex((r4 * cos(701 * GR_M_PI / 840.0)), (r4 * sin(701 * GR_M_PI / 840.0))); + m_128apsk[48] = gr_complex((r1 * cos(317 * GR_M_PI / 560.0)), (r1 * sin(317 * GR_M_PI / 560.0))); + m_128apsk[49] = gr_complex((r6 * cos(3047 * GR_M_PI / 5040.0)), (r6 * sin(3047 * GR_M_PI / 5040.0))); + m_128apsk[50] = gr_complex((r6 * cos(47 * GR_M_PI / 90.0)), (r6 * sin(47 * GR_M_PI / 90.0))); + m_128apsk[51] = gr_complex((r6 * cos(95 * GR_M_PI / 168.0)), (r6 * sin(95 * GR_M_PI / 168.0))); + m_128apsk[52] = gr_complex((r2 * cos(1381 * GR_M_PI / 2520.0)), (r2 * sin(1381 * GR_M_PI / 2520.0))); + m_128apsk[53] = gr_complex((r3 * cos(163 * GR_M_PI / 280.0)), (r3 * sin(163 * GR_M_PI / 280.0))); + m_128apsk[54] = gr_complex((r5 * cos(379 * GR_M_PI / 720.0)), (r5 * sin(379 * GR_M_PI / 720.0))); + m_128apsk[55] = gr_complex((r4 * cos(491 * GR_M_PI / 840.0)), (r4 * sin(491 * GR_M_PI / 840.0))); + m_128apsk[56] = gr_complex((r1 * cos(383 * GR_M_PI / 560.0)), (r1 * sin(383 * GR_M_PI / 560.0))); + m_128apsk[57] = gr_complex((r6 * cos(3251 * GR_M_PI / 5040.0)), (r6 * sin(3251 * GR_M_PI / 5040.0))); + m_128apsk[58] = gr_complex((r6 * cos(131 * GR_M_PI / 180.0)), (r6 * sin(131 * GR_M_PI / 180.0))); + m_128apsk[59] = gr_complex((r6 * cos(115 * GR_M_PI / 168.0)), (r6 * sin(115 * GR_M_PI / 168.0))); + m_128apsk[60] = gr_complex((r2 * cos(393 * GR_M_PI / 560.0)), (r2 * sin(393 * GR_M_PI / 560.0))); + m_128apsk[61] = gr_complex((r3 * cos(481 * GR_M_PI / 720.0)), (r3 * sin(481 * GR_M_PI / 720.0))); + m_128apsk[62] = gr_complex((r5 * cos(521 * GR_M_PI / 720.0)), (r5 * sin(521 * GR_M_PI / 720.0))); + m_128apsk[63] = gr_complex((r4 * cos(559 * GR_M_PI / 840.0)), (r4 * sin(559 * GR_M_PI / 840.0))); + m_128apsk[64] = gr_complex((r1 * cos(2437 * GR_M_PI / 1260.0)), (r1 * sin(2437 * GR_M_PI / 1260.0))); + m_128apsk[65] = gr_complex((r6 * cos(199 * GR_M_PI / 105.0)), (r6 * sin(199 * GR_M_PI / 105.0))); + m_128apsk[66] = gr_complex((r6 * cos(3323 * GR_M_PI / 1680.0)), (r6 * sin(3323 * GR_M_PI / 1680.0))); + m_128apsk[67] = gr_complex((r6 * cos(325 * GR_M_PI / 168.0)), (r6 * sin(325 * GR_M_PI / 168.0))); + m_128apsk[68] = gr_complex((r2 * cos(4919 * GR_M_PI / 2520.0)), (r2 * sin(4919 * GR_M_PI / 2520.0))); + m_128apsk[69] = gr_complex((r3 * cos(537 * GR_M_PI / 280.0)), (r3 * sin(537 * GR_M_PI / 280.0))); + m_128apsk[70] = gr_complex((r5 * cos(1421 * GR_M_PI / 720.0)), (r5 * sin(1421 * GR_M_PI / 720.0))); + m_128apsk[71] = gr_complex((r4 * cos(1379 * GR_M_PI / 720.0)), (r4 * sin(1379 * GR_M_PI / 720.0))); + m_128apsk[72] = gr_complex((r1 * cos(1017 * GR_M_PI / 560.0)), (r1 * sin(1017 * GR_M_PI / 560.0))); + m_128apsk[73] = gr_complex((r6 * cos(779 * GR_M_PI / 420.0)), (r6 * sin(779 * GR_M_PI / 420.0))); + m_128apsk[74] = gr_complex((r6 * cos(2977 * GR_M_PI / 1680.0)), (r6 * sin(2977 * GR_M_PI / 1680.0))); + m_128apsk[75] = gr_complex((r6 * cos(9151 * GR_M_PI / 5040.0)), (r6 * sin(9151 * GR_M_PI / 5040.0))); + m_128apsk[76] = gr_complex((r2 * cos(1007 * GR_M_PI / 560.0)), (r2 * sin(1007 * GR_M_PI / 560.0))); + m_128apsk[77] = gr_complex((r3 * cos(1847 * GR_M_PI / 1008.0)), (r3 * sin(1847 * GR_M_PI / 1008.0))); + m_128apsk[78] = gr_complex((r5 * cos(4477 * GR_M_PI / 2520.0)), (r5 * sin(4477 * GR_M_PI / 2520.0))); + m_128apsk[79] = gr_complex((r4 * cos(1541 * GR_M_PI / 840.0)), (r4 * sin(1541 * GR_M_PI / 840.0))); + m_128apsk[80] = gr_complex((r1 * cos(877 * GR_M_PI / 560.0)), (r1 * sin(877 * GR_M_PI / 560.0))); + m_128apsk[81] = gr_complex((r6 * cos(8087 * GR_M_PI / 5040.0)), (r6 * sin(8087 * GR_M_PI / 5040.0))); + m_128apsk[82] = gr_complex((r6 * cos(137 * GR_M_PI / 90.0)), (r6 * sin(137 * GR_M_PI / 90.0))); + m_128apsk[83] = gr_complex((r6 * cos(263 * GR_M_PI / 168.0)), (r6 * sin(263 * GR_M_PI / 168.0))); + m_128apsk[84] = gr_complex((r2 * cos(3901 * GR_M_PI / 2520.0)), (r2 * sin(3901 * GR_M_PI / 2520.0))); + m_128apsk[85] = gr_complex((r3 * cos(443 * GR_M_PI / 280.0)), (r3 * sin(443 * GR_M_PI / 280.0))); + m_128apsk[86] = gr_complex((r5 * cos(1099 * GR_M_PI / 720.0)), (r5 * sin(1099 * GR_M_PI / 720.0))); + m_128apsk[87] = gr_complex((r4 * cos(1331 * GR_M_PI / 840.0)), (r4 * sin(1331 * GR_M_PI / 840.0))); + m_128apsk[88] = gr_complex((r1 * cos(943 * GR_M_PI / 560.0)), (r1 * sin(943 * GR_M_PI / 560.0))); + m_128apsk[89] = gr_complex((r6 * cos(8291 * GR_M_PI / 5040.0)), (r6 * sin(8291 * GR_M_PI / 5040.0))); + m_128apsk[90] = gr_complex((r6 * cos(311 * GR_M_PI / 180.0)), (r6 * sin(311 * GR_M_PI / 180.0))); + m_128apsk[91] = gr_complex((r6 * cos(283 * GR_M_PI / 168.0)), (r6 * sin(283 * GR_M_PI / 168.0))); + m_128apsk[92] = gr_complex((r2 * cos(953 * GR_M_PI / 560.0)), (r2 * sin(953 * GR_M_PI / 560.0))); + m_128apsk[93] = gr_complex((r3 * cos(1201 * GR_M_PI / 720.0)), (r3 * sin(1201 * GR_M_PI / 720.0))); + m_128apsk[94] = gr_complex((r5 * cos(1241 * GR_M_PI / 720.0)), (r5 * sin(1241 * GR_M_PI / 720.0))); + m_128apsk[95] = gr_complex((r4 * cos(1399 * GR_M_PI / 840.0)), (r4 * sin(1399 * GR_M_PI / 840.0))); + m_128apsk[96] = gr_complex((r1 * cos(1343 * GR_M_PI / 1260.0)), (r1 * sin(1343 * GR_M_PI / 1260.0))); + m_128apsk[97] = gr_complex((r6 * cos(116 * GR_M_PI / 105.0)), (r6 * sin(116 * GR_M_PI / 105.0))); + m_128apsk[98] = gr_complex((r6 * cos(1717 * GR_M_PI / 1680.0)), (r6 * sin(1717 * GR_M_PI / 1680.0))); + m_128apsk[99] = gr_complex((r6 * cos(179 * GR_M_PI / 168.0)), (r6 * sin(179 * GR_M_PI / 168.0))); + m_128apsk[100] = gr_complex((r2 * cos(2641 * GR_M_PI / 2520.0)), (r2 * sin(2641 * GR_M_PI / 2520.0))); + m_128apsk[101] = gr_complex((r3 * cos(303 * GR_M_PI / 280.0)), (r3 * sin(303 * GR_M_PI / 280.0))); + m_128apsk[102] = gr_complex((r5 * cos(739 * GR_M_PI / 720.0)), (r5 * sin(739 * GR_M_PI / 720.0))); + m_128apsk[103] = gr_complex((r4 * cos(781 * GR_M_PI / 720.0)), (r4 * sin(781 * GR_M_PI / 720.0))); + m_128apsk[104] = gr_complex((r1 * cos(663 * GR_M_PI / 560.0)), (r1 * sin(663 * GR_M_PI / 560.0))); + m_128apsk[105] = gr_complex((r6 * cos(481 * GR_M_PI / 420.0)), (r6 * sin(481 * GR_M_PI / 420.0))); + m_128apsk[106] = gr_complex((r6 * cos(2063 * GR_M_PI / 1680.0)), (r6 * sin(2063 * GR_M_PI / 1680.0))); + m_128apsk[107] = gr_complex((r6 * cos(5969 * GR_M_PI / 5040.0)), (r6 * sin(5969 * GR_M_PI / 5040.0))); + m_128apsk[108] = gr_complex((r2 * cos(673 * GR_M_PI / 560.0)), (r2 * sin(673 * GR_M_PI / 560.0))); + m_128apsk[109] = gr_complex((r3 * cos(1177 * GR_M_PI / 1008.0)), (r3 * sin(1177 * GR_M_PI / 1008.0))); + m_128apsk[110] = gr_complex((r5 * cos(3083 * GR_M_PI / 2520.0)), (r5 * sin(3083 * GR_M_PI / 2520.0))); + m_128apsk[111] = gr_complex((r4 * cos(979 * GR_M_PI / 840.0)), (r4 * sin(979 * GR_M_PI / 840.0))); + m_128apsk[112] = gr_complex((r1 * cos(803 * GR_M_PI / 560.0)), (r1 * sin(803 * GR_M_PI / 560.0))); + m_128apsk[113] = gr_complex((r6 * cos(7033 * GR_M_PI / 5040.0)), (r6 * sin(7033 * GR_M_PI / 5040.0))); + m_128apsk[114] = gr_complex((r6 * cos(133 * GR_M_PI / 90.0)), (r6 * sin(133 * GR_M_PI / 90.0))); + m_128apsk[115] = gr_complex((r6 * cos(241 * GR_M_PI / 168.0)), (r6 * sin(241 * GR_M_PI / 168.0))); + m_128apsk[116] = gr_complex((r2 * cos(3659 * GR_M_PI / 2520.0)), (r2 * sin(3659 * GR_M_PI / 2520.0))); + m_128apsk[117] = gr_complex((r3 * cos(397 * GR_M_PI / 280.0)), (r3 * sin(397 * GR_M_PI / 280.0))); + m_128apsk[118] = gr_complex((r5 * cos(1061 * GR_M_PI / 720.0)), (r5 * sin(1061 * GR_M_PI / 720.0))); + m_128apsk[119] = gr_complex((r4 * cos(1189 * GR_M_PI / 840.0)), (r4 * sin(1189 * GR_M_PI / 840.0))); + m_128apsk[120] = gr_complex((r1 * cos(737 * GR_M_PI / 560.0)), (r1 * sin(737 * GR_M_PI / 560.0))); + m_128apsk[121] = gr_complex((r6 * cos(6829 * GR_M_PI / 5040.0)), (r6 * sin(6829 * GR_M_PI / 5040.0))); + m_128apsk[122] = gr_complex((r6 * cos(229 * GR_M_PI / 180.0)), (r6 * sin(229 * GR_M_PI / 180.0))); + m_128apsk[123] = gr_complex((r6 * cos(221 * GR_M_PI / 168.0)), (r6 * sin(221 * GR_M_PI / 168.0))); + m_128apsk[124] = gr_complex((r2 * cos(727 * GR_M_PI / 560.0)), (r2 * sin(727 * GR_M_PI / 560.0))); + m_128apsk[125] = gr_complex((r3 * cos(959 * GR_M_PI / 720.0)), (r3 * sin(959 * GR_M_PI / 720.0))); + m_128apsk[126] = gr_complex((r5 * cos(919 * GR_M_PI / 720.0)), (r5 * sin(919 * GR_M_PI / 720.0))); + m_128apsk[127] = gr_complex((r4 * cos(1121 * GR_M_PI / 840.0)), (r4 * sin(1121 * GR_M_PI / 840.0))); break; case MOD_256APSK: if (rate == C20_30) { @@ -1397,262 +1398,262 @@ namespace gr { r7 = 0; break; } - m_256apsk[0] = gr_complex((r1 * cos(M_PI / 32.0)), (r1 * sin(M_PI / 32.0))); - m_256apsk[1] = gr_complex((r1 * cos(3 * M_PI / 32.0)), (r1 * sin(3 * M_PI / 32.0))); - m_256apsk[2] = gr_complex((r1 * cos(7 * M_PI / 32.0)), (r1 * sin(7 * M_PI / 32.0))); - m_256apsk[3] = gr_complex((r1 * cos(5 * M_PI / 32.0)), (r1 * sin(5 * M_PI / 32.0))); - m_256apsk[4] = gr_complex((r1 * cos(15 * M_PI / 32.0)), (r1 * sin(15 * M_PI / 32.0))); - m_256apsk[5] = gr_complex((r1 * cos(13 * M_PI / 32.0)), (r1 * sin(13 * M_PI / 32.0))); - m_256apsk[6] = gr_complex((r1 * cos(9 * M_PI / 32.0)), (r1 * sin(9 * M_PI / 32.0))); - m_256apsk[7] = gr_complex((r1 * cos(11 * M_PI / 32.0)), (r1 * sin(11 * M_PI / 32.0))); - m_256apsk[8] = gr_complex((r1 * cos(31 * M_PI / 32.0)), (r1 * sin(31 * M_PI / 32.0))); - m_256apsk[9] = gr_complex((r1 * cos(29 * M_PI / 32.0)), (r1 * sin(29 * M_PI / 32.0))); - m_256apsk[10] = gr_complex((r1 * cos(25 * M_PI / 32.0)), (r1 * sin(25 * M_PI / 32.0))); - m_256apsk[11] = gr_complex((r1 * cos(27 * M_PI / 32.0)), (r1 * sin(27 * M_PI / 32.0))); - m_256apsk[12] = gr_complex((r1 * cos(17 * M_PI / 32.0)), (r1 * sin(17 * M_PI / 32.0))); - m_256apsk[13] = gr_complex((r1 * cos(19 * M_PI / 32.0)), (r1 * sin(19 * M_PI / 32.0))); - m_256apsk[14] = gr_complex((r1 * cos(23 * M_PI / 32.0)), (r1 * sin(23 * M_PI / 32.0))); - m_256apsk[15] = gr_complex((r1 * cos(21 * M_PI / 32.0)), (r1 * sin(21 * M_PI / 32.0))); - m_256apsk[16] = gr_complex((r1 * cos(-1 * M_PI / 32.0)), (r1 * sin(-1 * M_PI / 32.0))); - m_256apsk[17] = gr_complex((r1 * cos(-3 * M_PI / 32.0)), (r1 * sin(-3 * M_PI / 32.0))); - m_256apsk[18] = gr_complex((r1 * cos(-7 * M_PI / 32.0)), (r1 * sin(-7 * M_PI / 32.0))); - m_256apsk[19] = gr_complex((r1 * cos(-5 * M_PI / 32.0)), (r1 * sin(-5 * M_PI / 32.0))); - m_256apsk[20] = gr_complex((r1 * cos(-15 * M_PI / 32.0)), (r1 * sin(-15 * M_PI / 32.0))); - m_256apsk[21] = gr_complex((r1 * cos(-13 * M_PI / 32.0)), (r1 * sin(-13 * M_PI / 32.0))); - m_256apsk[22] = gr_complex((r1 * cos(-9 * M_PI / 32.0)), (r1 * sin(-9 * M_PI / 32.0))); - m_256apsk[23] = gr_complex((r1 * cos(-11 * M_PI / 32.0)), (r1 * sin(-11 * M_PI / 32.0))); - m_256apsk[24] = gr_complex((r1 * cos(33 * M_PI / 32.0)), (r1 * sin(33 * M_PI / 32.0))); - m_256apsk[25] = gr_complex((r1 * cos(35 * M_PI / 32.0)), (r1 * sin(35 * M_PI / 32.0))); - m_256apsk[26] = gr_complex((r1 * cos(39 * M_PI / 32.0)), (r1 * sin(39 * M_PI / 32.0))); - m_256apsk[27] = gr_complex((r1 * cos(37 * M_PI / 32.0)), (r1 * sin(37 * M_PI / 32.0))); - m_256apsk[28] = gr_complex((r1 * cos(47 * M_PI / 32.0)), (r1 * sin(47 * M_PI / 32.0))); - m_256apsk[29] = gr_complex((r1 * cos(45 * M_PI / 32.0)), (r1 * sin(45 * M_PI / 32.0))); - m_256apsk[30] = gr_complex((r1 * cos(41 * M_PI / 32.0)), (r1 * sin(41 * M_PI / 32.0))); - m_256apsk[31] = gr_complex((r1 * cos(43 * M_PI / 32.0)), (r1 * sin(43 * M_PI / 32.0))); - m_256apsk[32] = gr_complex((r2 * cos(M_PI / 32.0)), (r2 * sin(M_PI / 32.0))); - m_256apsk[33] = gr_complex((r2 * cos(3 * M_PI / 32.0)), (r2 * sin(3 * M_PI / 32.0))); - m_256apsk[34] = gr_complex((r2 * cos(7 * M_PI / 32.0)), (r2 * sin(7 * M_PI / 32.0))); - m_256apsk[35] = gr_complex((r2 * cos(5 * M_PI / 32.0)), (r2 * sin(5 * M_PI / 32.0))); - m_256apsk[36] = gr_complex((r2 * cos(15 * M_PI / 32.0)), (r2 * sin(15 * M_PI / 32.0))); - m_256apsk[37] = gr_complex((r2 * cos(13 * M_PI / 32.0)), (r2 * sin(13 * M_PI / 32.0))); - m_256apsk[38] = gr_complex((r2 * cos(9 * M_PI / 32.0)), (r2 * sin(9 * M_PI / 32.0))); - m_256apsk[39] = gr_complex((r2 * cos(11 * M_PI / 32.0)), (r2 * sin(11 * M_PI / 32.0))); - m_256apsk[40] = gr_complex((r2 * cos(31 * M_PI / 32.0)), (r2 * sin(31 * M_PI / 32.0))); - m_256apsk[41] = gr_complex((r2 * cos(29 * M_PI / 32.0)), (r2 * sin(29 * M_PI / 32.0))); - m_256apsk[42] = gr_complex((r2 * cos(25 * M_PI / 32.0)), (r2 * sin(25 * M_PI / 32.0))); - m_256apsk[43] = gr_complex((r2 * cos(27 * M_PI / 32.0)), (r2 * sin(27 * M_PI / 32.0))); - m_256apsk[44] = gr_complex((r2 * cos(17 * M_PI / 32.0)), (r2 * sin(17 * M_PI / 32.0))); - m_256apsk[45] = gr_complex((r2 * cos(19 * M_PI / 32.0)), (r2 * sin(19 * M_PI / 32.0))); - m_256apsk[46] = gr_complex((r2 * cos(23 * M_PI / 32.0)), (r2 * sin(23 * M_PI / 32.0))); - m_256apsk[47] = gr_complex((r2 * cos(21 * M_PI / 32.0)), (r2 * sin(21 * M_PI / 32.0))); - m_256apsk[48] = gr_complex((r2 * cos(-1 * M_PI / 32.0)), (r2 * sin(-1 * M_PI / 32.0))); - m_256apsk[49] = gr_complex((r2 * cos(-3 * M_PI / 32.0)), (r2 * sin(-3 * M_PI / 32.0))); - m_256apsk[50] = gr_complex((r2 * cos(-7 * M_PI / 32.0)), (r2 * sin(-7 * M_PI / 32.0))); - m_256apsk[51] = gr_complex((r2 * cos(-5 * M_PI / 32.0)), (r2 * sin(-5 * M_PI / 32.0))); - m_256apsk[52] = gr_complex((r2 * cos(-15 * M_PI / 32.0)), (r2 * sin(-15 * M_PI / 32.0))); - m_256apsk[53] = gr_complex((r2 * cos(-13 * M_PI / 32.0)), (r2 * sin(-13 * M_PI / 32.0))); - m_256apsk[54] = gr_complex((r2 * cos(-9 * M_PI / 32.0)), (r2 * sin(-9 * M_PI / 32.0))); - m_256apsk[55] = gr_complex((r2 * cos(-11 * M_PI / 32.0)), (r2 * sin(-11 * M_PI / 32.0))); - m_256apsk[56] = gr_complex((r2 * cos(33 * M_PI / 32.0)), (r2 * sin(33 * M_PI / 32.0))); - m_256apsk[57] = gr_complex((r2 * cos(35 * M_PI / 32.0)), (r2 * sin(35 * M_PI / 32.0))); - m_256apsk[58] = gr_complex((r2 * cos(39 * M_PI / 32.0)), (r2 * sin(39 * M_PI / 32.0))); - m_256apsk[59] = gr_complex((r2 * cos(37 * M_PI / 32.0)), (r2 * sin(37 * M_PI / 32.0))); - m_256apsk[60] = gr_complex((r2 * cos(47 * M_PI / 32.0)), (r2 * sin(47 * M_PI / 32.0))); - m_256apsk[61] = gr_complex((r2 * cos(45 * M_PI / 32.0)), (r2 * sin(45 * M_PI / 32.0))); - m_256apsk[62] = gr_complex((r2 * cos(41 * M_PI / 32.0)), (r2 * sin(41 * M_PI / 32.0))); - m_256apsk[63] = gr_complex((r2 * cos(43 * M_PI / 32.0)), (r2 * sin(43 * M_PI / 32.0))); - m_256apsk[64] = gr_complex((r4 * cos(M_PI / 32.0)), (r4 * sin(M_PI / 32.0))); - m_256apsk[65] = gr_complex((r4 * cos(3 * M_PI / 32.0)), (r4 * sin(3 * M_PI / 32.0))); - m_256apsk[66] = gr_complex((r4 * cos(7 * M_PI / 32.0)), (r4 * sin(7 * M_PI / 32.0))); - m_256apsk[67] = gr_complex((r4 * cos(5 * M_PI / 32.0)), (r4 * sin(5 * M_PI / 32.0))); - m_256apsk[68] = gr_complex((r4 * cos(15 * M_PI / 32.0)), (r4 * sin(15 * M_PI / 32.0))); - m_256apsk[69] = gr_complex((r4 * cos(13 * M_PI / 32.0)), (r4 * sin(13 * M_PI / 32.0))); - m_256apsk[70] = gr_complex((r4 * cos(9 * M_PI / 32.0)), (r4 * sin(9 * M_PI / 32.0))); - m_256apsk[71] = gr_complex((r4 * cos(11 * M_PI / 32.0)), (r4 * sin(11 * M_PI / 32.0))); - m_256apsk[72] = gr_complex((r4 * cos(31 * M_PI / 32.0)), (r4 * sin(31 * M_PI / 32.0))); - m_256apsk[73] = gr_complex((r4 * cos(29 * M_PI / 32.0)), (r4 * sin(29 * M_PI / 32.0))); - m_256apsk[74] = gr_complex((r4 * cos(25 * M_PI / 32.0)), (r4 * sin(25 * M_PI / 32.0))); - m_256apsk[75] = gr_complex((r4 * cos(27 * M_PI / 32.0)), (r4 * sin(27 * M_PI / 32.0))); - m_256apsk[76] = gr_complex((r4 * cos(17 * M_PI / 32.0)), (r4 * sin(17 * M_PI / 32.0))); - m_256apsk[77] = gr_complex((r4 * cos(19 * M_PI / 32.0)), (r4 * sin(19 * M_PI / 32.0))); - m_256apsk[78] = gr_complex((r4 * cos(23 * M_PI / 32.0)), (r4 * sin(23 * M_PI / 32.0))); - m_256apsk[79] = gr_complex((r4 * cos(21 * M_PI / 32.0)), (r4 * sin(21 * M_PI / 32.0))); - m_256apsk[80] = gr_complex((r4 * cos(-1 * M_PI / 32.0)), (r4 * sin(-1 * M_PI / 32.0))); - m_256apsk[81] = gr_complex((r4 * cos(-3 * M_PI / 32.0)), (r4 * sin(-3 * M_PI / 32.0))); - m_256apsk[82] = gr_complex((r4 * cos(-7 * M_PI / 32.0)), (r4 * sin(-7 * M_PI / 32.0))); - m_256apsk[83] = gr_complex((r4 * cos(-5 * M_PI / 32.0)), (r4 * sin(-5 * M_PI / 32.0))); - m_256apsk[84] = gr_complex((r4 * cos(-15 * M_PI / 32.0)), (r4 * sin(-15 * M_PI / 32.0))); - m_256apsk[85] = gr_complex((r4 * cos(-13 * M_PI / 32.0)), (r4 * sin(-13 * M_PI / 32.0))); - m_256apsk[86] = gr_complex((r4 * cos(-9 * M_PI / 32.0)), (r4 * sin(-9 * M_PI / 32.0))); - m_256apsk[87] = gr_complex((r4 * cos(-11 * M_PI / 32.0)), (r4 * sin(-11 * M_PI / 32.0))); - m_256apsk[88] = gr_complex((r4 * cos(33 * M_PI / 32.0)), (r4 * sin(33 * M_PI / 32.0))); - m_256apsk[89] = gr_complex((r4 * cos(35 * M_PI / 32.0)), (r4 * sin(35 * M_PI / 32.0))); - m_256apsk[90] = gr_complex((r4 * cos(39 * M_PI / 32.0)), (r4 * sin(39 * M_PI / 32.0))); - m_256apsk[91] = gr_complex((r4 * cos(37 * M_PI / 32.0)), (r4 * sin(37 * M_PI / 32.0))); - m_256apsk[92] = gr_complex((r4 * cos(47 * M_PI / 32.0)), (r4 * sin(47 * M_PI / 32.0))); - m_256apsk[93] = gr_complex((r4 * cos(45 * M_PI / 32.0)), (r4 * sin(45 * M_PI / 32.0))); - m_256apsk[94] = gr_complex((r4 * cos(41 * M_PI / 32.0)), (r4 * sin(41 * M_PI / 32.0))); - m_256apsk[95] = gr_complex((r4 * cos(43 * M_PI / 32.0)), (r4 * sin(43 * M_PI / 32.0))); - m_256apsk[96] = gr_complex((r3 * cos(M_PI / 32.0)), (r3 * sin(M_PI / 32.0))); - m_256apsk[97] = gr_complex((r3 * cos(3 * M_PI / 32.0)), (r3 * sin(3 * M_PI / 32.0))); - m_256apsk[98] = gr_complex((r3 * cos(7 * M_PI / 32.0)), (r3 * sin(7 * M_PI / 32.0))); - m_256apsk[99] = gr_complex((r3 * cos(5 * M_PI / 32.0)), (r3 * sin(5 * M_PI / 32.0))); - m_256apsk[100] = gr_complex((r3 * cos(15 * M_PI / 32.0)), (r3 * sin(15 * M_PI / 32.0))); - m_256apsk[101] = gr_complex((r3 * cos(13 * M_PI / 32.0)), (r3 * sin(13 * M_PI / 32.0))); - m_256apsk[102] = gr_complex((r3 * cos(9 * M_PI / 32.0)), (r3 * sin(9 * M_PI / 32.0))); - m_256apsk[103] = gr_complex((r3 * cos(11 * M_PI / 32.0)), (r3 * sin(11 * M_PI / 32.0))); - m_256apsk[104] = gr_complex((r3 * cos(31 * M_PI / 32.0)), (r3 * sin(31 * M_PI / 32.0))); - m_256apsk[105] = gr_complex((r3 * cos(29 * M_PI / 32.0)), (r3 * sin(29 * M_PI / 32.0))); - m_256apsk[106] = gr_complex((r3 * cos(25 * M_PI / 32.0)), (r3 * sin(25 * M_PI / 32.0))); - m_256apsk[107] = gr_complex((r3 * cos(27 * M_PI / 32.0)), (r3 * sin(27 * M_PI / 32.0))); - m_256apsk[108] = gr_complex((r3 * cos(17 * M_PI / 32.0)), (r3 * sin(17 * M_PI / 32.0))); - m_256apsk[109] = gr_complex((r3 * cos(19 * M_PI / 32.0)), (r3 * sin(19 * M_PI / 32.0))); - m_256apsk[110] = gr_complex((r3 * cos(23 * M_PI / 32.0)), (r3 * sin(23 * M_PI / 32.0))); - m_256apsk[111] = gr_complex((r3 * cos(21 * M_PI / 32.0)), (r3 * sin(21 * M_PI / 32.0))); - m_256apsk[112] = gr_complex((r3 * cos(-1 * M_PI / 32.0)), (r3 * sin(-1 * M_PI / 32.0))); - m_256apsk[113] = gr_complex((r3 * cos(-3 * M_PI / 32.0)), (r3 * sin(-3 * M_PI / 32.0))); - m_256apsk[114] = gr_complex((r3 * cos(-7 * M_PI / 32.0)), (r3 * sin(-7 * M_PI / 32.0))); - m_256apsk[115] = gr_complex((r3 * cos(-5 * M_PI / 32.0)), (r3 * sin(-5 * M_PI / 32.0))); - m_256apsk[116] = gr_complex((r3 * cos(-15 * M_PI / 32.0)), (r3 * sin(-15 * M_PI / 32.0))); - m_256apsk[117] = gr_complex((r3 * cos(-13 * M_PI / 32.0)), (r3 * sin(-13 * M_PI / 32.0))); - m_256apsk[118] = gr_complex((r3 * cos(-9 * M_PI / 32.0)), (r3 * sin(-9 * M_PI / 32.0))); - m_256apsk[119] = gr_complex((r3 * cos(-11 * M_PI / 32.0)), (r3 * sin(-11 * M_PI / 32.0))); - m_256apsk[120] = gr_complex((r3 * cos(33 * M_PI / 32.0)), (r3 * sin(33 * M_PI / 32.0))); - m_256apsk[121] = gr_complex((r3 * cos(35 * M_PI / 32.0)), (r3 * sin(35 * M_PI / 32.0))); - m_256apsk[122] = gr_complex((r3 * cos(39 * M_PI / 32.0)), (r3 * sin(39 * M_PI / 32.0))); - m_256apsk[123] = gr_complex((r3 * cos(37 * M_PI / 32.0)), (r3 * sin(37 * M_PI / 32.0))); - m_256apsk[124] = gr_complex((r3 * cos(47 * M_PI / 32.0)), (r3 * sin(47 * M_PI / 32.0))); - m_256apsk[125] = gr_complex((r3 * cos(45 * M_PI / 32.0)), (r3 * sin(45 * M_PI / 32.0))); - m_256apsk[126] = gr_complex((r3 * cos(41 * M_PI / 32.0)), (r3 * sin(41 * M_PI / 32.0))); - m_256apsk[127] = gr_complex((r3 * cos(43 * M_PI / 32.0)), (r3 * sin(43 * M_PI / 32.0))); - m_256apsk[128] = gr_complex((r8 * cos(M_PI / 32.0)), (r8 * sin(M_PI / 32.0))); - m_256apsk[129] = gr_complex((r8 * cos(3 * M_PI / 32.0)), (r8 * sin(3 * M_PI / 32.0))); - m_256apsk[130] = gr_complex((r8 * cos(7 * M_PI / 32.0)), (r8 * sin(7 * M_PI / 32.0))); - m_256apsk[131] = gr_complex((r8 * cos(5 * M_PI / 32.0)), (r8 * sin(5 * M_PI / 32.0))); - m_256apsk[132] = gr_complex((r8 * cos(15 * M_PI / 32.0)), (r8 * sin(15 * M_PI / 32.0))); - m_256apsk[133] = gr_complex((r8 * cos(13 * M_PI / 32.0)), (r8 * sin(13 * M_PI / 32.0))); - m_256apsk[134] = gr_complex((r8 * cos(9 * M_PI / 32.0)), (r8 * sin(9 * M_PI / 32.0))); - m_256apsk[135] = gr_complex((r8 * cos(11 * M_PI / 32.0)), (r8 * sin(11 * M_PI / 32.0))); - m_256apsk[136] = gr_complex((r8 * cos(31 * M_PI / 32.0)), (r8 * sin(31 * M_PI / 32.0))); - m_256apsk[137] = gr_complex((r8 * cos(29 * M_PI / 32.0)), (r8 * sin(29 * M_PI / 32.0))); - m_256apsk[138] = gr_complex((r8 * cos(25 * M_PI / 32.0)), (r8 * sin(25 * M_PI / 32.0))); - m_256apsk[139] = gr_complex((r8 * cos(27 * M_PI / 32.0)), (r8 * sin(27 * M_PI / 32.0))); - m_256apsk[140] = gr_complex((r8 * cos(17 * M_PI / 32.0)), (r8 * sin(17 * M_PI / 32.0))); - m_256apsk[141] = gr_complex((r8 * cos(19 * M_PI / 32.0)), (r8 * sin(19 * M_PI / 32.0))); - m_256apsk[142] = gr_complex((r8 * cos(23 * M_PI / 32.0)), (r8 * sin(23 * M_PI / 32.0))); - m_256apsk[143] = gr_complex((r8 * cos(21 * M_PI / 32.0)), (r8 * sin(21 * M_PI / 32.0))); - m_256apsk[144] = gr_complex((r8 * cos(-1 * M_PI / 32.0)), (r8 * sin(-1 * M_PI / 32.0))); - m_256apsk[145] = gr_complex((r8 * cos(-3 * M_PI / 32.0)), (r8 * sin(-3 * M_PI / 32.0))); - m_256apsk[146] = gr_complex((r8 * cos(-7 * M_PI / 32.0)), (r8 * sin(-7 * M_PI / 32.0))); - m_256apsk[147] = gr_complex((r8 * cos(-5 * M_PI / 32.0)), (r8 * sin(-5 * M_PI / 32.0))); - m_256apsk[148] = gr_complex((r8 * cos(-15 * M_PI / 32.0)), (r8 * sin(-15 * M_PI / 32.0))); - m_256apsk[149] = gr_complex((r8 * cos(-13 * M_PI / 32.0)), (r8 * sin(-13 * M_PI / 32.0))); - m_256apsk[150] = gr_complex((r8 * cos(-9 * M_PI / 32.0)), (r8 * sin(-9 * M_PI / 32.0))); - m_256apsk[151] = gr_complex((r8 * cos(-11 * M_PI / 32.0)), (r8 * sin(-11 * M_PI / 32.0))); - m_256apsk[152] = gr_complex((r8 * cos(33 * M_PI / 32.0)), (r8 * sin(33 * M_PI / 32.0))); - m_256apsk[153] = gr_complex((r8 * cos(35 * M_PI / 32.0)), (r8 * sin(35 * M_PI / 32.0))); - m_256apsk[154] = gr_complex((r8 * cos(39 * M_PI / 32.0)), (r8 * sin(39 * M_PI / 32.0))); - m_256apsk[155] = gr_complex((r8 * cos(37 * M_PI / 32.0)), (r8 * sin(37 * M_PI / 32.0))); - m_256apsk[156] = gr_complex((r8 * cos(47 * M_PI / 32.0)), (r8 * sin(47 * M_PI / 32.0))); - m_256apsk[157] = gr_complex((r8 * cos(45 * M_PI / 32.0)), (r8 * sin(45 * M_PI / 32.0))); - m_256apsk[158] = gr_complex((r8 * cos(41 * M_PI / 32.0)), (r8 * sin(41 * M_PI / 32.0))); - m_256apsk[159] = gr_complex((r8 * cos(43 * M_PI / 32.0)), (r8 * sin(43 * M_PI / 32.0))); - m_256apsk[160] = gr_complex((r7 * cos(M_PI / 32.0)), (r7 * sin(M_PI / 32.0))); - m_256apsk[161] = gr_complex((r7 * cos(3 * M_PI / 32.0)), (r7 * sin(3 * M_PI / 32.0))); - m_256apsk[162] = gr_complex((r7 * cos(7 * M_PI / 32.0)), (r7 * sin(7 * M_PI / 32.0))); - m_256apsk[163] = gr_complex((r7 * cos(5 * M_PI / 32.0)), (r7 * sin(5 * M_PI / 32.0))); - m_256apsk[164] = gr_complex((r7 * cos(15 * M_PI / 32.0)), (r7 * sin(15 * M_PI / 32.0))); - m_256apsk[165] = gr_complex((r7 * cos(13 * M_PI / 32.0)), (r7 * sin(13 * M_PI / 32.0))); - m_256apsk[166] = gr_complex((r7 * cos(9 * M_PI / 32.0)), (r7 * sin(9 * M_PI / 32.0))); - m_256apsk[167] = gr_complex((r7 * cos(11 * M_PI / 32.0)), (r7 * sin(11 * M_PI / 32.0))); - m_256apsk[168] = gr_complex((r7 * cos(31 * M_PI / 32.0)), (r7 * sin(31 * M_PI / 32.0))); - m_256apsk[169] = gr_complex((r7 * cos(29 * M_PI / 32.0)), (r7 * sin(29 * M_PI / 32.0))); - m_256apsk[170] = gr_complex((r7 * cos(25 * M_PI / 32.0)), (r7 * sin(25 * M_PI / 32.0))); - m_256apsk[171] = gr_complex((r7 * cos(27 * M_PI / 32.0)), (r7 * sin(27 * M_PI / 32.0))); - m_256apsk[172] = gr_complex((r7 * cos(17 * M_PI / 32.0)), (r7 * sin(17 * M_PI / 32.0))); - m_256apsk[173] = gr_complex((r7 * cos(19 * M_PI / 32.0)), (r7 * sin(19 * M_PI / 32.0))); - m_256apsk[174] = gr_complex((r7 * cos(23 * M_PI / 32.0)), (r7 * sin(23 * M_PI / 32.0))); - m_256apsk[175] = gr_complex((r7 * cos(21 * M_PI / 32.0)), (r7 * sin(21 * M_PI / 32.0))); - m_256apsk[176] = gr_complex((r7 * cos(-1 * M_PI / 32.0)), (r7 * sin(-1 * M_PI / 32.0))); - m_256apsk[177] = gr_complex((r7 * cos(-3 * M_PI / 32.0)), (r7 * sin(-3 * M_PI / 32.0))); - m_256apsk[178] = gr_complex((r7 * cos(-7 * M_PI / 32.0)), (r7 * sin(-7 * M_PI / 32.0))); - m_256apsk[179] = gr_complex((r7 * cos(-5 * M_PI / 32.0)), (r7 * sin(-5 * M_PI / 32.0))); - m_256apsk[180] = gr_complex((r7 * cos(-15 * M_PI / 32.0)), (r7 * sin(-15 * M_PI / 32.0))); - m_256apsk[181] = gr_complex((r7 * cos(-13 * M_PI / 32.0)), (r7 * sin(-13 * M_PI / 32.0))); - m_256apsk[182] = gr_complex((r7 * cos(-9 * M_PI / 32.0)), (r7 * sin(-9 * M_PI / 32.0))); - m_256apsk[183] = gr_complex((r7 * cos(-11 * M_PI / 32.0)), (r7 * sin(-11 * M_PI / 32.0))); - m_256apsk[184] = gr_complex((r7 * cos(33 * M_PI / 32.0)), (r7 * sin(33 * M_PI / 32.0))); - m_256apsk[185] = gr_complex((r7 * cos(35 * M_PI / 32.0)), (r7 * sin(35 * M_PI / 32.0))); - m_256apsk[186] = gr_complex((r7 * cos(39 * M_PI / 32.0)), (r7 * sin(39 * M_PI / 32.0))); - m_256apsk[187] = gr_complex((r7 * cos(37 * M_PI / 32.0)), (r7 * sin(37 * M_PI / 32.0))); - m_256apsk[188] = gr_complex((r7 * cos(47 * M_PI / 32.0)), (r7 * sin(47 * M_PI / 32.0))); - m_256apsk[189] = gr_complex((r7 * cos(45 * M_PI / 32.0)), (r7 * sin(45 * M_PI / 32.0))); - m_256apsk[190] = gr_complex((r7 * cos(41 * M_PI / 32.0)), (r7 * sin(41 * M_PI / 32.0))); - m_256apsk[191] = gr_complex((r7 * cos(43 * M_PI / 32.0)), (r7 * sin(43 * M_PI / 32.0))); - m_256apsk[192] = gr_complex((r5 * cos(M_PI / 32.0)), (r5 * sin(M_PI / 32.0))); - m_256apsk[193] = gr_complex((r5 * cos(3 * M_PI / 32.0)), (r5 * sin(3 * M_PI / 32.0))); - m_256apsk[194] = gr_complex((r5 * cos(7 * M_PI / 32.0)), (r5 * sin(7 * M_PI / 32.0))); - m_256apsk[195] = gr_complex((r5 * cos(5 * M_PI / 32.0)), (r5 * sin(5 * M_PI / 32.0))); - m_256apsk[196] = gr_complex((r5 * cos(15 * M_PI / 32.0)), (r5 * sin(15 * M_PI / 32.0))); - m_256apsk[197] = gr_complex((r5 * cos(13 * M_PI / 32.0)), (r5 * sin(13 * M_PI / 32.0))); - m_256apsk[198] = gr_complex((r5 * cos(9 * M_PI / 32.0)), (r5 * sin(9 * M_PI / 32.0))); - m_256apsk[199] = gr_complex((r5 * cos(11 * M_PI / 32.0)), (r5 * sin(11 * M_PI / 32.0))); - m_256apsk[200] = gr_complex((r5 * cos(31 * M_PI / 32.0)), (r5 * sin(31 * M_PI / 32.0))); - m_256apsk[201] = gr_complex((r5 * cos(29 * M_PI / 32.0)), (r5 * sin(29 * M_PI / 32.0))); - m_256apsk[202] = gr_complex((r5 * cos(25 * M_PI / 32.0)), (r5 * sin(25 * M_PI / 32.0))); - m_256apsk[203] = gr_complex((r5 * cos(27 * M_PI / 32.0)), (r5 * sin(27 * M_PI / 32.0))); - m_256apsk[204] = gr_complex((r5 * cos(17 * M_PI / 32.0)), (r5 * sin(17 * M_PI / 32.0))); - m_256apsk[205] = gr_complex((r5 * cos(19 * M_PI / 32.0)), (r5 * sin(19 * M_PI / 32.0))); - m_256apsk[206] = gr_complex((r5 * cos(23 * M_PI / 32.0)), (r5 * sin(23 * M_PI / 32.0))); - m_256apsk[207] = gr_complex((r5 * cos(21 * M_PI / 32.0)), (r5 * sin(21 * M_PI / 32.0))); - m_256apsk[208] = gr_complex((r5 * cos(-1 * M_PI / 32.0)), (r5 * sin(-1 * M_PI / 32.0))); - m_256apsk[209] = gr_complex((r5 * cos(-3 * M_PI / 32.0)), (r5 * sin(-3 * M_PI / 32.0))); - m_256apsk[210] = gr_complex((r5 * cos(-7 * M_PI / 32.0)), (r5 * sin(-7 * M_PI / 32.0))); - m_256apsk[211] = gr_complex((r5 * cos(-5 * M_PI / 32.0)), (r5 * sin(-5 * M_PI / 32.0))); - m_256apsk[212] = gr_complex((r5 * cos(-15 * M_PI / 32.0)), (r5 * sin(-15 * M_PI / 32.0))); - m_256apsk[213] = gr_complex((r5 * cos(-13 * M_PI / 32.0)), (r5 * sin(-13 * M_PI / 32.0))); - m_256apsk[214] = gr_complex((r5 * cos(-9 * M_PI / 32.0)), (r5 * sin(-9 * M_PI / 32.0))); - m_256apsk[215] = gr_complex((r5 * cos(-11 * M_PI / 32.0)), (r5 * sin(-11 * M_PI / 32.0))); - m_256apsk[216] = gr_complex((r5 * cos(33 * M_PI / 32.0)), (r5 * sin(33 * M_PI / 32.0))); - m_256apsk[217] = gr_complex((r5 * cos(35 * M_PI / 32.0)), (r5 * sin(35 * M_PI / 32.0))); - m_256apsk[218] = gr_complex((r5 * cos(39 * M_PI / 32.0)), (r5 * sin(39 * M_PI / 32.0))); - m_256apsk[219] = gr_complex((r5 * cos(37 * M_PI / 32.0)), (r5 * sin(37 * M_PI / 32.0))); - m_256apsk[220] = gr_complex((r5 * cos(47 * M_PI / 32.0)), (r5 * sin(47 * M_PI / 32.0))); - m_256apsk[221] = gr_complex((r5 * cos(45 * M_PI / 32.0)), (r5 * sin(45 * M_PI / 32.0))); - m_256apsk[222] = gr_complex((r5 * cos(41 * M_PI / 32.0)), (r5 * sin(41 * M_PI / 32.0))); - m_256apsk[223] = gr_complex((r5 * cos(43 * M_PI / 32.0)), (r5 * sin(43 * M_PI / 32.0))); - m_256apsk[224] = gr_complex((r6 * cos(M_PI / 32.0)), (r6 * sin(M_PI / 32.0))); - m_256apsk[225] = gr_complex((r6 * cos(3 * M_PI / 32.0)), (r6 * sin(3 * M_PI / 32.0))); - m_256apsk[226] = gr_complex((r6 * cos(7 * M_PI / 32.0)), (r6 * sin(7 * M_PI / 32.0))); - m_256apsk[227] = gr_complex((r6 * cos(5 * M_PI / 32.0)), (r6 * sin(5 * M_PI / 32.0))); - m_256apsk[228] = gr_complex((r6 * cos(15 * M_PI / 32.0)), (r6 * sin(15 * M_PI / 32.0))); - m_256apsk[229] = gr_complex((r6 * cos(13 * M_PI / 32.0)), (r6 * sin(13 * M_PI / 32.0))); - m_256apsk[230] = gr_complex((r6 * cos(9 * M_PI / 32.0)), (r6 * sin(9 * M_PI / 32.0))); - m_256apsk[231] = gr_complex((r6 * cos(11 * M_PI / 32.0)), (r6 * sin(11 * M_PI / 32.0))); - m_256apsk[232] = gr_complex((r6 * cos(31 * M_PI / 32.0)), (r6 * sin(31 * M_PI / 32.0))); - m_256apsk[233] = gr_complex((r6 * cos(29 * M_PI / 32.0)), (r6 * sin(29 * M_PI / 32.0))); - m_256apsk[234] = gr_complex((r6 * cos(25 * M_PI / 32.0)), (r6 * sin(25 * M_PI / 32.0))); - m_256apsk[235] = gr_complex((r6 * cos(27 * M_PI / 32.0)), (r6 * sin(27 * M_PI / 32.0))); - m_256apsk[236] = gr_complex((r6 * cos(17 * M_PI / 32.0)), (r6 * sin(17 * M_PI / 32.0))); - m_256apsk[237] = gr_complex((r6 * cos(19 * M_PI / 32.0)), (r6 * sin(19 * M_PI / 32.0))); - m_256apsk[238] = gr_complex((r6 * cos(23 * M_PI / 32.0)), (r6 * sin(23 * M_PI / 32.0))); - m_256apsk[239] = gr_complex((r6 * cos(21 * M_PI / 32.0)), (r6 * sin(21 * M_PI / 32.0))); - m_256apsk[240] = gr_complex((r6 * cos(-1 * M_PI / 32.0)), (r6 * sin(-1 * M_PI / 32.0))); - m_256apsk[241] = gr_complex((r6 * cos(-3 * M_PI / 32.0)), (r6 * sin(-3 * M_PI / 32.0))); - m_256apsk[242] = gr_complex((r6 * cos(-7 * M_PI / 32.0)), (r6 * sin(-7 * M_PI / 32.0))); - m_256apsk[243] = gr_complex((r6 * cos(-5 * M_PI / 32.0)), (r6 * sin(-5 * M_PI / 32.0))); - m_256apsk[244] = gr_complex((r6 * cos(-15 * M_PI / 32.0)), (r6 * sin(-15 * M_PI / 32.0))); - m_256apsk[245] = gr_complex((r6 * cos(-13 * M_PI / 32.0)), (r6 * sin(-13 * M_PI / 32.0))); - m_256apsk[246] = gr_complex((r6 * cos(-9 * M_PI / 32.0)), (r6 * sin(-9 * M_PI / 32.0))); - m_256apsk[247] = gr_complex((r6 * cos(-11 * M_PI / 32.0)), (r6 * sin(-11 * M_PI / 32.0))); - m_256apsk[248] = gr_complex((r6 * cos(33 * M_PI / 32.0)), (r6 * sin(33 * M_PI / 32.0))); - m_256apsk[249] = gr_complex((r6 * cos(35 * M_PI / 32.0)), (r6 * sin(35 * M_PI / 32.0))); - m_256apsk[250] = gr_complex((r6 * cos(39 * M_PI / 32.0)), (r6 * sin(39 * M_PI / 32.0))); - m_256apsk[251] = gr_complex((r6 * cos(37 * M_PI / 32.0)), (r6 * sin(37 * M_PI / 32.0))); - m_256apsk[252] = gr_complex((r6 * cos(47 * M_PI / 32.0)), (r6 * sin(47 * M_PI / 32.0))); - m_256apsk[253] = gr_complex((r6 * cos(45 * M_PI / 32.0)), (r6 * sin(45 * M_PI / 32.0))); - m_256apsk[254] = gr_complex((r6 * cos(41 * M_PI / 32.0)), (r6 * sin(41 * M_PI / 32.0))); - m_256apsk[255] = gr_complex((r6 * cos(43 * M_PI / 32.0)), (r6 * sin(43 * M_PI / 32.0))); + m_256apsk[0] = gr_complex((r1 * cos(GR_M_PI / 32.0)), (r1 * sin(GR_M_PI / 32.0))); + m_256apsk[1] = gr_complex((r1 * cos(3 * GR_M_PI / 32.0)), (r1 * sin(3 * GR_M_PI / 32.0))); + m_256apsk[2] = gr_complex((r1 * cos(7 * GR_M_PI / 32.0)), (r1 * sin(7 * GR_M_PI / 32.0))); + m_256apsk[3] = gr_complex((r1 * cos(5 * GR_M_PI / 32.0)), (r1 * sin(5 * GR_M_PI / 32.0))); + m_256apsk[4] = gr_complex((r1 * cos(15 * GR_M_PI / 32.0)), (r1 * sin(15 * GR_M_PI / 32.0))); + m_256apsk[5] = gr_complex((r1 * cos(13 * GR_M_PI / 32.0)), (r1 * sin(13 * GR_M_PI / 32.0))); + m_256apsk[6] = gr_complex((r1 * cos(9 * GR_M_PI / 32.0)), (r1 * sin(9 * GR_M_PI / 32.0))); + m_256apsk[7] = gr_complex((r1 * cos(11 * GR_M_PI / 32.0)), (r1 * sin(11 * GR_M_PI / 32.0))); + m_256apsk[8] = gr_complex((r1 * cos(31 * GR_M_PI / 32.0)), (r1 * sin(31 * GR_M_PI / 32.0))); + m_256apsk[9] = gr_complex((r1 * cos(29 * GR_M_PI / 32.0)), (r1 * sin(29 * GR_M_PI / 32.0))); + m_256apsk[10] = gr_complex((r1 * cos(25 * GR_M_PI / 32.0)), (r1 * sin(25 * GR_M_PI / 32.0))); + m_256apsk[11] = gr_complex((r1 * cos(27 * GR_M_PI / 32.0)), (r1 * sin(27 * GR_M_PI / 32.0))); + m_256apsk[12] = gr_complex((r1 * cos(17 * GR_M_PI / 32.0)), (r1 * sin(17 * GR_M_PI / 32.0))); + m_256apsk[13] = gr_complex((r1 * cos(19 * GR_M_PI / 32.0)), (r1 * sin(19 * GR_M_PI / 32.0))); + m_256apsk[14] = gr_complex((r1 * cos(23 * GR_M_PI / 32.0)), (r1 * sin(23 * GR_M_PI / 32.0))); + m_256apsk[15] = gr_complex((r1 * cos(21 * GR_M_PI / 32.0)), (r1 * sin(21 * GR_M_PI / 32.0))); + m_256apsk[16] = gr_complex((r1 * cos(-1 * GR_M_PI / 32.0)), (r1 * sin(-1 * GR_M_PI / 32.0))); + m_256apsk[17] = gr_complex((r1 * cos(-3 * GR_M_PI / 32.0)), (r1 * sin(-3 * GR_M_PI / 32.0))); + m_256apsk[18] = gr_complex((r1 * cos(-7 * GR_M_PI / 32.0)), (r1 * sin(-7 * GR_M_PI / 32.0))); + m_256apsk[19] = gr_complex((r1 * cos(-5 * GR_M_PI / 32.0)), (r1 * sin(-5 * GR_M_PI / 32.0))); + m_256apsk[20] = gr_complex((r1 * cos(-15 * GR_M_PI / 32.0)), (r1 * sin(-15 * GR_M_PI / 32.0))); + m_256apsk[21] = gr_complex((r1 * cos(-13 * GR_M_PI / 32.0)), (r1 * sin(-13 * GR_M_PI / 32.0))); + m_256apsk[22] = gr_complex((r1 * cos(-9 * GR_M_PI / 32.0)), (r1 * sin(-9 * GR_M_PI / 32.0))); + m_256apsk[23] = gr_complex((r1 * cos(-11 * GR_M_PI / 32.0)), (r1 * sin(-11 * GR_M_PI / 32.0))); + m_256apsk[24] = gr_complex((r1 * cos(33 * GR_M_PI / 32.0)), (r1 * sin(33 * GR_M_PI / 32.0))); + m_256apsk[25] = gr_complex((r1 * cos(35 * GR_M_PI / 32.0)), (r1 * sin(35 * GR_M_PI / 32.0))); + m_256apsk[26] = gr_complex((r1 * cos(39 * GR_M_PI / 32.0)), (r1 * sin(39 * GR_M_PI / 32.0))); + m_256apsk[27] = gr_complex((r1 * cos(37 * GR_M_PI / 32.0)), (r1 * sin(37 * GR_M_PI / 32.0))); + m_256apsk[28] = gr_complex((r1 * cos(47 * GR_M_PI / 32.0)), (r1 * sin(47 * GR_M_PI / 32.0))); + m_256apsk[29] = gr_complex((r1 * cos(45 * GR_M_PI / 32.0)), (r1 * sin(45 * GR_M_PI / 32.0))); + m_256apsk[30] = gr_complex((r1 * cos(41 * GR_M_PI / 32.0)), (r1 * sin(41 * GR_M_PI / 32.0))); + m_256apsk[31] = gr_complex((r1 * cos(43 * GR_M_PI / 32.0)), (r1 * sin(43 * GR_M_PI / 32.0))); + m_256apsk[32] = gr_complex((r2 * cos(GR_M_PI / 32.0)), (r2 * sin(GR_M_PI / 32.0))); + m_256apsk[33] = gr_complex((r2 * cos(3 * GR_M_PI / 32.0)), (r2 * sin(3 * GR_M_PI / 32.0))); + m_256apsk[34] = gr_complex((r2 * cos(7 * GR_M_PI / 32.0)), (r2 * sin(7 * GR_M_PI / 32.0))); + m_256apsk[35] = gr_complex((r2 * cos(5 * GR_M_PI / 32.0)), (r2 * sin(5 * GR_M_PI / 32.0))); + m_256apsk[36] = gr_complex((r2 * cos(15 * GR_M_PI / 32.0)), (r2 * sin(15 * GR_M_PI / 32.0))); + m_256apsk[37] = gr_complex((r2 * cos(13 * GR_M_PI / 32.0)), (r2 * sin(13 * GR_M_PI / 32.0))); + m_256apsk[38] = gr_complex((r2 * cos(9 * GR_M_PI / 32.0)), (r2 * sin(9 * GR_M_PI / 32.0))); + m_256apsk[39] = gr_complex((r2 * cos(11 * GR_M_PI / 32.0)), (r2 * sin(11 * GR_M_PI / 32.0))); + m_256apsk[40] = gr_complex((r2 * cos(31 * GR_M_PI / 32.0)), (r2 * sin(31 * GR_M_PI / 32.0))); + m_256apsk[41] = gr_complex((r2 * cos(29 * GR_M_PI / 32.0)), (r2 * sin(29 * GR_M_PI / 32.0))); + m_256apsk[42] = gr_complex((r2 * cos(25 * GR_M_PI / 32.0)), (r2 * sin(25 * GR_M_PI / 32.0))); + m_256apsk[43] = gr_complex((r2 * cos(27 * GR_M_PI / 32.0)), (r2 * sin(27 * GR_M_PI / 32.0))); + m_256apsk[44] = gr_complex((r2 * cos(17 * GR_M_PI / 32.0)), (r2 * sin(17 * GR_M_PI / 32.0))); + m_256apsk[45] = gr_complex((r2 * cos(19 * GR_M_PI / 32.0)), (r2 * sin(19 * GR_M_PI / 32.0))); + m_256apsk[46] = gr_complex((r2 * cos(23 * GR_M_PI / 32.0)), (r2 * sin(23 * GR_M_PI / 32.0))); + m_256apsk[47] = gr_complex((r2 * cos(21 * GR_M_PI / 32.0)), (r2 * sin(21 * GR_M_PI / 32.0))); + m_256apsk[48] = gr_complex((r2 * cos(-1 * GR_M_PI / 32.0)), (r2 * sin(-1 * GR_M_PI / 32.0))); + m_256apsk[49] = gr_complex((r2 * cos(-3 * GR_M_PI / 32.0)), (r2 * sin(-3 * GR_M_PI / 32.0))); + m_256apsk[50] = gr_complex((r2 * cos(-7 * GR_M_PI / 32.0)), (r2 * sin(-7 * GR_M_PI / 32.0))); + m_256apsk[51] = gr_complex((r2 * cos(-5 * GR_M_PI / 32.0)), (r2 * sin(-5 * GR_M_PI / 32.0))); + m_256apsk[52] = gr_complex((r2 * cos(-15 * GR_M_PI / 32.0)), (r2 * sin(-15 * GR_M_PI / 32.0))); + m_256apsk[53] = gr_complex((r2 * cos(-13 * GR_M_PI / 32.0)), (r2 * sin(-13 * GR_M_PI / 32.0))); + m_256apsk[54] = gr_complex((r2 * cos(-9 * GR_M_PI / 32.0)), (r2 * sin(-9 * GR_M_PI / 32.0))); + m_256apsk[55] = gr_complex((r2 * cos(-11 * GR_M_PI / 32.0)), (r2 * sin(-11 * GR_M_PI / 32.0))); + m_256apsk[56] = gr_complex((r2 * cos(33 * GR_M_PI / 32.0)), (r2 * sin(33 * GR_M_PI / 32.0))); + m_256apsk[57] = gr_complex((r2 * cos(35 * GR_M_PI / 32.0)), (r2 * sin(35 * GR_M_PI / 32.0))); + m_256apsk[58] = gr_complex((r2 * cos(39 * GR_M_PI / 32.0)), (r2 * sin(39 * GR_M_PI / 32.0))); + m_256apsk[59] = gr_complex((r2 * cos(37 * GR_M_PI / 32.0)), (r2 * sin(37 * GR_M_PI / 32.0))); + m_256apsk[60] = gr_complex((r2 * cos(47 * GR_M_PI / 32.0)), (r2 * sin(47 * GR_M_PI / 32.0))); + m_256apsk[61] = gr_complex((r2 * cos(45 * GR_M_PI / 32.0)), (r2 * sin(45 * GR_M_PI / 32.0))); + m_256apsk[62] = gr_complex((r2 * cos(41 * GR_M_PI / 32.0)), (r2 * sin(41 * GR_M_PI / 32.0))); + m_256apsk[63] = gr_complex((r2 * cos(43 * GR_M_PI / 32.0)), (r2 * sin(43 * GR_M_PI / 32.0))); + m_256apsk[64] = gr_complex((r4 * cos(GR_M_PI / 32.0)), (r4 * sin(GR_M_PI / 32.0))); + m_256apsk[65] = gr_complex((r4 * cos(3 * GR_M_PI / 32.0)), (r4 * sin(3 * GR_M_PI / 32.0))); + m_256apsk[66] = gr_complex((r4 * cos(7 * GR_M_PI / 32.0)), (r4 * sin(7 * GR_M_PI / 32.0))); + m_256apsk[67] = gr_complex((r4 * cos(5 * GR_M_PI / 32.0)), (r4 * sin(5 * GR_M_PI / 32.0))); + m_256apsk[68] = gr_complex((r4 * cos(15 * GR_M_PI / 32.0)), (r4 * sin(15 * GR_M_PI / 32.0))); + m_256apsk[69] = gr_complex((r4 * cos(13 * GR_M_PI / 32.0)), (r4 * sin(13 * GR_M_PI / 32.0))); + m_256apsk[70] = gr_complex((r4 * cos(9 * GR_M_PI / 32.0)), (r4 * sin(9 * GR_M_PI / 32.0))); + m_256apsk[71] = gr_complex((r4 * cos(11 * GR_M_PI / 32.0)), (r4 * sin(11 * GR_M_PI / 32.0))); + m_256apsk[72] = gr_complex((r4 * cos(31 * GR_M_PI / 32.0)), (r4 * sin(31 * GR_M_PI / 32.0))); + m_256apsk[73] = gr_complex((r4 * cos(29 * GR_M_PI / 32.0)), (r4 * sin(29 * GR_M_PI / 32.0))); + m_256apsk[74] = gr_complex((r4 * cos(25 * GR_M_PI / 32.0)), (r4 * sin(25 * GR_M_PI / 32.0))); + m_256apsk[75] = gr_complex((r4 * cos(27 * GR_M_PI / 32.0)), (r4 * sin(27 * GR_M_PI / 32.0))); + m_256apsk[76] = gr_complex((r4 * cos(17 * GR_M_PI / 32.0)), (r4 * sin(17 * GR_M_PI / 32.0))); + m_256apsk[77] = gr_complex((r4 * cos(19 * GR_M_PI / 32.0)), (r4 * sin(19 * GR_M_PI / 32.0))); + m_256apsk[78] = gr_complex((r4 * cos(23 * GR_M_PI / 32.0)), (r4 * sin(23 * GR_M_PI / 32.0))); + m_256apsk[79] = gr_complex((r4 * cos(21 * GR_M_PI / 32.0)), (r4 * sin(21 * GR_M_PI / 32.0))); + m_256apsk[80] = gr_complex((r4 * cos(-1 * GR_M_PI / 32.0)), (r4 * sin(-1 * GR_M_PI / 32.0))); + m_256apsk[81] = gr_complex((r4 * cos(-3 * GR_M_PI / 32.0)), (r4 * sin(-3 * GR_M_PI / 32.0))); + m_256apsk[82] = gr_complex((r4 * cos(-7 * GR_M_PI / 32.0)), (r4 * sin(-7 * GR_M_PI / 32.0))); + m_256apsk[83] = gr_complex((r4 * cos(-5 * GR_M_PI / 32.0)), (r4 * sin(-5 * GR_M_PI / 32.0))); + m_256apsk[84] = gr_complex((r4 * cos(-15 * GR_M_PI / 32.0)), (r4 * sin(-15 * GR_M_PI / 32.0))); + m_256apsk[85] = gr_complex((r4 * cos(-13 * GR_M_PI / 32.0)), (r4 * sin(-13 * GR_M_PI / 32.0))); + m_256apsk[86] = gr_complex((r4 * cos(-9 * GR_M_PI / 32.0)), (r4 * sin(-9 * GR_M_PI / 32.0))); + m_256apsk[87] = gr_complex((r4 * cos(-11 * GR_M_PI / 32.0)), (r4 * sin(-11 * GR_M_PI / 32.0))); + m_256apsk[88] = gr_complex((r4 * cos(33 * GR_M_PI / 32.0)), (r4 * sin(33 * GR_M_PI / 32.0))); + m_256apsk[89] = gr_complex((r4 * cos(35 * GR_M_PI / 32.0)), (r4 * sin(35 * GR_M_PI / 32.0))); + m_256apsk[90] = gr_complex((r4 * cos(39 * GR_M_PI / 32.0)), (r4 * sin(39 * GR_M_PI / 32.0))); + m_256apsk[91] = gr_complex((r4 * cos(37 * GR_M_PI / 32.0)), (r4 * sin(37 * GR_M_PI / 32.0))); + m_256apsk[92] = gr_complex((r4 * cos(47 * GR_M_PI / 32.0)), (r4 * sin(47 * GR_M_PI / 32.0))); + m_256apsk[93] = gr_complex((r4 * cos(45 * GR_M_PI / 32.0)), (r4 * sin(45 * GR_M_PI / 32.0))); + m_256apsk[94] = gr_complex((r4 * cos(41 * GR_M_PI / 32.0)), (r4 * sin(41 * GR_M_PI / 32.0))); + m_256apsk[95] = gr_complex((r4 * cos(43 * GR_M_PI / 32.0)), (r4 * sin(43 * GR_M_PI / 32.0))); + m_256apsk[96] = gr_complex((r3 * cos(GR_M_PI / 32.0)), (r3 * sin(GR_M_PI / 32.0))); + m_256apsk[97] = gr_complex((r3 * cos(3 * GR_M_PI / 32.0)), (r3 * sin(3 * GR_M_PI / 32.0))); + m_256apsk[98] = gr_complex((r3 * cos(7 * GR_M_PI / 32.0)), (r3 * sin(7 * GR_M_PI / 32.0))); + m_256apsk[99] = gr_complex((r3 * cos(5 * GR_M_PI / 32.0)), (r3 * sin(5 * GR_M_PI / 32.0))); + m_256apsk[100] = gr_complex((r3 * cos(15 * GR_M_PI / 32.0)), (r3 * sin(15 * GR_M_PI / 32.0))); + m_256apsk[101] = gr_complex((r3 * cos(13 * GR_M_PI / 32.0)), (r3 * sin(13 * GR_M_PI / 32.0))); + m_256apsk[102] = gr_complex((r3 * cos(9 * GR_M_PI / 32.0)), (r3 * sin(9 * GR_M_PI / 32.0))); + m_256apsk[103] = gr_complex((r3 * cos(11 * GR_M_PI / 32.0)), (r3 * sin(11 * GR_M_PI / 32.0))); + m_256apsk[104] = gr_complex((r3 * cos(31 * GR_M_PI / 32.0)), (r3 * sin(31 * GR_M_PI / 32.0))); + m_256apsk[105] = gr_complex((r3 * cos(29 * GR_M_PI / 32.0)), (r3 * sin(29 * GR_M_PI / 32.0))); + m_256apsk[106] = gr_complex((r3 * cos(25 * GR_M_PI / 32.0)), (r3 * sin(25 * GR_M_PI / 32.0))); + m_256apsk[107] = gr_complex((r3 * cos(27 * GR_M_PI / 32.0)), (r3 * sin(27 * GR_M_PI / 32.0))); + m_256apsk[108] = gr_complex((r3 * cos(17 * GR_M_PI / 32.0)), (r3 * sin(17 * GR_M_PI / 32.0))); + m_256apsk[109] = gr_complex((r3 * cos(19 * GR_M_PI / 32.0)), (r3 * sin(19 * GR_M_PI / 32.0))); + m_256apsk[110] = gr_complex((r3 * cos(23 * GR_M_PI / 32.0)), (r3 * sin(23 * GR_M_PI / 32.0))); + m_256apsk[111] = gr_complex((r3 * cos(21 * GR_M_PI / 32.0)), (r3 * sin(21 * GR_M_PI / 32.0))); + m_256apsk[112] = gr_complex((r3 * cos(-1 * GR_M_PI / 32.0)), (r3 * sin(-1 * GR_M_PI / 32.0))); + m_256apsk[113] = gr_complex((r3 * cos(-3 * GR_M_PI / 32.0)), (r3 * sin(-3 * GR_M_PI / 32.0))); + m_256apsk[114] = gr_complex((r3 * cos(-7 * GR_M_PI / 32.0)), (r3 * sin(-7 * GR_M_PI / 32.0))); + m_256apsk[115] = gr_complex((r3 * cos(-5 * GR_M_PI / 32.0)), (r3 * sin(-5 * GR_M_PI / 32.0))); + m_256apsk[116] = gr_complex((r3 * cos(-15 * GR_M_PI / 32.0)), (r3 * sin(-15 * GR_M_PI / 32.0))); + m_256apsk[117] = gr_complex((r3 * cos(-13 * GR_M_PI / 32.0)), (r3 * sin(-13 * GR_M_PI / 32.0))); + m_256apsk[118] = gr_complex((r3 * cos(-9 * GR_M_PI / 32.0)), (r3 * sin(-9 * GR_M_PI / 32.0))); + m_256apsk[119] = gr_complex((r3 * cos(-11 * GR_M_PI / 32.0)), (r3 * sin(-11 * GR_M_PI / 32.0))); + m_256apsk[120] = gr_complex((r3 * cos(33 * GR_M_PI / 32.0)), (r3 * sin(33 * GR_M_PI / 32.0))); + m_256apsk[121] = gr_complex((r3 * cos(35 * GR_M_PI / 32.0)), (r3 * sin(35 * GR_M_PI / 32.0))); + m_256apsk[122] = gr_complex((r3 * cos(39 * GR_M_PI / 32.0)), (r3 * sin(39 * GR_M_PI / 32.0))); + m_256apsk[123] = gr_complex((r3 * cos(37 * GR_M_PI / 32.0)), (r3 * sin(37 * GR_M_PI / 32.0))); + m_256apsk[124] = gr_complex((r3 * cos(47 * GR_M_PI / 32.0)), (r3 * sin(47 * GR_M_PI / 32.0))); + m_256apsk[125] = gr_complex((r3 * cos(45 * GR_M_PI / 32.0)), (r3 * sin(45 * GR_M_PI / 32.0))); + m_256apsk[126] = gr_complex((r3 * cos(41 * GR_M_PI / 32.0)), (r3 * sin(41 * GR_M_PI / 32.0))); + m_256apsk[127] = gr_complex((r3 * cos(43 * GR_M_PI / 32.0)), (r3 * sin(43 * GR_M_PI / 32.0))); + m_256apsk[128] = gr_complex((r8 * cos(GR_M_PI / 32.0)), (r8 * sin(GR_M_PI / 32.0))); + m_256apsk[129] = gr_complex((r8 * cos(3 * GR_M_PI / 32.0)), (r8 * sin(3 * GR_M_PI / 32.0))); + m_256apsk[130] = gr_complex((r8 * cos(7 * GR_M_PI / 32.0)), (r8 * sin(7 * GR_M_PI / 32.0))); + m_256apsk[131] = gr_complex((r8 * cos(5 * GR_M_PI / 32.0)), (r8 * sin(5 * GR_M_PI / 32.0))); + m_256apsk[132] = gr_complex((r8 * cos(15 * GR_M_PI / 32.0)), (r8 * sin(15 * GR_M_PI / 32.0))); + m_256apsk[133] = gr_complex((r8 * cos(13 * GR_M_PI / 32.0)), (r8 * sin(13 * GR_M_PI / 32.0))); + m_256apsk[134] = gr_complex((r8 * cos(9 * GR_M_PI / 32.0)), (r8 * sin(9 * GR_M_PI / 32.0))); + m_256apsk[135] = gr_complex((r8 * cos(11 * GR_M_PI / 32.0)), (r8 * sin(11 * GR_M_PI / 32.0))); + m_256apsk[136] = gr_complex((r8 * cos(31 * GR_M_PI / 32.0)), (r8 * sin(31 * GR_M_PI / 32.0))); + m_256apsk[137] = gr_complex((r8 * cos(29 * GR_M_PI / 32.0)), (r8 * sin(29 * GR_M_PI / 32.0))); + m_256apsk[138] = gr_complex((r8 * cos(25 * GR_M_PI / 32.0)), (r8 * sin(25 * GR_M_PI / 32.0))); + m_256apsk[139] = gr_complex((r8 * cos(27 * GR_M_PI / 32.0)), (r8 * sin(27 * GR_M_PI / 32.0))); + m_256apsk[140] = gr_complex((r8 * cos(17 * GR_M_PI / 32.0)), (r8 * sin(17 * GR_M_PI / 32.0))); + m_256apsk[141] = gr_complex((r8 * cos(19 * GR_M_PI / 32.0)), (r8 * sin(19 * GR_M_PI / 32.0))); + m_256apsk[142] = gr_complex((r8 * cos(23 * GR_M_PI / 32.0)), (r8 * sin(23 * GR_M_PI / 32.0))); + m_256apsk[143] = gr_complex((r8 * cos(21 * GR_M_PI / 32.0)), (r8 * sin(21 * GR_M_PI / 32.0))); + m_256apsk[144] = gr_complex((r8 * cos(-1 * GR_M_PI / 32.0)), (r8 * sin(-1 * GR_M_PI / 32.0))); + m_256apsk[145] = gr_complex((r8 * cos(-3 * GR_M_PI / 32.0)), (r8 * sin(-3 * GR_M_PI / 32.0))); + m_256apsk[146] = gr_complex((r8 * cos(-7 * GR_M_PI / 32.0)), (r8 * sin(-7 * GR_M_PI / 32.0))); + m_256apsk[147] = gr_complex((r8 * cos(-5 * GR_M_PI / 32.0)), (r8 * sin(-5 * GR_M_PI / 32.0))); + m_256apsk[148] = gr_complex((r8 * cos(-15 * GR_M_PI / 32.0)), (r8 * sin(-15 * GR_M_PI / 32.0))); + m_256apsk[149] = gr_complex((r8 * cos(-13 * GR_M_PI / 32.0)), (r8 * sin(-13 * GR_M_PI / 32.0))); + m_256apsk[150] = gr_complex((r8 * cos(-9 * GR_M_PI / 32.0)), (r8 * sin(-9 * GR_M_PI / 32.0))); + m_256apsk[151] = gr_complex((r8 * cos(-11 * GR_M_PI / 32.0)), (r8 * sin(-11 * GR_M_PI / 32.0))); + m_256apsk[152] = gr_complex((r8 * cos(33 * GR_M_PI / 32.0)), (r8 * sin(33 * GR_M_PI / 32.0))); + m_256apsk[153] = gr_complex((r8 * cos(35 * GR_M_PI / 32.0)), (r8 * sin(35 * GR_M_PI / 32.0))); + m_256apsk[154] = gr_complex((r8 * cos(39 * GR_M_PI / 32.0)), (r8 * sin(39 * GR_M_PI / 32.0))); + m_256apsk[155] = gr_complex((r8 * cos(37 * GR_M_PI / 32.0)), (r8 * sin(37 * GR_M_PI / 32.0))); + m_256apsk[156] = gr_complex((r8 * cos(47 * GR_M_PI / 32.0)), (r8 * sin(47 * GR_M_PI / 32.0))); + m_256apsk[157] = gr_complex((r8 * cos(45 * GR_M_PI / 32.0)), (r8 * sin(45 * GR_M_PI / 32.0))); + m_256apsk[158] = gr_complex((r8 * cos(41 * GR_M_PI / 32.0)), (r8 * sin(41 * GR_M_PI / 32.0))); + m_256apsk[159] = gr_complex((r8 * cos(43 * GR_M_PI / 32.0)), (r8 * sin(43 * GR_M_PI / 32.0))); + m_256apsk[160] = gr_complex((r7 * cos(GR_M_PI / 32.0)), (r7 * sin(GR_M_PI / 32.0))); + m_256apsk[161] = gr_complex((r7 * cos(3 * GR_M_PI / 32.0)), (r7 * sin(3 * GR_M_PI / 32.0))); + m_256apsk[162] = gr_complex((r7 * cos(7 * GR_M_PI / 32.0)), (r7 * sin(7 * GR_M_PI / 32.0))); + m_256apsk[163] = gr_complex((r7 * cos(5 * GR_M_PI / 32.0)), (r7 * sin(5 * GR_M_PI / 32.0))); + m_256apsk[164] = gr_complex((r7 * cos(15 * GR_M_PI / 32.0)), (r7 * sin(15 * GR_M_PI / 32.0))); + m_256apsk[165] = gr_complex((r7 * cos(13 * GR_M_PI / 32.0)), (r7 * sin(13 * GR_M_PI / 32.0))); + m_256apsk[166] = gr_complex((r7 * cos(9 * GR_M_PI / 32.0)), (r7 * sin(9 * GR_M_PI / 32.0))); + m_256apsk[167] = gr_complex((r7 * cos(11 * GR_M_PI / 32.0)), (r7 * sin(11 * GR_M_PI / 32.0))); + m_256apsk[168] = gr_complex((r7 * cos(31 * GR_M_PI / 32.0)), (r7 * sin(31 * GR_M_PI / 32.0))); + m_256apsk[169] = gr_complex((r7 * cos(29 * GR_M_PI / 32.0)), (r7 * sin(29 * GR_M_PI / 32.0))); + m_256apsk[170] = gr_complex((r7 * cos(25 * GR_M_PI / 32.0)), (r7 * sin(25 * GR_M_PI / 32.0))); + m_256apsk[171] = gr_complex((r7 * cos(27 * GR_M_PI / 32.0)), (r7 * sin(27 * GR_M_PI / 32.0))); + m_256apsk[172] = gr_complex((r7 * cos(17 * GR_M_PI / 32.0)), (r7 * sin(17 * GR_M_PI / 32.0))); + m_256apsk[173] = gr_complex((r7 * cos(19 * GR_M_PI / 32.0)), (r7 * sin(19 * GR_M_PI / 32.0))); + m_256apsk[174] = gr_complex((r7 * cos(23 * GR_M_PI / 32.0)), (r7 * sin(23 * GR_M_PI / 32.0))); + m_256apsk[175] = gr_complex((r7 * cos(21 * GR_M_PI / 32.0)), (r7 * sin(21 * GR_M_PI / 32.0))); + m_256apsk[176] = gr_complex((r7 * cos(-1 * GR_M_PI / 32.0)), (r7 * sin(-1 * GR_M_PI / 32.0))); + m_256apsk[177] = gr_complex((r7 * cos(-3 * GR_M_PI / 32.0)), (r7 * sin(-3 * GR_M_PI / 32.0))); + m_256apsk[178] = gr_complex((r7 * cos(-7 * GR_M_PI / 32.0)), (r7 * sin(-7 * GR_M_PI / 32.0))); + m_256apsk[179] = gr_complex((r7 * cos(-5 * GR_M_PI / 32.0)), (r7 * sin(-5 * GR_M_PI / 32.0))); + m_256apsk[180] = gr_complex((r7 * cos(-15 * GR_M_PI / 32.0)), (r7 * sin(-15 * GR_M_PI / 32.0))); + m_256apsk[181] = gr_complex((r7 * cos(-13 * GR_M_PI / 32.0)), (r7 * sin(-13 * GR_M_PI / 32.0))); + m_256apsk[182] = gr_complex((r7 * cos(-9 * GR_M_PI / 32.0)), (r7 * sin(-9 * GR_M_PI / 32.0))); + m_256apsk[183] = gr_complex((r7 * cos(-11 * GR_M_PI / 32.0)), (r7 * sin(-11 * GR_M_PI / 32.0))); + m_256apsk[184] = gr_complex((r7 * cos(33 * GR_M_PI / 32.0)), (r7 * sin(33 * GR_M_PI / 32.0))); + m_256apsk[185] = gr_complex((r7 * cos(35 * GR_M_PI / 32.0)), (r7 * sin(35 * GR_M_PI / 32.0))); + m_256apsk[186] = gr_complex((r7 * cos(39 * GR_M_PI / 32.0)), (r7 * sin(39 * GR_M_PI / 32.0))); + m_256apsk[187] = gr_complex((r7 * cos(37 * GR_M_PI / 32.0)), (r7 * sin(37 * GR_M_PI / 32.0))); + m_256apsk[188] = gr_complex((r7 * cos(47 * GR_M_PI / 32.0)), (r7 * sin(47 * GR_M_PI / 32.0))); + m_256apsk[189] = gr_complex((r7 * cos(45 * GR_M_PI / 32.0)), (r7 * sin(45 * GR_M_PI / 32.0))); + m_256apsk[190] = gr_complex((r7 * cos(41 * GR_M_PI / 32.0)), (r7 * sin(41 * GR_M_PI / 32.0))); + m_256apsk[191] = gr_complex((r7 * cos(43 * GR_M_PI / 32.0)), (r7 * sin(43 * GR_M_PI / 32.0))); + m_256apsk[192] = gr_complex((r5 * cos(GR_M_PI / 32.0)), (r5 * sin(GR_M_PI / 32.0))); + m_256apsk[193] = gr_complex((r5 * cos(3 * GR_M_PI / 32.0)), (r5 * sin(3 * GR_M_PI / 32.0))); + m_256apsk[194] = gr_complex((r5 * cos(7 * GR_M_PI / 32.0)), (r5 * sin(7 * GR_M_PI / 32.0))); + m_256apsk[195] = gr_complex((r5 * cos(5 * GR_M_PI / 32.0)), (r5 * sin(5 * GR_M_PI / 32.0))); + m_256apsk[196] = gr_complex((r5 * cos(15 * GR_M_PI / 32.0)), (r5 * sin(15 * GR_M_PI / 32.0))); + m_256apsk[197] = gr_complex((r5 * cos(13 * GR_M_PI / 32.0)), (r5 * sin(13 * GR_M_PI / 32.0))); + m_256apsk[198] = gr_complex((r5 * cos(9 * GR_M_PI / 32.0)), (r5 * sin(9 * GR_M_PI / 32.0))); + m_256apsk[199] = gr_complex((r5 * cos(11 * GR_M_PI / 32.0)), (r5 * sin(11 * GR_M_PI / 32.0))); + m_256apsk[200] = gr_complex((r5 * cos(31 * GR_M_PI / 32.0)), (r5 * sin(31 * GR_M_PI / 32.0))); + m_256apsk[201] = gr_complex((r5 * cos(29 * GR_M_PI / 32.0)), (r5 * sin(29 * GR_M_PI / 32.0))); + m_256apsk[202] = gr_complex((r5 * cos(25 * GR_M_PI / 32.0)), (r5 * sin(25 * GR_M_PI / 32.0))); + m_256apsk[203] = gr_complex((r5 * cos(27 * GR_M_PI / 32.0)), (r5 * sin(27 * GR_M_PI / 32.0))); + m_256apsk[204] = gr_complex((r5 * cos(17 * GR_M_PI / 32.0)), (r5 * sin(17 * GR_M_PI / 32.0))); + m_256apsk[205] = gr_complex((r5 * cos(19 * GR_M_PI / 32.0)), (r5 * sin(19 * GR_M_PI / 32.0))); + m_256apsk[206] = gr_complex((r5 * cos(23 * GR_M_PI / 32.0)), (r5 * sin(23 * GR_M_PI / 32.0))); + m_256apsk[207] = gr_complex((r5 * cos(21 * GR_M_PI / 32.0)), (r5 * sin(21 * GR_M_PI / 32.0))); + m_256apsk[208] = gr_complex((r5 * cos(-1 * GR_M_PI / 32.0)), (r5 * sin(-1 * GR_M_PI / 32.0))); + m_256apsk[209] = gr_complex((r5 * cos(-3 * GR_M_PI / 32.0)), (r5 * sin(-3 * GR_M_PI / 32.0))); + m_256apsk[210] = gr_complex((r5 * cos(-7 * GR_M_PI / 32.0)), (r5 * sin(-7 * GR_M_PI / 32.0))); + m_256apsk[211] = gr_complex((r5 * cos(-5 * GR_M_PI / 32.0)), (r5 * sin(-5 * GR_M_PI / 32.0))); + m_256apsk[212] = gr_complex((r5 * cos(-15 * GR_M_PI / 32.0)), (r5 * sin(-15 * GR_M_PI / 32.0))); + m_256apsk[213] = gr_complex((r5 * cos(-13 * GR_M_PI / 32.0)), (r5 * sin(-13 * GR_M_PI / 32.0))); + m_256apsk[214] = gr_complex((r5 * cos(-9 * GR_M_PI / 32.0)), (r5 * sin(-9 * GR_M_PI / 32.0))); + m_256apsk[215] = gr_complex((r5 * cos(-11 * GR_M_PI / 32.0)), (r5 * sin(-11 * GR_M_PI / 32.0))); + m_256apsk[216] = gr_complex((r5 * cos(33 * GR_M_PI / 32.0)), (r5 * sin(33 * GR_M_PI / 32.0))); + m_256apsk[217] = gr_complex((r5 * cos(35 * GR_M_PI / 32.0)), (r5 * sin(35 * GR_M_PI / 32.0))); + m_256apsk[218] = gr_complex((r5 * cos(39 * GR_M_PI / 32.0)), (r5 * sin(39 * GR_M_PI / 32.0))); + m_256apsk[219] = gr_complex((r5 * cos(37 * GR_M_PI / 32.0)), (r5 * sin(37 * GR_M_PI / 32.0))); + m_256apsk[220] = gr_complex((r5 * cos(47 * GR_M_PI / 32.0)), (r5 * sin(47 * GR_M_PI / 32.0))); + m_256apsk[221] = gr_complex((r5 * cos(45 * GR_M_PI / 32.0)), (r5 * sin(45 * GR_M_PI / 32.0))); + m_256apsk[222] = gr_complex((r5 * cos(41 * GR_M_PI / 32.0)), (r5 * sin(41 * GR_M_PI / 32.0))); + m_256apsk[223] = gr_complex((r5 * cos(43 * GR_M_PI / 32.0)), (r5 * sin(43 * GR_M_PI / 32.0))); + m_256apsk[224] = gr_complex((r6 * cos(GR_M_PI / 32.0)), (r6 * sin(GR_M_PI / 32.0))); + m_256apsk[225] = gr_complex((r6 * cos(3 * GR_M_PI / 32.0)), (r6 * sin(3 * GR_M_PI / 32.0))); + m_256apsk[226] = gr_complex((r6 * cos(7 * GR_M_PI / 32.0)), (r6 * sin(7 * GR_M_PI / 32.0))); + m_256apsk[227] = gr_complex((r6 * cos(5 * GR_M_PI / 32.0)), (r6 * sin(5 * GR_M_PI / 32.0))); + m_256apsk[228] = gr_complex((r6 * cos(15 * GR_M_PI / 32.0)), (r6 * sin(15 * GR_M_PI / 32.0))); + m_256apsk[229] = gr_complex((r6 * cos(13 * GR_M_PI / 32.0)), (r6 * sin(13 * GR_M_PI / 32.0))); + m_256apsk[230] = gr_complex((r6 * cos(9 * GR_M_PI / 32.0)), (r6 * sin(9 * GR_M_PI / 32.0))); + m_256apsk[231] = gr_complex((r6 * cos(11 * GR_M_PI / 32.0)), (r6 * sin(11 * GR_M_PI / 32.0))); + m_256apsk[232] = gr_complex((r6 * cos(31 * GR_M_PI / 32.0)), (r6 * sin(31 * GR_M_PI / 32.0))); + m_256apsk[233] = gr_complex((r6 * cos(29 * GR_M_PI / 32.0)), (r6 * sin(29 * GR_M_PI / 32.0))); + m_256apsk[234] = gr_complex((r6 * cos(25 * GR_M_PI / 32.0)), (r6 * sin(25 * GR_M_PI / 32.0))); + m_256apsk[235] = gr_complex((r6 * cos(27 * GR_M_PI / 32.0)), (r6 * sin(27 * GR_M_PI / 32.0))); + m_256apsk[236] = gr_complex((r6 * cos(17 * GR_M_PI / 32.0)), (r6 * sin(17 * GR_M_PI / 32.0))); + m_256apsk[237] = gr_complex((r6 * cos(19 * GR_M_PI / 32.0)), (r6 * sin(19 * GR_M_PI / 32.0))); + m_256apsk[238] = gr_complex((r6 * cos(23 * GR_M_PI / 32.0)), (r6 * sin(23 * GR_M_PI / 32.0))); + m_256apsk[239] = gr_complex((r6 * cos(21 * GR_M_PI / 32.0)), (r6 * sin(21 * GR_M_PI / 32.0))); + m_256apsk[240] = gr_complex((r6 * cos(-1 * GR_M_PI / 32.0)), (r6 * sin(-1 * GR_M_PI / 32.0))); + m_256apsk[241] = gr_complex((r6 * cos(-3 * GR_M_PI / 32.0)), (r6 * sin(-3 * GR_M_PI / 32.0))); + m_256apsk[242] = gr_complex((r6 * cos(-7 * GR_M_PI / 32.0)), (r6 * sin(-7 * GR_M_PI / 32.0))); + m_256apsk[243] = gr_complex((r6 * cos(-5 * GR_M_PI / 32.0)), (r6 * sin(-5 * GR_M_PI / 32.0))); + m_256apsk[244] = gr_complex((r6 * cos(-15 * GR_M_PI / 32.0)), (r6 * sin(-15 * GR_M_PI / 32.0))); + m_256apsk[245] = gr_complex((r6 * cos(-13 * GR_M_PI / 32.0)), (r6 * sin(-13 * GR_M_PI / 32.0))); + m_256apsk[246] = gr_complex((r6 * cos(-9 * GR_M_PI / 32.0)), (r6 * sin(-9 * GR_M_PI / 32.0))); + m_256apsk[247] = gr_complex((r6 * cos(-11 * GR_M_PI / 32.0)), (r6 * sin(-11 * GR_M_PI / 32.0))); + m_256apsk[248] = gr_complex((r6 * cos(33 * GR_M_PI / 32.0)), (r6 * sin(33 * GR_M_PI / 32.0))); + m_256apsk[249] = gr_complex((r6 * cos(35 * GR_M_PI / 32.0)), (r6 * sin(35 * GR_M_PI / 32.0))); + m_256apsk[250] = gr_complex((r6 * cos(39 * GR_M_PI / 32.0)), (r6 * sin(39 * GR_M_PI / 32.0))); + m_256apsk[251] = gr_complex((r6 * cos(37 * GR_M_PI / 32.0)), (r6 * sin(37 * GR_M_PI / 32.0))); + m_256apsk[252] = gr_complex((r6 * cos(47 * GR_M_PI / 32.0)), (r6 * sin(47 * GR_M_PI / 32.0))); + m_256apsk[253] = gr_complex((r6 * cos(45 * GR_M_PI / 32.0)), (r6 * sin(45 * GR_M_PI / 32.0))); + m_256apsk[254] = gr_complex((r6 * cos(41 * GR_M_PI / 32.0)), (r6 * sin(41 * GR_M_PI / 32.0))); + m_256apsk[255] = gr_complex((r6 * cos(43 * GR_M_PI / 32.0)), (r6 * sin(43 * GR_M_PI / 32.0))); } break; case MOD_64QAM: @@ -1990,10 +1991,10 @@ namespace gr { m_8psk[7] = gr_complex( 7.0 + 1.25, 0.0); break; default: - m_qpsk[0] = gr_complex((r1 * cos(M_PI / 4.0)), (r1 * sin(M_PI / 4.0))); - m_qpsk[1] = gr_complex((r1 * cos(7 * M_PI / 4.0)), (r1 * sin(7 * M_PI / 4.0))); - m_qpsk[2] = gr_complex((r1 * cos(3 * M_PI / 4.0)), (r1 * sin(3 * M_PI / 4.0))); - m_qpsk[3] = gr_complex((r1 * cos(5 * M_PI / 4.0)), (r1 * sin(5 * M_PI / 4.0))); + m_qpsk[0] = gr_complex((r1 * cos(GR_M_PI / 4.0)), (r1 * sin(GR_M_PI / 4.0))); + m_qpsk[1] = gr_complex((r1 * cos(7 * GR_M_PI / 4.0)), (r1 * sin(7 * GR_M_PI / 4.0))); + m_qpsk[2] = gr_complex((r1 * cos(3 * GR_M_PI / 4.0)), (r1 * sin(3 * GR_M_PI / 4.0))); + m_qpsk[3] = gr_complex((r1 * cos(5 * GR_M_PI / 4.0)), (r1 * sin(5 * GR_M_PI / 4.0))); break; } signal_constellation = constellation; diff --git a/gr-dtv/lib/dvbs2/dvbs2_physical_cc_impl.cc b/gr-dtv/lib/dvbs2/dvbs2_physical_cc_impl.cc index 5da18b1d21..b441cdc10d 100644 --- a/gr-dtv/lib/dvbs2/dvbs2_physical_cc_impl.cc +++ b/gr-dtv/lib/dvbs2/dvbs2_physical_cc_impl.cc @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2015,2016 Free Software Foundation, Inc. + * Copyright 2015,2016,2018 Free Software Foundation, Inc. * * This is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,8 +22,9 @@ #include "config.h" #endif -#include <gnuradio/io_signature.h> #include "dvbs2_physical_cc_impl.h" +#include <gnuradio/io_signature.h> +#include <gnuradio/math.h> namespace gr { namespace dtv { @@ -129,14 +130,14 @@ namespace gr { break; } - m_bpsk[0][0] = gr_complex((r0 * cos(M_PI / 4.0)), (r0 * sin(M_PI / 4.0))); - m_bpsk[0][1] = gr_complex((r0 * cos(5.0 * M_PI / 4.0)), (r0 * sin(5.0 * M_PI / 4.0))); - m_bpsk[1][0] = gr_complex((r0 * cos(5.0 * M_PI / 4.0)), (r0 * sin(M_PI / 4.0))); - m_bpsk[1][1] = gr_complex((r0 * cos(M_PI / 4.0)), (r0 * sin(5.0 * M_PI /4.0))); - m_bpsk[2][0] = gr_complex((r0 * cos(5.0 * M_PI / 4.0)), (r0 * sin(M_PI / 4.0))); - m_bpsk[2][1] = gr_complex((r0 * cos(M_PI / 4.0)), (r0 * sin(5.0 * M_PI /4.0))); - m_bpsk[3][0] = gr_complex((r0 * cos(5.0 * M_PI / 4.0)), (r0 * sin(5.0 * M_PI / 4.0))); - m_bpsk[3][1] = gr_complex((r0 * cos(M_PI / 4.0)), (r0 * sin(M_PI / 4.0))); + m_bpsk[0][0] = gr_complex((r0 * cos(GR_M_PI / 4.0)), (r0 * sin(GR_M_PI / 4.0))); + m_bpsk[0][1] = gr_complex((r0 * cos(5.0 * GR_M_PI / 4.0)), (r0 * sin(5.0 * GR_M_PI / 4.0))); + m_bpsk[1][0] = gr_complex((r0 * cos(5.0 * GR_M_PI / 4.0)), (r0 * sin(GR_M_PI / 4.0))); + m_bpsk[1][1] = gr_complex((r0 * cos(GR_M_PI / 4.0)), (r0 * sin(5.0 * GR_M_PI /4.0))); + m_bpsk[2][0] = gr_complex((r0 * cos(5.0 * GR_M_PI / 4.0)), (r0 * sin(GR_M_PI / 4.0))); + m_bpsk[2][1] = gr_complex((r0 * cos(GR_M_PI / 4.0)), (r0 * sin(5.0 * GR_M_PI /4.0))); + m_bpsk[3][0] = gr_complex((r0 * cos(5.0 * GR_M_PI / 4.0)), (r0 * sin(5.0 * GR_M_PI / 4.0))); + m_bpsk[3][1] = gr_complex((r0 * cos(GR_M_PI / 4.0)), (r0 * sin(GR_M_PI / 4.0))); m_zero = gr_complex(0.0, 0.0); diff --git a/gr-dtv/lib/dvbt/dvbt_convolutional_interleaver_impl.cc b/gr-dtv/lib/dvbt/dvbt_convolutional_interleaver_impl.cc index e29ec8cfe2..ee440bc789 100644 --- a/gr-dtv/lib/dvbt/dvbt_convolutional_interleaver_impl.cc +++ b/gr-dtv/lib/dvbt/dvbt_convolutional_interleaver_impl.cc @@ -43,7 +43,7 @@ namespace gr { : sync_interpolator("dvbt_convolutional_interleaver", io_signature::make(1, 1, sizeof (unsigned char) * I * blocks), io_signature::make(1, 1, sizeof (unsigned char)), I * blocks), - d_blocks(blocks), d_I(I), d_M(M) + d_I(I), d_M(M) { //Positions are shift registers (FIFOs) //of length i*M diff --git a/gr-dtv/lib/dvbt/dvbt_convolutional_interleaver_impl.h b/gr-dtv/lib/dvbt/dvbt_convolutional_interleaver_impl.h index 2de1fab282..391e0ef77c 100644 --- a/gr-dtv/lib/dvbt/dvbt_convolutional_interleaver_impl.h +++ b/gr-dtv/lib/dvbt/dvbt_convolutional_interleaver_impl.h @@ -31,7 +31,6 @@ namespace gr { class dvbt_convolutional_interleaver_impl : public dvbt_convolutional_interleaver { private: - int d_blocks; int d_I; int d_M; std::vector< std::deque<unsigned char> * > d_shift; diff --git a/gr-dtv/lib/dvbt/dvbt_inner_coder_impl.cc b/gr-dtv/lib/dvbt/dvbt_inner_coder_impl.cc index cc740359e0..c2fe76a66f 100644 --- a/gr-dtv/lib/dvbt/dvbt_inner_coder_impl.cc +++ b/gr-dtv/lib/dvbt/dvbt_inner_coder_impl.cc @@ -131,8 +131,7 @@ namespace gr { io_signature::make(1, 1, sizeof (unsigned char) * noutput)), config(constellation, hierarchy, coderate, coderate), d_ninput(ninput), d_noutput(noutput), - d_reg(0), - d_bitcount(0) + d_reg(0) { //Determine k - input of encoder d_k = config.d_cr_k; diff --git a/gr-dtv/lib/dvbt/dvbt_inner_coder_impl.h b/gr-dtv/lib/dvbt/dvbt_inner_coder_impl.h index d472b1f60c..7c31c1897d 100644 --- a/gr-dtv/lib/dvbt/dvbt_inner_coder_impl.h +++ b/gr-dtv/lib/dvbt/dvbt_inner_coder_impl.h @@ -40,10 +40,6 @@ namespace gr { int d_reg; - //counts the bits in the bytes - //in input stream - int d_bitcount; - // Code rate k/n int d_k; int d_n; diff --git a/gr-dtv/lib/dvbt/dvbt_ofdm_sym_acquisition_impl.cc b/gr-dtv/lib/dvbt/dvbt_ofdm_sym_acquisition_impl.cc index 6ad4463ffd..3914722e4e 100644 --- a/gr-dtv/lib/dvbt/dvbt_ofdm_sym_acquisition_impl.cc +++ b/gr-dtv/lib/dvbt/dvbt_ofdm_sym_acquisition_impl.cc @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2015,2016 Free Software Foundation, Inc. + * Copyright 2015,2016,2018 Free Software Foundation, Inc. * * This is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,13 +22,13 @@ #include "config.h" #endif -#include <gnuradio/io_signature.h> #include "dvbt_ofdm_sym_acquisition_impl.h" -#include <complex> -#include <limits> +#include <gnuradio/io_signature.h> #include <gnuradio/math.h> #include <gnuradio/expj.h> #include <volk/volk.h> +#include <complex> +#include <limits> namespace gr { namespace dtv { @@ -170,11 +170,11 @@ namespace gr { // We are interested only in fft_length d_phase += d_phaseinc; - while (d_phase > (float)M_PI) { - d_phase -= (float)(2.0 * M_PI); + while (d_phase > (float)GR_M_PI) { + d_phase -= (float)(2.0 * GR_M_PI); } - while (d_phase < (float)(-M_PI)) { - d_phase += (float)(2.0 * M_PI); + while (d_phase < (float)(-GR_M_PI)) { + d_phase += (float)(2.0 * GR_M_PI); } derot[i] = gr_expj(d_phase); @@ -190,11 +190,11 @@ namespace gr { for (int i = 0; i < (d_cp_length + d_fft_length); i++) { d_phase += d_phaseinc; - while (d_phase > (float)M_PI) { - d_phase -= (float)(2.0 * M_PI); + while (d_phase > (float)GR_M_PI) { + d_phase -= (float)(2.0 * GR_M_PI); } - while (d_phase < (float)(-M_PI)) { - d_phase += (float)(2.0 * M_PI); + while (d_phase < (float)(-GR_M_PI)) { + d_phase += (float)(2.0 * GR_M_PI); } } @@ -235,7 +235,7 @@ namespace gr { : block("dvbt_ofdm_sym_acquisition", io_signature::make(1, 1, sizeof (gr_complex) * blocks), io_signature::make(1, 1, sizeof (gr_complex) * blocks * fft_length)), - d_blocks(blocks), d_fft_length(fft_length), d_cp_length(cp_length), d_snr(snr), \ + d_fft_length(fft_length), d_cp_length(cp_length), d_snr(snr), \ d_phase(0.0), d_phaseinc(0.0), d_cp_found(0), d_nextphaseinc(0), d_nextpos(0), \ d_initial_acquisition(0), d_cp_start(0), \ d_to_consume(0), d_to_out(0), d_consumed(0), d_out(0) diff --git a/gr-dtv/lib/dvbt/dvbt_ofdm_sym_acquisition_impl.h b/gr-dtv/lib/dvbt/dvbt_ofdm_sym_acquisition_impl.h index 0964361b1e..e4fe1dc50a 100644 --- a/gr-dtv/lib/dvbt/dvbt_ofdm_sym_acquisition_impl.h +++ b/gr-dtv/lib/dvbt/dvbt_ofdm_sym_acquisition_impl.h @@ -29,7 +29,6 @@ namespace gr { class dvbt_ofdm_sym_acquisition_impl : public dvbt_ofdm_sym_acquisition { private: - int d_blocks; int d_fft_length; int d_cp_length; float d_snr; diff --git a/gr-dtv/lib/dvbt/dvbt_reed_solomon_dec_impl.h b/gr-dtv/lib/dvbt/dvbt_reed_solomon_dec_impl.h index 2d9b24809d..39a45c4521 100644 --- a/gr-dtv/lib/dvbt/dvbt_reed_solomon_dec_impl.h +++ b/gr-dtv/lib/dvbt/dvbt_reed_solomon_dec_impl.h @@ -41,7 +41,6 @@ namespace gr { int d_nerrors_corrected_count; int d_bad_packet_count; int d_total_packets; - int d_total_bits; void *d_rs; /* Reed-Solomon characteristics structure */ int decode(unsigned char &out, const unsigned char &in); diff --git a/gr-dtv/lib/dvbt/dvbt_reference_signals_impl.cc b/gr-dtv/lib/dvbt/dvbt_reference_signals_impl.cc index c4d85e65ed..c82c4ebd2b 100644 --- a/gr-dtv/lib/dvbt/dvbt_reference_signals_impl.cc +++ b/gr-dtv/lib/dvbt/dvbt_reference_signals_impl.cc @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2015,2016 Free Software Foundation, Inc. + * Copyright 2015,2016,2018 Free Software Foundation, Inc. * * This is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,11 +22,11 @@ #include "config.h" #endif -#include <gnuradio/io_signature.h> #include "dvbt_reference_signals_impl.h" -#include <complex> +#include <gnuradio/io_signature.h> #include <gnuradio/expj.h> #include <gnuradio/math.h> +#include <complex> namespace gr { namespace dtv { @@ -725,8 +725,8 @@ namespace gr { int half_size = (d_cpilot_carriers_size - 1) / 2; // TODO init this in constructor - float carrier_coeff = 1.0 / (2 * M_PI * (1 + float (d_cp_length) / float (d_fft_length)) * 2); - float sampling_coeff = 1.0 / (2 * M_PI * ((1 + float (d_cp_length) / float (d_fft_length)) * ((float)d_cpilot_carriers_size / 2.0))); + float carrier_coeff = 1.0 / (2 * GR_M_PI * (1 + float (d_cp_length) / float (d_fft_length)) * 2); + float sampling_coeff = 1.0 / (2 * GR_M_PI * ((1 + float (d_cp_length) / float (d_fft_length)) * ((float)d_cpilot_carriers_size / 2.0))); float left_angle, right_angle; @@ -764,7 +764,7 @@ namespace gr { float correction = (float)d_freq_offset + d_carrier_freq_correction; - gr_complex c = gr_expj(-2 * M_PI * correction * \ + gr_complex c = gr_expj(-2 * GR_M_PI * correction * \ (d_fft_length + d_cp_length) / d_fft_length * symbol_count); // TODO - vectorize this operation diff --git a/gr-dtv/lib/dvbt2/dvbt2_modulator_bc_impl.cc b/gr-dtv/lib/dvbt2/dvbt2_modulator_bc_impl.cc index 05e3382ef9..7435c4ad36 100644 --- a/gr-dtv/lib/dvbt2/dvbt2_modulator_bc_impl.cc +++ b/gr-dtv/lib/dvbt2/dvbt2_modulator_bc_impl.cc @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2015,2017 Free Software Foundation, Inc. + * Copyright 2015,2017,2018 Free Software Foundation, Inc. * * This is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,8 +22,9 @@ #include "config.h" #endif -#include <gnuradio/io_signature.h> #include "dvbt2_modulator_bc_impl.h" +#include <gnuradio/io_signature.h> +#include <gnuradio/math.h> namespace gr { namespace dtv { @@ -98,7 +99,7 @@ namespace gr { m_qpsk[3] = gr_complex(-1.0 / normalization, -1.0 / normalization); if (rotation == ROTATION_ON) { cyclic_delay = TRUE; - rotation_angle = (2.0 * M_PI * 29.0) / 360.0; + rotation_angle = (2.0 * GR_M_PI * 29.0) / 360.0; temp = std::exp(gr_complexd(0.0, rotation_angle)); for (int i = 0; i < 4; i++) { m_qpsk[i] *= temp; @@ -114,7 +115,7 @@ namespace gr { } if (rotation == ROTATION_ON) { cyclic_delay = TRUE; - rotation_angle = (2.0 * M_PI * 16.8) / 360.0; + rotation_angle = (2.0 * GR_M_PI * 16.8) / 360.0; temp = std::exp(gr_complexd(0.0, rotation_angle)); for (int i = 0; i < 16; i++) { m_16qam[i] *= temp; @@ -130,7 +131,7 @@ namespace gr { } if (rotation == ROTATION_ON) { cyclic_delay = TRUE; - rotation_angle = (2.0 * M_PI * 8.6) / 360.0; + rotation_angle = (2.0 * GR_M_PI * 8.6) / 360.0; temp = std::exp(gr_complexd(0.0, rotation_angle)); for (int i = 0; i < 64; i++) { m_64qam[i] *= temp; @@ -146,7 +147,7 @@ namespace gr { } if (rotation == ROTATION_ON) { cyclic_delay = TRUE; - rotation_angle = (2.0 * M_PI * 3.576334375) / 360.0; + rotation_angle = (2.0 * GR_M_PI * 3.576334375) / 360.0; temp = std::exp(gr_complexd(0.0, rotation_angle)); for (int i = 0; i < 256; i++) { m_256qam[i] *= temp; @@ -161,7 +162,7 @@ namespace gr { m_qpsk[3] = gr_complex(-1.0 / normalization, -1.0 / normalization); if (rotation == ROTATION_ON) { cyclic_delay = TRUE; - rotation_angle = (2.0 * M_PI * 29.0) / 360.0; + rotation_angle = (2.0 * GR_M_PI * 29.0) / 360.0; temp = std::exp(gr_complexd(0.0, rotation_angle)); for (int i = 0; i < 4; i++) { m_qpsk[i] *= temp; diff --git a/gr-dtv/lib/dvbt2/dvbt2_paprtr_cc_impl.cc b/gr-dtv/lib/dvbt2/dvbt2_paprtr_cc_impl.cc index a83c56182e..bcdc4c66ac 100644 --- a/gr-dtv/lib/dvbt2/dvbt2_paprtr_cc_impl.cc +++ b/gr-dtv/lib/dvbt2/dvbt2_paprtr_cc_impl.cc @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2015-2017 Free Software Foundation, Inc. + * Copyright 2015-2018 Free Software Foundation, Inc. * * This is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,8 +22,9 @@ #include "config.h" #endif -#include <gnuradio/io_signature.h> #include "dvbt2_paprtr_cc_impl.h" +#include <gnuradio/io_signature.h> +#include <gnuradio/math.h> #include <volk/volk.h> /* An early exit from the iteration loop is a very effective optimization */ @@ -774,7 +775,7 @@ namespace gr { u = (in[m] + c[m]) / y; alpha = y - v_clip; for (int n = 0; n < N_TR; n++) { - vtemp = (-2.0 * M_PI * m * ((papr_map[n] + shift) - center)) / papr_fft_size; + vtemp = (-2.0 * GR_M_PI * m * ((papr_map[n] + shift) - center)) / papr_fft_size; ctemp[n] = std::exp(gr_complexd(0.0, vtemp)); } volk_32fc_s32fc_multiply_32fc(v, ctemp, u, N_TR); diff --git a/gr-dtv/lib/dvbt2/dvbt2_pilotgenerator_cc_impl.cc b/gr-dtv/lib/dvbt2/dvbt2_pilotgenerator_cc_impl.cc index 2bb19f5189..3724533b3d 100644 --- a/gr-dtv/lib/dvbt2/dvbt2_pilotgenerator_cc_impl.cc +++ b/gr-dtv/lib/dvbt2/dvbt2_pilotgenerator_cc_impl.cc @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2015,2016 Free Software Foundation, Inc. + * Copyright 2015,2016,2018 Free Software Foundation, Inc. * * This is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,8 +22,9 @@ #include "config.h" #endif -#include <gnuradio/io_signature.h> #include "dvbt2_pilotgenerator_cc_impl.h" +#include <gnuradio/io_signature.h> +#include <gnuradio/math.h> #include <volk/volk.h> namespace gr { @@ -1113,7 +1114,7 @@ namespace gr { } fstep = fs / vlength; for (int i = 0; i < vlength / 2; i++) { - x = M_PI * f / fs; + x = GR_M_PI * f / fs; if (i == 0) { sinc = 1.0; } diff --git a/gr-dtv/python/dtv/CMakeLists.txt b/gr-dtv/python/dtv/CMakeLists.txt index f5ca8e1515..76f5f005cb 100644 --- a/gr-dtv/python/dtv/CMakeLists.txt +++ b/gr-dtv/python/dtv/CMakeLists.txt @@ -28,7 +28,6 @@ GR_PYTHON_INSTALL( atsc_rx.py atsc_rx_filter.py DESTINATION ${GR_PYTHON_DIR}/gnuradio/dtv - COMPONENT "dtv_python" ) ######################################################################## @@ -51,6 +50,6 @@ if(ENABLE_TESTING) file(GLOB py_qa_test_files "qa_*.py") foreach(py_qa_test_file ${py_qa_test_files}) get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE) - GR_ADD_TEST(${py_qa_test_name} ${QA_PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file}) + GR_ADD_TEST(${py_qa_test_name} ${QA_PYTHON_EXECUTABLE} -B ${py_qa_test_file}) endforeach(py_qa_test_file) endif(ENABLE_TESTING) diff --git a/gr-dtv/python/dtv/__init__.py b/gr-dtv/python/dtv/__init__.py index 8d2b8bfbcf..82bd562117 100644 --- a/gr-dtv/python/dtv/__init__.py +++ b/gr-dtv/python/dtv/__init__.py @@ -24,14 +24,17 @@ ''' Blocks and utilities for digital TV module. ''' +from __future__ import absolute_import +from __future__ import unicode_literals + import os try: - from dtv_swig import * + from .dtv_swig import * except ImportError: dirname, filename = os.path.split(os.path.abspath(__file__)) __path__.append(os.path.join(dirname, "..", "..", "swig")) - from dtv_swig import * + from .dtv_swig import * # Import pure python code here -from atsc_rx import * +from .atsc_rx import * diff --git a/gr-dtv/python/dtv/atsc_rx.py b/gr-dtv/python/dtv/atsc_rx.py index 75c61f43ff..d728f0945e 100644 --- a/gr-dtv/python/dtv/atsc_rx.py +++ b/gr-dtv/python/dtv/atsc_rx.py @@ -19,8 +19,10 @@ # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. +from __future__ import absolute_import +from __future__ import unicode_literals from gnuradio import gr, filter, analog -from atsc_rx_filter import * +from .atsc_rx_filter import * class atsc_rx(gr.hier_block2): def __init__(self, input_rate, sps): @@ -53,17 +55,17 @@ class atsc_rx(gr.hier_block2): # Remove convolutional trellis coding vit = dtv.atsc_viterbi_decoder() - # Remove convolutional interleaving - dei = dtv.atsc_deinterleaver() + # Remove convolutional interleaving + dei = dtv.atsc_deinterleaver() - # Reed-Solomon decode - rsd = dtv.atsc_rs_decoder() + # Reed-Solomon decode + rsd = dtv.atsc_rs_decoder() - # Derandomize MPEG2-TS packet - der = dtv.atsc_derandomizer() + # Derandomize MPEG2-TS packet + der = dtv.atsc_derandomizer() - # Remove padding from packet - dep = dtv.atsc_depad() + # Remove padding from packet + dep = dtv.atsc_depad() # Connect pipeline self.connect(self, rx_filt, pll, dcr, agc, btl, fsc, equ) diff --git a/gr-dtv/python/dtv/atsc_rx_filter.py b/gr-dtv/python/dtv/atsc_rx_filter.py index e860fa265a..b5df161a59 100644 --- a/gr-dtv/python/dtv/atsc_rx_filter.py +++ b/gr-dtv/python/dtv/atsc_rx_filter.py @@ -19,8 +19,10 @@ # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. +from __future__ import division +from __future__ import unicode_literals from gnuradio import gr, filter -import dtv_swig as dtv +from . import dtv_swig as dtv # FIXME move these into separate constants module ATSC_CHANNEL_BW = 6.0e6 @@ -38,10 +40,10 @@ class atsc_rx_filter(gr.hier_block2): nfilts = 16 output_rate = ATSC_SYMBOL_RATE*sps # Desired oversampled sample rate filter_rate = input_rate*nfilts - symbol_rate = ATSC_SYMBOL_RATE/2.0 # One-sided bandwidth of sideband + symbol_rate = ATSC_SYMBOL_RATE / 2.0 # One-sided bandwidth of sideband excess_bw = 0.1152 #1.0-(0.5*ATSC_SYMBOL_RATE/ATSC_CHANNEL_BW) # ~10.3% ntaps = int((2*ATSC_RRC_SYMS+1)*sps*nfilts) - interp = output_rate/input_rate + interp = output_rate / input_rate gain = nfilts*symbol_rate/filter_rate rrc_taps = filter.firdes.root_raised_cosine(gain, # Filter gain filter_rate, # PFB filter prototype rate diff --git a/gr-dtv/python/dtv/qa_dtv.py b/gr-dtv/python/dtv/qa_dtv.py index a0f6edf801..cebdeb5959 100755..100644 --- a/gr-dtv/python/dtv/qa_dtv.py +++ b/gr-dtv/python/dtv/qa_dtv.py @@ -20,6 +20,7 @@ # Boston, MA 02110-1301, USA. # + from gnuradio import gr, gr_unittest, dtv class test_dtv(gr_unittest.TestCase): diff --git a/gr-dtv/swig/CMakeLists.txt b/gr-dtv/swig/CMakeLists.txt index 04b8b09ec7..7e98fa3b45 100644 --- a/gr-dtv/swig/CMakeLists.txt +++ b/gr-dtv/swig/CMakeLists.txt @@ -43,7 +43,6 @@ GR_SWIG_MAKE(dtv_swig dtv_swig.i) GR_SWIG_INSTALL( TARGETS dtv_swig DESTINATION ${GR_PYTHON_DIR}/gnuradio/dtv - COMPONENT "dtv_python" ) install( @@ -51,5 +50,4 @@ install( dtv_swig.i ${CMAKE_CURRENT_BINARY_DIR}/dtv_swig_doc.i DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig - COMPONENT "dtv_swig" ) |