summaryrefslogtreecommitdiff
path: root/gr-trellis/examples/grc
diff options
context:
space:
mode:
authorAchilleas Anastasopoulos <anastas@umich.edu>2014-10-01 18:22:53 -0400
committerAchilleas Anastasopoulos <anastas@umich.edu>2014-10-08 12:46:21 -0400
commitbe8e888f80934a884287f0ec9eb62dd0d2b7f5e5 (patch)
treedc3406eb0a25bb3171458bfded74cfe192a775a5 /gr-trellis/examples/grc
parent46e9dfed237990da20b5fb054b7fd33b1c152b4a (diff)
Updated documentation and grc/python examples in gr-trellis.
Removed weird pyhton examples and made them grc files.
Diffstat (limited to 'gr-trellis/examples/grc')
-rw-r--r--gr-trellis/examples/grc/CMakeLists.txt26
-rw-r--r--gr-trellis/examples/grc/interference_cancellation.grc2635
-rw-r--r--gr-trellis/examples/grc/pccc.grc758
-rw-r--r--gr-trellis/examples/grc/readme.txt6
-rw-r--r--gr-trellis/examples/grc/sccc.grc792
-rw-r--r--gr-trellis/examples/grc/sccc1.grc1132
-rw-r--r--gr-trellis/examples/grc/tcm.grc (renamed from gr-trellis/examples/grc/pccc1.grc)828
-rw-r--r--gr-trellis/examples/grc/turbo_equalization.grc2758
-rw-r--r--gr-trellis/examples/grc/viterbi_equalization.grc (renamed from gr-trellis/examples/grc/equalization.grc)868
9 files changed, 5402 insertions, 4401 deletions
diff --git a/gr-trellis/examples/grc/CMakeLists.txt b/gr-trellis/examples/grc/CMakeLists.txt
index 35280d515f..c5d4fc8965 100644
--- a/gr-trellis/examples/grc/CMakeLists.txt
+++ b/gr-trellis/examples/grc/CMakeLists.txt
@@ -20,13 +20,18 @@
## 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_SOURCE_DIR}/pccc.grc"
- "${CMAKE_CURRENT_BINARY_DIR}/pccc.grc"
+ "${CMAKE_CURRENT_SOURCE_DIR}/tcm.grc"
+ "${CMAKE_CURRENT_BINARY_DIR}/tcm.grc"
+)
+
+configure_file(
+ "${CMAKE_CURRENT_SOURCE_DIR}/viterbi_equalization.grc"
+ "${CMAKE_CURRENT_BINARY_DIR}/viterbi_equalization.grc"
)
configure_file(
- "${CMAKE_CURRENT_SOURCE_DIR}/pccc1.grc"
- "${CMAKE_CURRENT_BINARY_DIR}/pccc1.grc"
+ "${CMAKE_CURRENT_SOURCE_DIR}/turbo_equalization.grc"
+ "${CMAKE_CURRENT_BINARY_DIR}/turbo_equalization.grc"
)
configure_file(
@@ -35,8 +40,8 @@ configure_file(
)
configure_file(
- "${CMAKE_CURRENT_SOURCE_DIR}/sccc1.grc"
- "${CMAKE_CURRENT_BINARY_DIR}/sccc1.grc"
+ "${CMAKE_CURRENT_SOURCE_DIR}/pccc.grc"
+ "${CMAKE_CURRENT_BINARY_DIR}/pccc.grc"
)
configure_file(
@@ -46,11 +51,12 @@ configure_file(
install(
FILES
- ${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}/tcm.grc
+ ${CMAKE_CURRENT_BINARY_DIR}/viterbi_equalization.grc
+ ${CMAKE_CURRENT_BINARY_DIR}/turbo_equalization.grc
${CMAKE_CURRENT_BINARY_DIR}/sccc.grc
+ ${CMAKE_CURRENT_BINARY_DIR}/pccc.grc
+ ${CMAKE_CURRENT_BINARY_DIR}/interference_cancellation.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 2ccc723235..1dbcf69b86 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>Mon Jul 28 14:00:18 2014</timestamp>
+ <timestamp>Fri Sep 26 18:21:00 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -29,7 +29,7 @@
</param>
<param>
<key>generate_options</key>
- <value>qt_gui</value>
+ <value>wx_gui</value>
</param>
<param>
<key>category</key>
@@ -52,10 +52,6 @@
<value></value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>_coordinate</key>
<value>(10, 10)</value>
</param>
@@ -79,12 +75,8 @@
<value>"@FSM_FILE_INSTALL_DIR@"</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(660, 11)</value>
+ <value>(871, 14)</value>
</param>
<param>
<key>_rotation</key>
@@ -95,7 +87,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>block</value>
+ <value>R</value>
</param>
<param>
<key>_enabled</key>
@@ -103,15 +95,11 @@
</param>
<param>
<key>value</key>
- <value>1000</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
+ <value>100e3</value>
</param>
<param>
<key>_coordinate</key>
- <value>(583, 10)</value>
+ <value>(748, 12)</value>
</param>
<param>
<key>_rotation</key>
@@ -122,7 +110,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>R</value>
+ <value>noisevar</value>
</param>
<param>
<key>_enabled</key>
@@ -130,15 +118,11 @@
</param>
<param>
<key>value</key>
- <value>100e3</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
+ <value>10**(-snr_db/10)</value>
</param>
<param>
<key>_coordinate</key>
- <value>(502, 10)</value>
+ <value>(637, 13)</value>
</param>
<param>
<key>_rotation</key>
@@ -149,7 +133,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>noisevar</value>
+ <value>fsm1</value>
</param>
<param>
<key>_enabled</key>
@@ -157,15 +141,11 @@
</param>
<param>
<key>value</key>
- <value>10**(-snr_db/10)</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
+ <value>"awgn1o2_16.fsm"</value>
</param>
<param>
<key>_coordinate</key>
- <value>(428, 10)</value>
+ <value>(849, 87)</value>
</param>
<param>
<key>_rotation</key>
@@ -173,54 +153,45 @@
</param>
</block>
<block>
- <key>analog_random_source_x</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>analog_random_source_x_0</value>
+ <value>fsm2</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>short</value>
+ <key>value</key>
+ <value>"awgn1o2_4.fsm"</value>
</param>
<param>
- <key>min</key>
- <value>0</value>
+ <key>_coordinate</key>
+ <value>(849, 153)</value>
</param>
<param>
- <key>max</key>
- <value>2</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>num_samps</key>
- <value>1000</value>
+ <key>id</key>
+ <value>block</value>
</param>
<param>
- <key>repeat</key>
+ <key>_enabled</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>
+ <key>value</key>
+ <value>1000</value>
</param>
<param>
<key>_coordinate</key>
- <value>(21, 170)</value>
+ <value>(752, 85)</value>
</param>
<param>
<key>_rotation</key>
@@ -228,38 +199,34 @@
</param>
</block>
<block>
- <key>analog_random_source_x</key>
+ <key>digital_chunks_to_symbols_xx</key>
<param>
<key>id</key>
- <value>analog_random_source_x_1</value>
+ <value>digital_chunks_to_symbols_xx_0_0_1</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>short</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
+ <key>in_type</key>
+ <value>byte</value>
</param>
<param>
- <key>max</key>
- <value>2</value>
+ <key>out_type</key>
+ <value>complex</value>
</param>
<param>
- <key>num_samps</key>
- <value>1000</value>
+ <key>symbol_table</key>
+ <value>1,1j,-1j,-1</value>
</param>
<param>
- <key>repeat</key>
- <value>True</value>
+ <key>dimension</key>
+ <value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>num_ports</key>
+ <value>1</value>
</param>
<param>
<key>affinity</key>
@@ -270,12 +237,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(25, 291)</value>
+ <value>(408, 1719)</value>
</param>
<param>
<key>_rotation</key>
@@ -283,46 +246,22 @@
</param>
</block>
<block>
- <key>blocks_sub_xx</key>
+ <key>virtual_source</key>
<param>
<key>id</key>
- <value>blocks_sub_xx_0</value>
+ <value>virtual_source_0_0</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>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>
+ <key>stream_id</key>
+ <value>user1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(536, 529)</value>
+ <value>(356, 1844)</value>
</param>
<param>
<key>_rotation</key>
@@ -330,46 +269,22 @@
</param>
</block>
<block>
- <key>blocks_multiply_xx</key>
+ <key>virtual_source</key>
<param>
<key>id</key>
- <value>blocks_multiply_xx_0</value>
+ <value>virtual_source_0_2_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>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>
+ <key>stream_id</key>
+ <value>user2_est</value>
</param>
<param>
<key>_coordinate</key>
- <value>(771, 525)</value>
+ <value>(10, 1649)</value>
</param>
<param>
<key>_rotation</key>
@@ -380,7 +295,7 @@
<key>blocks_sub_xx</key>
<param>
<key>id</key>
- <value>blocks_sub_xx_3</value>
+ <value>blocks_sub_xx_2_0</value>
</param>
<param>
<key>_enabled</key>
@@ -388,7 +303,7 @@
</param>
<param>
<key>type</key>
- <value>short</value>
+ <value>complex</value>
</param>
<param>
<key>vlen</key>
@@ -399,10 +314,6 @@
<value>2</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -411,12 +322,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(535, 792)</value>
+ <value>(963, 1695)</value>
</param>
<param>
<key>_rotation</key>
@@ -424,46 +331,22 @@
</param>
</block>
<block>
- <key>blocks_sub_xx</key>
+ <key>virtual_source</key>
<param>
<key>id</key>
- <value>blocks_sub_xx_2</value>
+ <value>virtual_source_0_1_2</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>num_inputs</key>
- <value>2</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>
+ <key>stream_id</key>
+ <value>observation</value>
</param>
<param>
<key>_coordinate</key>
- <value>(944, 978)</value>
+ <value>(705, 1660)</value>
</param>
<param>
<key>_rotation</key>
@@ -471,10 +354,10 @@
</param>
</block>
<block>
- <key>blocks_sub_xx</key>
+ <key>blocks_multiply_const_vxx</key>
<param>
<key>id</key>
- <value>blocks_sub_xx_1</value>
+ <value>blocks_multiply_const_vxx_2_0</value>
</param>
<param>
<key>_enabled</key>
@@ -482,19 +365,15 @@
</param>
<param>
<key>type</key>
- <value>short</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
+ <value>complex</value>
</param>
<param>
- <key>num_inputs</key>
- <value>2</value>
+ <key>const</key>
+ <value>(1-alpha)**0.5</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
<key>affinity</key>
@@ -505,12 +384,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(540, 1141)</value>
+ <value>(721, 1727)</value>
</param>
<param>
<key>_rotation</key>
@@ -518,30 +393,34 @@
</param>
</block>
<block>
- <key>blocks_sub_xx</key>
+ <key>digital_chunks_to_symbols_xx</key>
<param>
<key>id</key>
- <value>blocks_sub_xx_2_0</value>
+ <value>digital_chunks_to_symbols_xx_0_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
+ <key>in_type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>out_type</key>
<value>complex</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>symbol_table</key>
+ <value>1,1j,-1j,-1</value>
</param>
<param>
- <key>num_inputs</key>
- <value>2</value>
+ <key>dimension</key>
+ <value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>num_ports</key>
+ <value>1</value>
</param>
<param>
<key>affinity</key>
@@ -552,12 +431,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(975, 1342)</value>
+ <value>(416, 1251)</value>
</param>
<param>
<key>_rotation</key>
@@ -565,46 +440,22 @@
</param>
</block>
<block>
- <key>blocks_sub_xx</key>
+ <key>virtual_source</key>
<param>
<key>id</key>
- <value>blocks_sub_xx_1_0</value>
+ <value>virtual_source_0_4</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>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>
+ <key>stream_id</key>
+ <value>user2</value>
</param>
<param>
<key>_coordinate</key>
- <value>(559, 1536)</value>
+ <value>(359, 1373)</value>
</param>
<param>
<key>_rotation</key>
@@ -612,46 +463,22 @@
</param>
</block>
<block>
- <key>blocks_add_xx</key>
+ <key>virtual_source</key>
<param>
<key>id</key>
- <value>blocks_add_xx_0</value>
+ <value>virtual_source_0_2</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>vlen</key>
- <value>1</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>
+ <key>stream_id</key>
+ <value>user1_est</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1224, 245)</value>
+ <value>(33, 1187)</value>
</param>
<param>
<key>_rotation</key>
@@ -659,10 +486,10 @@
</param>
</block>
<block>
- <key>analog_noise_source_x</key>
+ <key>blocks_sub_xx</key>
<param>
<key>id</key>
- <value>analog_noise_source_x_0</value>
+ <value>blocks_sub_xx_2</value>
</param>
<param>
<key>_enabled</key>
@@ -673,20 +500,12 @@
<value>complex</value>
</param>
<param>
- <key>noise_type</key>
- <value>analog.GR_GAUSSIAN</value>
- </param>
- <param>
- <key>amp</key>
- <value>noisevar</value>
- </param>
- <param>
- <key>seed</key>
- <value>-42</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>num_inputs</key>
+ <value>2</value>
</param>
<param>
<key>affinity</key>
@@ -697,12 +516,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(1178, 321)</value>
+ <value>(942, 1229)</value>
</param>
<param>
<key>_rotation</key>
@@ -710,50 +525,22 @@
</param>
</block>
<block>
- <key>blocks_throttle</key>
+ <key>virtual_source</key>
<param>
<key>id</key>
- <value>blocks_throttle_0</value>
+ <value>virtual_source_0_1_1</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>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>ignoretag</key>
- <value>True</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>stream_id</key>
+ <value>observation</value>
</param>
<param>
<key>_coordinate</key>
- <value>(579, 143)</value>
+ <value>(698, 1198)</value>
</param>
<param>
<key>_rotation</key>
@@ -764,7 +551,7 @@
<key>blocks_multiply_const_vxx</key>
<param>
<key>id</key>
- <value>blocks_multiply_const_vxx_0</value>
+ <value>blocks_multiply_const_vxx_2</value>
</param>
<param>
<key>_enabled</key>
@@ -783,10 +570,6 @@
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -795,12 +578,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(988, 196)</value>
+ <value>(708, 1259)</value>
</param>
<param>
<key>_rotation</key>
@@ -808,54 +587,45 @@
</param>
</block>
<block>
- <key>digital_chunks_to_symbols_xx</key>
+ <key>virtual_source</key>
<param>
<key>id</key>
- <value>digital_chunks_to_symbols_xx_0</value>
+ <value>virtual_source_0_3</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>in_type</key>
- <value>short</value>
- </param>
- <param>
- <key>out_type</key>
- <value>complex</value>
- </param>
- <param>
- <key>symbol_table</key>
- <value>1,1j,-1j,-1</value>
- </param>
- <param>
- <key>dimension</key>
- <value>1</value>
+ <key>stream_id</key>
+ <value>user2</value>
</param>
<param>
- <key>num_ports</key>
- <value>1</value>
+ <key>_coordinate</key>
+ <value>(342, 928)</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
<param>
- <key>affinity</key>
- <value></value>
+ <key>id</key>
+ <value>virtual_sink_0_2_0</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>stream_id</key>
+ <value>user2_est</value>
</param>
<param>
<key>_coordinate</key>
- <value>(703, 211)</value>
+ <value>(341, 1025)</value>
</param>
<param>
<key>_rotation</key>
@@ -863,46 +633,45 @@
</param>
</block>
<block>
- <key>blocks_multiply_const_vxx</key>
+ <key>virtual_source</key>
<param>
<key>id</key>
- <value>blocks_multiply_const_vxx_1</value>
+ <value>virtual_source_0_1_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>const</key>
- <value>(1-alpha)**0.5</value>
+ <key>stream_id</key>
+ <value>observation</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>_coordinate</key>
+ <value>(11, 873)</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_source</key>
<param>
- <key>affinity</key>
- <value></value>
+ <key>id</key>
+ <value>virtual_source_0</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>stream_id</key>
+ <value>user1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(994, 319)</value>
+ <value>(348, 566)</value>
</param>
<param>
<key>_rotation</key>
@@ -910,54 +679,45 @@
</param>
</block>
<block>
- <key>digital_chunks_to_symbols_xx</key>
+ <key>virtual_sink</key>
<param>
<key>id</key>
- <value>digital_chunks_to_symbols_xx_0_0</value>
+ <value>virtual_sink_0_2</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>in_type</key>
- <value>short</value>
- </param>
- <param>
- <key>out_type</key>
- <value>complex</value>
- </param>
- <param>
- <key>symbol_table</key>
- <value>1,1j,-1j,-1</value>
+ <key>stream_id</key>
+ <value>user1_est</value>
</param>
<param>
- <key>dimension</key>
- <value>1</value>
- </param>
- <param>
- <key>num_ports</key>
- <value>1</value>
+ <key>_coordinate</key>
+ <value>(355, 687)</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_source</key>
<param>
- <key>affinity</key>
- <value></value>
+ <key>id</key>
+ <value>virtual_source_0_1</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>stream_id</key>
+ <value>observation</value>
</param>
<param>
<key>_coordinate</key>
- <value>(703, 311)</value>
+ <value>(13, 530)</value>
</param>
<param>
<key>_rotation</key>
@@ -965,84 +725,81 @@
</param>
</block>
<block>
- <key>digital_chunks_to_symbols_xx</key>
+ <key>wxgui_numbersink2</key>
<param>
<key>id</key>
- <value>digital_chunks_to_symbols_xx_0_0_0</value>
+ <value>wxgui_numbersink2_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>in_type</key>
- <value>short</value>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
- <key>out_type</key>
- <value>complex</value>
+ <key>title</key>
+ <value>BER 1 (raw)</value>
</param>
<param>
- <key>symbol_table</key>
- <value>1,1j,-1j,-1</value>
+ <key>units</key>
+ <value>BER</value>
</param>
<param>
- <key>dimension</key>
- <value>1</value>
+ <key>samp_rate</key>
+ <value>R</value>
</param>
<param>
- <key>num_ports</key>
- <value>1</value>
+ <key>min_value</key>
+ <value>0</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>max_value</key>
+ <value>1</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>factor</key>
+ <value>1.0</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>decimal_places</key>
+ <value>6</value>
</param>
<param>
- <key>maxoutbuf</key>
+ <key>ref_level</key>
<value>0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(418, 1000)</value>
+ <key>number_rate</key>
+ <value>15</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>peak_hold</key>
+ <value>False</value>
</param>
- </block>
- <block>
- <key>blocks_multiply_const_vxx</key>
<param>
- <key>id</key>
- <value>blocks_multiply_const_vxx_2</value>
+ <key>average</key>
+ <value>False</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>avg_alpha</key>
+ <value>0.001</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
+ <key>show_gauge</key>
+ <value>True</value>
</param>
<param>
- <key>const</key>
- <value>alpha**0.5</value>
+ <key>win_size</key>
+ <value></value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>grid_pos</key>
+ <value>0,0,1,1</value>
</param>
<param>
- <key>alias</key>
+ <key>notebook</key>
<value></value>
</param>
<param>
@@ -1050,16 +807,8 @@
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(710, 1008)</value>
+ <value>(944, 556)</value>
</param>
<param>
<key>_rotation</key>
@@ -1067,10 +816,10 @@
</param>
</block>
<block>
- <key>blocks_multiply_const_vxx</key>
+ <key>wxgui_numbersink2</key>
<param>
<key>id</key>
- <value>blocks_multiply_const_vxx_2_0</value>
+ <value>wxgui_numbersink2_2</value>
</param>
<param>
<key>_enabled</key>
@@ -1078,73 +827,70 @@
</param>
<param>
<key>type</key>
- <value>complex</value>
+ <value>float</value>
</param>
<param>
- <key>const</key>
- <value>(1-alpha)**0.5</value>
+ <key>title</key>
+ <value>BER 2 (raw)</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>units</key>
+ <value>BER</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>samp_rate</key>
+ <value>R</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>min_value</key>
+ <value>0</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>max_value</key>
+ <value>1.0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>factor</key>
+ <value>1.0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(733, 1374)</value>
+ <key>decimal_places</key>
+ <value>6</value>
</param>
<param>
- <key>_rotation</key>
+ <key>ref_level</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>digital_chunks_to_symbols_xx</key>
<param>
- <key>id</key>
- <value>digital_chunks_to_symbols_xx_0_0_1</value>
+ <key>number_rate</key>
+ <value>15</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>peak_hold</key>
+ <value>False</value>
</param>
<param>
- <key>in_type</key>
- <value>short</value>
+ <key>average</key>
+ <value>False</value>
</param>
<param>
- <key>out_type</key>
- <value>complex</value>
+ <key>avg_alpha</key>
+ <value>0.001</value>
</param>
<param>
- <key>symbol_table</key>
- <value>1,1j,-1j,-1</value>
+ <key>show_gauge</key>
+ <value>True</value>
</param>
<param>
- <key>dimension</key>
- <value>1</value>
+ <key>win_size</key>
+ <value></value>
</param>
<param>
- <key>num_ports</key>
- <value>1</value>
+ <key>grid_pos</key>
+ <value>0,1,1,1</value>
</param>
<param>
- <key>alias</key>
+ <key>notebook</key>
<value></value>
</param>
<param>
@@ -1152,16 +898,8 @@
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(420, 1366)</value>
+ <value>(944, 886)</value>
</param>
<param>
<key>_rotation</key>
@@ -1169,128 +907,101 @@
</param>
</block>
<block>
- <key>variable_qtgui_range</key>
+ <key>wxgui_numbersink2</key>
<param>
<key>id</key>
- <value>alpha</value>
+ <value>wxgui_numbersink2_3</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>P1/P</value>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
- <key>value</key>
- <value>0.6</value>
+ <key>title</key>
+ <value>BER 2 (after cancelling user 1)</value>
</param>
<param>
- <key>start</key>
- <value>0</value>
+ <key>units</key>
+ <value>BER</value>
</param>
<param>
- <key>stop</key>
- <value>1</value>
+ <key>samp_rate</key>
+ <value>R</value>
</param>
<param>
- <key>step</key>
- <value>0.01</value>
+ <key>min_value</key>
+ <value>0</value>
</param>
<param>
- <key>widget</key>
- <value>counter_slider</value>
+ <key>max_value</key>
+ <value>1.0</value>
</param>
<param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
+ <key>factor</key>
+ <value>1.0</value>
</param>
<param>
- <key>min_len</key>
- <value>200</value>
+ <key>decimal_places</key>
+ <value>6</value>
</param>
<param>
- <key>gui_hint</key>
- <value></value>
+ <key>ref_level</key>
+ <value>0</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>number_rate</key>
+ <value>15</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(177, 10)</value>
+ <key>peak_hold</key>
+ <value>False</value>
</param>
<param>
- <key>_rotation</key>
- <value>180</value>
+ <key>average</key>
+ <value>False</value>
</param>
- </block>
- <block>
- <key>variable_qtgui_range</key>
<param>
- <key>id</key>
- <value>snr_db</value>
+ <key>avg_alpha</key>
+ <value>0.001</value>
</param>
<param>
- <key>_enabled</key>
+ <key>show_gauge</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>P/sigma^2 (dB)</value>
- </param>
- <param>
- <key>value</key>
- <value>16</value>
- </param>
- <param>
- <key>start</key>
- <value>0</value>
- </param>
- <param>
- <key>stop</key>
- <value>20</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>
+ <key>win_size</key>
+ <value></value>
</param>
<param>
- <key>min_len</key>
- <value>200</value>
+ <key>grid_pos</key>
+ <value>1,1,1,1</value>
</param>
<param>
- <key>gui_hint</key>
+ <key>notebook</key>
<value></value>
</param>
<param>
- <key>alias</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(300, 10)</value>
+ <value>(945, 1351)</value>
</param>
<param>
<key>_rotation</key>
- <value>180</value>
+ <value>0</value>
</param>
</block>
<block>
- <key>blocks_add_xx</key>
+ <key>blocks_multiply_const_vxx</key>
<param>
<key>id</key>
- <value>blocks_add_xx_1</value>
+ <value>blocks_multiply_const_vxx_1</value>
</param>
<param>
<key>_enabled</key>
@@ -1301,18 +1012,14 @@
<value>complex</value>
</param>
<param>
- <key>num_inputs</key>
- <value>2</value>
+ <key>const</key>
+ <value>(1-alpha)**0.5</value>
</param>
<param>
<key>vlen</key>
<value>1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -1321,12 +1028,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(1400, 262)</value>
+ <value>(943, 402)</value>
</param>
<param>
<key>_rotation</key>
@@ -1334,10 +1037,10 @@
</param>
</block>
<block>
- <key>qtgui_const_sink_x</key>
+ <key>blocks_multiply_const_vxx</key>
<param>
<key>id</key>
- <value>qtgui_const_sink_x_0</value>
+ <value>blocks_multiply_const_vxx_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1348,320 +1051,141 @@
<value>complex</value>
</param>
<param>
- <key>name</key>
- <value>Constellation</value>
- </param>
- <param>
- <key>size</key>
- <value>1024</value>
- </param>
- <param>
- <key>grid</key>
- <value>False</value>
- </param>
- <param>
- <key>autoscale</key>
- <value>False</value>
- </param>
- <param>
- <key>ymin</key>
- <value>-2</value>
- </param>
- <param>
- <key>ymax</key>
- <value>2</value>
- </param>
- <param>
- <key>xmin</key>
- <value>-2</value>
- </param>
- <param>
- <key>xmax</key>
- <value>2</value>
+ <key>const</key>
+ <value>alpha**0.5</value>
</param>
<param>
- <key>nconnections</key>
+ <key>vlen</key>
<value>1</value>
</param>
<param>
- <key>update_time</key>
- <value>0.10</value>
- </param>
- <param>
- <key>gui_hint</key>
+ <key>affinity</key>
<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>
+ <key>minoutbuf</key>
<value>0</value>
</param>
<param>
- <key>tr_tag</key>
- <value>""</value>
- </param>
- <param>
- <key>label1</key>
- <value></value>
- </param>
- <param>
- <key>width1</key>
- <value>1</value>
- </param>
- <param>
- <key>color1</key>
- <value>"blue"</value>
- </param>
- <param>
- <key>style1</key>
- <value>0</value>
+ <key>_coordinate</key>
+ <value>(947, 301)</value>
</param>
<param>
- <key>marker1</key>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
<param>
- <key>alpha1</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label2</key>
- <value></value>
+ <key>id</key>
+ <value>virtual_sink_0_0</value>
</param>
<param>
- <key>width2</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>color2</key>
- <value>"red"</value>
+ <key>stream_id</key>
+ <value>user2</value>
</param>
<param>
- <key>style2</key>
- <value>0</value>
+ <key>_coordinate</key>
+ <value>(208, 340)</value>
</param>
<param>
- <key>marker2</key>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>analog_random_source_x</key>
<param>
- <key>alpha2</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label3</key>
- <value></value>
- </param>
- <param>
- <key>width3</key>
- <value>1</value>
+ <key>id</key>
+ <value>analog_random_source_x_1</value>
</param>
<param>
- <key>color3</key>
- <value>"red"</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>style3</key>
- <value>0</value>
+ <key>type</key>
+ <value>byte</value>
</param>
<param>
- <key>marker3</key>
+ <key>min</key>
<value>0</value>
</param>
<param>
- <key>alpha3</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label4</key>
- <value></value>
- </param>
- <param>
- <key>width4</key>
- <value>1</value>
- </param>
- <param>
- <key>color4</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style4</key>
- <value>0</value>
+ <key>max</key>
+ <value>2</value>
</param>
<param>
- <key>marker4</key>
- <value>0</value>
+ <key>num_samps</key>
+ <value>block</value>
</param>
<param>
- <key>alpha4</key>
- <value>1.0</value>
+ <key>repeat</key>
+ <value>True</value>
</param>
<param>
- <key>label5</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>width5</key>
- <value>1</value>
- </param>
- <param>
- <key>color5</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style5</key>
- <value>0</value>
- </param>
- <param>
- <key>marker5</key>
+ <key>minoutbuf</key>
<value>0</value>
</param>
<param>
- <key>alpha5</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label6</key>
- <value></value>
- </param>
- <param>
- <key>width6</key>
- <value>1</value>
- </param>
- <param>
- <key>color6</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style6</key>
- <value>0</value>
+ <key>_coordinate</key>
+ <value>(22, 374)</value>
</param>
<param>
- <key>marker6</key>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>digital_chunks_to_symbols_xx</key>
<param>
- <key>alpha6</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label7</key>
- <value></value>
- </param>
- <param>
- <key>width7</key>
- <value>1</value>
- </param>
- <param>
- <key>color7</key>
- <value>"red"</value>
+ <key>id</key>
+ <value>digital_chunks_to_symbols_xx_0</value>
</param>
<param>
- <key>style7</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>marker7</key>
- <value>0</value>
+ <key>in_type</key>
+ <value>byte</value>
</param>
<param>
- <key>alpha7</key>
- <value>1.0</value>
+ <key>out_type</key>
+ <value>complex</value>
</param>
<param>
- <key>label8</key>
- <value></value>
+ <key>symbol_table</key>
+ <value>1,1j,-1j,-1</value>
</param>
<param>
- <key>width8</key>
+ <key>dimension</key>
<value>1</value>
</param>
<param>
- <key>color8</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style8</key>
- <value>0</value>
- </param>
- <param>
- <key>marker8</key>
- <value>0</value>
- </param>
- <param>
- <key>alpha8</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label9</key>
- <value></value>
- </param>
- <param>
- <key>width9</key>
+ <key>num_ports</key>
<value>1</value>
</param>
<param>
- <key>color9</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style9</key>
- <value>0</value>
- </param>
- <param>
- <key>marker9</key>
- <value>0</value>
- </param>
- <param>
- <key>alpha9</key>
- <value>1.0</value>
- </param>
- <param>
- <key>label10</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>width10</key>
- <value>1</value>
- </param>
- <param>
- <key>color10</key>
- <value>"red"</value>
- </param>
- <param>
- <key>style10</key>
- <value>0</value>
- </param>
- <param>
- <key>marker10</key>
+ <key>minoutbuf</key>
<value>0</value>
</param>
<param>
- <key>alpha10</key>
- <value>1.0</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(0, 0)</value>
+ <value>(700, 294)</value>
</param>
<param>
<key>_rotation</key>
@@ -1669,26 +1193,26 @@
</param>
</block>
<block>
- <key>blocks_short_to_float</key>
+ <key>blocks_throttle</key>
<param>
<key>id</key>
- <value>blocks_short_to_float_0</value>
+ <value>blocks_throttle_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>type</key>
+ <value>byte</value>
</param>
<param>
- <key>scale</key>
- <value>1</value>
+ <key>samples_per_second</key>
+ <value>R</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
<key>affinity</key>
@@ -1699,12 +1223,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(1010, 1551)</value>
+ <value>(576, 226)</value>
</param>
<param>
<key>_rotation</key>
@@ -1712,226 +1232,194 @@
</param>
</block>
<block>
- <key>qtgui_number_sink</key>
+ <key>analog_random_source_x</key>
<param>
<key>id</key>
- <value>qtgui_number_sink_0</value>
+ <value>analog_random_source_x_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>name</key>
- <value>""</value>
- </param>
- <param>
<key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>autoscale</key>
- <value>False</value>
- </param>
- <param>
- <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>
+ <value>byte</value>
</param>
<param>
<key>min</key>
- <value>-1</value>
+ <value>0</value>
</param>
<param>
<key>max</key>
- <value>1</value>
- </param>
- <param>
- <key>update_time</key>
- <value>0.10</value>
+ <value>2</value>
</param>
<param>
- <key>gui_hint</key>
- <value>0,0,1,1</value>
+ <key>num_samps</key>
+ <value>block</value>
</param>
<param>
- <key>label1</key>
- <value></value>
+ <key>repeat</key>
+ <value>True</value>
</param>
<param>
- <key>unit1</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>color1</key>
- <value>("black", "black")</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>factor1</key>
- <value>1</value>
+ <key>_coordinate</key>
+ <value>(18, 253)</value>
</param>
<param>
- <key>label2</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
<param>
- <key>unit2</key>
- <value></value>
+ <key>id</key>
+ <value>virtual_sink_0</value>
</param>
<param>
- <key>color2</key>
- <value>("black", "black")</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>factor2</key>
- <value>1</value>
+ <key>stream_id</key>
+ <value>user1</value>
</param>
<param>
- <key>label3</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(208, 229)</value>
</param>
<param>
- <key>unit3</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>digital_chunks_to_symbols_xx</key>
<param>
- <key>color3</key>
- <value>("black", "black")</value>
+ <key>id</key>
+ <value>digital_chunks_to_symbols_xx_0_0</value>
</param>
<param>
- <key>factor3</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>label4</key>
- <value></value>
+ <key>in_type</key>
+ <value>byte</value>
</param>
<param>
- <key>unit4</key>
- <value></value>
+ <key>out_type</key>
+ <value>complex</value>
</param>
<param>
- <key>color4</key>
- <value>("black", "black")</value>
+ <key>symbol_table</key>
+ <value>1,1j,-1j,-1</value>
</param>
<param>
- <key>factor4</key>
+ <key>dimension</key>
<value>1</value>
</param>
<param>
- <key>label5</key>
- <value></value>
- </param>
- <param>
- <key>unit5</key>
- <value></value>
- </param>
- <param>
- <key>color5</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor5</key>
+ <key>num_ports</key>
<value>1</value>
</param>
<param>
- <key>label6</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>unit6</key>
- <value></value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>color6</key>
- <value>("black", "black")</value>
+ <key>_coordinate</key>
+ <value>(700, 394)</value>
</param>
<param>
- <key>factor6</key>
- <value>1</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>blocks_add_xx</key>
<param>
- <key>label7</key>
- <value></value>
+ <key>id</key>
+ <value>blocks_add_xx_1</value>
</param>
<param>
- <key>unit7</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>color7</key>
- <value>("black", "black")</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>factor7</key>
- <value>1</value>
+ <key>num_inputs</key>
+ <value>2</value>
</param>
<param>
- <key>label8</key>
- <value></value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>unit8</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>color8</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor8</key>
- <value>1</value>
- </param>
- <param>
- <key>label9</key>
- <value></value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>unit9</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(1400, 341)</value>
</param>
<param>
- <key>color9</key>
- <value>("black", "black")</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>blocks_add_xx</key>
<param>
- <key>factor9</key>
- <value>1</value>
+ <key>id</key>
+ <value>blocks_add_xx_0</value>
</param>
<param>
- <key>label10</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>unit10</key>
- <value></value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>color10</key>
- <value>("black", "black")</value>
+ <key>num_inputs</key>
+ <value>2</value>
</param>
<param>
- <key>factor10</key>
+ <key>vlen</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>_coordinate</key>
- <value>(1257, 471)</value>
+ <value>(1224, 324)</value>
</param>
<param>
<key>_rotation</key>
@@ -1939,10 +1427,10 @@
</param>
</block>
<block>
- <key>trellis_encoder_xx</key>
+ <key>analog_noise_source_x</key>
<param>
<key>id</key>
- <value>trellis_encoder_xx_1</value>
+ <value>analog_noise_source_x_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1950,19 +1438,19 @@
</param>
<param>
<key>type</key>
- <value>ss</value>
+ <value>complex</value>
</param>
<param>
- <key>fsm_args</key>
- <value>prefix+"/awgn1o2_16.fsm"</value>
+ <key>noise_type</key>
+ <value>analog.GR_GAUSSIAN</value>
</param>
<param>
- <key>init_state</key>
- <value>0</value>
+ <key>amp</key>
+ <value>noisevar</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>seed</key>
+ <value>-42</value>
</param>
<param>
<key>affinity</key>
@@ -1973,12 +1461,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(336, 311)</value>
+ <value>(1178, 400)</value>
</param>
<param>
<key>_rotation</key>
@@ -1986,46 +1470,22 @@
</param>
</block>
<block>
- <key>trellis_encoder_xx</key>
+ <key>virtual_sink</key>
<param>
<key>id</key>
- <value>trellis_encoder_xx_0</value>
+ <value>virtual_sink_0_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+"/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>
+ <key>stream_id</key>
+ <value>observation</value>
</param>
<param>
<key>_coordinate</key>
- <value>(340, 187)</value>
+ <value>(1407, 453)</value>
</param>
<param>
<key>_rotation</key>
@@ -2033,10 +1493,10 @@
</param>
</block>
<block>
- <key>trellis_viterbi_combined_xx</key>
+ <key>wxgui_scopesink2</key>
<param>
<key>id</key>
- <value>trellis_viterbi_combined_xx_1</value>
+ <value>wxgui_scopesink2_0</value>
</param>
<param>
<key>_enabled</key>
@@ -2044,59 +1504,67 @@
</param>
<param>
<key>type</key>
- <value>c</value>
+ <value>complex</value>
</param>
<param>
- <key>out_type</key>
- <value>s</value>
+ <key>title</key>
+ <value>Scope Plot</value>
</param>
<param>
- <key>fsm_args</key>
- <value>prefix+"/awgn1o2_16.fsm"</value>
+ <key>samp_rate</key>
+ <value>R</value>
</param>
<param>
- <key>block_size</key>
- <value>1000</value>
+ <key>v_scale</key>
+ <value>0</value>
</param>
<param>
- <key>init_state</key>
- <value>-1</value>
+ <key>v_offset</key>
+ <value>0</value>
</param>
<param>
- <key>final_state</key>
- <value>-1</value>
+ <key>t_scale</key>
+ <value>0</value>
</param>
<param>
- <key>dim</key>
- <value>1</value>
+ <key>ac_couple</key>
+ <value>False</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>xy_mode</key>
+ <value>True</value>
</param>
<param>
- <key>metric_type</key>
- <value>digital.TRELLIS_EUCLIDEAN</value>
+ <key>num_inputs</key>
+ <value>1</value>
</param>
<param>
- <key>alias</key>
+ <key>win_size</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>grid_pos</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>trig_mode</key>
+ <value>wxgui.TRIG_MODE_AUTO</value>
+ </param>
+ <param>
+ <key>y_axis_label</key>
+ <value>Counts</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(79, 501)</value>
+ <value>(1383, 208)</value>
</param>
<param>
<key>_rotation</key>
@@ -2107,7 +1575,7 @@
<key>trellis_viterbi_combined_xx</key>
<param>
<key>id</key>
- <value>trellis_viterbi_combined_xx_2</value>
+ <value>trellis_viterbi_combined_xx_1</value>
</param>
<param>
<key>_enabled</key>
@@ -2119,15 +1587,15 @@
</param>
<param>
<key>out_type</key>
- <value>s</value>
+ <value>b</value>
</param>
<param>
<key>fsm_args</key>
- <value>prefix+"/awgn1o2_16.fsm"</value>
+ <value>prefix+fsm1</value>
</param>
<param>
<key>block_size</key>
- <value>1000</value>
+ <value>block</value>
</param>
<param>
<key>init_state</key>
@@ -2143,17 +1611,13 @@
</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>
+ <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>
@@ -2162,12 +1626,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(82, 766)</value>
+ <value>(75, 583)</value>
</param>
<param>
<key>_rotation</key>
@@ -2178,7 +1638,7 @@
<key>trellis_viterbi_combined_xx</key>
<param>
<key>id</key>
- <value>trellis_viterbi_combined_xx_0</value>
+ <value>trellis_viterbi_combined_xx_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -2190,15 +1650,15 @@
</param>
<param>
<key>out_type</key>
- <value>s</value>
+ <value>b</value>
</param>
<param>
<key>fsm_args</key>
- <value>prefix+"/awgn1o2_16.fsm"</value>
+ <value>prefix+fsm1</value>
</param>
<param>
<key>block_size</key>
- <value>1000</value>
+ <value>block</value>
</param>
<param>
<key>init_state</key>
@@ -2214,17 +1674,13 @@
</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>
+ <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>
@@ -2233,12 +1689,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(83, 1111)</value>
+ <value>(63, 1848)</value>
</param>
<param>
<key>_rotation</key>
@@ -2246,10 +1698,10 @@
</param>
</block>
<block>
- <key>trellis_viterbi_combined_xx</key>
+ <key>trellis_encoder_xx</key>
<param>
<key>id</key>
- <value>trellis_viterbi_combined_xx_0_0</value>
+ <value>trellis_encoder_xx_0</value>
</param>
<param>
<key>_enabled</key>
@@ -2257,43 +1709,15 @@
</param>
<param>
<key>type</key>
- <value>c</value>
- </param>
- <param>
- <key>out_type</key>
- <value>s</value>
+ <value>bb</value>
</param>
<param>
<key>fsm_args</key>
- <value>prefix+"/awgn1o2_16.fsm"</value>
- </param>
- <param>
- <key>block_size</key>
- <value>1000</value>
+ <value>prefix+fsm1</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>
+ <value>0</value>
</param>
<param>
<key>affinity</key>
@@ -2304,12 +1728,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(75, 1495)</value>
+ <value>(337, 270)</value>
</param>
<param>
<key>_rotation</key>
@@ -2317,10 +1737,10 @@
</param>
</block>
<block>
- <key>blocks_multiply_xx</key>
+ <key>trellis_encoder_xx</key>
<param>
<key>id</key>
- <value>blocks_multiply_xx_2_0</value>
+ <value>trellis_encoder_xx_2</value>
</param>
<param>
<key>_enabled</key>
@@ -2328,19 +1748,15 @@
</param>
<param>
<key>type</key>
- <value>short</value>
- </param>
- <param>
- <key>num_inputs</key>
- <value>2</value>
+ <value>bb</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>fsm_args</key>
+ <value>prefix+fsm1</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>init_state</key>
+ <value>0</value>
</param>
<param>
<key>affinity</key>
@@ -2351,12 +1767,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(771, 1530)</value>
+ <value>(87, 1251)</value>
</param>
<param>
<key>_rotation</key>
@@ -2364,26 +1776,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_1</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>type</key>
+ <value>bb</value>
</param>
<param>
- <key>scale</key>
- <value>1</value>
+ <key>fsm_args</key>
+ <value>prefix+fsm2</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>init_state</key>
+ <value>0</value>
</param>
<param>
<key>affinity</key>
@@ -2394,12 +1806,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(985, 1608)</value>
+ <value>(376, 381)</value>
</param>
<param>
<key>_rotation</key>
@@ -2407,226 +1815,62 @@
</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>
<value>True</value>
</param>
<param>
- <key>name</key>
- <value>""</value>
- </param>
- <param>
<key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>autoscale</key>
- <value>False</value>
+ <value>c</value>
</param>
<param>
- <key>avg</key>
- <value>0.001</value>
+ <key>out_type</key>
+ <value>b</value>
</param>
<param>
- <key>graph_type</key>
- <value>qtgui.NUM_GRAPH_HORIZ</value>
+ <key>fsm_args</key>
+ <value>prefix+fsm2</value>
</param>
<param>
- <key>nconnections</key>
- <value>1</value>
+ <key>block_size</key>
+ <value>block</value>
</param>
<param>
- <key>min</key>
+ <key>init_state</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>1,0,1,1</value>
- </param>
- <param>
- <key>label1</key>
- <value>BER 2 (raw)</value>
- </param>
- <param>
- <key>unit1</key>
- <value></value>
- </param>
- <param>
- <key>color1</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor1</key>
- <value>1</value>
- </param>
- <param>
- <key>label2</key>
- <value></value>
- </param>
- <param>
- <key>unit2</key>
- <value></value>
- </param>
- <param>
- <key>color2</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor2</key>
- <value>1</value>
- </param>
- <param>
- <key>label3</key>
- <value></value>
- </param>
- <param>
- <key>unit3</key>
- <value></value>
- </param>
- <param>
- <key>color3</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor3</key>
- <value>1</value>
- </param>
- <param>
- <key>label4</key>
- <value></value>
- </param>
- <param>
- <key>unit4</key>
- <value></value>
- </param>
- <param>
- <key>color4</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor4</key>
- <value>1</value>
- </param>
- <param>
- <key>label5</key>
- <value></value>
- </param>
- <param>
- <key>unit5</key>
- <value></value>
- </param>
- <param>
- <key>color5</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor5</key>
- <value>1</value>
- </param>
- <param>
- <key>label6</key>
- <value></value>
- </param>
- <param>
- <key>unit6</key>
- <value></value>
- </param>
- <param>
- <key>color6</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor6</key>
- <value>1</value>
- </param>
- <param>
- <key>label7</key>
- <value></value>
- </param>
- <param>
- <key>unit7</key>
- <value></value>
- </param>
- <param>
- <key>color7</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor7</key>
- <value>1</value>
- </param>
- <param>
- <key>label8</key>
- <value></value>
- </param>
- <param>
- <key>unit8</key>
- <value></value>
- </param>
- <param>
- <key>color8</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor8</key>
- <value>1</value>
- </param>
- <param>
- <key>label9</key>
- <value></value>
- </param>
- <param>
- <key>unit9</key>
- <value></value>
- </param>
- <param>
- <key>color9</key>
- <value>("black", "black")</value>
+ <key>final_state</key>
+ <value>-1</value>
</param>
<param>
- <key>factor9</key>
+ <key>dim</key>
<value>1</value>
</param>
<param>
- <key>label10</key>
- <value></value>
- </param>
- <param>
- <key>unit10</key>
- <value></value>
- </param>
- <param>
- <key>color10</key>
- <value>("black", "black")</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>factor10</key>
- <value>1</value>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_EUCLIDEAN</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>_coordinate</key>
- <value>(1272, 1551)</value>
+ <value>(85, 931)</value>
</param>
<param>
<key>_rotation</key>
@@ -2634,10 +1878,10 @@
</param>
</block>
<block>
- <key>blocks_multiply_xx</key>
+ <key>trellis_viterbi_combined_xx</key>
<param>
<key>id</key>
- <value>blocks_multiply_xx_1</value>
+ <value>trellis_viterbi_combined_xx_0</value>
</param>
<param>
<key>_enabled</key>
@@ -2645,62 +1889,39 @@
</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>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
+ <value>c</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>out_type</key>
+ <value>b</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(785, 779)</value>
+ <key>fsm_args</key>
+ <value>prefix+fsm2</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>block_size</key>
+ <value>block</value>
</param>
- </block>
- <block>
- <key>blocks_short_to_float</key>
<param>
- <key>id</key>
- <value>blocks_short_to_float_2</value>
+ <key>init_state</key>
+ <value>-1</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>final_state</key>
+ <value>-1</value>
</param>
<param>
- <key>vlen</key>
+ <key>dim</key>
<value>1</value>
</param>
<param>
- <key>scale</key>
- <value>1</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>alias</key>
- <value></value>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_EUCLIDEAN</value>
</param>
<param>
<key>affinity</key>
@@ -2711,12 +1932,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(1013, 735)</value>
+ <value>(81, 1362)</value>
</param>
<param>
<key>_rotation</key>
@@ -2724,10 +1941,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_2_0</value>
</param>
<param>
<key>_enabled</key>
@@ -2735,63 +1952,16 @@
</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>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>
+ <value>bb</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(796, 1136)</value>
+ <key>fsm_args</key>
+ <value>prefix+fsm2</value>
</param>
<param>
- <key>_rotation</key>
+ <key>init_state</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>blocks_short_to_float</key>
- <param>
- <key>id</key>
- <value>blocks_short_to_float_3</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>scale</key>
- <value>1</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
<param>
<key>affinity</key>
<value></value>
@@ -2801,12 +1971,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(1002, 1149)</value>
+ <value>(91, 1719)</value>
</param>
<param>
<key>_rotation</key>
@@ -2814,226 +1980,200 @@
</param>
</block>
<block>
- <key>qtgui_number_sink</key>
+ <key>wxgui_numbersink2</key>
<param>
<key>id</key>
- <value>qtgui_number_sink_0_0</value>
+ <value>wxgui_numbersink2_3_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>name</key>
- <value>""</value>
- </param>
- <param>
<key>type</key>
<value>float</value>
</param>
<param>
- <key>autoscale</key>
- <value>False</value>
- </param>
- <param>
- <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>
+ <key>title</key>
+ <value>BER 1 (after cancelling user 2)</value>
</param>
<param>
- <key>max</key>
- <value>1</value>
+ <key>units</key>
+ <value>BER</value>
</param>
<param>
- <key>update_time</key>
- <value>0.10</value>
+ <key>samp_rate</key>
+ <value>R</value>
</param>
<param>
- <key>gui_hint</key>
- <value>0,1,1,1</value>
+ <key>min_value</key>
+ <value>0</value>
</param>
<param>
- <key>label1</key>
- <value>BER 2 (raw)</value>
+ <key>max_value</key>
+ <value>1.0</value>
</param>
<param>
- <key>unit1</key>
- <value></value>
+ <key>factor</key>
+ <value>1.0</value>
</param>
<param>
- <key>color1</key>
- <value>("black", "black")</value>
+ <key>decimal_places</key>
+ <value>6</value>
</param>
<param>
- <key>factor1</key>
- <value>1</value>
+ <key>ref_level</key>
+ <value>0</value>
</param>
<param>
- <key>label2</key>
- <value></value>
+ <key>number_rate</key>
+ <value>15</value>
</param>
<param>
- <key>unit2</key>
- <value></value>
+ <key>peak_hold</key>
+ <value>False</value>
</param>
<param>
- <key>color2</key>
- <value>("black", "black")</value>
+ <key>average</key>
+ <value>False</value>
</param>
<param>
- <key>factor2</key>
- <value>1</value>
+ <key>avg_alpha</key>
+ <value>0.001</value>
</param>
<param>
- <key>label3</key>
- <value></value>
+ <key>show_gauge</key>
+ <value>True</value>
</param>
<param>
- <key>unit3</key>
+ <key>win_size</key>
<value></value>
</param>
<param>
- <key>color3</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor3</key>
- <value>1</value>
+ <key>grid_pos</key>
+ <value>1,0,1,1</value>
</param>
<param>
- <key>label4</key>
+ <key>notebook</key>
<value></value>
</param>
<param>
- <key>unit4</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>color4</key>
- <value>("black", "black")</value>
+ <key>_coordinate</key>
+ <value>(929, 1816)</value>
</param>
<param>
- <key>factor4</key>
- <value>1</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable_slider</key>
<param>
- <key>label5</key>
- <value></value>
+ <key>id</key>
+ <value>alpha</value>
</param>
<param>
- <key>unit5</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>color5</key>
- <value>("black", "black")</value>
+ <key>label</key>
+ <value>P1/P</value>
</param>
<param>
- <key>factor5</key>
- <value>1</value>
+ <key>value</key>
+ <value>0.1</value>
</param>
<param>
- <key>label6</key>
- <value></value>
+ <key>min</key>
+ <value>0</value>
</param>
<param>
- <key>unit6</key>
- <value></value>
+ <key>max</key>
+ <value>1.0</value>
</param>
<param>
- <key>color6</key>
- <value>("black", "black")</value>
+ <key>num_steps</key>
+ <value>100</value>
</param>
<param>
- <key>factor6</key>
- <value>1</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>label7</key>
- <value></value>
+ <key>converver</key>
+ <value>float_converter</value>
</param>
<param>
- <key>unit7</key>
+ <key>grid_pos</key>
<value></value>
</param>
<param>
- <key>color7</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor7</key>
- <value>1</value>
- </param>
- <param>
- <key>label8</key>
+ <key>notebook</key>
<value></value>
</param>
<param>
- <key>unit8</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(243, 11)</value>
</param>
<param>
- <key>color8</key>
- <value>("black", "black")</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable_slider</key>
<param>
- <key>factor8</key>
- <value>1</value>
+ <key>id</key>
+ <value>snr_db</value>
</param>
<param>
- <key>label9</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>unit9</key>
- <value></value>
+ <key>label</key>
+ <value>P/sigma^2 (dB)</value>
</param>
<param>
- <key>color9</key>
- <value>("black", "black")</value>
+ <key>value</key>
+ <value>10</value>
</param>
<param>
- <key>factor9</key>
- <value>1</value>
+ <key>min</key>
+ <value>0</value>
</param>
<param>
- <key>label10</key>
- <value></value>
+ <key>max</key>
+ <value>20</value>
</param>
<param>
- <key>unit10</key>
- <value></value>
+ <key>num_steps</key>
+ <value>100</value>
</param>
<param>
- <key>color10</key>
- <value>("black", "black")</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>factor10</key>
- <value>1</value>
+ <key>converver</key>
+ <value>float_converter</value>
</param>
<param>
- <key>alias</key>
+ <key>grid_pos</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>notebook</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(1223, 1133)</value>
+ <value>(447, 14)</value>
</param>
<param>
<key>_rotation</key>
@@ -3041,10 +2181,10 @@
</param>
</block>
<block>
- <key>trellis_encoder_xx</key>
+ <key>blks2_error_rate</key>
<param>
<key>id</key>
- <value>trellis_encoder_xx_2_0</value>
+ <value>blks2_error_rate_0</value>
</param>
<param>
<key>_enabled</key>
@@ -3052,19 +2192,15 @@
</param>
<param>
<key>type</key>
- <value>ss</value>
+ <value>'BER'</value>
</param>
<param>
- <key>fsm_args</key>
- <value>prefix+"/awgn1o2_16.fsm"</value>
+ <key>win_size</key>
+ <value>block*100</value>
</param>
<param>
- <key>init_state</key>
- <value>0</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
+ <key>bits_per_symbol</key>
+ <value>2</value>
</param>
<param>
<key>affinity</key>
@@ -3075,12 +2211,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(103, 1366)</value>
+ <value>(724, 613)</value>
</param>
<param>
<key>_rotation</key>
@@ -3088,10 +2220,10 @@
</param>
</block>
<block>
- <key>trellis_encoder_xx</key>
+ <key>blks2_error_rate</key>
<param>
<key>id</key>
- <value>trellis_encoder_xx_2</value>
+ <value>blks2_error_rate_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -3099,19 +2231,15 @@
</param>
<param>
<key>type</key>
- <value>ss</value>
+ <value>'BER'</value>
</param>
<param>
- <key>fsm_args</key>
- <value>prefix+"/awgn1o2_16.fsm"</value>
- </param>
- <param>
- <key>init_state</key>
- <value>0</value>
+ <key>win_size</key>
+ <value>block*100</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>bits_per_symbol</key>
+ <value>2</value>
</param>
<param>
<key>affinity</key>
@@ -3122,12 +2250,8 @@
<value>0</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(89, 1000)</value>
+ <value>(719, 943)</value>
</param>
<param>
<key>_rotation</key>
@@ -3135,226 +2259,77 @@
</param>
</block>
<block>
- <key>qtgui_number_sink</key>
+ <key>blks2_error_rate</key>
<param>
<key>id</key>
- <value>qtgui_number_sink_0_0_0</value>
+ <value>blks2_error_rate_0_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>name</key>
- <value>""</value>
- </param>
- <param>
<key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>autoscale</key>
- <value>False</value>
- </param>
- <param>
- <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>1,1,1,1</value>
- </param>
- <param>
- <key>label1</key>
- <value></value>
- </param>
- <param>
- <key>unit1</key>
- <value></value>
- </param>
- <param>
- <key>color1</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor1</key>
- <value>1</value>
- </param>
- <param>
- <key>label2</key>
- <value></value>
- </param>
- <param>
- <key>unit2</key>
- <value></value>
- </param>
- <param>
- <key>color2</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor2</key>
- <value>1</value>
- </param>
- <param>
- <key>label3</key>
- <value></value>
- </param>
- <param>
- <key>unit3</key>
- <value></value>
- </param>
- <param>
- <key>color3</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor3</key>
- <value>1</value>
- </param>
- <param>
- <key>label4</key>
- <value></value>
- </param>
- <param>
- <key>unit4</key>
- <value></value>
- </param>
- <param>
- <key>color4</key>
- <value>("black", "black")</value>
+ <value>'BER'</value>
</param>
<param>
- <key>factor4</key>
- <value>1</value>
- </param>
- <param>
- <key>label5</key>
- <value></value>
- </param>
- <param>
- <key>unit5</key>
- <value></value>
- </param>
- <param>
- <key>color5</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor5</key>
- <value>1</value>
- </param>
- <param>
- <key>label6</key>
- <value></value>
- </param>
- <param>
- <key>unit6</key>
- <value></value>
- </param>
- <param>
- <key>color6</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor6</key>
- <value>1</value>
- </param>
- <param>
- <key>label7</key>
- <value></value>
- </param>
- <param>
- <key>unit7</key>
- <value></value>
- </param>
- <param>
- <key>color7</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor7</key>
- <value>1</value>
+ <key>win_size</key>
+ <value>block*100</value>
</param>
<param>
- <key>label8</key>
- <value></value>
+ <key>bits_per_symbol</key>
+ <value>2</value>
</param>
<param>
- <key>unit8</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>color8</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor8</key>
- <value>1</value>
- </param>
- <param>
- <key>label9</key>
- <value></value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>unit9</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(725, 1399)</value>
</param>
<param>
- <key>color9</key>
- <value>("black", "black")</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>blks2_error_rate</key>
<param>
- <key>factor9</key>
- <value>1</value>
+ <key>id</key>
+ <value>blks2_error_rate_0_0_0_0</value>
</param>
<param>
- <key>label10</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>unit10</key>
- <value></value>
+ <key>type</key>
+ <value>'BER'</value>
</param>
<param>
- <key>color10</key>
- <value>("black", "black")</value>
+ <key>win_size</key>
+ <value>block*100</value>
</param>
<param>
- <key>factor10</key>
- <value>1</value>
+ <key>bits_per_symbol</key>
+ <value>2</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>_coordinate</key>
- <value>(1266, 720)</value>
+ <value>(724, 1880)</value>
</param>
<param>
<key>_rotation</key>
@@ -3362,218 +2337,194 @@
</param>
</block>
<connection>
- <source_block_id>analog_random_source_x_1</source_block_id>
- <sink_block_id>trellis_encoder_xx_1</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_multiply_const_vxx_0</source_block_id>
- <sink_block_id>blocks_add_xx_0</sink_block_id>
+ <source_block_id>blocks_add_xx_1</source_block_id>
+ <sink_block_id>wxgui_scopesink2_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_add_xx_0</source_block_id>
- <sink_block_id>blocks_add_xx_1</sink_block_id>
+ <source_block_id>blocks_add_xx_1</source_block_id>
+ <sink_block_id>virtual_sink_0_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_multiply_const_vxx_1</source_block_id>
- <sink_block_id>blocks_add_xx_0</sink_block_id>
+ <source_block_id>trellis_viterbi_combined_xx_0_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0_0_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>1</sink_key>
</connection>
<connection>
- <source_block_id>blocks_sub_xx_0</source_block_id>
- <sink_block_id>blocks_multiply_xx_0</sink_block_id>
+ <source_block_id>virtual_source_0_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0_0_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_sub_xx_0</source_block_id>
- <sink_block_id>blocks_multiply_xx_0</sink_block_id>
+ <source_block_id>blks2_error_rate_0_0_0_0</source_block_id>
+ <sink_block_id>wxgui_numbersink2_3_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>1</sink_key>
+ <sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_multiply_xx_0</source_block_id>
- <sink_block_id>blocks_short_to_float_0</sink_block_id>
+ <source_block_id>virtual_source_0_2_0</source_block_id>
+ <sink_block_id>trellis_encoder_xx_2_0</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>trellis_encoder_xx_0</sink_block_id>
+ <source_block_id>virtual_source_0_1_2</source_block_id>
+ <sink_block_id>blocks_sub_xx_2_0</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>trellis_viterbi_combined_xx_1</sink_block_id>
+ <source_block_id>digital_chunks_to_symbols_xx_0_0_1</source_block_id>
+ <sink_block_id>blocks_multiply_const_vxx_2_0</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_block_id>trellis_encoder_xx_2_0</source_block_id>
+ <sink_block_id>digital_chunks_to_symbols_xx_0_0_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_viterbi_combined_xx_1</source_block_id>
- <sink_block_id>blocks_sub_xx_0</sink_block_id>
+ <source_block_id>blocks_multiply_const_vxx_2_0</source_block_id>
+ <sink_block_id>blocks_sub_xx_2_0</sink_block_id>
<source_key>0</source_key>
<sink_key>1</sink_key>
</connection>
<connection>
- <source_block_id>trellis_viterbi_combined_xx_0</source_block_id>
- <sink_block_id>blocks_sub_xx_1</sink_block_id>
+ <source_block_id>blocks_sub_xx_2_0</source_block_id>
+ <sink_block_id>trellis_viterbi_combined_xx_0_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>1</sink_key>
+ <sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>analog_random_source_x_1</source_block_id>
- <sink_block_id>blocks_sub_xx_1</sink_block_id>
+ <source_block_id>trellis_viterbi_combined_xx_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0_0_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>0</sink_key>
+ <sink_key>1</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_block_id>virtual_source_0_4</source_block_id>
+ <sink_block_id>blks2_error_rate_0_0_0</sink_block_id>
<source_key>0</source_key>
<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_block_id>blks2_error_rate_0_0_0</source_block_id>
+ <sink_block_id>wxgui_numbersink2_3</sink_block_id>
<source_key>0</source_key>
- <sink_key>1</sink_key>
+ <sink_key>0</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_block_id>virtual_source_0_2</source_block_id>
+ <sink_block_id>trellis_encoder_xx_2</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>
+ <source_block_id>virtual_source_0_1_1</source_block_id>
<sink_block_id>blocks_sub_xx_2</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_multiply_const_vxx_2</source_block_id>
- <sink_block_id>blocks_sub_xx_2</sink_block_id>
+ <source_block_id>digital_chunks_to_symbols_xx_0_0_0</source_block_id>
+ <sink_block_id>blocks_multiply_const_vxx_2</sink_block_id>
<source_key>0</source_key>
- <sink_key>1</sink_key>
+ <sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_viterbi_combined_xx_1</source_block_id>
- <sink_block_id>trellis_encoder_xx_2</sink_block_id>
+ <source_block_id>trellis_encoder_xx_2</source_block_id>
+ <sink_block_id>digital_chunks_to_symbols_xx_0_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_viterbi_combined_xx_2</source_block_id>
- <sink_block_id>blocks_sub_xx_3</sink_block_id>
+ <source_block_id>blocks_multiply_const_vxx_2</source_block_id>
+ <sink_block_id>blocks_sub_xx_2</sink_block_id>
<source_key>0</source_key>
<sink_key>1</sink_key>
</connection>
<connection>
- <source_block_id>blocks_sub_xx_3</source_block_id>
- <sink_block_id>blocks_multiply_xx_1</sink_block_id>
+ <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>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_sub_xx_3</source_block_id>
- <sink_block_id>blocks_multiply_xx_1</sink_block_id>
- <source_key>0</source_key>
- <sink_key>1</sink_key>
- </connection>
- <connection>
- <source_block_id>analog_random_source_x_1</source_block_id>
- <sink_block_id>blocks_sub_xx_3</sink_block_id>
+ <source_block_id>blks2_error_rate_0_0</source_block_id>
+ <sink_block_id>wxgui_numbersink2_2</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_viterbi_combined_xx_2</source_block_id>
- <sink_block_id>trellis_encoder_xx_2_0</sink_block_id>
+ <source_block_id>virtual_source_0_3</source_block_id>
+ <sink_block_id>blks2_error_rate_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_viterbi_combined_xx_0_0</source_block_id>
- <sink_block_id>blocks_sub_xx_1_0</sink_block_id>
+ <source_block_id>trellis_viterbi_combined_xx_2</source_block_id>
+ <sink_block_id>blks2_error_rate_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>1</sink_key>
</connection>
<connection>
- <source_block_id>blocks_sub_xx_1_0</source_block_id>
- <sink_block_id>blocks_multiply_xx_2_0</sink_block_id>
+ <source_block_id>trellis_viterbi_combined_xx_2</source_block_id>
+ <sink_block_id>virtual_sink_0_2_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_sub_xx_1_0</source_block_id>
- <sink_block_id>blocks_multiply_xx_2_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>1</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_sub_xx_2_0</source_block_id>
- <sink_block_id>trellis_viterbi_combined_xx_0_0</sink_block_id>
+ <source_block_id>virtual_source_0_1_0</source_block_id>
+ <sink_block_id>trellis_viterbi_combined_xx_2</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>blocks_sub_xx_2_0</sink_block_id>
+ <source_block_id>blks2_error_rate_0</source_block_id>
+ <sink_block_id>wxgui_numbersink2_0</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_1_0</sink_block_id>
+ <source_block_id>virtual_source_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_multiply_const_vxx_2_0</source_block_id>
- <sink_block_id>blocks_sub_xx_2_0</sink_block_id>
+ <source_block_id>trellis_viterbi_combined_xx_1</source_block_id>
+ <sink_block_id>blks2_error_rate_0</sink_block_id>
<source_key>0</source_key>
<sink_key>1</sink_key>
</connection>
<connection>
- <source_block_id>trellis_encoder_xx_0</source_block_id>
- <sink_block_id>blocks_throttle_0</sink_block_id>
+ <source_block_id>trellis_viterbi_combined_xx_1</source_block_id>
+ <sink_block_id>virtual_sink_0_2</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>analog_noise_source_x_0</source_block_id>
- <sink_block_id>blocks_add_xx_1</sink_block_id>
- <source_key>0</source_key>
- <sink_key>1</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_throttle_0</source_block_id>
- <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id>
+ <source_block_id>virtual_source_0_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>digital_chunks_to_symbols_xx_0</source_block_id>
- <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id>
+ <source_block_id>analog_random_source_x_1</source_block_id>
+ <sink_block_id>virtual_sink_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_chunks_to_symbols_xx_0_0</source_block_id>
- <sink_block_id>blocks_multiply_const_vxx_1</sink_block_id>
+ <source_block_id>analog_random_source_x_0</source_block_id>
+ <sink_block_id>virtual_sink_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
@@ -3584,80 +2535,62 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_encoder_xx_2</source_block_id>
- <sink_block_id>digital_chunks_to_symbols_xx_0_0_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>digital_chunks_to_symbols_xx_0_0_0</source_block_id>
- <sink_block_id>blocks_multiply_const_vxx_2</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>trellis_encoder_xx_2_0</source_block_id>
- <sink_block_id>digital_chunks_to_symbols_xx_0_0_1</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>digital_chunks_to_symbols_xx_0_0_1</source_block_id>
- <sink_block_id>blocks_multiply_const_vxx_2_0</sink_block_id>
+ <source_block_id>digital_chunks_to_symbols_xx_0_0</source_block_id>
+ <sink_block_id>blocks_multiply_const_vxx_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_block_id>digital_chunks_to_symbols_xx_0</source_block_id>
+ <sink_block_id>blocks_multiply_const_vxx_0</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>trellis_viterbi_combined_xx_2</sink_block_id>
+ <source_block_id>blocks_throttle_0</source_block_id>
+ <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_short_to_float_0</source_block_id>
- <sink_block_id>qtgui_number_sink_0</sink_block_id>
+ <source_block_id>trellis_encoder_xx_0</source_block_id>
+ <sink_block_id>blocks_throttle_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_multiply_xx_2_0</source_block_id>
- <sink_block_id>blocks_short_to_float_1</sink_block_id>
+ <source_block_id>analog_random_source_x_0</source_block_id>
+ <sink_block_id>trellis_encoder_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_short_to_float_1</source_block_id>
- <sink_block_id>qtgui_number_sink_0_0_0_0</sink_block_id>
+ <source_block_id>analog_random_source_x_1</source_block_id>
+ <sink_block_id>trellis_encoder_xx_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_multiply_xx_1</source_block_id>
- <sink_block_id>blocks_short_to_float_2</sink_block_id>
+ <source_block_id>analog_noise_source_x_0</source_block_id>
+ <sink_block_id>blocks_add_xx_1</sink_block_id>
<source_key>0</source_key>
- <sink_key>0</sink_key>
+ <sink_key>1</sink_key>
</connection>
<connection>
- <source_block_id>blocks_short_to_float_2</source_block_id>
- <sink_block_id>qtgui_number_sink_0_0_0</sink_block_id>
+ <source_block_id>blocks_multiply_const_vxx_1</source_block_id>
+ <sink_block_id>blocks_add_xx_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>0</sink_key>
+ <sink_key>1</sink_key>
</connection>
<connection>
- <source_block_id>blocks_multiply_xx_2</source_block_id>
- <sink_block_id>blocks_short_to_float_3</sink_block_id>
+ <source_block_id>blocks_add_xx_0</source_block_id>
+ <sink_block_id>blocks_add_xx_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_short_to_float_3</source_block_id>
- <sink_block_id>qtgui_number_sink_0_0</sink_block_id>
+ <source_block_id>blocks_multiply_const_vxx_0</source_block_id>
+ <sink_block_id>blocks_add_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-trellis/examples/grc/pccc.grc b/gr-trellis/examples/grc/pccc.grc
index c642a71940..9d966031cf 100644
--- a/gr-trellis/examples/grc/pccc.grc
+++ b/gr-trellis/examples/grc/pccc.grc
@@ -1,6 +1,7 @@
<?xml version='1.0' encoding='ASCII'?>
+<?grc format='1' created='3.7.6'?>
<flow_graph>
- <timestamp>Mon Jul 28 14:02:43 2014</timestamp>
+ <timestamp>Fri Sep 26 12:26:16 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -29,7 +30,7 @@
</param>
<param>
<key>generate_options</key>
- <value>qt_gui</value>
+ <value>wx_gui</value>
</param>
<param>
<key>category</key>
@@ -68,7 +69,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>prefix</value>
+ <value>fsm2</value>
</param>
<param>
<key>_enabled</key>
@@ -76,7 +77,7 @@
</param>
<param>
<key>value</key>
- <value>"@FSM_FILE_INSTALL_DIR@"</value>
+ <value>trellis.fsm(prefix+"awgn1o2_4.fsm")</value>
</param>
<param>
<key>alias</key>
@@ -84,7 +85,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(520, 11)</value>
+ <value>(320, 149)</value>
</param>
<param>
<key>_rotation</key>
@@ -95,7 +96,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>noisevar</value>
+ <value>fsm1</value>
</param>
<param>
<key>_enabled</key>
@@ -103,7 +104,7 @@
</param>
<param>
<key>value</key>
- <value>10**(-snr_db/10)</value>
+ <value>trellis.fsm(prefix+"awgn1o2_4.fsm")</value>
</param>
<param>
<key>alias</key>
@@ -111,7 +112,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(279, 10)</value>
+ <value>(320, 85)</value>
</param>
<param>
<key>_rotation</key>
@@ -122,7 +123,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>R</value>
+ <value>prefix</value>
</param>
<param>
<key>_enabled</key>
@@ -130,7 +131,7 @@
</param>
<param>
<key>value</key>
- <value>100e3</value>
+ <value>"@FSM_FILE_INSTALL_DIR@"</value>
</param>
<param>
<key>alias</key>
@@ -138,7 +139,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(358, 10)</value>
+ <value>(320, 21)</value>
</param>
<param>
<key>_rotation</key>
@@ -149,7 +150,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>block</value>
+ <value>interleaver</value>
</param>
<param>
<key>_enabled</key>
@@ -157,7 +158,7 @@
</param>
<param>
<key>value</key>
- <value>1000</value>
+ <value>trellis.interleaver(block,666)</value>
</param>
<param>
<key>alias</key>
@@ -165,7 +166,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(438, 10)</value>
+ <value>(320, 213)</value>
</param>
<param>
<key>_rotation</key>
@@ -173,54 +174,80 @@
</param>
</block>
<block>
- <key>analog_random_source_x</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>analog_random_source_x_0</value>
+ <value>Es</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>short</value>
+ <key>value</key>
+ <value>sum(numpy.square(constellation))/(len(constellation)/(1.0*dim))</value>
</param>
<param>
- <key>min</key>
- <value>0</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>max</key>
- <value>2</value>
+ <key>_coordinate</key>
+ <value>(776, 141)</value>
</param>
<param>
- <key>num_samps</key>
- <value>1000</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>repeat</key>
+ <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>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(200, 37)</value>
</param>
<param>
- <key>minoutbuf</key>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>R</value>
+ </param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>10e3</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(21, 170)</value>
+ <value>(200, 101)</value>
</param>
<param>
<key>_rotation</key>
@@ -228,50 +255,53 @@
</param>
</block>
<block>
- <key>blocks_throttle</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>blocks_throttle_0</value>
+ <value>noisevar</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>short</value>
+ <key>value</key>
+ <value>10**(-EsN0_dB/10.0) * Es /2.0</value>
</param>
<param>
- <key>samples_per_second</key>
- <value>R</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>_coordinate</key>
+ <value>(1032, 149)</value>
</param>
<param>
- <key>ignoretag</key>
- <value>True</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>alias</key>
- <value></value>
+ <key>id</key>
+ <value>constellation</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>value</key>
+ <value>-3,-3,-1,-3,1,-3,3,-3, -3,-1,-1,-1,1,-1,3,-1, -3,1,-1,1,1,1,3,1, -3,3,-1,3,1,3,3,3 </value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(559, 104)</value>
+ <value>(528, 189)</value>
</param>
<param>
<key>_rotation</key>
@@ -279,113 +309,167 @@
</param>
</block>
<block>
- <key>variable_qtgui_range</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>snr_db</value>
+ <value>dim</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>SNR (dB)</value>
+ <key>value</key>
+ <value>2</value>
</param>
<param>
- <key>value</key>
- <value>5</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>start</key>
- <value>-10</value>
+ <key>_coordinate</key>
+ <value>(688, 189)</value>
</param>
<param>
- <key>stop</key>
- <value>10</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_source</key>
<param>
- <key>step</key>
- <value>0.01</value>
+ <key>id</key>
+ <value>virtual_source_0_0</value>
</param>
<param>
- <key>widget</key>
- <value>counter_slider</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
+ <key>stream_id</key>
+ <value>info</value>
</param>
<param>
- <key>min_len</key>
- <value>200</value>
+ <key>_coordinate</key>
+ <value>(104, 1220)</value>
</param>
<param>
- <key>gui_hint</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_source</key>
<param>
- <key>alias</key>
- <value></value>
+ <key>id</key>
+ <value>virtual_source_0_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>estimate</value>
</param>
<param>
<key>_coordinate</key>
- <value>(177, 10)</value>
+ <value>(88, 1292)</value>
</param>
<param>
<key>_rotation</key>
- <value>180</value>
+ <value>0</value>
</param>
</block>
<block>
- <key>digital_chunks_to_symbols_xx</key>
+ <key>wxgui_numbersink2</key>
<param>
<key>id</key>
- <value>digital_chunks_to_symbols_xx_0</value>
+ <value>wxgui_numbersink2_3_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>in_type</key>
- <value>short</value>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
- <key>out_type</key>
- <value>complex</value>
+ <key>title</key>
+ <value>BER</value>
</param>
<param>
- <key>symbol_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>units</key>
+ <value>BER</value>
</param>
<param>
- <key>dimension</key>
- <value>2</value>
+ <key>samp_rate</key>
+ <value>R</value>
</param>
<param>
- <key>num_ports</key>
- <value>1</value>
+ <key>min_value</key>
+ <value>0</value>
</param>
<param>
- <key>alias</key>
+ <key>max_value</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>factor</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>decimal_places</key>
+ <value>6</value>
+ </param>
+ <param>
+ <key>ref_level</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>number_rate</key>
+ <value>15</value>
+ </param>
+ <param>
+ <key>peak_hold</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>average</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>avg_alpha</key>
+ <value>0.001</value>
+ </param>
+ <param>
+ <key>show_gauge</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>win_size</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>grid_pos</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(559, 180)</value>
+ <value>(680, 1205)</value>
</param>
<param>
<key>_rotation</key>
@@ -393,10 +477,10 @@
</param>
</block>
<block>
- <key>trellis_pccc_encoder_xx</key>
+ <key>blks2_error_rate</key>
<param>
<key>id</key>
- <value>trellis_pccc_encoder_xx_0</value>
+ <value>blks2_error_rate_0</value>
</param>
<param>
<key>_enabled</key>
@@ -404,31 +488,15 @@
</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>
+ <value>'SER'</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>
+ <key>win_size</key>
+ <value>block*100</value>
</param>
<param>
- <key>bl</key>
- <value>block</value>
+ <key>bits_per_symbol</key>
+ <value>1</value>
</param>
<param>
<key>alias</key>
@@ -448,7 +516,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(234, 154)</value>
+ <value>(304, 1256)</value>
</param>
<param>
<key>_rotation</key>
@@ -456,109 +524,138 @@
</param>
</block>
<block>
- <key>trellis_pccc_decoder_combined_xx</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>trellis_pccc_decoder_combined_xx_0</value>
+ <value>EsN0_dB</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>c</value>
+ <key>label</key>
+ <value>EsN0 (dB)</value>
</param>
<param>
- <key>out_type</key>
- <value>s</value>
+ <key>value</key>
+ <value>2</value>
</param>
<param>
- <key>o_fsm_args</key>
- <value>prefix + "/awgn1o2_4.fsm"</value>
+ <key>min</key>
+ <value>-10</value>
</param>
<param>
- <key>o_init_state</key>
- <value>0</value>
+ <key>max</key>
+ <value>10</value>
</param>
<param>
- <key>o_final_state</key>
- <value>-1</value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>i_fsm_args</key>
- <value>prefix + "/awgn1o2_4.fsm"</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>i_init_state</key>
- <value>0</value>
+ <key>converver</key>
+ <value>float_converter</value>
</param>
<param>
- <key>i_final_state</key>
- <value>-1</value>
+ <key>grid_pos</key>
+ <value></value>
</param>
<param>
- <key>interleaver</key>
- <value>trellis.interleaver(block,666)</value>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
- <key>block_size</key>
- <value>block</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>iterations</key>
- <value>10</value>
+ <key>_coordinate</key>
+ <value>(896, 129)</value>
</param>
<param>
- <key>dim</key>
- <value>2</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
<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>id</key>
+ <value>virtual_sink_0_1</value>
</param>
<param>
- <key>metric_type</key>
- <value>digital.TRELLIS_EUCLIDEAN</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>siso_type</key>
- <value>trellis.TRELLIS_MIN_SUM</value>
+ <key>stream_id</key>
+ <value>estimate</value>
</param>
<param>
- <key>scaling</key>
- <value>1.0</value>
+ <key>_coordinate</key>
+ <value>(768, 940)</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_source</key>
<param>
- <key>affinity</key>
- <value></value>
+ <key>id</key>
+ <value>virtual_source_0</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>maxoutbuf</key>
+ <key>stream_id</key>
+ <value>observation</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(104, 940)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
+ <param>
+ <key>id</key>
+ <value>virtual_sink_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>info</value>
+ </param>
<param>
<key>_coordinate</key>
- <value>(234, 299)</value>
+ <value>(224, 412)</value>
</param>
<param>
<key>_rotation</key>
- <value>180</value>
+ <value>0</value>
</param>
</block>
<block>
- <key>blocks_multiply_xx</key>
+ <key>analog_random_source_x</key>
<param>
<key>id</key>
- <value>blocks_multiply_xx_2_0</value>
+ <value>analog_random_source_x_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -566,15 +663,23 @@
</param>
<param>
<key>type</key>
- <value>short</value>
+ <value>byte</value>
</param>
<param>
- <key>num_inputs</key>
+ <key>min</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>max</key>
<value>2</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>num_samps</key>
+ <value>1007</value>
+ </param>
+ <param>
+ <key>repeat</key>
+ <value>True</value>
</param>
<param>
<key>alias</key>
@@ -594,7 +699,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(421, 574)</value>
+ <value>(8, 471)</value>
</param>
<param>
<key>_rotation</key>
@@ -602,10 +707,10 @@
</param>
</block>
<block>
- <key>blocks_sub_xx</key>
+ <key>blocks_throttle</key>
<param>
<key>id</key>
- <value>blocks_sub_xx_0</value>
+ <value>blocks_throttle_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -613,15 +718,19 @@
</param>
<param>
<key>type</key>
- <value>short</value>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>samples_per_second</key>
+ <value>R</value>
</param>
<param>
<key>vlen</key>
<value>1</value>
</param>
<param>
- <key>num_inputs</key>
- <value>2</value>
+ <key>ignoretag</key>
+ <value>True</value>
</param>
<param>
<key>alias</key>
@@ -641,7 +750,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(246, 580)</value>
+ <value>(208, 492)</value>
</param>
<param>
<key>_rotation</key>
@@ -649,21 +758,33 @@
</param>
</block>
<block>
- <key>blocks_short_to_float</key>
+ <key>digital_chunks_to_symbols_xx</key>
<param>
<key>id</key>
- <value>blocks_short_to_float_1_0</value>
+ <value>digital_chunks_to_symbols_xx_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>in_type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>out_type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>symbol_table</key>
+ <value>constellation</value>
</param>
<param>
- <key>scale</key>
+ <key>dimension</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>num_ports</key>
<value>1</value>
</param>
<param>
@@ -684,7 +805,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(564, 592)</value>
+ <value>(632, 485)</value>
</param>
<param>
<key>_rotation</key>
@@ -703,7 +824,7 @@
</param>
<param>
<key>type</key>
- <value>complex</value>
+ <value>float</value>
</param>
<param>
<key>noise_type</key>
@@ -711,7 +832,7 @@
</param>
<param>
<key>amp</key>
- <value>noisevar</value>
+ <value>noisevar**0.5</value>
</param>
<param>
<key>seed</key>
@@ -735,7 +856,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(520, 309)</value>
+ <value>(656, 646)</value>
</param>
<param>
<key>_rotation</key>
@@ -754,7 +875,7 @@
</param>
<param>
<key>type</key>
- <value>complex</value>
+ <value>float</value>
</param>
<param>
<key>num_inputs</key>
@@ -782,7 +903,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(816, 192)</value>
+ <value>(880, 552)</value>
</param>
<param>
<key>_rotation</key>
@@ -790,226 +911,211 @@
</param>
</block>
<block>
- <key>qtgui_number_sink</key>
+ <key>virtual_sink</key>
<param>
<key>id</key>
- <value>qtgui_number_sink_0</value>
+ <value>virtual_sink_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>name</key>
- <value>""</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>autoscale</key>
- <value>True</value>
+ <key>stream_id</key>
+ <value>observation</value>
</param>
<param>
- <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>
+ <key>_coordinate</key>
+ <value>(896, 676)</value>
</param>
<param>
- <key>min</key>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>trellis_pccc_encoder_xx</key>
<param>
- <key>max</key>
- <value>1</value>
- </param>
- <param>
- <key>update_time</key>
- <value>0.01</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value></value>
+ <key>id</key>
+ <value>trellis_pccc_encoder_xx_0</value>
</param>
<param>
- <key>label1</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>unit1</key>
- <value></value>
+ <key>type</key>
+ <value>bb</value>
</param>
<param>
- <key>color1</key>
- <value>("black", "black")</value>
+ <key>o_fsm_args</key>
+ <value>fsm1</value>
</param>
<param>
- <key>factor1</key>
- <value>1</value>
+ <key>o_init_state</key>
+ <value>0</value>
</param>
<param>
- <key>label2</key>
- <value></value>
+ <key>i_fsm_args</key>
+ <value>fsm2</value>
</param>
<param>
- <key>unit2</key>
- <value></value>
+ <key>i_init_state</key>
+ <value>0</value>
</param>
<param>
- <key>color2</key>
- <value>("black", "black")</value>
+ <key>interleaver_args</key>
+ <value>interleaver</value>
</param>
<param>
- <key>factor2</key>
- <value>1</value>
+ <key>bl</key>
+ <value>block</value>
</param>
<param>
- <key>label3</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>unit3</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>color3</key>
- <value>("black", "black")</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>factor3</key>
- <value>1</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>label4</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(400, 457)</value>
</param>
<param>
- <key>unit4</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>trellis_pccc_decoder_combined_xx</key>
<param>
- <key>color4</key>
- <value>("black", "black")</value>
+ <key>id</key>
+ <value>trellis_pccc_decoder_combined_xx_0</value>
</param>
<param>
- <key>factor4</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>label5</key>
- <value></value>
+ <key>type</key>
+ <value>f</value>
</param>
<param>
- <key>unit5</key>
- <value></value>
+ <key>out_type</key>
+ <value>b</value>
</param>
<param>
- <key>color5</key>
- <value>("black", "black")</value>
+ <key>o_fsm_args</key>
+ <value>fsm1</value>
</param>
<param>
- <key>factor5</key>
- <value>1</value>
+ <key>o_init_state</key>
+ <value>0</value>
</param>
<param>
- <key>label6</key>
- <value></value>
+ <key>o_final_state</key>
+ <value>-1</value>
</param>
<param>
- <key>unit6</key>
- <value></value>
+ <key>i_fsm_args</key>
+ <value>fsm2</value>
</param>
<param>
- <key>color6</key>
- <value>("black", "black")</value>
+ <key>i_init_state</key>
+ <value>0</value>
</param>
<param>
- <key>factor6</key>
- <value>1</value>
+ <key>i_final_state</key>
+ <value>-1</value>
</param>
<param>
- <key>label7</key>
- <value></value>
+ <key>interleaver</key>
+ <value>interleaver</value>
</param>
<param>
- <key>unit7</key>
- <value></value>
+ <key>block_size</key>
+ <value>block</value>
</param>
<param>
- <key>color7</key>
- <value>("black", "black")</value>
+ <key>iterations</key>
+ <value>10</value>
</param>
<param>
- <key>factor7</key>
- <value>1</value>
+ <key>dim</key>
+ <value>2</value>
</param>
<param>
- <key>label8</key>
- <value></value>
+ <key>table</key>
+ <value>constellation</value>
</param>
<param>
- <key>unit8</key>
- <value></value>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_EUCLIDEAN</value>
</param>
<param>
- <key>color8</key>
- <value>("black", "black")</value>
+ <key>siso_type</key>
+ <value>trellis.TRELLIS_SUM_PRODUCT</value>
</param>
<param>
- <key>factor8</key>
- <value>1</value>
+ <key>scaling</key>
+ <value>1.0/noisevar</value>
</param>
<param>
- <key>label9</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>unit9</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>color9</key>
- <value>("black", "black")</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>factor9</key>
- <value>1</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>label10</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(400, 849)</value>
</param>
<param>
- <key>unit10</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>import</key>
<param>
- <key>color10</key>
- <value>("black", "black")</value>
+ <key>id</key>
+ <value>import_0_0</value>
</param>
<param>
- <key>factor10</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>import</key>
+ <value>import gnuradio.trellis.fsm_utils as fu</value>
</param>
<param>
- <key>affinity</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(571, 477)</value>
+ <value>(48, 132)</value>
</param>
<param>
<key>_rotation</key>
@@ -1017,75 +1123,75 @@
</param>
</block>
<connection>
- <source_block_id>analog_random_source_x_0</source_block_id>
- <sink_block_id>trellis_pccc_encoder_xx_0</sink_block_id>
+ <source_block_id>digital_chunks_to_symbols_xx_0</source_block_id>
+ <sink_block_id>blocks_add_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>trellis_pccc_decoder_combined_xx_0</sink_block_id>
+ <source_block_id>blks2_error_rate_0</source_block_id>
+ <sink_block_id>wxgui_numbersink2_3_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>analog_noise_source_x_0</source_block_id>
- <sink_block_id>blocks_add_xx_1</sink_block_id>
+ <source_block_id>virtual_source_0_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>1</sink_key>
+ <sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_chunks_to_symbols_xx_0</source_block_id>
- <sink_block_id>blocks_add_xx_1</sink_block_id>
+ <source_block_id>virtual_source_0_0_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>0</sink_key>
+ <sink_key>1</sink_key>
</connection>
<connection>
- <source_block_id>blocks_throttle_0</source_block_id>
- <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id>
+ <source_block_id>blocks_add_xx_1</source_block_id>
+ <sink_block_id>virtual_sink_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_pccc_encoder_xx_0</source_block_id>
- <sink_block_id>blocks_throttle_0</sink_block_id>
+ <source_block_id>trellis_pccc_decoder_combined_xx_0</source_block_id>
+ <sink_block_id>virtual_sink_0_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_block_id>virtual_source_0</source_block_id>
+ <sink_block_id>trellis_pccc_decoder_combined_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_short_to_float_1_0</source_block_id>
- <sink_block_id>qtgui_number_sink_0</sink_block_id>
+ <source_block_id>trellis_pccc_encoder_xx_0</source_block_id>
+ <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_pccc_decoder_combined_xx_0</source_block_id>
- <sink_block_id>blocks_sub_xx_0</sink_block_id>
+ <source_block_id>blocks_throttle_0_0</source_block_id>
+ <sink_block_id>trellis_pccc_encoder_xx_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>1</sink_key>
+ <sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_sub_xx_0</source_block_id>
- <sink_block_id>blocks_multiply_xx_2_0</sink_block_id>
+ <source_block_id>analog_random_source_x_0_0</source_block_id>
+ <sink_block_id>blocks_throttle_0_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>1</sink_key>
+ <sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_sub_xx_0</source_block_id>
- <sink_block_id>blocks_multiply_xx_2_0</sink_block_id>
+ <source_block_id>analog_random_source_x_0_0</source_block_id>
+ <sink_block_id>virtual_sink_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_multiply_xx_2_0</source_block_id>
- <sink_block_id>blocks_short_to_float_1_0</sink_block_id>
+ <source_block_id>analog_noise_source_x_0</source_block_id>
+ <sink_block_id>blocks_add_xx_1</sink_block_id>
<source_key>0</source_key>
- <sink_key>0</sink_key>
+ <sink_key>1</sink_key>
</connection>
</flow_graph>
diff --git a/gr-trellis/examples/grc/readme.txt b/gr-trellis/examples/grc/readme.txt
index a5261ac0b2..3d32e046dd 100644
--- a/gr-trellis/examples/grc/readme.txt
+++ b/gr-trellis/examples/grc/readme.txt
@@ -1,6 +1,6 @@
These are examples of using gr-trellis in grc.
-INTERFERENCE CANCELLATION
+Interference Cancellation
-------------------------
Two users are transmitting simultaneously using convolutionally encoded QPSK, each with power P1=alpha*P and P2=(1-alpha)*P.
The combined signal is observed in noise and four different receivers are considered:
@@ -20,13 +20,13 @@ Serially Concatenated Convolutional Codes
-----------------------------------------
An SCCC can be defined by an outer and an inner FSM together with an interleaver
and a modulation type. You can change the SNR and observe the estimated BER.
-In sccc.grc the decoding and metric calculation are combined; in sccc1.grc they are separate.
Parallel Concatenated Convolutional Codes
-----------------------------------------
A PCCC can be defined by two FSMs together with an interleaver
and a modulation type. You can change the SNR and observe the estimated BER.
-In pccc1.grc the decoding and metric calculation are separate.
+
+...and a few other examples including turbo equalization, etc
Enjoy.
diff --git a/gr-trellis/examples/grc/sccc.grc b/gr-trellis/examples/grc/sccc.grc
index 9d516743b6..0bcaa6c00a 100644
--- a/gr-trellis/examples/grc/sccc.grc
+++ b/gr-trellis/examples/grc/sccc.grc
@@ -1,6 +1,7 @@
<?xml version='1.0' encoding='ASCII'?>
+<?grc format='1' created='3.7.6'?>
<flow_graph>
- <timestamp>Mon Jul 28 14:09:50 2014</timestamp>
+ <timestamp>Wed Oct 1 11:04:18 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -29,7 +30,7 @@
</param>
<param>
<key>generate_options</key>
- <value>qt_gui</value>
+ <value>wx_gui</value>
</param>
<param>
<key>category</key>
@@ -68,6 +69,33 @@
<key>variable</key>
<param>
<key>id</key>
+ <value>mod</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>fu.psk2x3</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(632, 101)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
<value>prefix</value>
</param>
<param>
@@ -84,7 +112,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(514, 10)</value>
+ <value>(344, 13)</value>
</param>
<param>
<key>_rotation</key>
@@ -95,7 +123,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>block</value>
+ <value>R</value>
</param>
<param>
<key>_enabled</key>
@@ -103,7 +131,7 @@
</param>
<param>
<key>value</key>
- <value>1000</value>
+ <value>10e3</value>
</param>
<param>
<key>alias</key>
@@ -111,7 +139,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(441, 10)</value>
+ <value>(224, 93)</value>
</param>
<param>
<key>_rotation</key>
@@ -122,7 +150,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>R</value>
+ <value>interleaver</value>
</param>
<param>
<key>_enabled</key>
@@ -130,7 +158,7 @@
</param>
<param>
<key>value</key>
- <value>100e3</value>
+ <value>trellis.interleaver(block,666)</value>
</param>
<param>
<key>alias</key>
@@ -138,7 +166,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(358, 10)</value>
+ <value>(344, 205)</value>
</param>
<param>
<key>_rotation</key>
@@ -149,7 +177,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>noisevar</value>
+ <value>Es</value>
</param>
<param>
<key>_enabled</key>
@@ -157,7 +185,7 @@
</param>
<param>
<key>value</key>
- <value>10**(-snr_db/10)</value>
+ <value>sum(numpy.square(constellation))/(len(constellation)/(1.0*dim))</value>
</param>
<param>
<key>alias</key>
@@ -165,7 +193,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(279, 10)</value>
+ <value>(800, 133)</value>
</param>
<param>
<key>_rotation</key>
@@ -173,54 +201,107 @@
</param>
</block>
<block>
- <key>analog_random_source_x</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>analog_random_source_x_0</value>
+ <value>noisevar</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>short</value>
+ <key>value</key>
+ <value>10**(-EsN0_dB/10.0) * Es /2.0</value>
</param>
<param>
- <key>min</key>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1056, 141)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>max</key>
- <value>2</value>
+ <key>id</key>
+ <value>block</value>
</param>
<param>
- <key>num_samps</key>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
<value>1000</value>
</param>
<param>
- <key>repeat</key>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(224, 29)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>fsm_o</value>
+ </param>
+ <param>
+ <key>_enabled</key>
<value>True</value>
</param>
<param>
+ <key>value</key>
+ <value>trellis.fsm(prefix+"awgn1o2_4.fsm")</value>
+ </param>
+ <param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(344, 77)</value>
</param>
<param>
- <key>minoutbuf</key>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>id</key>
+ <value>fsm_i</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>trellis.fsm(prefix+"/awgn2o3_4.fsm")</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(21, 170)</value>
+ <value>(344, 141)</value>
</param>
<param>
<key>_rotation</key>
@@ -228,46 +309,103 @@
</param>
</block>
<block>
- <key>blocks_add_xx</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>blocks_add_xx_1</value>
+ <value>constellation</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
+ <key>value</key>
+ <value>mod[1]</value>
</param>
<param>
- <key>num_inputs</key>
- <value>2</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>_coordinate</key>
+ <value>(568, 173)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>dim</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>mod[0]</value>
</param>
<param>
<key>alias</key>
<value></value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(720, 173)</value>
</param>
<param>
- <key>minoutbuf</key>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>import</key>
+ <param>
+ <key>id</key>
+ <value>import_0</value>
+ </param>
<param>
- <key>maxoutbuf</key>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>import</key>
+ <value>import numpy</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(32, 148)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
+ <param>
+ <key>id</key>
+ <value>virtual_sink_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>info</value>
+ </param>
<param>
<key>_coordinate</key>
- <value>(951, 256)</value>
+ <value>(192, 332)</value>
</param>
<param>
<key>_rotation</key>
@@ -275,10 +413,10 @@
</param>
</block>
<block>
- <key>analog_noise_source_x</key>
+ <key>analog_random_source_x</key>
<param>
<key>id</key>
- <value>analog_noise_source_x_0</value>
+ <value>analog_random_source_x_0</value>
</param>
<param>
<key>_enabled</key>
@@ -286,19 +424,23 @@
</param>
<param>
<key>type</key>
- <value>complex</value>
+ <value>byte</value>
</param>
<param>
- <key>noise_type</key>
- <value>analog.GR_GAUSSIAN</value>
+ <key>min</key>
+ <value>0</value>
</param>
<param>
- <key>amp</key>
- <value>noisevar</value>
+ <key>max</key>
+ <value>2</value>
</param>
<param>
- <key>seed</key>
- <value>-42</value>
+ <key>num_samps</key>
+ <value>1007</value>
+ </param>
+ <param>
+ <key>repeat</key>
+ <value>True</value>
</param>
<param>
<key>alias</key>
@@ -318,7 +460,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(549, 250)</value>
+ <value>(5, 384)</value>
</param>
<param>
<key>_rotation</key>
@@ -337,7 +479,7 @@
</param>
<param>
<key>type</key>
- <value>short</value>
+ <value>byte</value>
</param>
<param>
<key>samples_per_second</key>
@@ -369,7 +511,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(551, 116)</value>
+ <value>(232, 404)</value>
</param>
<param>
<key>_rotation</key>
@@ -377,26 +519,34 @@
</param>
</block>
<block>
- <key>blocks_sub_xx</key>
+ <key>digital_chunks_to_symbols_xx</key>
<param>
<key>id</key>
- <value>blocks_sub_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>short</value>
+ <key>in_type</key>
+ <value>byte</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>out_type</key>
+ <value>float</value>
</param>
<param>
- <key>num_inputs</key>
- <value>2</value>
+ <key>symbol_table</key>
+ <value>constellation</value>
+ </param>
+ <param>
+ <key>dimension</key>
+ <value>dim</value>
+ </param>
+ <param>
+ <key>num_ports</key>
+ <value>1</value>
</param>
<param>
<key>alias</key>
@@ -416,7 +566,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(239, 548)</value>
+ <value>(672, 397)</value>
</param>
<param>
<key>_rotation</key>
@@ -424,10 +574,10 @@
</param>
</block>
<block>
- <key>blocks_multiply_xx</key>
+ <key>blocks_add_xx</key>
<param>
<key>id</key>
- <value>blocks_multiply_xx_2_0</value>
+ <value>blocks_add_xx_1</value>
</param>
<param>
<key>_enabled</key>
@@ -435,7 +585,7 @@
</param>
<param>
<key>type</key>
- <value>short</value>
+ <value>float</value>
</param>
<param>
<key>num_inputs</key>
@@ -463,7 +613,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(418, 551)</value>
+ <value>(960, 472)</value>
</param>
<param>
<key>_rotation</key>
@@ -471,21 +621,25 @@
</param>
</block>
<block>
- <key>blocks_short_to_float</key>
+ <key>blks2_error_rate</key>
<param>
<key>id</key>
- <value>blocks_short_to_float_1_0</value>
+ <value>blks2_error_rate_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>type</key>
+ <value>'SER'</value>
+ </param>
+ <param>
+ <key>win_size</key>
+ <value>block*100</value>
</param>
<param>
- <key>scale</key>
+ <key>bits_per_symbol</key>
<value>1</value>
</param>
<param>
@@ -506,7 +660,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(605, 564)</value>
+ <value>(312, 1168)</value>
</param>
<param>
<key>_rotation</key>
@@ -514,54 +668,45 @@
</param>
</block>
<block>
- <key>digital_chunks_to_symbols_xx</key>
+ <key>virtual_source</key>
<param>
<key>id</key>
- <value>digital_chunks_to_symbols_xx_0</value>
+ <value>virtual_source_0_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>in_type</key>
- <value>short</value>
- </param>
- <param>
- <key>out_type</key>
- <value>complex</value>
- </param>
- <param>
- <key>symbol_table</key>
- <value>1,0,1j,0,-1j,0,-1,0,1,0,1j,0,-1j,0,-1,0</value>
- </param>
- <param>
- <key>dimension</key>
- <value>2</value>
+ <key>stream_id</key>
+ <value>estimate</value>
</param>
<param>
- <key>num_ports</key>
- <value>1</value>
+ <key>_coordinate</key>
+ <value>(96, 1204)</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_source</key>
<param>
- <key>affinity</key>
- <value></value>
+ <key>id</key>
+ <value>virtual_source_0_0</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>stream_id</key>
+ <value>info</value>
</param>
<param>
<key>_coordinate</key>
- <value>(551, 181)</value>
+ <value>(112, 1132)</value>
</param>
<param>
<key>_rotation</key>
@@ -569,214 +714,219 @@
</param>
</block>
<block>
- <key>qtgui_number_sink</key>
+ <key>wxgui_numbersink2</key>
<param>
<key>id</key>
- <value>qtgui_number_sink_0</value>
+ <value>wxgui_numbersink2_3_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>name</key>
- <value>""</value>
- </param>
- <param>
<key>type</key>
<value>float</value>
</param>
<param>
- <key>autoscale</key>
- <value>False</value>
+ <key>title</key>
+ <value>BER</value>
</param>
<param>
- <key>avg</key>
- <value>0.001</value>
+ <key>units</key>
+ <value>BER</value>
</param>
<param>
- <key>graph_type</key>
- <value>qtgui.NUM_GRAPH_HORIZ</value>
+ <key>samp_rate</key>
+ <value>R</value>
</param>
<param>
- <key>nconnections</key>
- <value>1</value>
+ <key>min_value</key>
+ <value>0</value>
</param>
<param>
- <key>min</key>
- <value>0</value>
+ <key>max_value</key>
+ <value>1.0</value>
</param>
<param>
- <key>max</key>
- <value>1</value>
+ <key>factor</key>
+ <value>1.0</value>
</param>
<param>
- <key>update_time</key>
- <value>0.10</value>
+ <key>decimal_places</key>
+ <value>6</value>
</param>
<param>
- <key>gui_hint</key>
- <value>1,0,1,1</value>
+ <key>ref_level</key>
+ <value>0</value>
</param>
<param>
- <key>label1</key>
- <value></value>
+ <key>number_rate</key>
+ <value>15</value>
</param>
<param>
- <key>unit1</key>
- <value></value>
+ <key>peak_hold</key>
+ <value>False</value>
</param>
<param>
- <key>color1</key>
- <value>("black", "black")</value>
+ <key>average</key>
+ <value>False</value>
</param>
<param>
- <key>factor1</key>
- <value>1</value>
+ <key>avg_alpha</key>
+ <value>0.001</value>
</param>
<param>
- <key>label2</key>
- <value></value>
+ <key>show_gauge</key>
+ <value>False</value>
</param>
<param>
- <key>unit2</key>
+ <key>win_size</key>
<value></value>
</param>
<param>
- <key>color2</key>
- <value>("black", "black")</value>
+ <key>grid_pos</key>
+ <value></value>
</param>
<param>
- <key>factor2</key>
- <value>1</value>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
- <key>label3</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>unit3</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>color3</key>
- <value>("black", "black")</value>
+ <key>_coordinate</key>
+ <value>(688, 1117)</value>
</param>
<param>
- <key>factor3</key>
- <value>1</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_source</key>
<param>
- <key>label4</key>
- <value></value>
+ <key>id</key>
+ <value>virtual_source_0</value>
</param>
<param>
- <key>unit4</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>color4</key>
- <value>("black", "black")</value>
+ <key>stream_id</key>
+ <value>observation</value>
</param>
<param>
- <key>factor4</key>
- <value>1</value>
+ <key>_coordinate</key>
+ <value>(88, 836)</value>
</param>
<param>
- <key>label5</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
<param>
- <key>unit5</key>
- <value></value>
+ <key>id</key>
+ <value>virtual_sink_0_1</value>
</param>
<param>
- <key>color5</key>
- <value>("black", "black")</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>factor5</key>
- <value>1</value>
+ <key>stream_id</key>
+ <value>estimate</value>
</param>
<param>
- <key>label6</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(744, 836)</value>
</param>
<param>
- <key>unit6</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>trellis_sccc_decoder_combined_xx</key>
<param>
- <key>color6</key>
- <value>("black", "black")</value>
+ <key>id</key>
+ <value>trellis_sccc_decoder_combined_xx_0</value>
</param>
<param>
- <key>factor6</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>label7</key>
- <value></value>
+ <key>type</key>
+ <value>f</value>
</param>
<param>
- <key>unit7</key>
- <value></value>
+ <key>out_type</key>
+ <value>b</value>
</param>
<param>
- <key>color7</key>
- <value>("black", "black")</value>
+ <key>o_fsm_args</key>
+ <value>fsm_o</value>
</param>
<param>
- <key>factor7</key>
- <value>1</value>
+ <key>o_init_state</key>
+ <value>0</value>
</param>
<param>
- <key>label8</key>
- <value></value>
+ <key>o_final_state</key>
+ <value>-1</value>
</param>
<param>
- <key>unit8</key>
- <value></value>
+ <key>i_fsm_args</key>
+ <value>fsm_i</value>
</param>
<param>
- <key>color8</key>
- <value>("black", "black")</value>
+ <key>i_init_state</key>
+ <value>0</value>
</param>
<param>
- <key>factor8</key>
- <value>1</value>
+ <key>i_final_state</key>
+ <value>-1</value>
</param>
<param>
- <key>label9</key>
- <value></value>
+ <key>interleaver</key>
+ <value>interleaver</value>
</param>
<param>
- <key>unit9</key>
- <value></value>
+ <key>block_size</key>
+ <value>block</value>
</param>
<param>
- <key>color9</key>
- <value>("black", "black")</value>
+ <key>iterations</key>
+ <value>5</value>
</param>
<param>
- <key>factor9</key>
- <value>1</value>
+ <key>dim</key>
+ <value>dim</value>
</param>
<param>
- <key>label10</key>
- <value></value>
+ <key>table</key>
+ <value>constellation</value>
</param>
<param>
- <key>unit10</key>
- <value></value>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_EUCLIDEAN</value>
</param>
<param>
- <key>color10</key>
- <value>("black", "black")</value>
+ <key>siso_type</key>
+ <value>trellis.TRELLIS_SUM_PRODUCT</value>
</param>
<param>
- <key>factor10</key>
- <value>1</value>
+ <key>scaling</key>
+ <value>1.0/noisevar</value>
</param>
<param>
<key>alias</key>
@@ -787,8 +937,16 @@
<value></value>
</param>
<param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(788, 548)</value>
+ <value>(400, 745)</value>
</param>
<param>
<key>_rotation</key>
@@ -796,132 +954,143 @@
</param>
</block>
<block>
- <key>variable_qtgui_range</key>
+ <key>analog_noise_source_x</key>
<param>
<key>id</key>
- <value>snr_db</value>
+ <value>analog_noise_source_x_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>SNR (dB)</value>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
- <key>value</key>
- <value>5</value>
+ <key>noise_type</key>
+ <value>analog.GR_GAUSSIAN</value>
</param>
<param>
- <key>start</key>
- <value>-10</value>
+ <key>amp</key>
+ <value>noisevar**0.5</value>
</param>
<param>
- <key>stop</key>
- <value>10</value>
+ <key>seed</key>
+ <value>-42</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>step</key>
- <value>0.01</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>widget</key>
- <value>counter_slider</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>min_len</key>
- <value>200</value>
+ <key>_coordinate</key>
+ <value>(608, 510)</value>
</param>
<param>
- <key>gui_hint</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
<param>
- <key>alias</key>
- <value></value>
+ <key>id</key>
+ <value>virtual_sink_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>observation</value>
</param>
<param>
<key>_coordinate</key>
- <value>(177, 10)</value>
+ <value>(1064, 484)</value>
</param>
<param>
<key>_rotation</key>
- <value>180</value>
+ <value>0</value>
</param>
</block>
<block>
- <key>trellis_sccc_encoder_xx</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>trellis_sccc_encoder_xx_0</value>
+ <value>EsN0_dB</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>ss</value>
+ <key>label</key>
+ <value>EsN0 (dB)</value>
</param>
<param>
- <key>o_fsm_args</key>
- <value>prefix+"/awgn1o2_4.fsm"</value>
+ <key>value</key>
+ <value>2</value>
</param>
<param>
- <key>o_init_state</key>
- <value>0</value>
+ <key>min</key>
+ <value>-10</value>
</param>
<param>
- <key>i_fsm_args</key>
- <value>prefix+"/awgn2o3_4.fsm"</value>
+ <key>max</key>
+ <value>10</value>
</param>
<param>
- <key>i_init_state</key>
- <value>0</value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>interleaver_args</key>
- <value>trellis.interleaver(block,666)</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>bl</key>
- <value>block</value>
+ <key>converver</key>
+ <value>float_converter</value>
</param>
<param>
- <key>alias</key>
+ <key>grid_pos</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>notebook</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(242, 154)</value>
+ <value>(920, 113)</value>
</param>
<param>
<key>_rotation</key>
- <value>180</value>
+ <value>0</value>
</param>
</block>
<block>
- <key>trellis_sccc_decoder_combined_xx</key>
+ <key>trellis_sccc_encoder_xx</key>
<param>
<key>id</key>
- <value>trellis_sccc_decoder_combined_xx_0</value>
+ <value>trellis_sccc_encoder_xx_0</value>
</param>
<param>
<key>_enabled</key>
@@ -929,87 +1098,78 @@
</param>
<param>
<key>type</key>
- <value>c</value>
- </param>
- <param>
- <key>out_type</key>
- <value>s</value>
+ <value>bb</value>
</param>
<param>
<key>o_fsm_args</key>
- <value>prefix+"/awgn1o2_4.fsm"</value>
+ <value>fsm_o</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>
+ <value>fsm_i</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>
+ <key>interleaver_args</key>
+ <value>interleaver</value>
</param>
<param>
- <key>block_size</key>
+ <key>bl</key>
<value>block</value>
</param>
<param>
- <key>iterations</key>
- <value>5</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>dim</key>
- <value>2</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>table</key>
- <value>1,0,1j,0,-1j,0,-1,0,1,0,1j,0,-1j,0,-1,0</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>metric_type</key>
- <value>digital.TRELLIS_EUCLIDEAN</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>siso_type</key>
- <value>trellis.TRELLIS_SUM_PRODUCT</value>
+ <key>_coordinate</key>
+ <value>(416, 369)</value>
</param>
<param>
- <key>scaling</key>
- <value>1.0</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>import</key>
<param>
- <key>alias</key>
- <value></value>
+ <key>id</key>
+ <value>import_0_0</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>import</key>
+ <value>import gnuradio.trellis.fsm_utils as fu</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(241, 287)</value>
+ <value>(40, 204)</value>
</param>
<param>
<key>_rotation</key>
@@ -1017,74 +1177,74 @@
</param>
</block>
<connection>
- <source_block_id>analog_random_source_x_0</source_block_id>
- <sink_block_id>blocks_sub_xx_0</sink_block_id>
+ <source_block_id>analog_noise_source_x_0</source_block_id>
+ <sink_block_id>blocks_add_xx_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>digital_chunks_to_symbols_xx_0</source_block_id>
+ <sink_block_id>blocks_add_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>trellis_sccc_encoder_xx_0</sink_block_id>
+ <sink_block_id>virtual_sink_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_sccc_encoder_xx_0</source_block_id>
+ <source_block_id>analog_random_source_x_0</source_block_id>
<sink_block_id>blocks_throttle_0</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>trellis_sccc_decoder_combined_xx_0</sink_block_id>
+ <source_block_id>blocks_throttle_0</source_block_id>
+ <sink_block_id>trellis_sccc_encoder_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_sccc_decoder_combined_xx_0</source_block_id>
- <sink_block_id>blocks_sub_xx_0</sink_block_id>
+ <source_block_id>trellis_sccc_encoder_xx_0</source_block_id>
+ <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>1</sink_key>
+ <sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_throttle_0</source_block_id>
- <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id>
+ <source_block_id>blocks_add_xx_1</source_block_id>
+ <sink_block_id>virtual_sink_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>analog_noise_source_x_0</source_block_id>
- <sink_block_id>blocks_add_xx_1</sink_block_id>
+ <source_block_id>virtual_source_0_0_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0</sink_block_id>
<source_key>0</source_key>
<sink_key>1</sink_key>
</connection>
<connection>
- <source_block_id>digital_chunks_to_symbols_xx_0</source_block_id>
- <sink_block_id>blocks_add_xx_1</sink_block_id>
+ <source_block_id>virtual_source_0_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_sub_xx_0</source_block_id>
- <sink_block_id>blocks_multiply_xx_2_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>1</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_sub_xx_0</source_block_id>
- <sink_block_id>blocks_multiply_xx_2_0</sink_block_id>
+ <source_block_id>blks2_error_rate_0</source_block_id>
+ <sink_block_id>wxgui_numbersink2_3_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_multiply_xx_2_0</source_block_id>
- <sink_block_id>blocks_short_to_float_1_0</sink_block_id>
+ <source_block_id>trellis_sccc_decoder_combined_xx_0</source_block_id>
+ <sink_block_id>virtual_sink_0_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_short_to_float_1_0</source_block_id>
- <sink_block_id>qtgui_number_sink_0</sink_block_id>
+ <source_block_id>virtual_source_0</source_block_id>
+ <sink_block_id>trellis_sccc_decoder_combined_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-trellis/examples/grc/sccc1.grc b/gr-trellis/examples/grc/sccc1.grc
deleted file mode 100644
index 71b3f76625..0000000000
--- a/gr-trellis/examples/grc/sccc1.grc
+++ /dev/null
@@ -1,1132 +0,0 @@
-<?xml version='1.0' encoding='ASCII'?>
-<flow_graph>
- <timestamp>Mon Jul 28 14:10:35 2014</timestamp>
- <block>
- <key>options</key>
- <param>
- <key>id</key>
- <value>sccc1</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>title</key>
- <value>Serially Concatenated Convolutional Code</value>
- </param>
- <param>
- <key>author</key>
- <value>AA</value>
- </param>
- <param>
- <key>description</key>
- <value>gnuradio flow graph</value>
- </param>
- <param>
- <key>window_size</key>
- <value>2048, 2048</value>
- </param>
- <param>
- <key>generate_options</key>
- <value>qt_gui</value>
- </param>
- <param>
- <key>category</key>
- <value>Custom</value>
- </param>
- <param>
- <key>run_options</key>
- <value>prompt</value>
- </param>
- <param>
- <key>run</key>
- <value>True</value>
- </param>
- <param>
- <key>max_nouts</key>
- <value>0</value>
- </param>
- <param>
- <key>realtime_scheduling</key>
- <value></value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(10, 10)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>id</key>
- <value>prefix</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>"@FSM_FILE_INSTALL_DIR@"</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(513, 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>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(441, 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>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>100e3</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(358, 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>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>analog_random_source_x</key>
- <param>
- <key>id</key>
- <value>analog_random_source_x_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>short</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
- </param>
- <param>
- <key>max</key>
- <value>2</value>
- </param>
- <param>
- <key>num_samps</key>
- <value>1000</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>(21, 170)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>blocks_throttle</key>
- <param>
- <key>id</key>
- <value>blocks_throttle_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>short</value>
- </param>
- <param>
- <key>samples_per_second</key>
- <value>R</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>ignoretag</key>
- <value>True</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(607, 110)</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>float</value>
- </param>
- <param>
- <key>num_inputs</key>
- <value>2</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</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>(932, 187)</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_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>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>(233, 480)</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_0</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>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>(58, 486)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>blocks_short_to_float</key>
- <param>
- <key>id</key>
- <value>blocks_short_to_float_1_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>scale</key>
- <value>1</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>(376, 498)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>trellis_metrics_x</key>
- <param>
- <key>id</key>
- <value>trellis_metrics_x_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>f</value>
- </param>
- <param>
- <key>card</key>
- <value>8</value>
- </param>
- <param>
- <key>dim</key>
- <value>1</value>
- </param>
- <param>
- <key>table</key>
- <value>-7, -5, -3, -1, 1, 3, 5, 7</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>(63, 328)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>digital_chunks_to_symbols_xx</key>
- <param>
- <key>id</key>
- <value>digital_chunks_to_symbols_xx_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>in_type</key>
- <value>short</value>
- </param>
- <param>
- <key>out_type</key>
- <value>float</value>
- </param>
- <param>
- <key>symbol_table</key>
- <value>-7,-5,-3,-1,1,3,5,7</value>
- </param>
- <param>
- <key>dimension</key>
- <value>1</value>
- </param>
- <param>
- <key>num_ports</key>
- <value>1</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>(607, 175)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>analog_noise_source_x</key>
- <param>
- <key>id</key>
- <value>analog_noise_source_x_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>noise_type</key>
- <value>analog.GR_GAUSSIAN</value>
- </param>
- <param>
- <key>amp</key>
- <value>noisevar</value>
- </param>
- <param>
- <key>seed</key>
- <value>-42</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>(606, 242)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>qtgui_number_sink</key>
- <param>
- <key>id</key>
- <value>qtgui_number_sink_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>name</key>
- <value>""</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>autoscale</key>
- <value>False</value>
- </param>
- <param>
- <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>0</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>1,0,1,1</value>
- </param>
- <param>
- <key>label1</key>
- <value></value>
- </param>
- <param>
- <key>unit1</key>
- <value></value>
- </param>
- <param>
- <key>color1</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor1</key>
- <value>1</value>
- </param>
- <param>
- <key>label2</key>
- <value></value>
- </param>
- <param>
- <key>unit2</key>
- <value></value>
- </param>
- <param>
- <key>color2</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor2</key>
- <value>1</value>
- </param>
- <param>
- <key>label3</key>
- <value></value>
- </param>
- <param>
- <key>unit3</key>
- <value></value>
- </param>
- <param>
- <key>color3</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor3</key>
- <value>1</value>
- </param>
- <param>
- <key>label4</key>
- <value></value>
- </param>
- <param>
- <key>unit4</key>
- <value></value>
- </param>
- <param>
- <key>color4</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor4</key>
- <value>1</value>
- </param>
- <param>
- <key>label5</key>
- <value></value>
- </param>
- <param>
- <key>unit5</key>
- <value></value>
- </param>
- <param>
- <key>color5</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor5</key>
- <value>1</value>
- </param>
- <param>
- <key>label6</key>
- <value></value>
- </param>
- <param>
- <key>unit6</key>
- <value></value>
- </param>
- <param>
- <key>color6</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor6</key>
- <value>1</value>
- </param>
- <param>
- <key>label7</key>
- <value></value>
- </param>
- <param>
- <key>unit7</key>
- <value></value>
- </param>
- <param>
- <key>color7</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor7</key>
- <value>1</value>
- </param>
- <param>
- <key>label8</key>
- <value></value>
- </param>
- <param>
- <key>unit8</key>
- <value></value>
- </param>
- <param>
- <key>color8</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor8</key>
- <value>1</value>
- </param>
- <param>
- <key>label9</key>
- <value></value>
- </param>
- <param>
- <key>unit9</key>
- <value></value>
- </param>
- <param>
- <key>color9</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor9</key>
- <value>1</value>
- </param>
- <param>
- <key>label10</key>
- <value></value>
- </param>
- <param>
- <key>unit10</key>
- <value></value>
- </param>
- <param>
- <key>color10</key>
- <value>("black", "black")</value>
- </param>
- <param>
- <key>factor10</key>
- <value>1</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(609, 482)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </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>alias</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>
- <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>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>(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>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>(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>
- <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>trellis_sccc_encoder_xx_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>trellis_sccc_encoder_xx_0</source_block_id>
- <sink_block_id>blocks_throttle_0</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>trellis_metrics_x_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>trellis_metrics_x_0</source_block_id>
- <sink_block_id>trellis_sccc_decoder_x_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>trellis_sccc_decoder_x_0</source_block_id>
- <sink_block_id>blocks_sub_xx_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>1</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_throttle_0</source_block_id>
- <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>digital_chunks_to_symbols_xx_0</source_block_id>
- <sink_block_id>blocks_add_xx_1</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>analog_noise_source_x_0</source_block_id>
- <sink_block_id>blocks_add_xx_1</sink_block_id>
- <source_key>0</source_key>
- <sink_key>1</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_sub_xx_0</source_block_id>
- <sink_block_id>blocks_multiply_xx_2_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>1</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_sub_xx_0</source_block_id>
- <sink_block_id>blocks_multiply_xx_2_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_multiply_xx_2_0</source_block_id>
- <sink_block_id>blocks_short_to_float_1_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_short_to_float_1_0</source_block_id>
- <sink_block_id>qtgui_number_sink_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
-</flow_graph>
diff --git a/gr-trellis/examples/grc/pccc1.grc b/gr-trellis/examples/grc/tcm.grc
index acb112d255..451d940962 100644
--- a/gr-trellis/examples/grc/pccc1.grc
+++ b/gr-trellis/examples/grc/tcm.grc
@@ -1,11 +1,12 @@
<?xml version='1.0' encoding='ASCII'?>
+<?grc format='1' created='3.7.6'?>
<flow_graph>
- <timestamp>Mon Jul 28 14:09:00 2014</timestamp>
+ <timestamp>Wed Oct 1 11:04:18 2014</timestamp>
<block>
<key>options</key>
<param>
<key>id</key>
- <value>sccc1</value>
+ <value>tcm</value>
</param>
<param>
<key>_enabled</key>
@@ -13,7 +14,7 @@
</param>
<param>
<key>title</key>
- <value>Parallel Concatenated Convolutional Code</value>
+ <value>Trellis Coded Modulation</value>
</param>
<param>
<key>author</key>
@@ -29,7 +30,7 @@
</param>
<param>
<key>generate_options</key>
- <value>qt_gui</value>
+ <value>wx_gui</value>
</param>
<param>
<key>category</key>
@@ -84,7 +85,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(513, 10)</value>
+ <value>(320, 13)</value>
</param>
<param>
<key>_rotation</key>
@@ -95,7 +96,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>block</value>
+ <value>dim</value>
</param>
<param>
<key>_enabled</key>
@@ -103,7 +104,7 @@
</param>
<param>
<key>value</key>
- <value>1000</value>
+ <value>mod[0]</value>
</param>
<param>
<key>alias</key>
@@ -111,7 +112,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(441, 10)</value>
+ <value>(464, 229)</value>
</param>
<param>
<key>_rotation</key>
@@ -122,7 +123,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>R</value>
+ <value>constellation</value>
</param>
<param>
<key>_enabled</key>
@@ -130,7 +131,7 @@
</param>
<param>
<key>value</key>
- <value>100e3</value>
+ <value>mod[1]</value>
</param>
<param>
<key>alias</key>
@@ -138,7 +139,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(358, 10)</value>
+ <value>(312, 229)</value>
</param>
<param>
<key>_rotation</key>
@@ -149,7 +150,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>noisevar</value>
+ <value>mod</value>
</param>
<param>
<key>_enabled</key>
@@ -157,7 +158,7 @@
</param>
<param>
<key>value</key>
- <value>10**(-snr_db/10)</value>
+ <value>fu.psk4</value>
</param>
<param>
<key>alias</key>
@@ -165,7 +166,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(279, 10)</value>
+ <value>(336, 157)</value>
</param>
<param>
<key>_rotation</key>
@@ -173,54 +174,53 @@
</param>
</block>
<block>
- <key>analog_random_source_x</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>analog_random_source_x_0</value>
+ <value>fsm</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>short</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
+ <key>value</key>
+ <value>"awgn1o2_4.fsm"</value>
</param>
<param>
- <key>max</key>
- <value>2</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>num_samps</key>
- <value>1000</value>
+ <key>_coordinate</key>
+ <value>(320, 77)</value>
</param>
<param>
- <key>repeat</key>
- <value>True</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>alias</key>
- <value></value>
+ <key>id</key>
+ <value>R</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>value</key>
+ <value>100e3</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(21, 170)</value>
+ <value>(216, 109)</value>
</param>
<param>
<key>_rotation</key>
@@ -228,226 +228,270 @@
</param>
</block>
<block>
- <key>qtgui_number_sink</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>qtgui_number_sink_0</value>
+ <value>noisevar</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>name</key>
- <value>""</value>
+ <key>value</key>
+ <value>10**(-EsN0_dB/10.0) * Es /2.0</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>autoscale</key>
- <value>False</value>
+ <key>_coordinate</key>
+ <value>(728, 157)</value>
</param>
<param>
- <key>avg</key>
- <value>0.001</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>graph_type</key>
- <value>qtgui.NUM_GRAPH_HORIZ</value>
+ <key>id</key>
+ <value>Es</value>
</param>
<param>
- <key>nconnections</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>min</key>
+ <key>value</key>
+ <value>sum(numpy.square(numpy.abs(constellation)))/(len(constellation)/(1.0*dim))</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(528, 157)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>max</key>
- <value>1</value>
+ <key>id</key>
+ <value>block</value>
</param>
<param>
- <key>update_time</key>
- <value>0.10</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>gui_hint</key>
- <value>1,0,1,1</value>
+ <key>value</key>
+ <value>500*16</value>
</param>
<param>
- <key>label1</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>unit1</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(216, 29)</value>
</param>
<param>
- <key>color1</key>
- <value>("black", "black")</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>blocks_throttle</key>
<param>
- <key>factor1</key>
- <value>1</value>
+ <key>id</key>
+ <value>blocks_throttle_0</value>
</param>
<param>
- <key>label2</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>unit2</key>
- <value></value>
+ <key>type</key>
+ <value>byte</value>
</param>
<param>
- <key>color2</key>
- <value>("black", "black")</value>
+ <key>samples_per_second</key>
+ <value>R</value>
</param>
<param>
- <key>factor2</key>
+ <key>vlen</key>
<value>1</value>
</param>
<param>
- <key>label3</key>
- <value></value>
+ <key>ignoretag</key>
+ <value>True</value>
</param>
<param>
- <key>unit3</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>color3</key>
- <value>("black", "black")</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>factor3</key>
- <value>1</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>label4</key>
- <value></value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>unit4</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(208, 380)</value>
</param>
<param>
- <key>color4</key>
- <value>("black", "black")</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>blocks_add_xx</key>
<param>
- <key>factor4</key>
- <value>1</value>
+ <key>id</key>
+ <value>blocks_add_xx_1</value>
</param>
<param>
- <key>label5</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>unit5</key>
- <value></value>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
- <key>color5</key>
- <value>("black", "black")</value>
+ <key>num_inputs</key>
+ <value>2</value>
</param>
<param>
- <key>factor5</key>
+ <key>vlen</key>
<value>1</value>
</param>
<param>
- <key>label6</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>unit6</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>color6</key>
- <value>("black", "black")</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>factor6</key>
- <value>1</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>label7</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(912, 488)</value>
</param>
<param>
- <key>unit7</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
<param>
- <key>color7</key>
- <value>("black", "black")</value>
+ <key>id</key>
+ <value>virtual_sink_0_0</value>
</param>
<param>
- <key>factor7</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>label8</key>
- <value></value>
+ <key>stream_id</key>
+ <value>info</value>
</param>
<param>
- <key>unit8</key>
- <value></value>
+ <key>_coordinate</key>
+ <value>(224, 316)</value>
</param>
<param>
- <key>color8</key>
- <value>("black", "black")</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
<param>
- <key>factor8</key>
- <value>1</value>
+ <key>id</key>
+ <value>virtual_sink_0</value>
</param>
<param>
- <key>label9</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>unit9</key>
- <value></value>
+ <key>stream_id</key>
+ <value>observation</value>
</param>
<param>
- <key>color9</key>
- <value>("black", "black")</value>
+ <key>_coordinate</key>
+ <value>(832, 620)</value>
</param>
<param>
- <key>factor9</key>
- <value>1</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_source</key>
<param>
- <key>label10</key>
- <value></value>
+ <key>id</key>
+ <value>virtual_source_0</value>
</param>
<param>
- <key>unit10</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>color10</key>
- <value>("black", "black")</value>
+ <key>stream_id</key>
+ <value>observation</value>
</param>
<param>
- <key>factor10</key>
- <value>1</value>
+ <key>_coordinate</key>
+ <value>(64, 732)</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
<param>
- <key>affinity</key>
- <value></value>
+ <key>id</key>
+ <value>virtual_sink_0_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>estimate</value>
</param>
<param>
<key>_coordinate</key>
- <value>(632, 509)</value>
+ <value>(800, 732)</value>
</param>
<param>
<key>_rotation</key>
@@ -455,22 +499,30 @@
</param>
</block>
<block>
- <key>blocks_short_to_float</key>
+ <key>analog_noise_source_x</key>
<param>
<key>id</key>
- <value>blocks_short_to_float_1_0</value>
+ <value>analog_noise_source_x_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
- <key>scale</key>
- <value>1</value>
+ <key>noise_type</key>
+ <value>analog.GR_GAUSSIAN</value>
+ </param>
+ <param>
+ <key>amp</key>
+ <value>noisevar**0.5</value>
+ </param>
+ <param>
+ <key>seed</key>
+ <value>-42</value>
</param>
<param>
<key>alias</key>
@@ -490,7 +542,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(375, 525)</value>
+ <value>(384, 502)</value>
</param>
<param>
<key>_rotation</key>
@@ -498,46 +550,58 @@
</param>
</block>
<block>
- <key>blocks_multiply_xx</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>blocks_multiply_xx_2_0</value>
+ <value>EsN0_dB</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>short</value>
+ <key>label</key>
+ <value>Es/N0 (dB)</value>
</param>
<param>
- <key>num_inputs</key>
- <value>2</value>
+ <key>value</key>
+ <value>4.0</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>min</key>
+ <value>-10</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>max</key>
+ <value>30</value>
</param>
<param>
- <key>affinity</key>
+ <key>num_steps</key>
+ <value>1000</value>
+ </param>
+ <param>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
+ </param>
+ <param>
+ <key>converver</key>
+ <value>float_converter</value>
+ </param>
+ <param>
+ <key>grid_pos</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(232, 507)</value>
+ <value>(608, 105)</value>
</param>
<param>
<key>_rotation</key>
@@ -545,10 +609,10 @@
</param>
</block>
<block>
- <key>blocks_sub_xx</key>
+ <key>analog_random_source_x</key>
<param>
<key>id</key>
- <value>blocks_sub_xx_0</value>
+ <value>analog_random_source_x_0</value>
</param>
<param>
<key>_enabled</key>
@@ -556,17 +620,25 @@
</param>
<param>
<key>type</key>
- <value>short</value>
+ <value>byte</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>min</key>
+ <value>0</value>
</param>
<param>
- <key>num_inputs</key>
+ <key>max</key>
<value>2</value>
</param>
<param>
+ <key>num_samps</key>
+ <value>1007</value>
+ </param>
+ <param>
+ <key>repeat</key>
+ <value>True</value>
+ </param>
+ <param>
<key>alias</key>
<value></value>
</param>
@@ -584,7 +656,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(57, 513)</value>
+ <value>(8, 359)</value>
</param>
<param>
<key>_rotation</key>
@@ -592,49 +664,81 @@
</param>
</block>
<block>
- <key>variable_qtgui_range</key>
+ <key>wxgui_numbersink2</key>
<param>
<key>id</key>
- <value>snr_db</value>
+ <value>wxgui_numbersink2_3_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>SNR (dB)</value>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
- <key>value</key>
- <value>5</value>
+ <key>title</key>
+ <value>BER</value>
</param>
<param>
- <key>start</key>
- <value>-10</value>
+ <key>units</key>
+ <value>BER</value>
+ </param>
+ <param>
+ <key>samp_rate</key>
+ <value>R</value>
+ </param>
+ <param>
+ <key>min_value</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>max_value</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>factor</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>decimal_places</key>
+ <value>6</value>
+ </param>
+ <param>
+ <key>ref_level</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>number_rate</key>
+ <value>15</value>
+ </param>
+ <param>
+ <key>peak_hold</key>
+ <value>False</value>
</param>
<param>
- <key>stop</key>
- <value>10</value>
+ <key>average</key>
+ <value>False</value>
</param>
<param>
- <key>step</key>
- <value>0.01</value>
+ <key>avg_alpha</key>
+ <value>0.001</value>
</param>
<param>
- <key>widget</key>
- <value>counter_slider</value>
+ <key>show_gauge</key>
+ <value>False</value>
</param>
<param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
+ <key>win_size</key>
+ <value></value>
</param>
<param>
- <key>min_len</key>
- <value>200</value>
+ <key>grid_pos</key>
+ <value></value>
</param>
<param>
- <key>gui_hint</key>
+ <key>notebook</key>
<value></value>
</param>
<param>
@@ -642,51 +746,85 @@
<value></value>
</param>
<param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(177, 10)</value>
+ <value>(728, 1133)</value>
</param>
<param>
<key>_rotation</key>
- <value>180</value>
+ <value>0</value>
</param>
</block>
<block>
- <key>trellis_pccc_encoder_xx</key>
+ <key>virtual_source</key>
<param>
<key>id</key>
- <value>trellis_pccc_encoder_xx_0</value>
+ <value>virtual_source_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>ss</value>
+ <key>stream_id</key>
+ <value>info</value>
</param>
<param>
- <key>o_fsm_args</key>
- <value>prefix+"/awgn1o2_4.fsm"</value>
+ <key>_coordinate</key>
+ <value>(80, 1148)</value>
</param>
<param>
- <key>o_init_state</key>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_source</key>
<param>
- <key>i_fsm_args</key>
- <value>prefix+"/awgn1o2_4.fsm"</value>
+ <key>id</key>
+ <value>virtual_source_0_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>estimate</value>
</param>
<param>
- <key>i_init_state</key>
+ <key>_coordinate</key>
+ <value>(72, 1244)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>blks2_error_rate</key>
<param>
- <key>interleaver_args</key>
- <value>trellis.interleaver(block,666)</value>
+ <key>id</key>
+ <value>blks2_error_rate_0</value>
</param>
<param>
- <key>bl</key>
- <value>block</value>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>'SER'</value>
+ </param>
+ <param>
+ <key>win_size</key>
+ <value>block*100</value>
+ </param>
+ <param>
+ <key>bits_per_symbol</key>
+ <value>1</value>
</param>
<param>
<key>alias</key>
@@ -706,7 +844,34 @@
</param>
<param>
<key>_coordinate</key>
- <value>(235, 154)</value>
+ <value>(312, 1184)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>note</key>
+ <param>
+ <key>id</key>
+ <value>note_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>note</key>
+ <value>Substititue the metrics/Viterbi block with Viterbi_combo</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(712, 868)</value>
</param>
<param>
<key>_rotation</key>
@@ -721,7 +886,7 @@
</param>
<param>
<key>_enabled</key>
- <value>True</value>
+ <value>False</value>
</param>
<param>
<key>type</key>
@@ -729,15 +894,15 @@
</param>
<param>
<key>card</key>
- <value>16</value>
+ <value>trellis.fsm(prefix+fsm).O()</value>
</param>
<param>
<key>dim</key>
- <value>2</value>
+ <value>dim</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>
+ <value>constellation</value>
</param>
<param>
<key>metric_type</key>
@@ -761,7 +926,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(89, 380)</value>
+ <value>(304, 711)</value>
</param>
<param>
<key>_rotation</key>
@@ -769,58 +934,34 @@
</param>
</block>
<block>
- <key>trellis_pccc_decoder_x</key>
+ <key>trellis_viterbi_x</key>
<param>
<key>id</key>
- <value>trellis_pccc_decoder_x_0</value>
+ <value>trellis_viterbi_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+"/awgn1o2_4.fsm"</value>
- </param>
- <param>
- <key>i_init_state</key>
- <value>0</value>
+ <value>False</value>
</param>
<param>
- <key>i_final_state</key>
- <value>-1</value>
+ <key>type</key>
+ <value>b</value>
</param>
<param>
- <key>interleaver</key>
- <value>trellis.interleaver(block,666)</value>
+ <key>fsm_args</key>
+ <value>prefix+fsm</value>
</param>
<param>
<key>block_size</key>
<value>block</value>
</param>
<param>
- <key>iterations</key>
- <value>10</value>
+ <key>init_state</key>
+ <value>-1</value>
</param>
<param>
- <key>siso_type</key>
- <value>trellis.TRELLIS_MIN_SUM</value>
+ <key>final_state</key>
+ <value>-1</value>
</param>
<param>
<key>alias</key>
@@ -840,7 +981,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(379, 332)</value>
+ <value>(544, 711)</value>
</param>
<param>
<key>_rotation</key>
@@ -848,34 +989,50 @@
</param>
</block>
<block>
- <key>digital_chunks_to_symbols_xx</key>
+ <key>trellis_viterbi_combined_xx</key>
<param>
<key>id</key>
- <value>digital_chunks_to_symbols_xx_0</value>
+ <value>trellis_viterbi_combined_xx_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>
+ <value>b</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>fsm_args</key>
+ <value>prefix+fsm</value>
</param>
<param>
- <key>dimension</key>
- <value>2</value>
+ <key>block_size</key>
+ <value>block</value>
</param>
<param>
- <key>num_ports</key>
- <value>1</value>
+ <key>init_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>final_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>dim</key>
+ <value>dim</value>
+ </param>
+ <param>
+ <key>table</key>
+ <value>constellation</value>
+ </param>
+ <param>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_EUCLIDEAN</value>
</param>
<param>
<key>alias</key>
@@ -895,7 +1052,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(552, 164)</value>
+ <value>(440, 866)</value>
</param>
<param>
<key>_rotation</key>
@@ -903,50 +1060,53 @@
</param>
</block>
<block>
- <key>blocks_throttle</key>
+ <key>import</key>
<param>
<key>id</key>
- <value>blocks_throttle_0</value>
+ <value>import_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>short</value>
+ <key>import</key>
+ <value>import numpy</value>
</param>
<param>
- <key>samples_per_second</key>
- <value>R</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>_coordinate</key>
+ <value>(16, 140)</value>
</param>
<param>
- <key>ignoretag</key>
- <value>True</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>import</key>
<param>
- <key>alias</key>
- <value></value>
+ <key>id</key>
+ <value>import_0_0</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>import</key>
+ <value>import gnuradio.trellis.fsm_utils as fu</value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(553, 89)</value>
+ <value>(24, 196)</value>
</param>
<param>
<key>_rotation</key>
@@ -954,30 +1114,34 @@
</param>
</block>
<block>
- <key>analog_noise_source_x</key>
+ <key>digital_chunks_to_symbols_xx</key>
<param>
<key>id</key>
- <value>analog_noise_source_x_0</value>
+ <value>digital_chunks_to_symbols_xx_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
+ <key>in_type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>out_type</key>
<value>float</value>
</param>
<param>
- <key>noise_type</key>
- <value>analog.GR_GAUSSIAN</value>
+ <key>symbol_table</key>
+ <value>constellation</value>
</param>
<param>
- <key>amp</key>
- <value>noisevar</value>
+ <key>dimension</key>
+ <value>dim</value>
</param>
<param>
- <key>seed</key>
- <value>-42</value>
+ <key>num_ports</key>
+ <value>1</value>
</param>
<param>
<key>alias</key>
@@ -997,7 +1161,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(551, 230)</value>
+ <value>(696, 373)</value>
</param>
<param>
<key>_rotation</key>
@@ -1005,10 +1169,10 @@
</param>
</block>
<block>
- <key>blocks_add_xx</key>
+ <key>trellis_encoder_xx</key>
<param>
<key>id</key>
- <value>blocks_add_xx_1</value>
+ <value>trellis_encoder_xx_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1016,15 +1180,23 @@
</param>
<param>
<key>type</key>
- <value>float</value>
+ <value>bb</value>
</param>
<param>
- <key>num_inputs</key>
- <value>2</value>
+ <key>fsm_args</key>
+ <value>prefix+fsm</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>init_state</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>blockwise</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>blocklength</key>
+ <value>0</value>
</param>
<param>
<key>alias</key>
@@ -1044,7 +1216,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(839, 176)</value>
+ <value>(424, 373)</value>
</param>
<param>
<key>_rotation</key>
@@ -1052,81 +1224,93 @@
</param>
</block>
<connection>
- <source_block_id>analog_random_source_x_0</source_block_id>
- <sink_block_id>blocks_sub_xx_0</sink_block_id>
+ <source_block_id>analog_noise_source_x_0</source_block_id>
+ <sink_block_id>blocks_add_xx_1</sink_block_id>
<source_key>0</source_key>
- <sink_key>0</sink_key>
+ <sink_key>1</sink_key>
</connection>
<connection>
- <source_block_id>blocks_add_xx_1</source_block_id>
- <sink_block_id>trellis_metrics_x_0</sink_block_id>
+ <source_block_id>digital_chunks_to_symbols_xx_0</source_block_id>
+ <sink_block_id>blocks_add_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>trellis_pccc_encoder_xx_0</sink_block_id>
+ <sink_block_id>blocks_throttle_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_pccc_encoder_xx_0</source_block_id>
- <sink_block_id>blocks_throttle_0</sink_block_id>
+ <source_block_id>blocks_throttle_0</source_block_id>
+ <sink_block_id>trellis_encoder_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_metrics_x_0</source_block_id>
- <sink_block_id>trellis_pccc_decoder_x_0</sink_block_id>
+ <source_block_id>trellis_encoder_xx_0</source_block_id>
+ <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_pccc_decoder_x_0</source_block_id>
- <sink_block_id>blocks_sub_xx_0</sink_block_id>
+ <source_block_id>blocks_add_xx_1</source_block_id>
+ <sink_block_id>virtual_sink_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>1</sink_key>
+ <sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_short_to_float_1_0</source_block_id>
- <sink_block_id>qtgui_number_sink_0</sink_block_id>
+ <source_block_id>virtual_source_0</source_block_id>
+ <sink_block_id>trellis_metrics_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_sub_xx_0</source_block_id>
- <sink_block_id>blocks_multiply_xx_2_0</sink_block_id>
+ <source_block_id>trellis_metrics_x_0</source_block_id>
+ <sink_block_id>trellis_viterbi_x_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>1</sink_key>
+ <sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_sub_xx_0</source_block_id>
- <sink_block_id>blocks_multiply_xx_2_0</sink_block_id>
+ <source_block_id>analog_random_source_x_0</source_block_id>
+ <sink_block_id>virtual_sink_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_multiply_xx_2_0</source_block_id>
- <sink_block_id>blocks_short_to_float_1_0</sink_block_id>
+ <source_block_id>trellis_viterbi_x_0</source_block_id>
+ <sink_block_id>virtual_sink_0_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>analog_noise_source_x_0</source_block_id>
- <sink_block_id>blocks_add_xx_1</sink_block_id>
+ <source_block_id>virtual_source_0</source_block_id>
+ <sink_block_id>trellis_viterbi_combined_xx_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>1</sink_key>
+ <sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_chunks_to_symbols_xx_0</source_block_id>
- <sink_block_id>blocks_add_xx_1</sink_block_id>
+ <source_block_id>trellis_viterbi_combined_xx_0</source_block_id>
+ <sink_block_id>virtual_sink_0_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_throttle_0</source_block_id>
- <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id>
+ <source_block_id>blks2_error_rate_0</source_block_id>
+ <sink_block_id>wxgui_numbersink2_3_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
+ <connection>
+ <source_block_id>virtual_source_0_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>virtual_source_0_0_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
</flow_graph>
diff --git a/gr-trellis/examples/grc/turbo_equalization.grc b/gr-trellis/examples/grc/turbo_equalization.grc
new file mode 100644
index 0000000000..b2c3b20c6a
--- /dev/null
+++ b/gr-trellis/examples/grc/turbo_equalization.grc
@@ -0,0 +1,2758 @@
+<?xml version='1.0' encoding='ASCII'?>
+<?grc format='1' created='3.7.6'?>
+<flow_graph>
+ <timestamp>Wed Oct 1 11:04:18 2014</timestamp>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>fsm_i</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>trellis.fsm(len(modulation[1]),len(channel))</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(320, 293)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>prefix</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>"@FSM_FILE_INSTALL_DIR@"</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(768, 21)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>tot_mod</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>fu.make_isi_lookup(modulation,channel,False)</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(320, 381)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>R</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>100e3</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(216, 109)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>modulation</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>fu.pam4</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(320, 117)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>channel</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>fu.c_channel</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(320, 205)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>bpsym</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>int(round(math.log(fsm_o.I())/math.log(2)))</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(528, 29)</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**(-EsN0_dB/10.0) * Es /2.0</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1080, 181)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>Es</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>numpy.mean((numpy.square(numpy.abs(tot_mod[1]))))</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(776, 181)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>interleaver</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>trellis.interleaver(block_b/bpsym,666)</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(528, 117)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>fsm_o</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>trellis.fsm(prefix+"/awgn1o2_4.fsm")</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(328, 29)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>block_b</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>bpsym*1000</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(216, 21)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>import</key>
+ <param>
+ <key>id</key>
+ <value>import_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>import</key>
+ <value>import gnuradio.trellis.fsm_utils as fu</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(24, 252)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>import</key>
+ <param>
+ <key>id</key>
+ <value>import_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>import</key>
+ <value>import numpy</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(16, 140)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>import</key>
+ <param>
+ <key>id</key>
+ <value>import_0_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>import</key>
+ <value>import math</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(24, 188)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
+ <param>
+ <key>id</key>
+ <value>virtual_sink_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>observation</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(608, 1076)</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>float</value>
+ </param>
+ <param>
+ <key>num_inputs</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</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>(688, 944)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>analog_noise_source_x</key>
+ <param>
+ <key>id</key>
+ <value>analog_noise_source_x_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>noise_type</key>
+ <value>analog.GR_GAUSSIAN</value>
+ </param>
+ <param>
+ <key>amp</key>
+ <value>noisevar**0.5</value>
+ </param>
+ <param>
+ <key>seed</key>
+ <value>-42</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>(288, 958)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>fir_filter_xxx</key>
+ <param>
+ <key>id</key>
+ <value>fir_filter_xxx_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>fff</value>
+ </param>
+ <param>
+ <key>decim</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>taps</key>
+ <value>fu.c_channel</value>
+ </param>
+ <param>
+ <key>samp_delay</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>(448, 861)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>digital_chunks_to_symbols_xx</key>
+ <param>
+ <key>id</key>
+ <value>digital_chunks_to_symbols_xx_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>in_type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>out_type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>symbol_table</key>
+ <value>modulation[1]</value>
+ </param>
+ <param>
+ <key>dimension</key>
+ <value>modulation[0]</value>
+ </param>
+ <param>
+ <key>num_ports</key>
+ <value>1</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>(480, 733)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>trellis_permutation</key>
+ <param>
+ <key>id</key>
+ <value>trellis_permutation_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>interleaver_size</key>
+ <value>interleaver.K()</value>
+ </param>
+ <param>
+ <key>table</key>
+ <value>interleaver.INTER()</value>
+ </param>
+ <param>
+ <key>syms_per_block</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</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>(208, 726)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
+ <param>
+ <key>id</key>
+ <value>virtual_sink_0_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>info_i</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(968, 572)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_throttle</key>
+ <param>
+ <key>id</key>
+ <value>blocks_throttle_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>samples_per_second</key>
+ <value>R</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>ignoretag</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(256, 580)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>analog_random_source_x</key>
+ <param>
+ <key>id</key>
+ <value>analog_random_source_x_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>min</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>max</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>num_samps</key>
+ <value>1007</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>(16, 559)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_pack_k_bits_bb</key>
+ <param>
+ <key>id</key>
+ <value>blocks_pack_k_bits_bb_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>k</key>
+ <value>bpsym</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>(440, 580)</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>bb</value>
+ </param>
+ <param>
+ <key>fsm_args</key>
+ <value>fsm_o</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>(672, 573)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
+ <param>
+ <key>id</key>
+ <value>virtual_sink_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>info</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(248, 524)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
+ <param>
+ <key>id</key>
+ <value>virtual_sink_0_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>estimate</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(864, 1380)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_unpack_k_bits_bb</key>
+ <param>
+ <key>id</key>
+ <value>blocks_unpack_k_bits_bb_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>k</key>
+ <value>bpsym</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, 1380)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_char_to_float</key>
+ <param>
+ <key>id</key>
+ <value>blocks_char_to_float_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>scale</key>
+ <value>1</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>(72, 1380)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>trellis_permutation</key>
+ <param>
+ <key>id</key>
+ <value>trellis_permutation_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>interleaver_size</key>
+ <value>interleaver.K()</value>
+ </param>
+ <param>
+ <key>table</key>
+ <value>interleaver.DEINTER()</value>
+ </param>
+ <param>
+ <key>syms_per_block</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</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>(568, 1222)</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</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>f</value>
+ </param>
+ <param>
+ <key>out_type</key>
+ <value>b</value>
+ </param>
+ <param>
+ <key>fsm_args</key>
+ <value>fsm_i</value>
+ </param>
+ <param>
+ <key>block_size</key>
+ <value>interleaver.K()</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>tot_mod[0]</value>
+ </param>
+ <param>
+ <key>table</key>
+ <value>tot_mod[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>(288, 1194)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
+ <param>
+ <key>id</key>
+ <value>virtual_sink_0_1_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>estimate_i</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(896, 1228)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_source</key>
+ <param>
+ <key>id</key>
+ <value>virtual_source_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>observation</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(40, 1236)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>analog_const_source_x</key>
+ <param>
+ <key>id</key>
+ <value>analog_const_source_x_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>const</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>(88, 1788)</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_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>f</value>
+ </param>
+ <param>
+ <key>out_type</key>
+ <value>b</value>
+ </param>
+ <param>
+ <key>fsm_args</key>
+ <value>fsm_o</value>
+ </param>
+ <param>
+ <key>block_size</key>
+ <value>interleaver.K()</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>0,1,2,3</value>
+ </param>
+ <param>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_HARD_SYMBOL</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>(256, 1338)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>trellis_siso_combined_f</key>
+ <param>
+ <key>id</key>
+ <value>trellis_siso_combined_f_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>fsm_args</key>
+ <value>fsm_i</value>
+ </param>
+ <param>
+ <key>block_size</key>
+ <value>interleaver.K()</value>
+ </param>
+ <param>
+ <key>init_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>final_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>a_post_in</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>a_post_out</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>siso_type</key>
+ <value>trellis.TRELLIS_MIN_SUM</value>
+ </param>
+ <param>
+ <key>dim</key>
+ <value>tot_mod[0]</value>
+ </param>
+ <param>
+ <key>table</key>
+ <value>tot_mod[1]</value>
+ </param>
+ <param>
+ <key>metric_type</key>
+ <value>trellis.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>(280, 1765)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>trellis_permutation</key>
+ <param>
+ <key>id</key>
+ <value>trellis_permutation_0_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>interleaver_size</key>
+ <value>interleaver.K()</value>
+ </param>
+ <param>
+ <key>table</key>
+ <value>interleaver.DEINTER()</value>
+ </param>
+ <param>
+ <key>syms_per_block</key>
+ <value>fsm_o.O()</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</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>(616, 1814)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>trellis_viterbi_x</key>
+ <param>
+ <key>id</key>
+ <value>trellis_viterbi_x_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>b</value>
+ </param>
+ <param>
+ <key>fsm_args</key>
+ <value>fsm_o</value>
+ </param>
+ <param>
+ <key>block_size</key>
+ <value>interleaver.K()</value>
+ </param>
+ <param>
+ <key>init_state</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>final_state</key>
+ <value>-1</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>(288, 2023)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_source</key>
+ <param>
+ <key>id</key>
+ <value>virtual_source_0_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>observation</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(72, 1860)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_source</key>
+ <param>
+ <key>id</key>
+ <value>virtual_source_0_1_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>observation</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(88, 2564)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_unpack_k_bits_bb</key>
+ <param>
+ <key>id</key>
+ <value>blocks_unpack_k_bits_bb_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>k</key>
+ <value>bpsym</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>(584, 2044)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
+ <param>
+ <key>id</key>
+ <value>virtual_sink_0_1_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>estimate1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(896, 2044)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_source</key>
+ <param>
+ <key>id</key>
+ <value>virtual_source_0_0_0_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>estimate1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(144, 2284)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_source</key>
+ <param>
+ <key>id</key>
+ <value>virtual_source_0_0_1_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>info</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(152, 2188)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_source</key>
+ <param>
+ <key>id</key>
+ <value>virtual_source_0_0_1_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>info</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(176, 2732)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_source</key>
+ <param>
+ <key>id</key>
+ <value>virtual_source_0_0_0_0_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>estimate2</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(168, 2828)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_source</key>
+ <param>
+ <key>id</key>
+ <value>virtual_source_0_0_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>info</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(80, 1556)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_source</key>
+ <param>
+ <key>id</key>
+ <value>virtual_source_0_0_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>estimate</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(72, 1652)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>wxgui_numbersink2</key>
+ <param>
+ <key>id</key>
+ <value>wxgui_numbersink2_3_0_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>title</key>
+ <value>BER_hard</value>
+ </param>
+ <param>
+ <key>units</key>
+ <value>BER</value>
+ </param>
+ <param>
+ <key>samp_rate</key>
+ <value>R</value>
+ </param>
+ <param>
+ <key>min_value</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>max_value</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>factor</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>decimal_places</key>
+ <value>6</value>
+ </param>
+ <param>
+ <key>ref_level</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>number_rate</key>
+ <value>15</value>
+ </param>
+ <param>
+ <key>peak_hold</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>average</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>avg_alpha</key>
+ <value>0.001</value>
+ </param>
+ <param>
+ <key>show_gauge</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>win_size</key>
+ <value></value>
+ </param>
+ <param>
+ <key>grid_pos</key>
+ <value></value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(504, 1549)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>wxgui_numbersink2</key>
+ <param>
+ <key>id</key>
+ <value>wxgui_numbersink2_3_0_0_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>title</key>
+ <value>BER_soft</value>
+ </param>
+ <param>
+ <key>units</key>
+ <value>BER</value>
+ </param>
+ <param>
+ <key>samp_rate</key>
+ <value>R</value>
+ </param>
+ <param>
+ <key>min_value</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>max_value</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>factor</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>decimal_places</key>
+ <value>6</value>
+ </param>
+ <param>
+ <key>ref_level</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>number_rate</key>
+ <value>15</value>
+ </param>
+ <param>
+ <key>peak_hold</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>average</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>avg_alpha</key>
+ <value>0.001</value>
+ </param>
+ <param>
+ <key>show_gauge</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>win_size</key>
+ <value></value>
+ </param>
+ <param>
+ <key>grid_pos</key>
+ <value></value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(576, 2181)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>wxgui_numbersink2</key>
+ <param>
+ <key>id</key>
+ <value>wxgui_numbersink2_3_0_0_0_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>title</key>
+ <value>BER_turbo</value>
+ </param>
+ <param>
+ <key>units</key>
+ <value>BER</value>
+ </param>
+ <param>
+ <key>samp_rate</key>
+ <value>R</value>
+ </param>
+ <param>
+ <key>min_value</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>max_value</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>factor</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>decimal_places</key>
+ <value>6</value>
+ </param>
+ <param>
+ <key>ref_level</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>number_rate</key>
+ <value>15</value>
+ </param>
+ <param>
+ <key>peak_hold</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>average</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>avg_alpha</key>
+ <value>0.001</value>
+ </param>
+ <param>
+ <key>show_gauge</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>win_size</key>
+ <value></value>
+ </param>
+ <param>
+ <key>grid_pos</key>
+ <value></value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(600, 2725)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>trellis_sccc_decoder_combined_xx</key>
+ <param>
+ <key>id</key>
+ <value>trellis_sccc_decoder_combined_xx_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>f</value>
+ </param>
+ <param>
+ <key>out_type</key>
+ <value>b</value>
+ </param>
+ <param>
+ <key>o_fsm_args</key>
+ <value>fsm_o</value>
+ </param>
+ <param>
+ <key>o_init_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>o_final_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>i_fsm_args</key>
+ <value>fsm_i</value>
+ </param>
+ <param>
+ <key>i_init_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>i_final_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>interleaver</key>
+ <value>interleaver</value>
+ </param>
+ <param>
+ <key>block_size</key>
+ <value>interleaver.K()</value>
+ </param>
+ <param>
+ <key>iterations</key>
+ <value>5</value>
+ </param>
+ <param>
+ <key>dim</key>
+ <value>tot_mod[0]</value>
+ </param>
+ <param>
+ <key>table</key>
+ <value>tot_mod[1]</value>
+ </param>
+ <param>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_EUCLIDEAN</value>
+ </param>
+ <param>
+ <key>siso_type</key>
+ <value>trellis.TRELLIS_MIN_SUM</value>
+ </param>
+ <param>
+ <key>scaling</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(456, 2481)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blks2_error_rate</key>
+ <param>
+ <key>id</key>
+ <value>blks2_error_rate_0_0_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>'BER'</value>
+ </param>
+ <param>
+ <key>win_size</key>
+ <value>block_b*100</value>
+ </param>
+ <param>
+ <key>bits_per_symbol</key>
+ <value>1</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>(408, 2766)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blks2_error_rate</key>
+ <param>
+ <key>id</key>
+ <value>blks2_error_rate_0_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>'BER'</value>
+ </param>
+ <param>
+ <key>win_size</key>
+ <value>block_b*100</value>
+ </param>
+ <param>
+ <key>bits_per_symbol</key>
+ <value>1</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>(384, 2230)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blks2_error_rate</key>
+ <param>
+ <key>id</key>
+ <value>blks2_error_rate_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>'BER'</value>
+ </param>
+ <param>
+ <key>win_size</key>
+ <value>block_b*100</value>
+ </param>
+ <param>
+ <key>bits_per_symbol</key>
+ <value>1</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>(312, 1598)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_slider</key>
+ <param>
+ <key>id</key>
+ <value>EsN0_dB</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>Es/N0 (dB)</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>13.0</value>
+ </param>
+ <param>
+ <key>min</key>
+ <value>-10</value>
+ </param>
+ <param>
+ <key>max</key>
+ <value>30</value>
+ </param>
+ <param>
+ <key>num_steps</key>
+ <value>1000</value>
+ </param>
+ <param>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
+ </param>
+ <param>
+ <key>converver</key>
+ <value>float_converter</value>
+ </param>
+ <param>
+ <key>grid_pos</key>
+ <value></value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(936, 129)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>options</key>
+ <param>
+ <key>id</key>
+ <value>turbo_equalization</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>title</key>
+ <value>Hard/Soft/Turbo Equalization</value>
+ </param>
+ <param>
+ <key>author</key>
+ <value>AA</value>
+ </param>
+ <param>
+ <key>description</key>
+ <value>gnuradio flow graph</value>
+ </param>
+ <param>
+ <key>window_size</key>
+ <value>2048, 3048</value>
+ </param>
+ <param>
+ <key>generate_options</key>
+ <value>wx_gui</value>
+ </param>
+ <param>
+ <key>category</key>
+ <value>Custom</value>
+ </param>
+ <param>
+ <key>run_options</key>
+ <value>prompt</value>
+ </param>
+ <param>
+ <key>run</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>max_nouts</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>realtime_scheduling</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(10, 10)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_unpack_k_bits_bb</key>
+ <param>
+ <key>id</key>
+ <value>blocks_unpack_k_bits_bb_0_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>k</key>
+ <value>bpsym</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>(720, 2572)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
+ <param>
+ <key>id</key>
+ <value>virtual_sink_0_1_1_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>estimate2</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(920, 2572)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>note</key>
+ <param>
+ <key>id</key>
+ <value>note_0_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>note</key>
+ <value>This is the full-fledged turbo equalizer/decoder</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1144, 2572)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>note</key>
+ <param>
+ <key>id</key>
+ <value>note_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>note</key>
+ <value>This is a better soft-equalizer/Viterbi decoder</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1016, 1908)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>note</key>
+ <param>
+ <key>id</key>
+ <value>note_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>note</key>
+ <value>This is the simplest hard Viterbi equalizer/hard Viterbi decoder</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1096, 1316)</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>virtual_sink_0_0</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_throttle_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>analog_noise_source_x_0</source_block_id>
+ <sink_block_id>blocks_add_xx_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_add_xx_1</source_block_id>
+ <sink_block_id>virtual_sink_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>digital_chunks_to_symbols_xx_0_0</source_block_id>
+ <sink_block_id>fir_filter_xxx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>fir_filter_xxx_0</source_block_id>
+ <sink_block_id>blocks_add_xx_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_throttle_0</source_block_id>
+ <sink_block_id>blocks_pack_k_bits_bb_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_pack_k_bits_bb_0</source_block_id>
+ <sink_block_id>trellis_encoder_xx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>trellis_encoder_xx_0</source_block_id>
+ <sink_block_id>trellis_permutation_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>trellis_permutation_0</source_block_id>
+ <sink_block_id>digital_chunks_to_symbols_xx_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>trellis_encoder_xx_0</source_block_id>
+ <sink_block_id>virtual_sink_0_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_char_to_float_0</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>trellis_permutation_0_0</source_block_id>
+ <sink_block_id>blocks_char_to_float_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>trellis_permutation_0_0</source_block_id>
+ <sink_block_id>virtual_sink_0_1_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_unpack_k_bits_bb_0</source_block_id>
+ <sink_block_id>virtual_sink_0_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>trellis_viterbi_combined_xx_1</source_block_id>
+ <sink_block_id>blocks_unpack_k_bits_bb_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>trellis_viterbi_combined_xx_0</source_block_id>
+ <sink_block_id>trellis_permutation_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>virtual_source_0</source_block_id>
+ <sink_block_id>trellis_viterbi_combined_xx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_unpack_k_bits_bb_0_0</source_block_id>
+ <sink_block_id>virtual_sink_0_1_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>virtual_source_0_1</source_block_id>
+ <sink_block_id>trellis_siso_combined_f_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>analog_const_source_x_0</source_block_id>
+ <sink_block_id>trellis_siso_combined_f_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>trellis_siso_combined_f_0</source_block_id>
+ <sink_block_id>trellis_permutation_0_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>trellis_permutation_0_0_0</source_block_id>
+ <sink_block_id>trellis_viterbi_x_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>trellis_viterbi_x_0</source_block_id>
+ <sink_block_id>blocks_unpack_k_bits_bb_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>virtual_source_0_1_0</source_block_id>
+ <sink_block_id>trellis_sccc_decoder_combined_xx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_unpack_k_bits_bb_0_0_0</source_block_id>
+ <sink_block_id>virtual_sink_0_1_1_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>trellis_sccc_decoder_combined_xx_0</source_block_id>
+ <sink_block_id>blocks_unpack_k_bits_bb_0_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blks2_error_rate_0_0_0</source_block_id>
+ <sink_block_id>wxgui_numbersink2_3_0_0_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>virtual_source_0_0_1_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>virtual_source_0_0_0_0_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blks2_error_rate_0_0_0_0</source_block_id>
+ <sink_block_id>wxgui_numbersink2_3_0_0_0_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>virtual_source_0_0_1_0_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0_0_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>virtual_source_0_0_0_0_0_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0_0_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blks2_error_rate_0_0</source_block_id>
+ <sink_block_id>wxgui_numbersink2_3_0_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>virtual_source_0_0_1</source_block_id>
+ <sink_block_id>blks2_error_rate_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>virtual_source_0_0_0_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+</flow_graph>
diff --git a/gr-trellis/examples/grc/equalization.grc b/gr-trellis/examples/grc/viterbi_equalization.grc
index 0e9c1bd5f5..2f69ead429 100644
--- a/gr-trellis/examples/grc/equalization.grc
+++ b/gr-trellis/examples/grc/viterbi_equalization.grc
@@ -69,7 +69,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>block</value>
+ <value>noisevar</value>
</param>
<param>
<key>_enabled</key>
@@ -77,7 +77,7 @@
</param>
<param>
<key>value</key>
- <value>bpsym*1000</value>
+ <value>10**(-EsN0_dB/10.0) * Es /2.0</value>
</param>
<param>
<key>alias</key>
@@ -85,7 +85,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(216, 21)</value>
+ <value>(872, 157)</value>
</param>
<param>
<key>_rotation</key>
@@ -96,7 +96,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>R</value>
+ <value>bpsym</value>
</param>
<param>
<key>_enabled</key>
@@ -104,7 +104,7 @@
</param>
<param>
<key>value</key>
- <value>100e3</value>
+ <value>int(round(math.log(fsm.I())/math.log(2)))</value>
</param>
<param>
<key>alias</key>
@@ -112,7 +112,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(216, 109)</value>
+ <value>(528, 13)</value>
</param>
<param>
<key>_rotation</key>
@@ -150,7 +150,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>modulation</value>
+ <value>R</value>
</param>
<param>
<key>_enabled</key>
@@ -158,7 +158,7 @@
</param>
<param>
<key>value</key>
- <value>fu.pam4</value>
+ <value>100e3</value>
</param>
<param>
<key>alias</key>
@@ -166,7 +166,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(320, 21)</value>
+ <value>(216, 109)</value>
</param>
<param>
<key>_rotation</key>
@@ -177,7 +177,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>fsm</value>
+ <value>block</value>
</param>
<param>
<key>_enabled</key>
@@ -185,7 +185,7 @@
</param>
<param>
<key>value</key>
- <value>trellis.fsm(len(modulation[1]),len(channel))</value>
+ <value>bpsym*1000</value>
</param>
<param>
<key>alias</key>
@@ -193,7 +193,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(320, 157)</value>
+ <value>(216, 21)</value>
</param>
<param>
<key>_rotation</key>
@@ -204,7 +204,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>tot_channel</value>
+ <value>fsm</value>
</param>
<param>
<key>_enabled</key>
@@ -212,7 +212,7 @@
</param>
<param>
<key>value</key>
- <value>fu.make_isi_lookup(modulation,channel,True)</value>
+ <value>trellis.fsm(len(modulation[1]),len(channel))</value>
</param>
<param>
<key>alias</key>
@@ -220,7 +220,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(320, 229)</value>
+ <value>(320, 157)</value>
</param>
<param>
<key>_rotation</key>
@@ -231,7 +231,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>bpsym</value>
+ <value>tot_mod</value>
</param>
<param>
<key>_enabled</key>
@@ -239,7 +239,7 @@
</param>
<param>
<key>value</key>
- <value>int(round(math.log(fsm.I())/math.log(2)))</value>
+ <value>fu.make_isi_lookup(modulation,channel,False)</value>
</param>
<param>
<key>alias</key>
@@ -247,7 +247,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(528, 13)</value>
+ <value>(320, 229)</value>
</param>
<param>
<key>_rotation</key>
@@ -258,7 +258,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>Es</value>
+ <value>modulation</value>
</param>
<param>
<key>_enabled</key>
@@ -266,7 +266,7 @@
</param>
<param>
<key>value</key>
- <value>1</value>
+ <value>fu.pam4</value>
</param>
<param>
<key>alias</key>
@@ -274,7 +274,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(608, 157)</value>
+ <value>(320, 21)</value>
</param>
<param>
<key>_rotation</key>
@@ -285,7 +285,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>noisevar</value>
+ <value>Es</value>
</param>
<param>
<key>_enabled</key>
@@ -293,7 +293,7 @@
</param>
<param>
<key>value</key>
- <value>10**(-EsN0_dB/10.0) * Es /2.0</value>
+ <value>numpy.mean((numpy.square(numpy.abs(tot_mod[1]))))</value>
</param>
<param>
<key>alias</key>
@@ -301,7 +301,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(872, 157)</value>
+ <value>(568, 157)</value>
</param>
<param>
<key>_rotation</key>
@@ -390,10 +390,10 @@
</param>
</block>
<block>
- <key>blocks_throttle</key>
+ <key>blks2_error_rate</key>
<param>
<key>id</key>
- <value>blocks_throttle_0</value>
+ <value>blks2_error_rate_0</value>
</param>
<param>
<key>_enabled</key>
@@ -401,21 +401,17 @@
</param>
<param>
<key>type</key>
- <value>byte</value>
+ <value>'BER'</value>
</param>
<param>
- <key>samples_per_second</key>
- <value>R</value>
+ <key>win_size</key>
+ <value>block*100</value>
</param>
<param>
- <key>vlen</key>
+ <key>bits_per_symbol</key>
<value>1</value>
</param>
<param>
- <key>ignoretag</key>
- <value>True</value>
- </param>
- <param>
<key>alias</key>
<value></value>
</param>
@@ -433,7 +429,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(216, 380)</value>
+ <value>(312, 1766)</value>
</param>
<param>
<key>_rotation</key>
@@ -441,54 +437,22 @@
</param>
</block>
<block>
- <key>digital_chunks_to_symbols_xx</key>
+ <key>virtual_source</key>
<param>
<key>id</key>
- <value>digital_chunks_to_symbols_xx_0</value>
+ <value>virtual_source_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>in_type</key>
- <value>short</value>
- </param>
- <param>
- <key>out_type</key>
- <value>float</value>
- </param>
- <param>
- <key>symbol_table</key>
- <value>tot_channel[1]</value>
- </param>
- <param>
- <key>dimension</key>
- <value>tot_channel[0]</value>
- </param>
- <param>
- <key>num_ports</key>
- <value>1</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>
+ <key>stream_id</key>
+ <value>info</value>
</param>
<param>
<key>_coordinate</key>
- <value>(920, 373)</value>
+ <value>(80, 1724)</value>
</param>
<param>
<key>_rotation</key>
@@ -496,46 +460,22 @@
</param>
</block>
<block>
- <key>blocks_add_xx</key>
+ <key>virtual_source</key>
<param>
<key>id</key>
- <value>blocks_add_xx_1</value>
+ <value>virtual_source_0_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>num_inputs</key>
- <value>2</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</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>
+ <key>stream_id</key>
+ <value>estimate</value>
</param>
<param>
<key>_coordinate</key>
- <value>(912, 488)</value>
+ <value>(72, 1820)</value>
</param>
<param>
<key>_rotation</key>
@@ -543,10 +483,10 @@
</param>
</block>
<block>
- <key>blocks_null_sink</key>
+ <key>wxgui_numbersink2</key>
<param>
<key>id</key>
- <value>blocks_null_sink_1</value>
+ <value>wxgui_numbersink2_3_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -557,79 +497,80 @@
<value>float</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>title</key>
+ <value>BER</value>
</param>
<param>
- <key>num_inputs</key>
- <value>1</value>
+ <key>units</key>
+ <value>BER</value>
</param>
<param>
- <key>bus_conns</key>
- <value>[[0,],]</value>
+ <key>samp_rate</key>
+ <value>R</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>min_value</key>
+ <value>0</value>
</param>
<param>
- <key>affinity</key>
- <value></value>
+ <key>max_value</key>
+ <value>1.0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(1024, 552)</value>
+ <key>factor</key>
+ <value>1.0</value>
</param>
<param>
- <key>_rotation</key>
+ <key>decimal_places</key>
+ <value>6</value>
+ </param>
+ <param>
+ <key>ref_level</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>analog_noise_source_x</key>
<param>
- <key>id</key>
- <value>analog_noise_source_x_0</value>
+ <key>number_rate</key>
+ <value>15</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>peak_hold</key>
+ <value>False</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
+ <key>average</key>
+ <value>False</value>
</param>
<param>
- <key>noise_type</key>
- <value>analog.GR_GAUSSIAN</value>
+ <key>avg_alpha</key>
+ <value>0.001</value>
</param>
<param>
- <key>amp</key>
- <value>noisevar**0.5</value>
+ <key>show_gauge</key>
+ <value>False</value>
</param>
<param>
- <key>seed</key>
- <value>-42</value>
+ <key>win_size</key>
+ <value></value>
</param>
<param>
- <key>alias</key>
+ <key>grid_pos</key>
<value></value>
</param>
<param>
- <key>affinity</key>
+ <key>notebook</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(520, 494)</value>
+ <value>(728, 1709)</value>
</param>
<param>
<key>_rotation</key>
@@ -637,46 +578,26 @@
</param>
</block>
<block>
- <key>trellis_encoder_xx</key>
+ <key>note</key>
<param>
<key>id</key>
- <value>trellis_encoder_xx_0</value>
+ <value>note_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>bs</value>
- </param>
- <param>
- <key>fsm_args</key>
- <value>fsm</value>
- </param>
- <param>
- <key>init_state</key>
- <value>0</value>
+ <key>note</key>
+ <value>Substititue the metrics/Viterbi block with Viterbi_combo</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>(648, 373)</value>
+ <value>(704, 1468)</value>
</param>
<param>
<key>_rotation</key>
@@ -699,7 +620,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(16, 732)</value>
+ <value>(40, 1236)</value>
</param>
<param>
<key>_rotation</key>
@@ -710,7 +631,7 @@
<key>virtual_sink</key>
<param>
<key>id</key>
- <value>virtual_sink_0</value>
+ <value>virtual_sink_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -718,11 +639,11 @@
</param>
<param>
<key>stream_id</key>
- <value>observation</value>
+ <value>info</value>
</param>
<param>
<key>_coordinate</key>
- <value>(832, 620)</value>
+ <value>(232, 524)</value>
</param>
<param>
<key>_rotation</key>
@@ -730,45 +651,54 @@
</param>
</block>
<block>
- <key>virtual_source</key>
+ <key>analog_random_source_x</key>
<param>
<key>id</key>
- <value>virtual_source_0_0_0</value>
+ <value>analog_random_source_x_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>stream_id</key>
- <value>estimate</value>
+ <key>type</key>
+ <value>byte</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(72, 1244)</value>
+ <key>min</key>
+ <value>0</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>max</key>
+ <value>2</value>
</param>
- </block>
- <block>
- <key>virtual_source</key>
<param>
- <key>id</key>
- <value>virtual_source_0_0</value>
+ <key>num_samps</key>
+ <value>1007</value>
</param>
<param>
- <key>_enabled</key>
+ <key>repeat</key>
<value>True</value>
</param>
<param>
- <key>stream_id</key>
- <value>info</value>
+ <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, 1148)</value>
+ <value>(16, 559)</value>
</param>
<param>
<key>_rotation</key>
@@ -776,10 +706,10 @@
</param>
</block>
<block>
- <key>wxgui_numbersink2</key>
+ <key>blocks_null_sink</key>
<param>
<key>id</key>
- <value>wxgui_numbersink2_3_0_0</value>
+ <value>blocks_null_sink_1</value>
</param>
<param>
<key>_enabled</key>
@@ -790,68 +720,82 @@
<value>float</value>
</param>
<param>
- <key>title</key>
- <value>BER</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>units</key>
- <value>BER</value>
+ <key>num_inputs</key>
+ <value>1</value>
</param>
<param>
- <key>samp_rate</key>
- <value>R</value>
+ <key>bus_conns</key>
+ <value>[[0,],]</value>
</param>
<param>
- <key>min_value</key>
- <value>0</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>max_value</key>
- <value>1.0</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>factor</key>
- <value>1.0</value>
+ <key>_coordinate</key>
+ <value>(800, 1008)</value>
</param>
<param>
- <key>decimal_places</key>
- <value>6</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
<param>
- <key>ref_level</key>
- <value>0</value>
+ <key>id</key>
+ <value>virtual_sink_0</value>
</param>
<param>
- <key>number_rate</key>
- <value>15</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>peak_hold</key>
- <value>False</value>
+ <key>stream_id</key>
+ <value>observation</value>
</param>
<param>
- <key>average</key>
- <value>False</value>
+ <key>_coordinate</key>
+ <value>(608, 1076)</value>
</param>
<param>
- <key>avg_alpha</key>
- <value>0.001</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>fir_filter_xxx</key>
<param>
- <key>show_gauge</key>
- <value>False</value>
+ <key>id</key>
+ <value>fir_filter_xxx_0</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>type</key>
+ <value>fff</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>decim</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>taps</key>
+ <value>fu.c_channel</value>
+ </param>
+ <param>
+ <key>samp_delay</key>
+ <value>0</value>
</param>
<param>
<key>alias</key>
@@ -862,8 +806,16 @@
<value></value>
</param>
<param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(728, 1133)</value>
+ <value>(904, 613)</value>
</param>
<param>
<key>_rotation</key>
@@ -871,10 +823,10 @@
</param>
</block>
<block>
- <key>analog_random_source_x</key>
+ <key>blocks_add_xx</key>
<param>
<key>id</key>
- <value>analog_random_source_x_0</value>
+ <value>blocks_add_xx_1</value>
</param>
<param>
<key>_enabled</key>
@@ -882,23 +834,15 @@
</param>
<param>
<key>type</key>
- <value>byte</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
+ <value>float</value>
</param>
<param>
- <key>max</key>
+ <key>num_inputs</key>
<value>2</value>
</param>
<param>
- <key>num_samps</key>
- <value>1007</value>
- </param>
- <param>
- <key>repeat</key>
- <value>True</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
<key>alias</key>
@@ -918,7 +862,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(8, 359)</value>
+ <value>(688, 944)</value>
</param>
<param>
<key>_rotation</key>
@@ -926,49 +870,30 @@
</param>
</block>
<block>
- <key>virtual_sink</key>
+ <key>digital_chunks_to_symbols_xx</key>
<param>
<key>id</key>
- <value>virtual_sink_0_0</value>
+ <value>digital_chunks_to_symbols_xx_0</value>
</param>
<param>
<key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>stream_id</key>
- <value>info</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(208, 324)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>blocks_packed_to_unpacked_xx</key>
- <param>
- <key>id</key>
- <value>blocks_packed_to_unpacked_xx_0</value>
+ <value>False</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>in_type</key>
+ <value>short</value>
</param>
<param>
- <key>type</key>
- <value>byte</value>
+ <key>out_type</key>
+ <value>float</value>
</param>
<param>
- <key>bits_per_chunk</key>
- <value>bpsym</value>
+ <key>symbol_table</key>
+ <value>tot_mod[1]</value>
</param>
<param>
- <key>endianness</key>
- <value>gr.GR_MSB_FIRST</value>
+ <key>dimension</key>
+ <value>tot_mod[0]</value>
</param>
<param>
<key>num_ports</key>
@@ -992,7 +917,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(408, 397)</value>
+ <value>(944, 461)</value>
</param>
<param>
<key>_rotation</key>
@@ -1000,10 +925,10 @@
</param>
</block>
<block>
- <key>blocks_unpacked_to_packed_xx</key>
+ <key>analog_noise_source_x</key>
<param>
<key>id</key>
- <value>blocks_unpacked_to_packed_xx_0</value>
+ <value>analog_noise_source_x_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1011,19 +936,19 @@
</param>
<param>
<key>type</key>
- <value>byte</value>
+ <value>float</value>
</param>
<param>
- <key>bits_per_chunk</key>
- <value>1</value>
+ <key>noise_type</key>
+ <value>analog.GR_GAUSSIAN</value>
</param>
<param>
- <key>endianness</key>
- <value>gr.GR_MSB_FIRST</value>
+ <key>amp</key>
+ <value>noisevar**0.5</value>
</param>
<param>
- <key>num_ports</key>
- <value>1</value>
+ <key>seed</key>
+ <value>-42</value>
</param>
<param>
<key>alias</key>
@@ -1043,7 +968,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(400, 309)</value>
+ <value>(288, 958)</value>
</param>
<param>
<key>_rotation</key>
@@ -1051,49 +976,54 @@
</param>
</block>
<block>
- <key>note</key>
+ <key>trellis_metrics_x</key>
<param>
<key>id</key>
- <value>note_0</value>
+ <value>trellis_metrics_x_0</value>
</param>
<param>
<key>_enabled</key>
- <value>True</value>
+ <value>False</value>
</param>
<param>
- <key>note</key>
- <value>Substititue the metrics/Viterbi block with Viterbi_combo</value>
+ <key>type</key>
+ <value>f</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>card</key>
+ <value>fsm.O()</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(720, 908)</value>
+ <key>dim</key>
+ <value>tot_mod[0]</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>table</key>
+ <value>tot_mod[1]</value>
</param>
- </block>
- <block>
- <key>virtual_sink</key>
<param>
- <key>id</key>
- <value>virtual_sink_0_1</value>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_EUCLIDEAN</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>stream_id</key>
- <value>estimate</value>
+ <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>(984, 812)</value>
+ <value>(272, 1271)</value>
</param>
<param>
<key>_rotation</key>
@@ -1101,50 +1031,58 @@
</param>
</block>
<block>
- <key>blocks_packed_to_unpacked_xx</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>blocks_packed_to_unpacked_xx_0_0</value>
+ <value>EsN0_dB</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>byte</value>
+ <key>label</key>
+ <value>Es/N0 (dB)</value>
</param>
<param>
- <key>bits_per_chunk</key>
- <value>1</value>
+ <key>value</key>
+ <value>20.0</value>
</param>
<param>
- <key>endianness</key>
- <value>gr.GR_MSB_FIRST</value>
+ <key>min</key>
+ <value>-10</value>
</param>
<param>
- <key>num_ports</key>
- <value>1</value>
+ <key>max</key>
+ <value>30</value>
</param>
<param>
- <key>alias</key>
- <value></value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>affinity</key>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
+ </param>
+ <param>
+ <key>converver</key>
+ <value>float_converter</value>
+ </param>
+ <param>
+ <key>grid_pos</key>
<value></value>
</param>
<param>
- <key>minoutbuf</key>
- <value>0</value>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
- <key>maxoutbuf</key>
- <value>0</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(768, 813)</value>
+ <value>(728, 105)</value>
</param>
<param>
<key>_rotation</key>
@@ -1152,10 +1090,10 @@
</param>
</block>
<block>
- <key>blocks_unpacked_to_packed_xx</key>
+ <key>blocks_throttle</key>
<param>
<key>id</key>
- <value>blocks_unpacked_to_packed_xx_0_0</value>
+ <value>blocks_throttle_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1166,16 +1104,16 @@
<value>byte</value>
</param>
<param>
- <key>bits_per_chunk</key>
- <value>bpsym</value>
+ <key>samples_per_second</key>
+ <value>R</value>
</param>
<param>
- <key>endianness</key>
- <value>gr.GR_MSB_FIRST</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>num_ports</key>
- <value>1</value>
+ <key>ignoretag</key>
+ <value>True</value>
</param>
<param>
<key>alias</key>
@@ -1195,7 +1133,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(760, 749)</value>
+ <value>(240, 580)</value>
</param>
<param>
<key>_rotation</key>
@@ -1203,25 +1141,33 @@
</param>
</block>
<block>
- <key>blks2_error_rate</key>
+ <key>digital_chunks_to_symbols_xx</key>
<param>
<key>id</key>
- <value>blks2_error_rate_0</value>
+ <value>digital_chunks_to_symbols_xx_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>'BER'</value>
+ <key>in_type</key>
+ <value>byte</value>
</param>
<param>
- <key>win_size</key>
- <value>block*100</value>
+ <key>out_type</key>
+ <value>float</value>
</param>
<param>
- <key>bits_per_symbol</key>
+ <key>symbol_table</key>
+ <value>modulation[1]</value>
+ </param>
+ <param>
+ <key>dimension</key>
+ <value>modulation[0]</value>
+ </param>
+ <param>
+ <key>num_ports</key>
<value>1</value>
</param>
<param>
@@ -1242,7 +1188,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(312, 1184)</value>
+ <value>(672, 613)</value>
</param>
<param>
<key>_rotation</key>
@@ -1250,58 +1196,77 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>virtual_sink</key>
<param>
<key>id</key>
- <value>EsN0_dB</value>
+ <value>virtual_sink_0_1</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Es/N0 (dB)</value>
+ <key>stream_id</key>
+ <value>estimate</value>
</param>
<param>
- <key>value</key>
- <value>14.0</value>
+ <key>_coordinate</key>
+ <value>(944, 1436)</value>
</param>
<param>
- <key>min</key>
- <value>-10</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>trellis_viterbi_x</key>
<param>
- <key>max</key>
- <value>30</value>
+ <key>id</key>
+ <value>trellis_viterbi_x_0</value>
</param>
<param>
- <key>num_steps</key>
- <value>1000</value>
+ <key>_enabled</key>
+ <value>False</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>type</key>
+ <value>b</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>fsm_args</key>
+ <value>fsm</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>block_size</key>
+ <value>block/bpsym</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>init_state</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>final_state</key>
+ <value>-1</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>(728, 105)</value>
+ <value>(480, 1271)</value>
</param>
<param>
<key>_rotation</key>
@@ -1309,17 +1274,21 @@
</param>
</block>
<block>
- <key>trellis_viterbi_x</key>
+ <key>trellis_viterbi_combined_xx</key>
<param>
<key>id</key>
- <value>trellis_viterbi_x_0</value>
+ <value>trellis_viterbi_combined_xx_0</value>
</param>
<param>
<key>_enabled</key>
- <value>False</value>
+ <value>True</value>
</param>
<param>
<key>type</key>
+ <value>f</value>
+ </param>
+ <param>
+ <key>out_type</key>
<value>b</value>
</param>
<param>
@@ -1339,6 +1308,18 @@
<value>-1</value>
</param>
<param>
+ <key>dim</key>
+ <value>tot_mod[0]</value>
+ </param>
+ <param>
+ <key>table</key>
+ <value>tot_mod[1]</value>
+ </param>
+ <param>
+ <key>metric_type</key>
+ <value>digital.TRELLIS_EUCLIDEAN</value>
+ </param>
+ <param>
<key>alias</key>
<value></value>
</param>
@@ -1356,7 +1337,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(496, 711)</value>
+ <value>(352, 1410)</value>
</param>
<param>
<key>_rotation</key>
@@ -1364,34 +1345,18 @@
</param>
</block>
<block>
- <key>trellis_metrics_x</key>
+ <key>blocks_unpack_k_bits_bb</key>
<param>
<key>id</key>
- <value>trellis_metrics_x_0</value>
+ <value>blocks_unpack_k_bits_bb_0</value>
</param>
<param>
<key>_enabled</key>
- <value>False</value>
- </param>
- <param>
- <key>type</key>
- <value>f</value>
- </param>
- <param>
- <key>card</key>
- <value>fsm.O()</value>
- </param>
- <param>
- <key>dim</key>
- <value>tot_channel[0]</value>
- </param>
- <param>
- <key>table</key>
- <value>tot_channel[1]</value>
+ <value>True</value>
</param>
<param>
- <key>metric_type</key>
- <value>digital.TRELLIS_EUCLIDEAN</value>
+ <key>k</key>
+ <value>bpsym</value>
</param>
<param>
<key>alias</key>
@@ -1411,7 +1376,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(288, 711)</value>
+ <value>(728, 1364)</value>
</param>
<param>
<key>_rotation</key>
@@ -1419,50 +1384,65 @@
</param>
</block>
<block>
- <key>trellis_viterbi_combined_xx</key>
+ <key>blocks_pack_k_bits_bb</key>
<param>
<key>id</key>
- <value>trellis_viterbi_combined_xx_0</value>
+ <value>blocks_pack_k_bits_bb_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>f</value>
+ <key>k</key>
+ <value>bpsym</value>
</param>
<param>
- <key>out_type</key>
- <value>b</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>fsm_args</key>
- <value>fsm</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>block_size</key>
- <value>block/bpsym</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>init_state</key>
- <value>-1</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>final_state</key>
- <value>-1</value>
+ <key>_coordinate</key>
+ <value>(456, 572)</value>
</param>
<param>
- <key>dim</key>
- <value>tot_channel[0]</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>trellis_encoder_xx</key>
<param>
- <key>table</key>
- <value>tot_channel[1]</value>
+ <key>id</key>
+ <value>trellis_encoder_xx_0</value>
</param>
<param>
- <key>metric_type</key>
- <value>digital.TRELLIS_EUCLIDEAN</value>
+ <key>_enabled</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>bs</value>
+ </param>
+ <param>
+ <key>fsm_args</key>
+ <value>fsm</value>
+ </param>
+ <param>
+ <key>init_state</key>
+ <value>0</value>
</param>
<param>
<key>alias</key>
@@ -1482,7 +1462,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(368, 850)</value>
+ <value>(672, 461)</value>
</param>
<param>
<key>_rotation</key>
@@ -1490,122 +1470,128 @@
</param>
</block>
<connection>
- <source_block_id>analog_noise_source_x_0</source_block_id>
- <sink_block_id>blocks_add_xx_1</sink_block_id>
+ <source_block_id>blks2_error_rate_0</source_block_id>
+ <sink_block_id>wxgui_numbersink2_3_0_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>1</sink_key>
+ <sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_chunks_to_symbols_xx_0</source_block_id>
- <sink_block_id>blocks_add_xx_1</sink_block_id>
+ <source_block_id>virtual_source_0_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0</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_throttle_0</sink_block_id>
+ <source_block_id>virtual_source_0_0_0</source_block_id>
+ <sink_block_id>blks2_error_rate_0</sink_block_id>
<source_key>0</source_key>
- <sink_key>0</sink_key>
+ <sink_key>1</sink_key>
</connection>
<connection>
- <source_block_id>trellis_encoder_xx_0</source_block_id>
- <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id>
+ <source_block_id>virtual_source_0</source_block_id>
+ <sink_block_id>trellis_metrics_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_throttle_0</source_block_id>
- <sink_block_id>blocks_unpacked_to_packed_xx_0</sink_block_id>
+ <source_block_id>trellis_metrics_x_0</source_block_id>
+ <sink_block_id>trellis_viterbi_x_0</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>blocks_null_sink_1</sink_block_id>
+ <source_block_id>virtual_source_0</source_block_id>
+ <sink_block_id>trellis_viterbi_combined_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_unpacked_to_packed_xx_0</source_block_id>
- <sink_block_id>blocks_packed_to_unpacked_xx_0</sink_block_id>
+ <source_block_id>analog_random_source_x_0</source_block_id>
+ <sink_block_id>virtual_sink_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_packed_to_unpacked_xx_0</source_block_id>
- <sink_block_id>trellis_encoder_xx_0</sink_block_id>
+ <source_block_id>analog_random_source_x_0</source_block_id>
+ <sink_block_id>blocks_throttle_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>virtual_source_0</source_block_id>
- <sink_block_id>trellis_viterbi_combined_xx_0</sink_block_id>
+ <source_block_id>analog_noise_source_x_0</source_block_id>
+ <sink_block_id>blocks_add_xx_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_add_xx_1</source_block_id>
+ <sink_block_id>blocks_null_sink_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_metrics_x_0</source_block_id>
- <sink_block_id>trellis_viterbi_x_0</sink_block_id>
+ <source_block_id>blocks_add_xx_1</source_block_id>
+ <sink_block_id>virtual_sink_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>virtual_source_0</source_block_id>
- <sink_block_id>trellis_metrics_x_0</sink_block_id>
+ <source_block_id>digital_chunks_to_symbols_xx_0_0</source_block_id>
+ <sink_block_id>fir_filter_xxx_0</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>virtual_sink_0</sink_block_id>
+ <source_block_id>fir_filter_xxx_0</source_block_id>
+ <sink_block_id>blocks_add_xx_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>virtual_source_0_0_0</source_block_id>
- <sink_block_id>blks2_error_rate_0</sink_block_id>
+ <source_block_id>digital_chunks_to_symbols_xx_0</source_block_id>
+ <sink_block_id>blocks_add_xx_1</sink_block_id>
<source_key>0</source_key>
- <sink_key>1</sink_key>
+ <sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>virtual_source_0_0</source_block_id>
- <sink_block_id>blks2_error_rate_0</sink_block_id>
+ <source_block_id>trellis_encoder_xx_0</source_block_id>
+ <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blks2_error_rate_0</source_block_id>
- <sink_block_id>wxgui_numbersink2_3_0_0</sink_block_id>
+ <source_block_id>blocks_throttle_0</source_block_id>
+ <sink_block_id>blocks_pack_k_bits_bb_0</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>virtual_sink_0_0</sink_block_id>
+ <source_block_id>blocks_pack_k_bits_bb_0</source_block_id>
+ <sink_block_id>digital_chunks_to_symbols_xx_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_packed_to_unpacked_xx_0_0</source_block_id>
+ <source_block_id>blocks_unpack_k_bits_bb_0</source_block_id>
<sink_block_id>virtual_sink_0_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_viterbi_combined_xx_0</source_block_id>
- <sink_block_id>blocks_unpacked_to_packed_xx_0_0</sink_block_id>
+ <source_block_id>trellis_viterbi_x_0</source_block_id>
+ <sink_block_id>blocks_unpack_k_bits_bb_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_unpacked_to_packed_xx_0_0</source_block_id>
- <sink_block_id>blocks_packed_to_unpacked_xx_0_0</sink_block_id>
+ <source_block_id>trellis_viterbi_combined_xx_0</source_block_id>
+ <sink_block_id>blocks_unpack_k_bits_bb_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>trellis_viterbi_x_0</source_block_id>
- <sink_block_id>blocks_unpacked_to_packed_xx_0_0</sink_block_id>
+ <source_block_id>blocks_pack_k_bits_bb_0</source_block_id>
+ <sink_block_id>trellis_encoder_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>