[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] [gnuradio] 03/07: trellis: working on issue to fix loc
From: |
git |
Subject: |
[Commit-gnuradio] [gnuradio] 03/07: trellis: working on issue to fix locations of fsm files in examples. |
Date: |
Mon, 28 Jul 2014 18:42:38 +0000 (UTC) |
This is an automated email from the git hooks/post-receive script.
trondeau pushed a commit to branch master
in repository gnuradio.
commit e20ba633b19373ce908d71aa93966bd7241d5988
Author: Jan <address@hidden>
Date: Mon Jul 21 10:38:41 2014 +0200
trellis: working on issue to fix locations of fsm files in examples.
+ Workaround for the path problem with cmake to use templates for install
+ GRC blocks now check if FSM_Args are strings and if the file exists
+ Changed example generation with CMake
---
gr-trellis/examples/grc/CMakeLists.txt | 37 +-
.../examples/grc/interference_cancellation.grc | 1424 ++++++++------------
gr-trellis/examples/grc/pccc.grc | 228 ++--
gr-trellis/examples/grc/pccc1.grc | 245 ++--
gr-trellis/examples/grc/sccc.grc | 345 ++---
gr-trellis/examples/grc/sccc1.grc | 297 ++--
gr-trellis/grc/trellis_encoder_xx.xml | 135 +-
.../grc/trellis_pccc_decoder_combined_xx.xml | 316 ++---
gr-trellis/grc/trellis_pccc_decoder_x.xml | 210 +--
gr-trellis/grc/trellis_pccc_encoder_xx.xml | 178 +--
.../grc/trellis_sccc_decoder_combined_xx.xml | 314 ++---
gr-trellis/grc/trellis_sccc_decoder_x.xml | 210 +--
gr-trellis/grc/trellis_sccc_encoder_xx.xml | 178 +--
gr-trellis/grc/trellis_siso_f.xml | 153 +--
gr-trellis/grc/trellis_viterbi_combined_xx.xml | 227 ++--
gr-trellis/grc/trellis_viterbi_x.xml | 115 +-
16 files changed, 2109 insertions(+), 2503 deletions(-)
diff --git a/gr-trellis/examples/grc/CMakeLists.txt
b/gr-trellis/examples/grc/CMakeLists.txt
index 46b825d..9927215 100644
--- a/gr-trellis/examples/grc/CMakeLists.txt
+++ b/gr-trellis/examples/grc/CMakeLists.txt
@@ -17,13 +17,40 @@
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
+## Configure GRC examples to point to the right fsm_files directory
+set(FSM_FILE_INSTALL_DIR
"${CMAKE_INSTALL_PREFIX}/${GR_PKG_TRELLIS_EXAMPLES_DIR}/fsm_files/")
+configure_file(
+ "${CMAKE_CURRENT_LIST_DIR}/pccc.grc"
+ "${CMAKE_CURRENT_BINARY_DIR}/pccc.grc"
+)
+
+configure_file(
+ "${CMAKE_CURRENT_LIST_DIR}/pccc1.grc"
+ "${CMAKE_CURRENT_BINARY_DIR}/pccc1.grc"
+)
+
+configure_file(
+ "${CMAKE_CURRENT_LIST_DIR}/sccc.grc"
+ "${CMAKE_CURRENT_BINARY_DIR}/sccc.grc"
+)
+
+configure_file(
+ "${CMAKE_CURRENT_LIST_DIR}/sccc1.grc"
+ "${CMAKE_CURRENT_BINARY_DIR}/sccc1.grc"
+)
+
+configure_file(
+ "${CMAKE_CURRENT_LIST_DIR}/interference_cancellation.grc"
+ "${CMAKE_CURRENT_BINARY_DIR}/interference_cancellation.grc"
+)
+
install(
FILES
- interference_cancellation.grc
- pccc1.grc
- pccc.grc
- sccc1.grc
- sccc.grc
+ ${CMAKE_CURRENT_BINARY_DIR}/interference_cancellation.grc
+ ${CMAKE_CURRENT_BINARY_DIR}/pccc.grc
+ ${CMAKE_CURRENT_BINARY_DIR}/pccc1.grc
+ ${CMAKE_CURRENT_BINARY_DIR}/sccc1.grc
+ ${CMAKE_CURRENT_BINARY_DIR}/sccc.grc
readme.txt
DESTINATION ${GR_PKG_TRELLIS_EXAMPLES_DIR}
COMPONENT "trellis-examples"
diff --git a/gr-trellis/examples/grc/interference_cancellation.grc
b/gr-trellis/examples/grc/interference_cancellation.grc
index ef011c5..fa969f1 100644
--- a/gr-trellis/examples/grc/interference_cancellation.grc
+++ b/gr-trellis/examples/grc/interference_cancellation.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Sat Jul 12 17:33:47 2014</timestamp>
+ <timestamp>Wed Jul 23 09:31:45 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -52,12 +52,8 @@
<value></value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(0, 0)</value>
+ <value>(10, 10)</value>
</param>
<param>
<key>_rotation</key>
@@ -68,7 +64,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>prefix</value>
+ <value>R</value>
</param>
<param>
<key>_enabled</key>
@@ -76,15 +72,34 @@
</param>
<param>
<key>value</key>
- <value>"~/src/gnuradio/"</value>
+ <value>100e3</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(502, 10)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>block</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>1000</value>
</param>
<param>
<key>_coordinate</key>
- <value>(871, 14)</value>
+ <value>(765, 10)</value>
</param>
<param>
<key>_rotation</key>
@@ -106,12 +121,8 @@
<value>10**(-snr_db/10)</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(637, 13)</value>
+ <value>(428, 10)</value>
</param>
<param>
<key>_rotation</key>
@@ -122,7 +133,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>R</value>
+ <value>prefix</value>
</param>
<param>
<key>_enabled</key>
@@ -130,15 +141,11 @@
</param>
<param>
<key>value</key>
- <value>100e3</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
+ <value>"@FSM_FILE_INSTALL_DIR@"</value>
</param>
<param>
<key>_coordinate</key>
- <value>(748, 12)</value>
+ <value>(578, 10)</value>
</param>
<param>
<key>_rotation</key>
@@ -176,10 +183,6 @@
<value>True</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -231,10 +234,6 @@
<value>True</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -259,7 +258,7 @@
<key>blocks_sub_xx</key>
<param>
<key>id</key>
- <value>blocks_sub_xx_3</value>
+ <value>blocks_sub_xx_0</value>
</param>
<param>
<key>_enabled</key>
@@ -278,10 +277,92 @@
<value>2</value>
</param>
<param>
- <key>alias</key>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(536, 529)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_multiply_xx</key>
+ <param>
+ <key>id</key>
+ <value>blocks_multiply_xx_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>short</value>
+ </param>
+ <param>
+ <key>num_inputs</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>affinity</key>
<value></value>
</param>
<param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(771, 525)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_sub_xx</key>
+ <param>
+ <key>id</key>
+ <value>blocks_sub_xx_3</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>short</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>num_inputs</key>
+ <value>2</value>
+ </param>
+ <param>
<key>affinity</key>
<value></value>
</param>
@@ -325,10 +406,6 @@
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -372,10 +449,6 @@
<value>2</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -419,10 +492,49 @@
<value>2</value>
</param>
<param>
- <key>alias</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(540, 1141)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_multiply_xx</key>
+ <param>
+ <key>id</key>
+ <value>blocks_multiply_xx_2</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>short</value>
+ </param>
+ <param>
+ <key>num_inputs</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
<key>affinity</key>
<value></value>
</param>
@@ -436,7 +548,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(540, 1141)</value>
+ <value>(796, 1136)</value>
</param>
<param>
<key>_rotation</key>
@@ -466,10 +578,6 @@
<value>2</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -513,10 +621,6 @@
<value>2</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -560,10 +664,6 @@
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -607,10 +707,6 @@
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -658,10 +754,6 @@
<value>-42</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -709,10 +801,6 @@
<value>True</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -756,10 +844,6 @@
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -811,10 +895,6 @@
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -858,10 +938,6 @@
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -913,10 +989,6 @@
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -964,12 +1036,8 @@
<value>1</value>
</param>
<param>
- <key>num_ports</key>
- <value>1</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
<param>
<key>affinity</key>
@@ -1015,10 +1083,6 @@
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -1062,10 +1126,6 @@
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -1117,10 +1177,6 @@
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -1142,475 +1198,113 @@
</param>
</block>
<block>
- <key>trellis_viterbi_combined_xx</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>trellis_viterbi_combined_xx_1</value>
+ <value>alpha</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>c</value>
+ <key>label</key>
+ <value>P1/P</value>
</param>
<param>
- <key>out_type</key>
- <value>s</value>
+ <key>value</key>
+ <value>0.6</value>
</param>
<param>
- <key>fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
+ <key>start</key>
+ <value>0</value>
</param>
<param>
- <key>block_size</key>
- <value>1000</value>
+ <key>stop</key>
+ <value>1</value>
</param>
<param>
- <key>init_state</key>
- <value>-1</value>
+ <key>step</key>
+ <value>0.01</value>
</param>
<param>
- <key>final_state</key>
- <value>-1</value>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>dim</key>
- <value>1</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>table</key>
-
<value>alpha**0.5*1,alpha**0.5*1j,alpha**0.5*(-1j),alpha**0.5*(-1)</value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>metric_type</key>
- <value>digital.TRELLIS_EUCLIDEAN</value>
+ <key>gui_hint</key>
+ <value></value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(80, 501)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>trellis_viterbi_combined_xx</key>
- <param>
- <key>id</key>
- <value>trellis_viterbi_combined_xx_2</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>c</value>
- </param>
- <param>
- <key>out_type</key>
- <value>s</value>
- </param>
- <param>
- <key>fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
- </param>
- <param>
- <key>block_size</key>
- <value>1000</value>
- </param>
- <param>
- <key>init_state</key>
- <value>-1</value>
- </param>
- <param>
- <key>final_state</key>
- <value>-1</value>
- </param>
- <param>
- <key>dim</key>
- <value>1</value>
- </param>
- <param>
- <key>table</key>
-
<value>(1-alpha)**0.5*1,(1-alpha)**0.5*1j,(1-alpha)**0.5*(-1j),(1-alpha)**0.5*(-1)</value>
- </param>
- <param>
- <key>metric_type</key>
- <value>digital.TRELLIS_EUCLIDEAN</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(82, 766)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>trellis_encoder_xx</key>
- <param>
- <key>id</key>
- <value>trellis_encoder_xx_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>ss</value>
- </param>
- <param>
- <key>fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
- </param>
- <param>
- <key>init_state</key>
- <value>0</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(340, 187)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>trellis_encoder_xx</key>
- <param>
- <key>id</key>
- <value>trellis_encoder_xx_1</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>ss</value>
- </param>
- <param>
- <key>fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
- </param>
- <param>
- <key>init_state</key>
- <value>0</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(336, 311)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>trellis_encoder_xx</key>
- <param>
- <key>id</key>
- <value>trellis_encoder_xx_2</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>ss</value>
- </param>
- <param>
- <key>fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
- </param>
- <param>
- <key>init_state</key>
- <value>0</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(89, 1000)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>trellis_encoder_xx</key>
- <param>
- <key>id</key>
- <value>trellis_encoder_xx_2_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>ss</value>
- </param>
- <param>
- <key>fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
- </param>
- <param>
- <key>init_state</key>
- <value>0</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(103, 1366)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>trellis_viterbi_combined_xx</key>
- <param>
- <key>id</key>
- <value>trellis_viterbi_combined_xx_0_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>c</value>
- </param>
- <param>
- <key>out_type</key>
- <value>s</value>
- </param>
- <param>
- <key>fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
- </param>
- <param>
- <key>block_size</key>
- <value>1000</value>
- </param>
- <param>
- <key>init_state</key>
- <value>-1</value>
- </param>
- <param>
- <key>final_state</key>
- <value>-1</value>
- </param>
- <param>
- <key>dim</key>
- <value>1</value>
- </param>
- <param>
- <key>table</key>
-
<value>alpha**0.5*1,alpha**0.5*1j,alpha**0.5*(-1j),alpha**0.5*(-1)</value>
- </param>
- <param>
- <key>metric_type</key>
- <value>digital.TRELLIS_EUCLIDEAN</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(75, 1494)</value>
+ <key>_coordinate</key>
+ <value>(177, 10)</value>
</param>
<param>
<key>_rotation</key>
- <value>0</value>
+ <value>180</value>
</param>
</block>
<block>
- <key>trellis_viterbi_combined_xx</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>trellis_viterbi_combined_xx_0</value>
+ <value>snr_db</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>c</value>
- </param>
- <param>
- <key>out_type</key>
- <value>s</value>
- </param>
- <param>
- <key>fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
+ <key>label</key>
+ <value>P/sigma^2 (dB)</value>
</param>
<param>
- <key>block_size</key>
- <value>1000</value>
+ <key>value</key>
+ <value>16</value>
</param>
<param>
- <key>init_state</key>
- <value>-1</value>
+ <key>start</key>
+ <value>0</value>
</param>
<param>
- <key>final_state</key>
- <value>-1</value>
+ <key>stop</key>
+ <value>20</value>
</param>
<param>
- <key>dim</key>
- <value>1</value>
+ <key>step</key>
+ <value>0.01</value>
</param>
<param>
- <key>table</key>
-
<value>(1-alpha)**0.5*1,(1-alpha)**0.5*1j,(1-alpha)**0.5*(-1j),(1-alpha)**0.5*(-1)</value>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>metric_type</key>
- <value>digital.TRELLIS_EUCLIDEAN</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>affinity</key>
+ <key>gui_hint</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(83, 1111)</value>
+ <value>(300, 10)</value>
</param>
<param>
<key>_rotation</key>
- <value>0</value>
+ <value>180</value>
</param>
</block>
<block>
@@ -1636,10 +1330,6 @@
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -1715,26 +1405,6 @@
<value></value>
</param>
<param>
- <key>tr_mode</key>
- <value>qtgui.TRIG_MODE_FREE</value>
- </param>
- <param>
- <key>tr_slope</key>
- <value>qtgui.TRIG_SLOPE_POS</value>
- </param>
- <param>
- <key>tr_level</key>
- <value>0.0</value>
- </param>
- <param>
- <key>tr_chan</key>
- <value>0</value>
- </param>
- <param>
- <key>tr_tag</key>
- <value>""</value>
- </param>
- <param>
<key>label1</key>
<value></value>
</param>
@@ -1843,285 +1513,315 @@
<value>"red"</value>
</param>
<param>
- <key>style5</key>
- <value>0</value>
+ <key>size</key>
+ <value>1024</value>
</param>
<param>
- <key>marker5</key>
- <value>0</value>
+ <key>autoscale</key>
+ <value>False</value>
</param>
<param>
- <key>alpha5</key>
- <value>1.0</value>
+ <key>ymin</key>
+ <value>-2</value>
</param>
<param>
- <key>label6</key>
+ <key>ymax</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>xmin</key>
+ <value>-2</value>
+ </param>
+ <param>
+ <key>xmax</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.10</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
<value></value>
</param>
<param>
- <key>width6</key>
+ <key>label1</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width1</key>
<value>1</value>
</param>
<param>
- <key>color6</key>
- <value>"red"</value>
+ <key>color1</key>
+ <value>"blue"</value>
</param>
<param>
- <key>style6</key>
+ <key>style1</key>
<value>0</value>
</param>
<param>
- <key>marker6</key>
+ <key>marker1</key>
<value>0</value>
</param>
<param>
- <key>alpha6</key>
+ <key>alpha1</key>
<value>1.0</value>
</param>
<param>
- <key>label7</key>
+ <key>label2</key>
<value></value>
</param>
<param>
- <key>width7</key>
+ <key>width2</key>
<value>1</value>
</param>
<param>
- <key>color7</key>
+ <key>color2</key>
<value>"red"</value>
</param>
<param>
- <key>style7</key>
+ <key>style2</key>
<value>0</value>
</param>
<param>
- <key>marker7</key>
+ <key>marker2</key>
<value>0</value>
</param>
<param>
- <key>alpha7</key>
+ <key>alpha2</key>
<value>1.0</value>
</param>
<param>
- <key>label8</key>
+ <key>label3</key>
<value></value>
</param>
<param>
- <key>width8</key>
+ <key>width3</key>
<value>1</value>
</param>
<param>
- <key>color8</key>
+ <key>color3</key>
<value>"red"</value>
</param>
<param>
- <key>style8</key>
+ <key>style3</key>
<value>0</value>
</param>
<param>
- <key>marker8</key>
+ <key>marker3</key>
<value>0</value>
</param>
<param>
- <key>alpha8</key>
+ <key>alpha3</key>
<value>1.0</value>
</param>
<param>
- <key>label9</key>
+ <key>label4</key>
<value></value>
</param>
<param>
- <key>width9</key>
+ <key>width4</key>
<value>1</value>
</param>
<param>
- <key>color9</key>
+ <key>color4</key>
<value>"red"</value>
</param>
<param>
- <key>style9</key>
+ <key>style4</key>
<value>0</value>
</param>
<param>
- <key>marker9</key>
+ <key>marker4</key>
<value>0</value>
</param>
<param>
- <key>alpha9</key>
+ <key>alpha4</key>
<value>1.0</value>
</param>
<param>
- <key>label10</key>
+ <key>label5</key>
<value></value>
</param>
<param>
- <key>width10</key>
+ <key>width5</key>
<value>1</value>
</param>
<param>
- <key>color10</key>
+ <key>color5</key>
<value>"red"</value>
</param>
<param>
- <key>style10</key>
+ <key>style5</key>
<value>0</value>
</param>
<param>
- <key>marker10</key>
+ <key>marker5</key>
<value>0</value>
</param>
<param>
- <key>alpha10</key>
+ <key>alpha5</key>
<value>1.0</value>
</param>
<param>
- <key>alias</key>
+ <key>label6</key>
<value></value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>width6</key>
+ <value>1</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(1523, 255)</value>
+ <key>color6</key>
+ <value>"red"</value>
</param>
<param>
- <key>_rotation</key>
+ <key>style6</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>marker6</key>
<value>0</value>
</param>
</block>
<block>
- <key>blocks_sub_xx</key>
+ <key>qtgui_number_sink</key>
<param>
<key>id</key>
- <value>blocks_sub_xx_0</value>
+ <value>qtgui_number_sink_0_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>autoscale</key>
+ <value>False</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>avg</key>
+ <value>0.001</value>
</param>
<param>
- <key>type</key>
- <value>short</value>
+ <key>graph_type</key>
+ <value>qtgui.NUM_GRAPH_HORIZ</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>alpha6</key>
+ <value>1.0</value>
</param>
<param>
- <key>num_inputs</key>
- <value>2</value>
+ <key>label7</key>
+ <value></value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>width7</key>
+ <value>1</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>color7</key>
+ <value>"red"</value>
</param>
<param>
- <key>minoutbuf</key>
+ <key>style7</key>
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
+ <key>marker7</key>
<value>0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(554, 464)</value>
+ <key>alpha7</key>
+ <value>1.0</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>label8</key>
+ <value></value>
</param>
- </block>
- <block>
- <key>blocks_multiply_xx</key>
<param>
- <key>id</key>
- <value>blocks_multiply_xx_0</value>
+ <key>width8</key>
+ <value>1</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>color8</key>
+ <value>"red"</value>
</param>
<param>
- <key>type</key>
- <value>short</value>
+ <key>style8</key>
+ <value>0</value>
</param>
<param>
- <key>num_inputs</key>
- <value>2</value>
+ <key>marker8</key>
+ <value>0</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>alpha8</key>
+ <value>1.0</value>
</param>
<param>
- <key>alias</key>
+ <key>label9</key>
<value></value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>width9</key>
+ <value>1</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>color9</key>
+ <value>"red"</value>
</param>
<param>
- <key>maxoutbuf</key>
+ <key>style9</key>
<value>0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(773, 473)</value>
- </param>
- <param>
- <key>_rotation</key>
+ <key>marker9</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>blocks_short_to_float</key>
<param>
- <key>id</key>
- <value>blocks_short_to_float_0</value>
+ <key>alpha9</key>
+ <value>1.0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>label10</key>
+ <value></value>
</param>
<param>
- <key>vlen</key>
+ <key>width10</key>
<value>1</value>
</param>
<param>
- <key>scale</key>
- <value>1</value>
+ <key>color10</key>
+ <value>"red"</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>style10</key>
+ <value>0</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>marker10</key>
+ <value>0</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>alpha10</key>
+ <value>1.0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(925, 486)</value>
+ <value>(1537, 259)</value>
</param>
<param>
<key>_rotation</key>
@@ -2132,7 +1832,7 @@
<key>blocks_short_to_float</key>
<param>
<key>id</key>
- <value>blocks_short_to_float_2</value>
+ <value>blocks_short_to_float_0</value>
</param>
<param>
<key>_enabled</key>
@@ -2147,10 +1847,6 @@
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -2164,7 +1860,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1010, 769)</value>
+ <value>(1010, 1551)</value>
</param>
<param>
<key>_rotation</key>
@@ -2175,7 +1871,7 @@
<key>qtgui_number_sink</key>
<param>
<key>id</key>
- <value>qtgui_number_sink_0</value>
+ <value>qtgui_number_sink_0_0_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -2215,18 +1911,18 @@
</param>
<param>
<key>gui_hint</key>
- <value>0,0,1,1</value>
+ <value>1,0,1,1</value>
</param>
<param>
<key>label1</key>
- <value>BER 1 (raw)</value>
+ <value>BER 2 (raw)</value>
</param>
<param>
- <key>color1</key>
+ <key>color3</key>
<value>("black", "black")</value>
</param>
<param>
- <key>label2</key>
+ <key>label4</key>
<value></value>
</param>
<param>
@@ -2298,16 +1994,20 @@
<value>("black", "black")</value>
</param>
<param>
- <key>alias</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1153, 436)</value>
+ <value>(1266, 1535)</value>
</param>
<param>
<key>_rotation</key>
@@ -2318,7 +2018,7 @@
<key>qtgui_number_sink</key>
<param>
<key>id</key>
- <value>qtgui_number_sink_0_0</value>
+ <value>qtgui_number_sink_0</value>
</param>
<param>
<key>_enabled</key>
@@ -2358,11 +2058,11 @@
</param>
<param>
<key>gui_hint</key>
- <value>0,1,1,1</value>
+ <value>0,0,1,1</value>
</param>
<param>
<key>label1</key>
- <value>BER 2 (raw)</value>
+ <value></value>
</param>
<param>
<key>color1</key>
@@ -2441,16 +2141,12 @@
<value>("black", "black")</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(1260, 719)</value>
+ <value>(1257, 471)</value>
</param>
<param>
<key>_rotation</key>
@@ -2461,7 +2157,7 @@
<key>qtgui_number_sink</key>
<param>
<key>id</key>
- <value>qtgui_number_sink_0_0_0</value>
+ <value>qtgui_number_sink_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -2501,11 +2197,11 @@
</param>
<param>
<key>gui_hint</key>
- <value>1,1,1,1</value>
+ <value>0,1,1,1</value>
</param>
<param>
<key>label1</key>
- <value>BER 2 (after cancelling user 1)</value>
+ <value>BER 2 (raw)</value>
</param>
<param>
<key>color1</key>
@@ -2520,7 +2216,7 @@
<value>("black", "black")</value>
</param>
<param>
- <key>label3</key>
+ <key>label5</key>
<value></value>
</param>
<param>
@@ -2528,7 +2224,7 @@
<value>("black", "black")</value>
</param>
<param>
- <key>label4</key>
+ <key>label6</key>
<value></value>
</param>
<param>
@@ -2536,19 +2232,51 @@
<value>("black", "black")</value>
</param>
<param>
- <key>label5</key>
- <value></value>
+ <key>autoscale</key>
+ <value>False</value>
</param>
<param>
- <key>color5</key>
+ <key>avg</key>
+ <value>0.001</value>
+ </param>
+ <param>
+ <key>graph_type</key>
+ <value>qtgui.NUM_GRAPH_HORIZ</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>min</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>max</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.10</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>0,1,1,1</value>
+ </param>
+ <param>
+ <key>label1</key>
+ <value>BER 2 (raw)</value>
+ </param>
+ <param>
+ <key>color1</key>
<value>("black", "black")</value>
</param>
<param>
- <key>label6</key>
+ <key>label2</key>
<value></value>
</param>
<param>
- <key>color6</key>
+ <key>color2</key>
<value>("black", "black")</value>
</param>
<param>
@@ -2584,16 +2312,12 @@
<value>("black", "black")</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(1221, 1116)</value>
+ <value>(1271, 742)</value>
</param>
<param>
<key>_rotation</key>
@@ -2601,26 +2325,26 @@
</param>
</block>
<block>
- <key>blocks_short_to_float</key>
+ <key>trellis_encoder_xx</key>
<param>
<key>id</key>
- <value>blocks_short_to_float_1</value>
+ <value>trellis_encoder_xx_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>type</key>
+ <value>ss</value>
</param>
<param>
- <key>scale</key>
- <value>1</value>
+ <key>fsm_args</key>
+ <value>prefix+"awgn1o2_16.fsm"</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>init_state</key>
+ <value>0</value>
</param>
<param>
<key>affinity</key>
@@ -2636,7 +2360,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1006, 1153)</value>
+ <value>(340, 187)</value>
</param>
<param>
<key>_rotation</key>
@@ -2644,10 +2368,10 @@
</param>
</block>
<block>
- <key>blocks_multiply_xx</key>
+ <key>trellis_encoder_xx</key>
<param>
<key>id</key>
- <value>blocks_multiply_xx_2</value>
+ <value>trellis_encoder_xx_1</value>
</param>
<param>
<key>_enabled</key>
@@ -2655,19 +2379,15 @@
</param>
<param>
<key>type</key>
- <value>short</value>
- </param>
- <param>
- <key>num_inputs</key>
- <value>2</value>
+ <value>ss</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>fsm_args</key>
+ <value>prefix+"awgn1o2_16.fsm"</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>init_state</key>
+ <value>0</value>
</param>
<param>
<key>affinity</key>
@@ -2683,7 +2403,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(796, 1136)</value>
+ <value>(336, 311)</value>
</param>
<param>
<key>_rotation</key>
@@ -2691,26 +2411,50 @@
</param>
</block>
<block>
- <key>blocks_short_to_float</key>
+ <key>trellis_viterbi_combined_xx</key>
<param>
<key>id</key>
- <value>blocks_short_to_float_1_0</value>
+ <value>trellis_viterbi_combined_xx_1</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>type</key>
+ <value>c</value>
</param>
<param>
- <key>scale</key>
+ <key>out_type</key>
+ <value>s</value>
+ </param>
+ <param>
+ <key>fsm_args</key>
+ <value>prefix+"awgn1o2_16.fsm"</value>
+ </param>
+ <param>
+ <key>block_size</key>
+ <value>1000</value>
+ </param>
+ <param>
+ <key>init_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>final_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>dim</key>
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>table</key>
+
<value>alpha**0.5*1,alpha**0.5*1j,alpha**0.5*(-1j),alpha**0.5*(-1)</value>
+ </param>
+ <param>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_EUCLIDEAN</value>
</param>
<param>
<key>affinity</key>
@@ -2726,7 +2470,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1008, 1549)</value>
+ <value>(79, 501)</value>
</param>
<param>
<key>_rotation</key>
@@ -2734,10 +2478,10 @@
</param>
</block>
<block>
- <key>qtgui_number_sink</key>
+ <key>trellis_viterbi_combined_xx</key>
<param>
<key>id</key>
- <value>qtgui_number_sink_0_0_0_0</value>
+ <value>trellis_viterbi_combined_xx_2</value>
</param>
<param>
<key>_enabled</key>
@@ -2745,131 +2489,165 @@
</param>
<param>
<key>type</key>
- <value>float</value>
+ <value>c</value>
</param>
<param>
- <key>autoscale</key>
- <value>False</value>
+ <key>out_type</key>
+ <value>s</value>
</param>
<param>
- <key>avg</key>
- <value>0.001</value>
+ <key>fsm_args</key>
+ <value>prefix+"awgn1o2_16.fsm"</value>
</param>
<param>
- <key>graph_type</key>
- <value>qtgui.NUM_GRAPH_HORIZ</value>
+ <key>block_size</key>
+ <value>1000</value>
</param>
<param>
- <key>nconnections</key>
- <value>1</value>
+ <key>init_state</key>
+ <value>-1</value>
</param>
<param>
- <key>min</key>
+ <key>final_state</key>
<value>-1</value>
</param>
<param>
- <key>max</key>
+ <key>dim</key>
<value>1</value>
</param>
<param>
- <key>update_time</key>
- <value>0.10</value>
+ <key>table</key>
+
<value>(1-alpha)**0.5*1,(1-alpha)**0.5*1j,(1-alpha)**0.5*(-1j),(1-alpha)**0.5*(-1)</value>
</param>
<param>
- <key>gui_hint</key>
- <value>1,0,1,1</value>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_EUCLIDEAN</value>
</param>
<param>
- <key>label1</key>
- <value>BER 1 (after cancelling user 2)</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>color1</key>
- <value>("black", "black")</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>label2</key>
- <value></value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>color2</key>
- <value>("black", "black")</value>
+ <key>_coordinate</key>
+ <value>(82, 766)</value>
</param>
<param>
- <key>label3</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>trellis_encoder_xx</key>
<param>
- <key>color3</key>
- <value>("black", "black")</value>
+ <key>id</key>
+ <value>trellis_encoder_xx_2</value>
</param>
<param>
- <key>label4</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>color4</key>
- <value>("black", "black")</value>
+ <key>type</key>
+ <value>ss</value>
</param>
<param>
- <key>label5</key>
- <value></value>
+ <key>fsm_args</key>
+ <value>prefix+"awgn1o2_16.fsm"</value>
</param>
<param>
- <key>color5</key>
- <value>("black", "black")</value>
+ <key>init_state</key>
+ <value>0</value>
</param>
<param>
- <key>label6</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>color6</key>
- <value>("black", "black")</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>label7</key>
- <value></value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>color7</key>
- <value>("black", "black")</value>
+ <key>_coordinate</key>
+ <value>(89, 1000)</value>
</param>
<param>
- <key>label8</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>trellis_viterbi_combined_xx</key>
<param>
- <key>color8</key>
- <value>("black", "black")</value>
+ <key>id</key>
+ <value>trellis_viterbi_combined_xx_0</value>
</param>
<param>
- <key>label9</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>color9</key>
- <value>("black", "black")</value>
+ <key>type</key>
+ <value>c</value>
</param>
<param>
- <key>label10</key>
- <value></value>
+ <key>out_type</key>
+ <value>s</value>
</param>
<param>
- <key>color10</key>
- <value>("black", "black")</value>
+ <key>fsm_args</key>
+ <value>prefix+"awgn1o2_16.fsm"</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>block_size</key>
+ <value>1000</value>
+ </param>
+ <param>
+ <key>init_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>final_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>dim</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>table</key>
+
<value>(1-alpha)**0.5*1,(1-alpha)**0.5*1j,(1-alpha)**0.5*(-1j),(1-alpha)**0.5*(-1)</value>
+ </param>
+ <param>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_EUCLIDEAN</value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(1271, 1507)</value>
+ <value>(83, 1111)</value>
</param>
<param>
<key>_rotation</key>
@@ -2877,58 +2655,42 @@
</param>
</block>
<block>
- <key>variable_qtgui_range</key>
+ <key>trellis_encoder_xx</key>
<param>
<key>id</key>
- <value>alpha</value>
+ <value>trellis_encoder_xx_2_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>P2/P</value>
+ <key>type</key>
+ <value>ss</value>
</param>
<param>
- <key>value</key>
- <value>.6</value>
+ <key>fsm_args</key>
+ <value>prefix+"awgn1o2_16.fsm"</value>
</param>
<param>
- <key>start</key>
+ <key>init_state</key>
<value>0</value>
</param>
<param>
- <key>stop</key>
- <value>1</value>
- </param>
- <param>
- <key>step</key>
- <value>.01</value>
- </param>
- <param>
- <key>widget</key>
- <value>counter_slider</value>
- </param>
- <param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
- </param>
- <param>
- <key>min_len</key>
- <value>200</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>gui_hint</key>
- <value></value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(164, 0)</value>
+ <value>(103, 1366)</value>
</param>
<param>
<key>_rotation</key>
@@ -2936,58 +2698,66 @@
</param>
</block>
<block>
- <key>variable_qtgui_range</key>
+ <key>trellis_viterbi_combined_xx</key>
<param>
<key>id</key>
- <value>snr_db</value>
+ <value>trellis_viterbi_combined_xx_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>P/sigma^2 (dB)</value>
+ <key>type</key>
+ <value>c</value>
</param>
<param>
- <key>value</key>
- <value>16</value>
+ <key>out_type</key>
+ <value>s</value>
</param>
<param>
- <key>start</key>
- <value>0</value>
+ <key>fsm_args</key>
+ <value>prefix+"awgn1o2_16.fsm"</value>
</param>
<param>
- <key>stop</key>
- <value>20</value>
+ <key>block_size</key>
+ <value>1000</value>
</param>
<param>
- <key>step</key>
- <value>1</value>
+ <key>init_state</key>
+ <value>-1</value>
</param>
<param>
- <key>widget</key>
- <value>counter_slider</value>
+ <key>final_state</key>
+ <value>-1</value>
</param>
<param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
+ <key>dim</key>
+ <value>1</value>
</param>
<param>
- <key>min_len</key>
- <value>200</value>
+ <key>table</key>
+
<value>alpha**0.5*1,alpha**0.5*1j,alpha**0.5*(-1j),alpha**0.5*(-1)</value>
</param>
<param>
- <key>gui_hint</key>
- <value></value>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_EUCLIDEAN</value>
</param>
<param>
- <key>alias</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(310, 0)</value>
+ <value>(75, 1495)</value>
</param>
<param>
<key>_rotation</key>
@@ -3049,6 +2819,12 @@
<sink_key>0</sink_key>
</connection>
<connection>
+ <source_block_id>blocks_add_xx_1</source_block_id>
+ <sink_block_id>trellis_viterbi_combined_xx_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
<source_block_id>analog_random_source_x_0</source_block_id>
<sink_block_id>blocks_sub_xx_0</sink_block_id>
<source_key>0</source_key>
@@ -3079,6 +2855,12 @@
<sink_key>0</sink_key>
</connection>
<connection>
+ <source_block_id>blocks_sub_xx_1</source_block_id>
+ <sink_block_id>blocks_multiply_xx_2</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+ <connection>
<source_block_id>blocks_sub_xx_2</source_block_id>
<sink_block_id>trellis_viterbi_combined_xx_0</sink_block_id>
<source_key>0</source_key>
@@ -3248,12 +3030,6 @@
</connection>
<connection>
<source_block_id>blocks_add_xx_1</source_block_id>
- <sink_block_id>trellis_viterbi_combined_xx_1</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_add_xx_1</source_block_id>
<sink_block_id>qtgui_const_sink_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
@@ -3283,12 +3059,6 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_sub_xx_1</source_block_id>
- <sink_block_id>blocks_multiply_xx_2</sink_block_id>
- <source_key>0</source_key>
- <sink_key>1</sink_key>
- </connection>
- <connection>
<source_block_id>blocks_short_to_float_1_0</source_block_id>
<sink_block_id>qtgui_number_sink_0_0_0_0</sink_block_id>
<source_key>0</source_key>
diff --git a/gr-trellis/examples/grc/pccc.grc b/gr-trellis/examples/grc/pccc.grc
index 0f8d76d..e4f4dda 100644
--- a/gr-trellis/examples/grc/pccc.grc
+++ b/gr-trellis/examples/grc/pccc.grc
@@ -1,11 +1,11 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Thu Jul 17 14:55:30 2014</timestamp>
+ <timestamp>Tue Jul 22 09:01:43 2014</timestamp>
<block>
<key>options</key>
<param>
<key>id</key>
- <value>sccc1</value>
+ <value>pccc</value>
</param>
<param>
<key>_enabled</key>
@@ -52,10 +52,6 @@
<value></value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>_coordinate</key>
<value>(10, 10)</value>
</param>
@@ -68,7 +64,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>GNURADIO_SRC_DIR</value>
+ <value>block</value>
</param>
<param>
<key>_enabled</key>
@@ -76,11 +72,11 @@
</param>
<param>
<key>value</key>
- <value>"/home/jank/src/gnuradio/"</value>
+ <value>1000</value>
</param>
<param>
<key>_coordinate</key>
- <value>(656, 10)</value>
+ <value>(621, 10)</value>
</param>
<param>
<key>_rotation</key>
@@ -91,7 +87,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>R</value>
+ <value>prefix</value>
</param>
<param>
<key>_enabled</key>
@@ -99,7 +95,7 @@
</param>
<param>
<key>value</key>
- <value>GNURADIO_SRC_DIR</value>
+ <value>"@FSM_FILE_INSTALL_DIR@"</value>
</param>
<param>
<key>_coordinate</key>
@@ -114,33 +110,6 @@
<key>variable</key>
<param>
<key>id</key>
- <value>noisevar</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>10**(-snr_db/10)</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(279, 10)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>id</key>
<value>R</value>
</param>
<param>
@@ -164,7 +133,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>block</value>
+ <value>noisevar</value>
</param>
<param>
<key>_enabled</key>
@@ -172,15 +141,11 @@
</param>
<param>
<key>value</key>
- <value>1000</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
+ <value>10**(-snr_db/10)</value>
</param>
<param>
<key>_coordinate</key>
- <value>(593, 10)</value>
+ <value>(279, 10)</value>
</param>
<param>
<key>_rotation</key>
@@ -296,8 +261,8 @@
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
<key>noise_type</key>
@@ -453,14 +418,6 @@
<value>0</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
<key>_coordinate</key>
<value>(409, 530)</value>
</param>
@@ -500,22 +457,6 @@
<value>0</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
<value>(552, 548)</value>
</param>
@@ -525,65 +466,6 @@
</param>
</block>
<block>
- <key>blocks_sub_xx</key>
- <param>
- <key>id</key>
- <value>blocks_sub_xx_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>short</value>
- </param>
- <param>
- <key>o_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
- </param>
- <param>
- <key>num_inputs</key>
- <value>2</value>
- </param>
- <param>
- <key>i_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(234, 154)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
<key>qtgui_number_sink</key>
<param>
<key>id</key>
@@ -779,21 +661,20 @@
<key>_rotation</key>
<value>180</value>
</param>
+ </block>
+ <block>
+ <key>digital_chunks_to_symbols_xx</key>
<param>
- <key>number_rate</key>
- <value>15</value>
- </param>
- <param>
- <key>peak_hold</key>
- <value>False</value>
+ <key>id</key>
+ <value>digital_chunks_to_symbols_xx_0</value>
</param>
<param>
<key>average</key>
<value>True</value>
</param>
<param>
- <key>avg_alpha</key>
- <value>0.001</value>
+ <key>in_type</key>
+ <value>short</value>
</param>
<param>
<key>show_gauge</key>
@@ -804,20 +685,71 @@
<value>-7,0, -5,0, -3,0, -1,0, 1,0, 3,0, 5,0, 7,0, 0,-7,0, -5,0, -3,0,
-1,0, 1,0, 3,0, 5,0, 7,0</value>
</param>
<param>
- <key>grid_pos</key>
- <value>1,0,1,1</value>
+ <key>dimension</key>
+ <value>2</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>num_ports</key>
+ <value>1</value>
</param>
<param>
- <key>alias</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(559, 180)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>trellis_pccc_encoder_xx</key>
+ <param>
+ <key>id</key>
+ <value>trellis_pccc_encoder_xx_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>ss</value>
+ </param>
+ <param>
+ <key>o_fsm_args</key>
+ <value>prefix + "awgn1o2_4.fsm"</value>
+ </param>
+ <param>
+ <key>o_init_state</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>i_fsm_args</key>
+ <value>prefix + "awgn1o2_4.fsm"</value>
+ </param>
+ <param>
+ <key>i_init_state</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>interleaver_args</key>
+ <value>trellis.interleaver(block,666)</value>
+ </param>
+ <param>
+ <key>bl</key>
+ <value>block</value>
</param>
<param>
<key>affinity</key>
@@ -833,7 +765,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(719, 462)</value>
+ <value>(234, 154)</value>
</param>
<param>
<key>_rotation</key>
@@ -860,7 +792,7 @@
</param>
<param>
<key>o_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
+ <value>prefix + "awgn1o2_4.fsm"</value>
</param>
<param>
<key>o_init_state</key>
@@ -872,7 +804,7 @@
</param>
<param>
<key>i_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
+ <value>prefix + "awgn1o2_4.fsm"</value>
</param>
<param>
<key>i_init_state</key>
diff --git a/gr-trellis/examples/grc/pccc1.grc
b/gr-trellis/examples/grc/pccc1.grc
index 8aaa28a..c27c658 100644
--- a/gr-trellis/examples/grc/pccc1.grc
+++ b/gr-trellis/examples/grc/pccc1.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Thu Jul 17 14:55:59 2014</timestamp>
+ <timestamp>Tue Jul 22 09:01:29 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -76,7 +76,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(593, 10)</value>
+ <value>(621, 10)</value>
</param>
<param>
<key>_rotation</key>
@@ -118,7 +118,7 @@
</param>
<param>
<key>value</key>
- <value>GNURADIO_SRC_DIR</value>
+ <value>"@FSM_FILE_INSTALL_DIR@"</value>
</param>
<param>
<key>_coordinate</key>
@@ -133,29 +133,6 @@
<key>variable</key>
<param>
<key>id</key>
- <value>GNURADIO_SRC_DIR</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>"/home/jank/src/gnuradio/"</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(656, 10)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>id</key>
<value>R</value>
</param>
<param>
@@ -628,42 +605,34 @@
</param>
</block>
<block>
- <key>trellis_pccc_encoder_xx</key>
+ <key>digital_chunks_to_symbols_xx</key>
<param>
<key>id</key>
- <value>trellis_pccc_encoder_xx_0</value>
+ <value>digital_chunks_to_symbols_xx_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>ss</value>
- </param>
- <param>
- <key>o_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
- </param>
- <param>
- <key>o_init_state</key>
- <value>0</value>
+ <key>in_type</key>
+ <value>short</value>
</param>
<param>
- <key>i_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
+ <key>out_type</key>
+ <value>float</value>
</param>
<param>
- <key>i_init_state</key>
- <value>0</value>
+ <key>symbol_table</key>
+
<value>-7,0,-5,0,-3,0,-1,0,1,0,3,0,5,0,7,0,-7,0,-5,0,-3,0,-1,0,1,0,3,0,5,0,7,0</value>
</param>
<param>
- <key>interleaver_args</key>
- <value>trellis.interleaver(block,666)</value>
+ <key>dimension</key>
+ <value>2</value>
</param>
<param>
- <key>bl</key>
- <value>block</value>
+ <key>num_ports</key>
+ <value>1</value>
</param>
<param>
<key>affinity</key>
@@ -679,7 +648,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(235, 154)</value>
+ <value>(552, 178)</value>
</param>
<param>
<key>_rotation</key>
@@ -687,34 +656,34 @@
</param>
</block>
<block>
- <key>digital_chunks_to_symbols_xx</key>
+ <key>trellis_metrics_x</key>
<param>
<key>id</key>
- <value>digital_chunks_to_symbols_xx_0</value>
+ <value>trellis_metrics_x_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>in_type</key>
- <value>short</value>
+ <key>type</key>
+ <value>f</value>
</param>
<param>
- <key>out_type</key>
- <value>float</value>
+ <key>card</key>
+ <value>16</value>
</param>
<param>
- <key>symbol_table</key>
-
<value>-7,0,-5,0,-3,0,-1,0,1,0,3,0,5,0,7,0,-7,0,-5,0,-3,0,-1,0,1,0,3,0,5,0,7,0</value>
+ <key>dim</key>
+ <value>2</value>
</param>
<param>
- <key>dimension</key>
- <value>2</value>
+ <key>table</key>
+ <value>-7,0, -5,0, -3,0, -1,0, 1,0, 3,0, 5,0, 7,0, 0,-7,0, -5,0, -3,0,
-1,0, 1,0, 3,0, 5,0, 7,0</value>
</param>
<param>
- <key>num_ports</key>
- <value>1</value>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_EUCLIDEAN</value>
</param>
<param>
<key>affinity</key>
@@ -730,7 +699,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(552, 178)</value>
+ <value>(56, 370)</value>
</param>
<param>
<key>_rotation</key>
@@ -738,85 +707,65 @@
</param>
</block>
<block>
- <key>trellis_pccc_decoder_x</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>trellis_pccc_decoder_x_0</value>
+ <value>snr_db</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>out_type</key>
- <value>s</value>
- </param>
- <param>
- <key>o_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
- </param>
- <param>
- <key>o_init_state</key>
- <value>0</value>
- </param>
- <param>
- <key>o_final_state</key>
- <value>-1</value>
+ <key>label</key>
+ <value>SNR (dB)</value>
</param>
<param>
- <key>i_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
+ <key>value</key>
+ <value>5</value>
</param>
<param>
- <key>i_init_state</key>
- <value>0</value>
+ <key>start</key>
+ <value>-10</value>
</param>
<param>
- <key>i_final_state</key>
- <value>-1</value>
+ <key>stop</key>
+ <value>10</value>
</param>
<param>
- <key>interleaver</key>
- <value>trellis.interleaver(block,666)</value>
+ <key>step</key>
+ <value>0.01</value>
</param>
<param>
- <key>block_size</key>
- <value>block</value>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>iterations</key>
- <value>10</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>siso_type</key>
- <value>trellis.TRELLIS_MIN_SUM</value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>affinity</key>
+ <key>gui_hint</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(359, 322)</value>
+ <value>(177, 10)</value>
</param>
<param>
<key>_rotation</key>
- <value>0</value>
+ <value>180</value>
</param>
</block>
<block>
- <key>trellis_metrics_x</key>
+ <key>trellis_pccc_encoder_xx</key>
<param>
<key>id</key>
- <value>trellis_metrics_x_0</value>
+ <value>trellis_pccc_encoder_xx_0</value>
</param>
<param>
<key>_enabled</key>
@@ -824,23 +773,31 @@
</param>
<param>
<key>type</key>
- <value>f</value>
+ <value>ss</value>
</param>
<param>
- <key>card</key>
- <value>16</value>
+ <key>o_fsm_args</key>
+ <value>prefix+"awgn1o2_4.fsm"</value>
</param>
<param>
- <key>dim</key>
- <value>2</value>
+ <key>o_init_state</key>
+ <value>0</value>
</param>
<param>
- <key>table</key>
- <value>-7,0, -5,0, -3,0, -1,0, 1,0, 3,0, 5,0, 7,0, 0,-7,0, -5,0, -3,0,
-1,0, 1,0, 3,0, 5,0, 7,0</value>
+ <key>i_fsm_args</key>
+ <value>prefix+"awgn1o2_4.fsm"</value>
</param>
<param>
- <key>metric_type</key>
- <value>digital.TRELLIS_EUCLIDEAN</value>
+ <key>i_init_state</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>interleaver_args</key>
+ <value>trellis.interleaver(block,666)</value>
+ </param>
+ <param>
+ <key>bl</key>
+ <value>block</value>
</param>
<param>
<key>affinity</key>
@@ -856,7 +813,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(56, 370)</value>
+ <value>(235, 154)</value>
</param>
<param>
<key>_rotation</key>
@@ -864,58 +821,78 @@
</param>
</block>
<block>
- <key>variable_qtgui_range</key>
+ <key>trellis_pccc_decoder_x</key>
<param>
<key>id</key>
- <value>snr_db</value>
+ <value>trellis_pccc_decoder_x_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>SNR (dB)</value>
+ <key>out_type</key>
+ <value>s</value>
</param>
<param>
- <key>value</key>
- <value>5</value>
+ <key>o_fsm_args</key>
+ <value>prefix+"awgn1o2_4.fsm"</value>
</param>
<param>
- <key>start</key>
- <value>-10</value>
+ <key>o_init_state</key>
+ <value>0</value>
</param>
<param>
- <key>stop</key>
- <value>10</value>
+ <key>o_final_state</key>
+ <value>-1</value>
</param>
<param>
- <key>step</key>
- <value>0.01</value>
+ <key>i_fsm_args</key>
+ <value>prefix+"awgn1o2_4.fsm"</value>
</param>
<param>
- <key>widget</key>
- <value>counter_slider</value>
+ <key>i_init_state</key>
+ <value>0</value>
</param>
<param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
+ <key>i_final_state</key>
+ <value>-1</value>
</param>
<param>
- <key>min_len</key>
- <value>200</value>
+ <key>interleaver</key>
+ <value>trellis.interleaver(block,666)</value>
</param>
<param>
- <key>gui_hint</key>
+ <key>block_size</key>
+ <value>block</value>
+ </param>
+ <param>
+ <key>iterations</key>
+ <value>10</value>
+ </param>
+ <param>
+ <key>siso_type</key>
+ <value>trellis.TRELLIS_MIN_SUM</value>
+ </param>
+ <param>
+ <key>affinity</key>
<value></value>
</param>
<param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(177, 10)</value>
+ <value>(359, 322)</value>
</param>
<param>
<key>_rotation</key>
- <value>180</value>
+ <value>0</value>
</param>
</block>
<connection>
diff --git a/gr-trellis/examples/grc/sccc.grc b/gr-trellis/examples/grc/sccc.grc
index 44d8f26..ace871a 100644
--- a/gr-trellis/examples/grc/sccc.grc
+++ b/gr-trellis/examples/grc/sccc.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Thu Jul 17 14:56:16 2014</timestamp>
+ <timestamp>Tue Jul 22 09:01:11 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -52,10 +52,6 @@
<value></value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>_coordinate</key>
<value>(10, 10)</value>
</param>
@@ -80,37 +76,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(593, 10)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>id</key>
- <value>noisevar</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>10**(-snr_db/10)</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(279, 10)</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>id</key>
- <value>block</value>
+ <value>(622, 9)</value>
</param>
<param>
<key>_rotation</key>
@@ -129,11 +95,11 @@
</param>
<param>
<key>value</key>
- <value>GNURADIO_SRC_DIR</value>
+ <value>"@FSM_FILE_INSTALL_DIR@"</value>
</param>
<param>
<key>_coordinate</key>
- <value>(434, 10)</value>
+ <value>(435, 9)</value>
</param>
<param>
<key>_rotation</key>
@@ -144,7 +110,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>GNURADIO_SRC_DIR</value>
+ <value>noisevar</value>
</param>
<param>
<key>_enabled</key>
@@ -152,11 +118,11 @@
</param>
<param>
<key>value</key>
- <value>"/home/jank/src/gnuradio/"</value>
+ <value>10**(-snr_db/10)</value>
</param>
<param>
<key>_coordinate</key>
- <value>(656, 10)</value>
+ <value>(279, 10)</value>
</param>
<param>
<key>_rotation</key>
@@ -164,7 +130,7 @@
</param>
</block>
<block>
- <key>analog_random_source_x</key>
+ <key>variable</key>
<param>
<key>id</key>
<value>R</value>
@@ -178,26 +144,6 @@
<value>100e3</value>
</param>
<param>
- <key>repeat</key>
- <value>True</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
<value>(358, 10)</value>
</param>
@@ -292,22 +238,6 @@
<value>0</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
<value>(951, 256)</value>
</param>
@@ -578,14 +508,6 @@
<value>0</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
<key>_coordinate</key>
<value>(551, 181)</value>
</param>
@@ -595,116 +517,6 @@
</param>
</block>
<block>
- <key>blocks_throttle</key>
- <param>
- <key>id</key>
- <value>blocks_throttle_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>short</value>
- </param>
- <param>
- <key>samples_per_second</key>
- <value>R</value>
- </param>
- <param>
- <key>o_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
- </param>
- <param>
- <key>ignoretag</key>
- <value>True</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>i_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn2o3_4.fsm"</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(514, 105)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>blocks_add_xx</key>
- <param>
- <key>id</key>
- <value>blocks_add_xx_1</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>num_inputs</key>
- <value>2</value>
- </param>
- <param>
- <key>table</key>
- <value>1,0,1j,0,-1j,0,-1,0,1,0,1j,0,-1j,0,-1,0</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(241, 287)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
<key>qtgui_number_sink</key>
<param>
<key>id</key>
@@ -844,6 +656,61 @@
</param>
</block>
<block>
+ <key>variable_qtgui_range</key>
+ <param>
+ <key>id</key>
+ <value>snr_db</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>SNR (dB)</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>5</value>
+ </param>
+ <param>
+ <key>start</key>
+ <value>-10</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>10</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>0.01</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(177, 10)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>180</value>
+ </param>
+ </block>
+ <block>
<key>trellis_sccc_encoder_xx</key>
<param>
<key>id</key>
@@ -859,7 +726,7 @@
</param>
<param>
<key>o_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
+ <value>prefix+"awgn1o2_4.fsm"</value>
</param>
<param>
<key>o_init_state</key>
@@ -867,7 +734,7 @@
</param>
<param>
<key>i_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn2o3_4.fsm"</value>
+ <value>prefix+"awgn2o3_4.fsm"</value>
</param>
<param>
<key>i_init_state</key>
@@ -903,58 +770,98 @@
</param>
</block>
<block>
- <key>variable_qtgui_range</key>
+ <key>trellis_sccc_decoder_combined_xx</key>
<param>
<key>id</key>
- <value>snr_db</value>
+ <value>trellis_sccc_decoder_combined_xx_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>SNR (dB)</value>
+ <key>type</key>
+ <value>c</value>
</param>
<param>
- <key>value</key>
- <value>5</value>
+ <key>out_type</key>
+ <value>s</value>
</param>
<param>
- <key>start</key>
- <value>-10</value>
+ <key>o_fsm_args</key>
+ <value>prefix+"awgn1o2_4.fsm"</value>
</param>
<param>
- <key>stop</key>
- <value>10</value>
+ <key>o_init_state</key>
+ <value>0</value>
</param>
<param>
- <key>step</key>
- <value>0.01</value>
+ <key>o_final_state</key>
+ <value>-1</value>
</param>
<param>
- <key>widget</key>
- <value>counter_slider</value>
+ <key>i_fsm_args</key>
+ <value>prefix+"awgn2o3_4.fsm"</value>
</param>
<param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
+ <key>i_init_state</key>
+ <value>0</value>
</param>
<param>
- <key>min_len</key>
- <value>200</value>
+ <key>i_final_state</key>
+ <value>-1</value>
</param>
<param>
- <key>gui_hint</key>
+ <key>interleaver</key>
+ <value>trellis.interleaver(block,666)</value>
+ </param>
+ <param>
+ <key>block_size</key>
+ <value>block</value>
+ </param>
+ <param>
+ <key>iterations</key>
+ <value>5</value>
+ </param>
+ <param>
+ <key>dim</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>table</key>
+ <value>1,0,1j,0,-1j,0,-1,0,1,0,1j,0,-1j,0,-1,0</value>
+ </param>
+ <param>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_EUCLIDEAN</value>
+ </param>
+ <param>
+ <key>siso_type</key>
+ <value>trellis.TRELLIS_SUM_PRODUCT</value>
+ </param>
+ <param>
+ <key>scaling</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>affinity</key>
<value></value>
</param>
<param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(177, 10)</value>
+ <value>(241, 287)</value>
</param>
<param>
<key>_rotation</key>
- <value>180</value>
+ <value>0</value>
</param>
</block>
<connection>
diff --git a/gr-trellis/examples/grc/sccc1.grc
b/gr-trellis/examples/grc/sccc1.grc
index 2dbf581..f4a4673 100644
--- a/gr-trellis/examples/grc/sccc1.grc
+++ b/gr-trellis/examples/grc/sccc1.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Thu Jul 17 14:56:39 2014</timestamp>
+ <timestamp>Tue Jul 22 09:01:31 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -76,7 +76,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(593, 10)</value>
+ <value>(621, 10)</value>
</param>
<param>
<key>_rotation</key>
@@ -118,7 +118,7 @@
</param>
<param>
<key>value</key>
- <value>GNURADIO_SRC_DIR</value>
+ <value>"@FSM_FILE_INSTALL_DIR@"</value>
</param>
<param>
<key>_coordinate</key>
@@ -133,29 +133,6 @@
<key>variable</key>
<param>
<key>id</key>
- <value>GNURADIO_SRC_DIR</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>"/home/jank/src/gnuradio/"</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(656, 10)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>id</key>
<value>R</value>
</param>
<param>
@@ -493,140 +470,6 @@
</param>
</block>
<block>
- <key>trellis_sccc_decoder_x</key>
- <param>
- <key>id</key>
- <value>trellis_sccc_decoder_x_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>out_type</key>
- <value>s</value>
- </param>
- <param>
- <key>o_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
- </param>
- <param>
- <key>o_init_state</key>
- <value>0</value>
- </param>
- <param>
- <key>o_final_state</key>
- <value>-1</value>
- </param>
- <param>
- <key>i_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn2o3_4.fsm"</value>
- </param>
- <param>
- <key>i_init_state</key>
- <value>0</value>
- </param>
- <param>
- <key>i_final_state</key>
- <value>-1</value>
- </param>
- <param>
- <key>interleaver</key>
- <value>trellis.interleaver(block,666)</value>
- </param>
- <param>
- <key>block_size</key>
- <value>block</value>
- </param>
- <param>
- <key>iterations</key>
- <value>10</value>
- </param>
- <param>
- <key>siso_type</key>
- <value>trellis.TRELLIS_MIN_SUM</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(292, 280)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>trellis_sccc_encoder_xx</key>
- <param>
- <key>id</key>
- <value>trellis_sccc_encoder_xx_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>ss</value>
- </param>
- <param>
- <key>o_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
- </param>
- <param>
- <key>o_init_state</key>
- <value>0</value>
- </param>
- <param>
- <key>i_fsm_args</key>
-
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn2o3_4.fsm"</value>
- </param>
- <param>
- <key>i_init_state</key>
- <value>0</value>
- </param>
- <param>
- <key>interleaver_args</key>
- <value>trellis.interleaver(block,666)</value>
- </param>
- <param>
- <key>bl</key>
- <value>block</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(294, 154)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
<key>digital_chunks_to_symbols_xx</key>
<param>
<key>id</key>
@@ -918,6 +761,140 @@
<value>180</value>
</param>
</block>
+ <block>
+ <key>trellis_sccc_encoder_xx</key>
+ <param>
+ <key>id</key>
+ <value>trellis_sccc_encoder_xx_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>ss</value>
+ </param>
+ <param>
+ <key>o_fsm_args</key>
+ <value>prefix+"awgn1o2_4.fsm"</value>
+ </param>
+ <param>
+ <key>o_init_state</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>i_fsm_args</key>
+ <value>prefix+"awgn2o3_4.fsm"</value>
+ </param>
+ <param>
+ <key>i_init_state</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>interleaver_args</key>
+ <value>trellis.interleaver(block,666)</value>
+ </param>
+ <param>
+ <key>bl</key>
+ <value>block</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(294, 154)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>trellis_sccc_decoder_x</key>
+ <param>
+ <key>id</key>
+ <value>trellis_sccc_decoder_x_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>out_type</key>
+ <value>s</value>
+ </param>
+ <param>
+ <key>o_fsm_args</key>
+ <value>prefix+"awgn1o2_4.fsm"</value>
+ </param>
+ <param>
+ <key>o_init_state</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>o_final_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>i_fsm_args</key>
+ <value>prefix+"awgn2o3_4.fsm"</value>
+ </param>
+ <param>
+ <key>i_init_state</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>i_final_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>interleaver</key>
+ <value>trellis.interleaver(block,666)</value>
+ </param>
+ <param>
+ <key>block_size</key>
+ <value>block</value>
+ </param>
+ <param>
+ <key>iterations</key>
+ <value>10</value>
+ </param>
+ <param>
+ <key>siso_type</key>
+ <value>trellis.TRELLIS_MIN_SUM</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(292, 280)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
<connection>
<source_block_id>analog_random_source_x_0</source_block_id>
<sink_block_id>blocks_sub_xx_0</sink_block_id>
diff --git a/gr-trellis/grc/trellis_encoder_xx.xml
b/gr-trellis/grc/trellis_encoder_xx.xml
index fe9c38f..d877d53 100644
--- a/gr-trellis/grc/trellis_encoder_xx.xml
+++ b/gr-trellis/grc/trellis_encoder_xx.xml
@@ -6,72 +6,73 @@
-->
<block>
- <name>Trellis Encoder</name>
- <key>trellis_encoder_xx</key>
- <category>Trellis Coding</category>
- <import>from gnuradio import trellis</import>
- <make>trellis.encoder_$(type)(trellis.fsm($fsm_args),
$init_state)</make>
- <param>
- <name>Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Byte->Byte</name>
- <key>bb</key>
- <opt>input:byte</opt>
- <opt>output:byte</opt>
- </option>
- <option>
- <name>Byte->Short</name>
- <key>bs</key>
- <opt>input:byte</opt>
- <opt>output:short</opt>
- </option>
- <option>
- <name>Byte->Int</name>
- <key>bi</key>
- <opt>input:byte</opt>
- <opt>output:int</opt>
- </option>
- <option>
- <name>Short->Short</name>
- <key>ss</key>
- <opt>input:short</opt>
- <opt>output:short</opt>
- </option>
- <option>
- <name>Short->Int</name>
- <key>si</key>
- <opt>input:short</opt>
- <opt>output:int</opt>
- </option>
- <option>
- <name>Int->Int</name>
- <key>ii</key>
- <opt>input:int</opt>
- <opt>output:int</opt>
- </option>
- </param>
- <param>
- <name>FSM Args</name>
- <key>fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Initial State</name>
- <key>init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>$type.input</type>
- </sink>
- <source>
- <name>out</name>
- <type>$type.output</type>
- </source>
- <doc>
+ <name>Trellis Encoder</name>
+ <key>trellis_encoder_xx</key>
+ <category>Trellis Coding</category>
+ <import>from gnuradio import trellis</import>
+ <make>trellis.encoder_$(type)(trellis.fsm($fsm_args), $init_state)</make>
+ <param>
+ <name>Type</name>
+ <key>type</key>
+ <type>enum</type>
+ <option>
+ <name>Byte->Byte</name>
+ <key>bb</key>
+ <opt>input:byte</opt>
+ <opt>output:byte</opt>
+ </option>
+ <option>
+ <name>Byte->Short</name>
+ <key>bs</key>
+ <opt>input:byte</opt>
+ <opt>output:short</opt>
+ </option>
+ <option>
+ <name>Byte->Int</name>
+ <key>bi</key>
+ <opt>input:byte</opt>
+ <opt>output:int</opt>
+ </option>
+ <option>
+ <name>Short->Short</name>
+ <key>ss</key>
+ <opt>input:short</opt>
+ <opt>output:short</opt>
+ </option>
+ <option>
+ <name>Short->Int</name>
+ <key>si</key>
+ <opt>input:short</opt>
+ <opt>output:int</opt>
+ </option>
+ <option>
+ <name>Int->Int</name>
+ <key>ii</key>
+ <opt>input:int</opt>
+ <opt>output:int</opt>
+ </option>
+ </param>
+ <param>
+ <name>FSM Args</name>
+ <key>fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Initial State</name>
+ <key>init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <check>(isinstance(eval(""" $fsm_args """[1:-1], locals(),globals()), str)
and open($fsm_args).close()) or True</check>
+ <sink>
+ <name>in</name>
+ <type>$type.input</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$type.output</type>
+ </source>
+ <doc>
The fsm arguments are passed directly to the trellis.fsm() constructor.
- </doc>
+ </doc>
</block>
diff --git a/gr-trellis/grc/trellis_pccc_decoder_combined_xx.xml
b/gr-trellis/grc/trellis_pccc_decoder_combined_xx.xml
index 2583f08..9bb4b03 100644
--- a/gr-trellis/grc/trellis_pccc_decoder_combined_xx.xml
+++ b/gr-trellis/grc/trellis_pccc_decoder_combined_xx.xml
@@ -7,164 +7,166 @@
<block>
- <name>PCCC Decoder Combo</name>
- <key>trellis_pccc_decoder_combined_xx</key>
- <category>Trellis Coding</category>
- <import>from gnuradio import trellis, digital</import>
- <make>trellis.pccc_decoder_combined_$(type)$(out_type)(
- trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
- trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
- trellis.interleaver($interleaver),
- $block_size,
- $iterations,
- $siso_type,
- $dim, $table, $metric_type,
- $scaling)
- </make>
+ <name>PCCC Decoder Combo</name>
+ <key>trellis_pccc_decoder_combined_xx</key>
+ <category>Trellis Coding</category>
+ <import>from gnuradio import trellis, digital</import>
+ <make>trellis.pccc_decoder_combined_$(type)$(out_type)(
+ trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
+ trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
+ trellis.interleaver($interleaver),
+ $block_size,
+ $iterations,
+ $siso_type,
+ $dim, $table, $metric_type,
+ $scaling)
+ </make>
<callback>set_TABLE($table)</callback>
- <param>
- <name>Input Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Complex</name>
- <key>c</key>
- <opt>io:complex</opt>
- <opt>table:complex_vector</opt>
- </option>
- <option>
- <name>Float</name>
- <key>f</key>
- <opt>io:float</opt>
- <opt>table:real_vector</opt>
- </option>
- </param>
- <param>
- <name>Output Type</name>
- <key>out_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>FSM 1</name>
- <key>o_fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Initial State 1</name>
- <key>o_init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Final State 1</name>
- <key>o_final_state</key>
- <value>-1</value>
- <type>int</type>
- </param>
- <param>
- <name>FSM 2</name>
- <key>i_fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Initial State 2</name>
- <key>i_init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Final State 2</name>
- <key>i_final_state</key>
- <value>-1</value>
- <type>int</type>
- </param>
- <param>
- <name>Interleaver</name>
- <key>interleaver</key>
- <type>raw</type>
- </param>
- <param>
- <name>Block Size</name>
- <key>block_size</key>
- <type>int</type>
- </param>
- <param>
- <name>Iterations</name>
- <key>iterations</key>
- <value>10</value>
- <type>int</type>
- </param>
- <param>
- <name>Dimensionality</name>
- <key>dim</key>
- <type>int</type>
- </param>
- <param>
- <name>Constellation</name>
- <key>table</key>
- <type>$type.table</type>
- </param>
- <param>
- <name>Metric Type</name>
- <key>metric_type</key>
- <type>enum</type>
- <option>
- <name>Euclidean</name>
- <key>digital.TRELLIS_EUCLIDEAN</key>
- </option>
- <option>
- <name>Hard Symbol</name>
- <key>digital.TRELLIS_HARD_SYMBOL</key>
- </option>
- <option>
- <name>Hard Bit</name>
- <key>digital.TRELLIS_HARD_BIT</key>
- </option>
- </param>
- <param>
- <name>SISO Type</name>
- <key>siso_type</key>
- <type>enum</type>
- <option>
- <name>Min Sum</name>
- <key>trellis.TRELLIS_MIN_SUM</key>
- </option>
- <option>
- <name>Sum Product</name>
- <key>trellis.TRELLIS_SUM_PRODUCT</key>
- </option>
- </param>
- <param>
- <name>Scaling</name>
- <key>scaling</key>
- <value>1.0</value>
- <type>real</type>
- </param>
- <sink>
- <name>in</name>
- <type>$type.io</type>
- </sink>
- <source>
- <name>out</name>
- <type>$out_type.io</type>
- </source>
- <doc>
+ <param>
+ <name>Input Type</name>
+ <key>type</key>
+ <type>enum</type>
+ <option>
+ <name>Complex</name>
+ <key>c</key>
+ <opt>io:complex</opt>
+ <opt>table:complex_vector</opt>
+ </option>
+ <option>
+ <name>Float</name>
+ <key>f</key>
+ <opt>io:float</opt>
+ <opt>table:real_vector</opt>
+ </option>
+ </param>
+ <param>
+ <name>Output Type</name>
+ <key>out_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>FSM 1</name>
+ <key>o_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Initial State 1</name>
+ <key>o_init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Final State 1</name>
+ <key>o_final_state</key>
+ <value>-1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>FSM 2</name>
+ <key>i_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Initial State 2</name>
+ <key>i_init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Final State 2</name>
+ <key>i_final_state</key>
+ <value>-1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Interleaver</name>
+ <key>interleaver</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Block Size</name>
+ <key>block_size</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Iterations</name>
+ <key>iterations</key>
+ <value>10</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Dimensionality</name>
+ <key>dim</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Constellation</name>
+ <key>table</key>
+ <type>$type.table</type>
+ </param>
+ <param>
+ <name>Metric Type</name>
+ <key>metric_type</key>
+ <type>enum</type>
+ <option>
+ <name>Euclidean</name>
+ <key>digital.TRELLIS_EUCLIDEAN</key>
+ </option>
+ <option>
+ <name>Hard Symbol</name>
+ <key>digital.TRELLIS_HARD_SYMBOL</key>
+ </option>
+ <option>
+ <name>Hard Bit</name>
+ <key>digital.TRELLIS_HARD_BIT</key>
+ </option>
+ </param>
+ <param>
+ <name>SISO Type</name>
+ <key>siso_type</key>
+ <type>enum</type>
+ <option>
+ <name>Min Sum</name>
+ <key>trellis.TRELLIS_MIN_SUM</key>
+ </option>
+ <option>
+ <name>Sum Product</name>
+ <key>trellis.TRELLIS_SUM_PRODUCT</key>
+ </option>
+ </param>
+ <param>
+ <name>Scaling</name>
+ <key>scaling</key>
+ <value>1.0</value>
+ <type>real</type>
+ </param>
+ <check>(isinstance(eval(""" $o_fsm_args """[1:-1], locals(),globals()), str)
and open($o_fsm_args).close()) or True</check>
+ <check>(isinstance(eval(""" $i_fsm_args """[1:-1], locals(),globals()), str)
and open($i_fsm_args).close()) or True </check>
+ <sink>
+ <name>in</name>
+ <type>$type.io</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$out_type.io</type>
+ </source>
+ <doc>
PCCC turbo Decoder combined with metric calculation.
The fsm arguments are passed directly to the trellis.fsm() constructor.
- </doc>
+ </doc>
</block>
diff --git a/gr-trellis/grc/trellis_pccc_decoder_x.xml
b/gr-trellis/grc/trellis_pccc_decoder_x.xml
index 0467315..81f4282 100644
--- a/gr-trellis/grc/trellis_pccc_decoder_x.xml
+++ b/gr-trellis/grc/trellis_pccc_decoder_x.xml
@@ -7,111 +7,113 @@
<block>
- <name>PCCC Decoder</name>
- <key>trellis_pccc_decoder_x</key>
- <category>Trellis Coding</category>
- <import>from gnuradio import trellis</import>
- <make>trellis.pccc_decoder_$(out_type)(
- trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
- trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
- trellis.interleaver($interleaver),
- $block_size,
- $iterations,
+ <name>PCCC Decoder</name>
+ <key>trellis_pccc_decoder_x</key>
+ <category>Trellis Coding</category>
+ <import>from gnuradio import trellis</import>
+ <make>trellis.pccc_decoder_$(out_type)(
+ trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
+ trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
+ trellis.interleaver($interleaver),
+ $block_size,
+ $iterations,
$siso_type)
- </make>
- <param>
- <name>Output Type</name>
- <key>out_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>FSM 1</name>
- <key>o_fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Initial State 1</name>
- <key>o_init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Final State 1</name>
- <key>o_final_state</key>
- <value>-1</value>
- <type>int</type>
- </param>
- <param>
- <name>FSM 2</name>
- <key>i_fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Initial State 2</name>
- <key>i_init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Final State 2</name>
- <key>i_final_state</key>
- <value>-1</value>
- <type>int</type>
- </param>
- <param>
- <name>Interleaver</name>
- <key>interleaver</key>
- <type>raw</type>
- </param>
- <param>
- <name>Block Size</name>
- <key>block_size</key>
- <type>int</type>
- </param>
- <param>
- <name>Iterations</name>
- <key>iterations</key>
- <value>10</value>
- <type>int</type>
- </param>
- <param>
- <name>SISO Type</name>
- <key>siso_type</key>
- <type>enum</type>
- <option>
- <name>Min Sum</name>
- <key>trellis.TRELLIS_MIN_SUM</key>
- </option>
- <option>
- <name>Sum Product</name>
- <key>trellis.TRELLIS_SUM_PRODUCT</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>float</type>
- </sink>
- <source>
- <name>out</name>
- <type>$out_type.io</type>
- </source>
- <doc>
+ </make>
+ <param>
+ <name>Output Type</name>
+ <key>out_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>FSM 1</name>
+ <key>o_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Initial State 1</name>
+ <key>o_init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Final State 1</name>
+ <key>o_final_state</key>
+ <value>-1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>FSM 2</name>
+ <key>i_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Initial State 2</name>
+ <key>i_init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Final State 2</name>
+ <key>i_final_state</key>
+ <value>-1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Interleaver</name>
+ <key>interleaver</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Block Size</name>
+ <key>block_size</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Iterations</name>
+ <key>iterations</key>
+ <value>10</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>SISO Type</name>
+ <key>siso_type</key>
+ <type>enum</type>
+ <option>
+ <name>Min Sum</name>
+ <key>trellis.TRELLIS_MIN_SUM</key>
+ </option>
+ <option>
+ <name>Sum Product</name>
+ <key>trellis.TRELLIS_SUM_PRODUCT</key>
+ </option>
+ </param>
+ <check>(isinstance(eval(""" $o_fsm_args """[1:-1], locals(),globals()), str)
and open($o_fsm_args).close()) or True</check>
+ <check>(isinstance(eval(""" $i_fsm_args """[1:-1], locals(),globals()), str)
and open($i_fsm_args).close()) or True </check>
+ <sink>
+ <name>in</name>
+ <type>float</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$out_type.io</type>
+ </source>
+ <doc>
PCCC turbo Decoder.
The fsm and interleaver arguments are passed directly to the trellis.fsm() and
trellis.interleaver() constructors.
- </doc>
+ </doc>
</block>
diff --git a/gr-trellis/grc/trellis_pccc_encoder_xx.xml
b/gr-trellis/grc/trellis_pccc_encoder_xx.xml
index 7441ba8..faaa0c1 100644
--- a/gr-trellis/grc/trellis_pccc_encoder_xx.xml
+++ b/gr-trellis/grc/trellis_pccc_encoder_xx.xml
@@ -6,93 +6,95 @@
-->
<block>
- <name>PCCC Encoder</name>
- <key>trellis_pccc_encoder_xx</key>
- <category>Trellis Coding</category>
- <import>from gnuradio import trellis</import>
- <make>trellis.pccc_encoder_$(type)(trellis.fsm($o_fsm_args),
$o_init_state, trellis.fsm($i_fsm_args), $i_init_state,
trellis.interleaver($interleaver_args), $bl)</make>
- <param>
- <name>Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Byte->Byte</name>
- <key>bb</key>
- <opt>input:byte</opt>
- <opt>output:byte</opt>
- </option>
- <option>
- <name>Byte->Short</name>
- <key>bs</key>
- <opt>input:byte</opt>
- <opt>output:short</opt>
- </option>
- <option>
- <name>Byte->Int</name>
- <key>bi</key>
- <opt>input:byte</opt>
- <opt>output:int</opt>
- </option>
- <option>
- <name>Short->Short</name>
- <key>ss</key>
- <opt>input:short</opt>
- <opt>output:short</opt>
- </option>
- <option>
- <name>Short->Int</name>
- <key>si</key>
- <opt>input:short</opt>
- <opt>output:int</opt>
- </option>
- <option>
- <name>Int->Int</name>
- <key>ii</key>
- <opt>input:int</opt>
- <opt>output:int</opt>
- </option>
- </param>
- <param>
- <name>FSM 1</name>
- <key>o_fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Initial State 1</name>
- <key>o_init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>FSM 2</name>
- <key>i_fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Initial State 2</name>
- <key>i_init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Interleaver</name>
- <key>interleaver_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Blocklength</name>
- <key>bl</key>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>$type.input</type>
- </sink>
- <source>
- <name>out</name>
- <type>$type.output</type>
- </source>
- <doc>
+ <name>PCCC Encoder</name>
+ <key>trellis_pccc_encoder_xx</key>
+ <category>Trellis Coding</category>
+ <import>from gnuradio import trellis</import>
+ <make>trellis.pccc_encoder_$(type)(trellis.fsm($o_fsm_args), $o_init_state,
trellis.fsm($i_fsm_args), $i_init_state,
trellis.interleaver($interleaver_args), $bl)</make>
+ <param>
+ <name>Type</name>
+ <key>type</key>
+ <type>enum</type>
+ <option>
+ <name>Byte->Byte</name>
+ <key>bb</key>
+ <opt>input:byte</opt>
+ <opt>output:byte</opt>
+ </option>
+ <option>
+ <name>Byte->Short</name>
+ <key>bs</key>
+ <opt>input:byte</opt>
+ <opt>output:short</opt>
+ </option>
+ <option>
+ <name>Byte->Int</name>
+ <key>bi</key>
+ <opt>input:byte</opt>
+ <opt>output:int</opt>
+ </option>
+ <option>
+ <name>Short->Short</name>
+ <key>ss</key>
+ <opt>input:short</opt>
+ <opt>output:short</opt>
+ </option>
+ <option>
+ <name>Short->Int</name>
+ <key>si</key>
+ <opt>input:short</opt>
+ <opt>output:int</opt>
+ </option>
+ <option>
+ <name>Int->Int</name>
+ <key>ii</key>
+ <opt>input:int</opt>
+ <opt>output:int</opt>
+ </option>
+ </param>
+ <param>
+ <name>FSM 1</name>
+ <key>o_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Initial State 1</name>
+ <key>o_init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>FSM 2</name>
+ <key>i_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Initial State 2</name>
+ <key>i_init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Interleaver</name>
+ <key>interleaver_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Blocklength</name>
+ <key>bl</key>
+ <type>int</type>
+ </param>
+ <check>(isinstance(eval(""" $o_fsm_args """[1:-1], locals(),globals()), str)
and open($o_fsm_args).close()) or True</check>
+ <check>(isinstance(eval(""" $i_fsm_args """[1:-1], locals(),globals()), str)
and open($i_fsm_args).close()) or True </check>
+ <sink>
+ <name>in</name>
+ <type>$type.input</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$type.output</type>
+ </source>
+ <doc>
The fsm and interleaver arguments are passed directly to the trellis.fsm() and
trellis.interleaver() constructors.
- </doc>
+ </doc>
</block>
diff --git a/gr-trellis/grc/trellis_sccc_decoder_combined_xx.xml
b/gr-trellis/grc/trellis_sccc_decoder_combined_xx.xml
index eee4e2b..bacc16c 100644
--- a/gr-trellis/grc/trellis_sccc_decoder_combined_xx.xml
+++ b/gr-trellis/grc/trellis_sccc_decoder_combined_xx.xml
@@ -7,164 +7,166 @@
<block>
- <name>SCCC Decoder Combo</name>
- <key>trellis_sccc_decoder_combined_xx</key>
- <category>Trellis Coding</category>
- <import>from gnuradio import trellis, digital</import>
- <make>trellis.sccc_decoder_combined_$(type)$(out_type)(
- trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
- trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
- trellis.interleaver($interleaver),
- $block_size,
- $iterations,
+ <name>SCCC Decoder Combo</name>
+ <key>trellis_sccc_decoder_combined_xx</key>
+ <category>Trellis Coding</category>
+ <import>from gnuradio import trellis, digital</import>
+ <make>trellis.sccc_decoder_combined_$(type)$(out_type)(
+ trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
+ trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
+ trellis.interleaver($interleaver),
+ $block_size,
+ $iterations,
$siso_type,
- $dim, $table, $metric_type,
- $scaling)
- </make>
+ $dim, $table, $metric_type,
+ $scaling)
+ </make>
<callback>set_TABLE($table)</callback>
- <param>
- <name>Input Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Complex</name>
- <key>c</key>
- <opt>io:complex</opt>
- <opt>table:complex_vector</opt>
- </option>
- <option>
- <name>Float</name>
- <key>f</key>
- <opt>io:float</opt>
- <opt>table:real_vector</opt>
- </option>
- </param>
- <param>
- <name>Output Type</name>
- <key>out_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>Outer FSM</name>
- <key>o_fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Outer Initial State</name>
- <key>o_init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Outer Final State</name>
- <key>o_final_state</key>
- <value>-1</value>
- <type>int</type>
- </param>
- <param>
- <name>Inner FSM</name>
- <key>i_fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Inner Initial State</name>
- <key>i_init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Inner Final State</name>
- <key>i_final_state</key>
- <value>-1</value>
- <type>int</type>
- </param>
- <param>
- <name>Interleaver</name>
- <key>interleaver</key>
- <type>raw</type>
- </param>
- <param>
- <name>Block Size</name>
- <key>block_size</key>
- <type>int</type>
- </param>
- <param>
- <name>Iterations</name>
- <key>iterations</key>
- <value>10</value>
- <type>int</type>
- </param>
- <param>
- <name>Dimensionality</name>
- <key>dim</key>
- <type>int</type>
- </param>
- <param>
- <name>Constellation</name>
- <key>table</key>
- <type>$type.table</type>
- </param>
- <param>
- <name>Metric Type</name>
- <key>metric_type</key>
- <type>enum</type>
- <option>
- <name>Euclidean</name>
- <key>digital.TRELLIS_EUCLIDEAN</key>
- </option>
- <option>
- <name>Hard Symbol</name>
- <key>digital.TRELLIS_HARD_SYMBOL</key>
- </option>
- <option>
- <name>Hard Bit</name>
- <key>digital.TRELLIS_HARD_BIT</key>
- </option>
- </param>
- <param>
- <name>SISO Type</name>
- <key>siso_type</key>
- <type>enum</type>
- <option>
- <name>Min Sum</name>
- <key>trellis.TRELLIS_MIN_SUM</key>
- </option>
- <option>
- <name>Sum Product</name>
- <key>trellis.TRELLIS_SUM_PRODUCT</key>
- </option>
- </param>
- <param>
- <name>Scaling</name>
- <key>scaling</key>
- <value>1.0</value>
- <type>real</type>
- </param>
- <sink>
- <name>in</name>
- <type>$type.io</type>
- </sink>
- <source>
- <name>out</name>
- <type>$out_type.io</type>
- </source>
- <doc>
+ <param>
+ <name>Input Type</name>
+ <key>type</key>
+ <type>enum</type>
+ <option>
+ <name>Complex</name>
+ <key>c</key>
+ <opt>io:complex</opt>
+ <opt>table:complex_vector</opt>
+ </option>
+ <option>
+ <name>Float</name>
+ <key>f</key>
+ <opt>io:float</opt>
+ <opt>table:real_vector</opt>
+ </option>
+ </param>
+ <param>
+ <name>Output Type</name>
+ <key>out_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>Outer FSM</name>
+ <key>o_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Outer Initial State</name>
+ <key>o_init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Outer Final State</name>
+ <key>o_final_state</key>
+ <value>-1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Inner FSM</name>
+ <key>i_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Inner Initial State</name>
+ <key>i_init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Inner Final State</name>
+ <key>i_final_state</key>
+ <value>-1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Interleaver</name>
+ <key>interleaver</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Block Size</name>
+ <key>block_size</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Iterations</name>
+ <key>iterations</key>
+ <value>10</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Dimensionality</name>
+ <key>dim</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Constellation</name>
+ <key>table</key>
+ <type>$type.table</type>
+ </param>
+ <param>
+ <name>Metric Type</name>
+ <key>metric_type</key>
+ <type>enum</type>
+ <option>
+ <name>Euclidean</name>
+ <key>digital.TRELLIS_EUCLIDEAN</key>
+ </option>
+ <option>
+ <name>Hard Symbol</name>
+ <key>digital.TRELLIS_HARD_SYMBOL</key>
+ </option>
+ <option>
+ <name>Hard Bit</name>
+ <key>digital.TRELLIS_HARD_BIT</key>
+ </option>
+ </param>
+ <param>
+ <name>SISO Type</name>
+ <key>siso_type</key>
+ <type>enum</type>
+ <option>
+ <name>Min Sum</name>
+ <key>trellis.TRELLIS_MIN_SUM</key>
+ </option>
+ <option>
+ <name>Sum Product</name>
+ <key>trellis.TRELLIS_SUM_PRODUCT</key>
+ </option>
+ </param>
+ <param>
+ <name>Scaling</name>
+ <key>scaling</key>
+ <value>1.0</value>
+ <type>real</type>
+ </param>
+ <check>(isinstance(eval(""" $o_fsm_args """[1:-1], locals(),globals()), str)
and open($o_fsm_args).close()) or True</check>
+ <check>(isinstance(eval(""" $i_fsm_args """[1:-1], locals(),globals()), str)
and open($i_fsm_args).close()) or True </check>
+ <sink>
+ <name>in</name>
+ <type>$type.io</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$out_type.io</type>
+ </source>
+ <doc>
SCCC turbo Decoder combined with metric calculation.
The fsm arguments are passed directly to the trellis.fsm() constructor.
- </doc>
+ </doc>
</block>
diff --git a/gr-trellis/grc/trellis_sccc_decoder_x.xml
b/gr-trellis/grc/trellis_sccc_decoder_x.xml
index ac65a6a..38348cb 100644
--- a/gr-trellis/grc/trellis_sccc_decoder_x.xml
+++ b/gr-trellis/grc/trellis_sccc_decoder_x.xml
@@ -7,111 +7,113 @@
<block>
- <name>SCCC Decoder</name>
- <key>trellis_sccc_decoder_x</key>
- <category>Trellis Coding</category>
- <import>from gnuradio import trellis</import>
- <make>trellis.sccc_decoder_$(out_type)(
- trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
- trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
- trellis.interleaver($interleaver),
- $block_size,
- $iterations,
+ <name>SCCC Decoder</name>
+ <key>trellis_sccc_decoder_x</key>
+ <category>Trellis Coding</category>
+ <import>from gnuradio import trellis</import>
+ <make>trellis.sccc_decoder_$(out_type)(
+ trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
+ trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
+ trellis.interleaver($interleaver),
+ $block_size,
+ $iterations,
$siso_type)
- </make>
- <param>
- <name>Output Type</name>
- <key>out_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>Outer FSM</name>
- <key>o_fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Outer Initial State</name>
- <key>o_init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Outer Final State</name>
- <key>o_final_state</key>
- <value>-1</value>
- <type>int</type>
- </param>
- <param>
- <name>Inner FSM</name>
- <key>i_fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Inner Initial State</name>
- <key>i_init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Inner Final State</name>
- <key>i_final_state</key>
- <value>-1</value>
- <type>int</type>
- </param>
- <param>
- <name>Interleaver</name>
- <key>interleaver</key>
- <type>raw</type>
- </param>
- <param>
- <name>Block Size</name>
- <key>block_size</key>
- <type>int</type>
- </param>
- <param>
- <name>Iterations</name>
- <key>iterations</key>
- <value>10</value>
- <type>int</type>
- </param>
- <param>
- <name>SISO Type</name>
- <key>siso_type</key>
- <type>enum</type>
- <option>
- <name>Min Sum</name>
- <key>trellis.TRELLIS_MIN_SUM</key>
- </option>
- <option>
- <name>Sum Product</name>
- <key>trellis.TRELLIS_SUM_PRODUCT</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>float</type>
- </sink>
- <source>
- <name>out</name>
- <type>$out_type.io</type>
- </source>
- <doc>
+ </make>
+ <param>
+ <name>Output Type</name>
+ <key>out_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>Outer FSM</name>
+ <key>o_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Outer Initial State</name>
+ <key>o_init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Outer Final State</name>
+ <key>o_final_state</key>
+ <value>-1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Inner FSM</name>
+ <key>i_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Inner Initial State</name>
+ <key>i_init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Inner Final State</name>
+ <key>i_final_state</key>
+ <value>-1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Interleaver</name>
+ <key>interleaver</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Block Size</name>
+ <key>block_size</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Iterations</name>
+ <key>iterations</key>
+ <value>10</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>SISO Type</name>
+ <key>siso_type</key>
+ <type>enum</type>
+ <option>
+ <name>Min Sum</name>
+ <key>trellis.TRELLIS_MIN_SUM</key>
+ </option>
+ <option>
+ <name>Sum Product</name>
+ <key>trellis.TRELLIS_SUM_PRODUCT</key>
+ </option>
+ </param>
+ <check>(isinstance(eval(""" $o_fsm_args """[1:-1], locals(),globals()), str)
and open($o_fsm_args).close()) or True</check>
+ <check>(isinstance(eval(""" $i_fsm_args """[1:-1], locals(),globals()), str)
and open($i_fsm_args).close()) or True </check>
+ <sink>
+ <name>in</name>
+ <type>float</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$out_type.io</type>
+ </source>
+ <doc>
SCCC turbo Decoder.
The fsm and interleaver arguments are passed directly to the trellis.fsm() and
trellis.interleaver() constructors.
- </doc>
+ </doc>
</block>
diff --git a/gr-trellis/grc/trellis_sccc_encoder_xx.xml
b/gr-trellis/grc/trellis_sccc_encoder_xx.xml
index f1054bf..a87db79 100644
--- a/gr-trellis/grc/trellis_sccc_encoder_xx.xml
+++ b/gr-trellis/grc/trellis_sccc_encoder_xx.xml
@@ -6,93 +6,95 @@
-->
<block>
- <name>SCCC Encoder</name>
- <key>trellis_sccc_encoder_xx</key>
- <category>Trellis Coding</category>
- <import>from gnuradio import trellis</import>
- <make>trellis.sccc_encoder_$(type)(trellis.fsm($o_fsm_args),
$o_init_state, trellis.fsm($i_fsm_args), $i_init_state,
trellis.interleaver($interleaver_args), $bl)</make>
- <param>
- <name>Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Byte->Byte</name>
- <key>bb</key>
- <opt>input:byte</opt>
- <opt>output:byte</opt>
- </option>
- <option>
- <name>Byte->Short</name>
- <key>bs</key>
- <opt>input:byte</opt>
- <opt>output:short</opt>
- </option>
- <option>
- <name>Byte->Int</name>
- <key>bi</key>
- <opt>input:byte</opt>
- <opt>output:int</opt>
- </option>
- <option>
- <name>Short->Short</name>
- <key>ss</key>
- <opt>input:short</opt>
- <opt>output:short</opt>
- </option>
- <option>
- <name>Short->Int</name>
- <key>si</key>
- <opt>input:short</opt>
- <opt>output:int</opt>
- </option>
- <option>
- <name>Int->Int</name>
- <key>ii</key>
- <opt>input:int</opt>
- <opt>output:int</opt>
- </option>
- </param>
- <param>
- <name>Outer FSM</name>
- <key>o_fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Outer Initial State</name>
- <key>o_init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Inner FSM</name>
- <key>i_fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Inner Initial State</name>
- <key>i_init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Interleaver</name>
- <key>interleaver_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Blocklength</name>
- <key>bl</key>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>$type.input</type>
- </sink>
- <source>
- <name>out</name>
- <type>$type.output</type>
- </source>
- <doc>
+ <name>SCCC Encoder</name>
+ <key>trellis_sccc_encoder_xx</key>
+ <category>Trellis Coding</category>
+ <import>from gnuradio import trellis</import>
+ <make>trellis.sccc_encoder_$(type)(trellis.fsm($o_fsm_args), $o_init_state,
trellis.fsm($i_fsm_args), $i_init_state,
trellis.interleaver($interleaver_args), $bl)</make>
+ <param>
+ <name>Type</name>
+ <key>type</key>
+ <type>enum</type>
+ <option>
+ <name>Byte->Byte</name>
+ <key>bb</key>
+ <opt>input:byte</opt>
+ <opt>output:byte</opt>
+ </option>
+ <option>
+ <name>Byte->Short</name>
+ <key>bs</key>
+ <opt>input:byte</opt>
+ <opt>output:short</opt>
+ </option>
+ <option>
+ <name>Byte->Int</name>
+ <key>bi</key>
+ <opt>input:byte</opt>
+ <opt>output:int</opt>
+ </option>
+ <option>
+ <name>Short->Short</name>
+ <key>ss</key>
+ <opt>input:short</opt>
+ <opt>output:short</opt>
+ </option>
+ <option>
+ <name>Short->Int</name>
+ <key>si</key>
+ <opt>input:short</opt>
+ <opt>output:int</opt>
+ </option>
+ <option>
+ <name>Int->Int</name>
+ <key>ii</key>
+ <opt>input:int</opt>
+ <opt>output:int</opt>
+ </option>
+ </param>
+ <param>
+ <name>Outer FSM</name>
+ <key>o_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Outer Initial State</name>
+ <key>o_init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Inner FSM</name>
+ <key>i_fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Inner Initial State</name>
+ <key>i_init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Interleaver</name>
+ <key>interleaver_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Blocklength</name>
+ <key>bl</key>
+ <type>int</type>
+ </param>
+ <check>(isinstance(eval(""" $o_fsm_args """[1:-1], locals(),globals()), str)
and open($o_fsm_args).close()) or True</check>
+ <check>(isinstance(eval(""" $i_fsm_args """[1:-1], locals(),globals()), str)
and open($i_fsm_args).close()) or True </check>
+ <sink>
+ <name>in</name>
+ <type>$type.input</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$type.output</type>
+ </source>
+ <doc>
The fsm and interleaver arguments are passed directly to the trellis.fsm() and
trellis.interleaver() constructors.
- </doc>
+ </doc>
</block>
diff --git a/gr-trellis/grc/trellis_siso_f.xml
b/gr-trellis/grc/trellis_siso_f.xml
index 523e6a3..67eeb27 100644
--- a/gr-trellis/grc/trellis_siso_f.xml
+++ b/gr-trellis/grc/trellis_siso_f.xml
@@ -7,82 +7,83 @@
<block>
- <name>SISO</name>
- <key>trellis_siso_f</key>
- <category>Trellis Coding</category>
- <import>from gnuradio import trellis</import>
- <make>trellis.siso_f(trellis.fsm($fsm_args), $block_size, $init_state,
$final_state, $a_post_in, $a_post_out, $siso_type)</make>
- <param>
- <name>FSM Args</name>
- <key>fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Block Size</name>
- <key>block_size</key>
- <type>int</type>
- </param>
- <param>
- <name>Initial State</name>
- <key>init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Final State</name>
- <key>final_state</key>
- <value>-1</value>
- <type>int</type>
- </param>
- <param>
- <name>A-posteriori In</name>
- <key>a_post_in</key>
- <type>enum</type>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>A-posteriori Out</name>
- <key>a_post_out</key>
- <type>enum</type>
- <option>
- <name>Yes</name>
- <key>True</key>
- </option>
- <option>
- <name>No</name>
- <key>False</key>
- </option>
- </param>
- <param>
- <name>SISO Type</name>
- <key>siso_type</key>
- <type>enum</type>
- <option>
- <name>Min Sum</name>
- <key>trellis.TRELLIS_MIN_SUM</key>
- </option>
- <option>
- <name>Sum Product</name>
- <key>trellis.TRELLIS_SUM_PRODUCT</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>float</type>
- </sink>
- <source>
- <name>out</name>
- <type>float</type>
- </source>
- <doc>
+ <name>SISO</name>
+ <key>trellis_siso_f</key>
+ <category>Trellis Coding</category>
+ <import>from gnuradio import trellis</import>
+ <make>trellis.siso_f(trellis.fsm($fsm_args), $block_size, $init_state,
$final_state, $a_post_in, $a_post_out, $siso_type)</make>
+ <param>
+ <name>FSM Args</name>
+ <key>fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Block Size</name>
+ <key>block_size</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Initial State</name>
+ <key>init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Final State</name>
+ <key>final_state</key>
+ <value>-1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>A-posteriori In</name>
+ <key>a_post_in</key>
+ <type>enum</type>
+ <option>
+ <name>Yes</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>A-posteriori Out</name>
+ <key>a_post_out</key>
+ <type>enum</type>
+ <option>
+ <name>Yes</name>
+ <key>True</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>False</key>
+ </option>
+ </param>
+ <param>
+ <name>SISO Type</name>
+ <key>siso_type</key>
+ <type>enum</type>
+ <option>
+ <name>Min Sum</name>
+ <key>trellis.TRELLIS_MIN_SUM</key>
+ </option>
+ <option>
+ <name>Sum Product</name>
+ <key>trellis.TRELLIS_SUM_PRODUCT</key>
+ </option>
+ </param>
+ <check>(isinstance(eval(""" $fsm_args """[1:-1], locals(),globals()), str)
and open($fsm_args).close()) or True</check>
+ <sink>
+ <name>in</name>
+ <type>float</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>float</type>
+ </source>
+ <doc>
BCJR Algorithm. \
The fsm arguments are passed directly to the trellis.fsm() constructor.
- </doc>
+ </doc>
</block>
diff --git a/gr-trellis/grc/trellis_viterbi_combined_xx.xml
b/gr-trellis/grc/trellis_viterbi_combined_xx.xml
index 7faf735..81b4986 100644
--- a/gr-trellis/grc/trellis_viterbi_combined_xx.xml
+++ b/gr-trellis/grc/trellis_viterbi_combined_xx.xml
@@ -7,120 +7,121 @@
<block>
- <name>Viterbi Combo</name>
- <key>trellis_viterbi_combined_xx</key>
- <category>Trellis Coding</category>
- <import>from gnuradio import trellis, digital</import>
-
<make>trellis.viterbi_combined_$(type)$(out_type)(trellis.fsm($fsm_args),
$block_size, $init_state, $final_state, $dim, $table, $metric_type)</make>
+ <name>Viterbi Combo</name>
+ <key>trellis_viterbi_combined_xx</key>
+ <category>Trellis Coding</category>
+ <import>from gnuradio import trellis, digital</import>
+ <make>trellis.viterbi_combined_$(type)$(out_type)(trellis.fsm($fsm_args),
$block_size, $init_state, $final_state, $dim, $table, $metric_type)</make>
<callback>set_TABLE($table)</callback>
- <param>
- <name>Input Type</name>
- <key>type</key>
- <type>enum</type>
- <option>
- <name>Complex</name>
- <key>c</key>
- <opt>io:complex</opt>
- <opt>table:complex_vector</opt>
- </option>
- <option>
- <name>Float</name>
- <key>f</key>
- <opt>io:float</opt>
- <opt>table:real_vector</opt>
- </option>
- <option>
- <name>Int</name>
- <key>i</key>
- <opt>io:int</opt>
- <opt>table:int_vector</opt>
- </option>
- <option>
- <name>Short</name>
- <key>s</key>
- <opt>io:short</opt>
- <opt>table:int_vector</opt>
- </option>
- </param>
- <param>
- <name>Output Type</name>
- <key>out_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>FSM Args</name>
- <key>fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Block Size</name>
- <key>block_size</key>
- <type>int</type>
- </param>
- <param>
- <name>Initial State</name>
- <key>init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Final State</name>
- <key>final_state</key>
- <value>-1</value>
- <type>int</type>
- </param>
- <param>
- <name>Dimensionality</name>
- <key>dim</key>
- <type>int</type>
- </param>
- <param>
- <name>Constellation</name>
- <key>table</key>
- <type>$type.table</type>
- </param>
- <param>
- <name>Metric Type</name>
- <key>metric_type</key>
- <type>enum</type>
- <option>
- <name>Euclidean</name>
- <key>digital.TRELLIS_EUCLIDEAN</key>
- </option>
- <option>
- <name>Hard Symbol</name>
- <key>digital.TRELLIS_HARD_SYMBOL</key>
- </option>
- <option>
- <name>Hard Bit</name>
- <key>digital.TRELLIS_HARD_BIT</key>
- </option>
- </param>
- <sink>
- <name>in</name>
- <type>$type.io</type>
- </sink>
- <source>
- <name>out</name>
- <type>$out_type.io</type>
- </source>
- <doc>
+ <param>
+ <name>Input Type</name>
+ <key>type</key>
+ <type>enum</type>
+ <option>
+ <name>Complex</name>
+ <key>c</key>
+ <opt>io:complex</opt>
+ <opt>table:complex_vector</opt>
+ </option>
+ <option>
+ <name>Float</name>
+ <key>f</key>
+ <opt>io:float</opt>
+ <opt>table:real_vector</opt>
+ </option>
+ <option>
+ <name>Int</name>
+ <key>i</key>
+ <opt>io:int</opt>
+ <opt>table:int_vector</opt>
+ </option>
+ <option>
+ <name>Short</name>
+ <key>s</key>
+ <opt>io:short</opt>
+ <opt>table:int_vector</opt>
+ </option>
+ </param>
+ <param>
+ <name>Output Type</name>
+ <key>out_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>FSM Args</name>
+ <key>fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Block Size</name>
+ <key>block_size</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Initial State</name>
+ <key>init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Final State</name>
+ <key>final_state</key>
+ <value>-1</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Dimensionality</name>
+ <key>dim</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Constellation</name>
+ <key>table</key>
+ <type>$type.table</type>
+ </param>
+ <param>
+ <name>Metric Type</name>
+ <key>metric_type</key>
+ <type>enum</type>
+ <option>
+ <name>Euclidean</name>
+ <key>digital.TRELLIS_EUCLIDEAN</key>
+ </option>
+ <option>
+ <name>Hard Symbol</name>
+ <key>digital.TRELLIS_HARD_SYMBOL</key>
+ </option>
+ <option>
+ <name>Hard Bit</name>
+ <key>digital.TRELLIS_HARD_BIT</key>
+ </option>
+ </param>
+ <check>(isinstance(eval(""" $fsm_args """[1:-1], locals(),globals()), str)
and open($fsm_args).close()) or True</check>
+ <sink>
+ <name>in</name>
+ <type>$type.io</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$out_type.io</type>
+ </source>
+ <doc>
Viterbi Decoder combined with metric calculation. \
The fsm arguments are passed directly to the trellis.fsm() constructor.
- </doc>
+ </doc>
</block>
diff --git a/gr-trellis/grc/trellis_viterbi_x.xml
b/gr-trellis/grc/trellis_viterbi_x.xml
index 861b23f..734bb53 100644
--- a/gr-trellis/grc/trellis_viterbi_x.xml
+++ b/gr-trellis/grc/trellis_viterbi_x.xml
@@ -7,63 +7,64 @@
<block>
- <name>Viterbi</name>
- <key>trellis_viterbi_x</key>
- <category>Trellis Coding</category>
- <import>from gnuradio import trellis</import>
- <make>trellis.viterbi_$(type)(trellis.fsm($fsm_args), $block_size,
$init_state, $final_state)</make>
- <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>FSM Args</name>
- <key>fsm_args</key>
- <type>raw</type>
- </param>
- <param>
- <name>Block Size</name>
- <key>block_size</key>
- <type>int</type>
- </param>
- <param>
- <name>Initial State</name>
- <key>init_state</key>
- <value>0</value>
- <type>int</type>
- </param>
- <param>
- <name>Final State</name>
- <key>final_state</key>
- <value>-1</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>float</type>
- </sink>
- <source>
- <name>out</name>
- <type>$type.io</type>
- </source>
- <doc>
+ <name>Viterbi</name>
+ <key>trellis_viterbi_x</key>
+ <category>Trellis Coding</category>
+ <import>from gnuradio import trellis</import>
+ <make>trellis.viterbi_$(type)(trellis.fsm($fsm_args), $block_size,
$init_state, $final_state)</make>
+ <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>FSM Args</name>
+ <key>fsm_args</key>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>Block Size</name>
+ <key>block_size</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Initial State</name>
+ <key>init_state</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Final State</name>
+ <key>final_state</key>
+ <value>-1</value>
+ <type>int</type>
+ </param>
+ <check>(isinstance(eval(""" $fsm_args """[1:-1], locals(),globals()), str)
and open($fsm_args).close()) or True</check>
+ <sink>
+ <name>in</name>
+ <type>float</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$type.io</type>
+ </source>
+ <doc>
Viterbi Decoder. \
The fsm arguments are passed directly to the trellis.fsm() constructor.
- </doc>
+ </doc>
</block>
- [Commit-gnuradio] [gnuradio] branch master updated (67ab045 -> e876905), git, 2014/07/28
- [Commit-gnuradio] [gnuradio] 07/07: Merge branch 'maint', git, 2014/07/28
- [Commit-gnuradio] [gnuradio] 06/07: docs: added some cmake cli flags to better configure the build., git, 2014/07/28
- [Commit-gnuradio] [gnuradio] 01/07: cmake: cmake doesn't have a FIND command for STRING until 2.8.5, so we're just cehcking for that here before using it., git, 2014/07/28
- [Commit-gnuradio] [gnuradio] 04/07: volk: calling enable_languages here is buggy until 2.8.10. Version checking for that., git, 2014/07/28
- [Commit-gnuradio] [gnuradio] 02/07: trellis: updated examples., git, 2014/07/28
- [Commit-gnuradio] [gnuradio] 05/07: trellis: minor fixups to trellis examples so prefix doesn't need to end with '/'., git, 2014/07/28
- [Commit-gnuradio] [gnuradio] 03/07: trellis: working on issue to fix locations of fsm files in examples.,
git <=