summaryrefslogtreecommitdiff
path: root/gr-dtv
diff options
context:
space:
mode:
authorMarcus Müller <marcus@hostalia.de>2018-08-31 23:02:22 +0200
committerMarcus Müller <marcus@hostalia.de>2018-08-31 23:02:22 +0200
commit254fe5e89403d4de1fa6663d09efdf946996aff3 (patch)
tree62877d7ac7fdedf6c397c51e22ac6f97eba97ddf /gr-dtv
parent896d1c9da31963ecf5b0d90942c2af51ca998a69 (diff)
parent5ad935c3a3dd46ce2860b13e2b774e4841784616 (diff)
Merge remote-tracking branch 'origin/next' into merge_next
Diffstat (limited to 'gr-dtv')
-rw-r--r--gr-dtv/CMakeLists.txt35
-rw-r--r--gr-dtv/apps/CMakeLists.txt1
-rw-r--r--gr-dtv/examples/CMakeLists.txt2
-rw-r--r--[-rwxr-xr-x]gr-dtv/examples/atsc_ctrlport_monitor.py14
-rw-r--r--gr-dtv/grc/CMakeLists.txt110
-rw-r--r--gr-dtv/grc/dtv.tree.yml62
-rw-r--r--gr-dtv/grc/dtv_atsc_deinterleaver.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_deinterleaver.xml25
-rw-r--r--gr-dtv/grc/dtv_atsc_depad.block.yml17
-rw-r--r--gr-dtv/grc/dtv_atsc_depad.xml24
-rw-r--r--gr-dtv/grc/dtv_atsc_derandomizer.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_derandomizer.xml25
-rw-r--r--gr-dtv/grc/dtv_atsc_equalizer.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_equalizer.xml25
-rw-r--r--gr-dtv/grc/dtv_atsc_field_sync_mux.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_field_sync_mux.xml22
-rw-r--r--gr-dtv/grc/dtv_atsc_fpll.block.yml21
-rw-r--r--gr-dtv/grc/dtv_atsc_fpll.xml29
-rw-r--r--gr-dtv/grc/dtv_atsc_fs_checker.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_fs_checker.xml25
-rw-r--r--gr-dtv/grc/dtv_atsc_interleaver.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_interleaver.xml22
-rw-r--r--gr-dtv/grc/dtv_atsc_pad.block.yml17
-rw-r--r--gr-dtv/grc/dtv_atsc_pad.xml21
-rw-r--r--gr-dtv/grc/dtv_atsc_randomizer.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_randomizer.xml22
-rw-r--r--gr-dtv/grc/dtv_atsc_rs_decoder.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_rs_decoder.xml25
-rw-r--r--gr-dtv/grc/dtv_atsc_rs_encoder.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_rs_encoder.xml22
-rw-r--r--gr-dtv/grc/dtv_atsc_rx.block.yml24
-rw-r--r--gr-dtv/grc/dtv_atsc_rx.xml35
-rw-r--r--gr-dtv/grc/dtv_atsc_rx_filter.block.yml24
-rw-r--r--gr-dtv/grc/dtv_atsc_rx_filter.xml35
-rw-r--r--gr-dtv/grc/dtv_atsc_sync.block.yml22
-rw-r--r--gr-dtv/grc/dtv_atsc_sync.xml30
-rw-r--r--gr-dtv/grc/dtv_atsc_trellis_encoder.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_trellis_encoder.xml22
-rw-r--r--gr-dtv/grc/dtv_atsc_viterbi_decoder.block.yml18
-rw-r--r--gr-dtv/grc/dtv_atsc_viterbi_decoder.xml25
-rw-r--r--gr-dtv/grc/dtv_block_tree.xml106
-rw-r--r--gr-dtv/grc/dtv_catv_frame_sync_enc_bb.block.yml29
-rw-r--r--gr-dtv/grc/dtv_catv_frame_sync_enc_bb.xml41
-rw-r--r--gr-dtv/grc/dtv_catv_randomizer_bb.block.yml25
-rw-r--r--gr-dtv/grc/dtv_catv_randomizer_bb.xml35
-rw-r--r--gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.block.yml16
-rw-r--r--gr-dtv/grc/dtv_catv_reed_solomon_enc_bb.xml20
-rw-r--r--gr-dtv/grc/dtv_catv_transport_framing_enc_bb.block.yml16
-rw-r--r--gr-dtv/grc/dtv_catv_transport_framing_enc_bb.xml20
-rw-r--r--gr-dtv/grc/dtv_catv_trellis_enc_bb.block.yml25
-rw-r--r--gr-dtv/grc/dtv_catv_trellis_enc_bb.xml35
-rw-r--r--gr-dtv/grc/dtv_dvb_bbheader_bb.block.yml175
-rw-r--r--gr-dtv/grc/dtv_dvb_bbheader_bb.xml596
-rw-r--r--gr-dtv/grc/dtv_dvb_bbscrambler_bb.block.yml136
-rw-r--r--gr-dtv/grc/dtv_dvb_bbscrambler_bb.xml512
-rw-r--r--gr-dtv/grc/dtv_dvb_bch_bb.block.yml136
-rw-r--r--gr-dtv/grc/dtv_dvb_bch_bb.xml512
-rw-r--r--gr-dtv/grc/dtv_dvb_ldpc_bb.block.yml144
-rw-r--r--gr-dtv/grc/dtv_dvb_ldpc_bb.xml528
-rw-r--r--gr-dtv/grc/dtv_dvbs2_interleaver_bb.block.yml94
-rw-r--r--gr-dtv/grc/dtv_dvbs2_interleaver_bb.xml455
-rw-r--r--gr-dtv/grc/dtv_dvbs2_modulator_bc.block.yml111
-rw-r--r--gr-dtv/grc/dtv_dvbs2_modulator_bc.xml504
-rw-r--r--gr-dtv/grc/dtv_dvbs2_physical_cc.block.yml107
-rw-r--r--gr-dtv/grc/dtv_dvbs2_physical_cc.xml476
-rw-r--r--gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.block.yml41
-rw-r--r--gr-dtv/grc/dtv_dvbt2_cellinterleaver_cc.xml72
-rw-r--r--gr-dtv/grc/dtv_dvbt2_framemapper_cc.block.yml232
-rw-r--r--gr-dtv/grc/dtv_dvbt2_framemapper_cc.xml562
-rw-r--r--gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.block.yml118
-rw-r--r--gr-dtv/grc/dtv_dvbt2_freqinterleaver_cc.xml301
-rw-r--r--gr-dtv/grc/dtv_dvbt2_interleaver_bb.block.yml40
-rw-r--r--gr-dtv/grc/dtv_dvbt2_interleaver_bb.xml105
-rw-r--r--gr-dtv/grc/dtv_dvbt2_miso_cc.block.yml96
-rw-r--r--gr-dtv/grc/dtv_dvbt2_miso_cc.xml254
-rw-r--r--gr-dtv/grc/dtv_dvbt2_modulator_bc.block.yml39
-rw-r--r--gr-dtv/grc/dtv_dvbt2_modulator_bc.xml75
-rw-r--r--gr-dtv/grc/dtv_dvbt2_p1insertion_cc.block.yml122
-rw-r--r--gr-dtv/grc/dtv_dvbt2_p1insertion_cc.xml276
-rw-r--r--gr-dtv/grc/dtv_dvbt2_paprtr_cc.block.yml118
-rw-r--r--gr-dtv/grc/dtv_dvbt2_paprtr_cc.xml286
-rw-r--r--gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.block.yml155
-rw-r--r--gr-dtv/grc/dtv_dvbt2_pilotgenerator_cc.xml386
-rw-r--r--gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.block.yml47
-rw-r--r--gr-dtv/grc/dtv_dvbt_bit_inner_deinterleaver.xml89
-rw-r--r--gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.block.yml47
-rw-r--r--gr-dtv/grc/dtv_dvbt_bit_inner_interleaver.xml89
-rw-r--r--gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.block.yml39
-rw-r--r--gr-dtv/grc/dtv_dvbt_convolutional_deinterleaver.xml43
-rw-r--r--gr-dtv/grc/dtv_dvbt_convolutional_interleaver.block.yml39
-rw-r--r--gr-dtv/grc/dtv_dvbt_convolutional_interleaver.xml43
-rw-r--r--gr-dtv/grc/dtv_dvbt_demap.block.yml48
-rw-r--r--gr-dtv/grc/dtv_dvbt_demap.xml90
-rw-r--r--gr-dtv/grc/dtv_dvbt_demod_reference_signals.block.yml95
-rw-r--r--gr-dtv/grc/dtv_dvbt_demod_reference_signals.xml222
-rw-r--r--gr-dtv/grc/dtv_dvbt_energy_descramble.block.yml27
-rw-r--r--gr-dtv/grc/dtv_dvbt_energy_descramble.xml29
-rw-r--r--gr-dtv/grc/dtv_dvbt_energy_dispersal.block.yml28
-rw-r--r--gr-dtv/grc/dtv_dvbt_energy_dispersal.xml29
-rw-r--r--gr-dtv/grc/dtv_dvbt_inner_coder.block.yml57
-rw-r--r--gr-dtv/grc/dtv_dvbt_inner_coder.xml112
-rw-r--r--gr-dtv/grc/dtv_dvbt_map.block.yml48
-rw-r--r--gr-dtv/grc/dtv_dvbt_map.xml90
-rw-r--r--gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.block.yml45
-rw-r--r--gr-dtv/grc/dtv_dvbt_ofdm_sym_acquisition.xml76
-rw-r--r--gr-dtv/grc/dtv_dvbt_reed_solomon_dec.block.yml57
-rw-r--r--gr-dtv/grc/dtv_dvbt_reed_solomon_dec.xml70
-rw-r--r--gr-dtv/grc/dtv_dvbt_reed_solomon_enc.block.yml57
-rw-r--r--gr-dtv/grc/dtv_dvbt_reed_solomon_enc.xml70
-rw-r--r--gr-dtv/grc/dtv_dvbt_reference_signals.block.yml95
-rw-r--r--gr-dtv/grc/dtv_dvbt_reference_signals.xml222
-rw-r--r--gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.block.yml37
-rw-r--r--gr-dtv/grc/dtv_dvbt_symbol_inner_interleaver.xml56
-rw-r--r--gr-dtv/grc/dtv_dvbt_viterbi_decoder.block.yml51
-rw-r--r--gr-dtv/grc/dtv_dvbt_viterbi_decoder.xml120
-rw-r--r--gr-dtv/include/gnuradio/dtv/CMakeLists.txt1
-rw-r--r--gr-dtv/lib/CMakeLists.txt4
-rw-r--r--gr-dtv/lib/atsc/atsc_fpll_impl.cc6
-rw-r--r--gr-dtv/lib/atsc/atsc_rs_decoder_impl.cc1
-rw-r--r--gr-dtv/lib/atsc/atsc_rs_decoder_impl.h1
-rw-r--r--gr-dtv/lib/atsc/atsc_sync_impl.cc2
-rw-r--r--gr-dtv/lib/atsc/atsc_sync_impl.h1
-rw-r--r--gr-dtv/lib/atsc/atsc_viterbi_decoder_impl.h1
-rw-r--r--gr-dtv/lib/dvbs2/dvbs2_modulator_bc_impl.cc1461
-rw-r--r--gr-dtv/lib/dvbs2/dvbs2_physical_cc_impl.cc21
-rw-r--r--gr-dtv/lib/dvbt/dvbt_convolutional_interleaver_impl.cc2
-rw-r--r--gr-dtv/lib/dvbt/dvbt_convolutional_interleaver_impl.h1
-rw-r--r--gr-dtv/lib/dvbt/dvbt_inner_coder_impl.cc3
-rw-r--r--gr-dtv/lib/dvbt/dvbt_inner_coder_impl.h4
-rw-r--r--gr-dtv/lib/dvbt/dvbt_ofdm_sym_acquisition_impl.cc26
-rw-r--r--gr-dtv/lib/dvbt/dvbt_ofdm_sym_acquisition_impl.h1
-rw-r--r--gr-dtv/lib/dvbt/dvbt_reed_solomon_dec_impl.h1
-rw-r--r--gr-dtv/lib/dvbt/dvbt_reference_signals_impl.cc12
-rw-r--r--gr-dtv/lib/dvbt2/dvbt2_modulator_bc_impl.cc15
-rw-r--r--gr-dtv/lib/dvbt2/dvbt2_paprtr_cc_impl.cc7
-rw-r--r--gr-dtv/lib/dvbt2/dvbt2_pilotgenerator_cc_impl.cc7
-rw-r--r--gr-dtv/python/dtv/CMakeLists.txt3
-rw-r--r--gr-dtv/python/dtv/__init__.py9
-rw-r--r--gr-dtv/python/dtv/atsc_rx.py20
-rw-r--r--gr-dtv/python/dtv/atsc_rx_filter.py8
-rw-r--r--[-rwxr-xr-x]gr-dtv/python/dtv/qa_dtv.py1
-rw-r--r--gr-dtv/swig/CMakeLists.txt2
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 &gt; 0</check>
- <check>$I &gt; 0</check>
- <check>$M &gt; 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 &gt; 0</check>
- <check>$I &gt; 0</check>
- <check>$M &gt; 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 &gt; 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 &gt; 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 &gt; 0</check>
- <check>$noutput &gt; 0</check>
- <check>$noutput &gt;= $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"
)