diff options
Diffstat (limited to 'gr-trellis/examples/grc/viterbi_equalization.grc')
-rw-r--r-- | gr-trellis/examples/grc/viterbi_equalization.grc | 1476 |
1 files changed, 840 insertions, 636 deletions
diff --git a/gr-trellis/examples/grc/viterbi_equalization.grc b/gr-trellis/examples/grc/viterbi_equalization.grc index 2f69ead429..2f50e6abdf 100644 --- a/gr-trellis/examples/grc/viterbi_equalization.grc +++ b/gr-trellis/examples/grc/viterbi_equalization.grc @@ -1,412 +1,508 @@ -<?xml version='1.0' encoding='ASCII'?> -<?grc format='1' created='3.7.6'?> +<?xml version='1.0' encoding='utf-8'?> +<?grc format='1' created='3.7.11'?> <flow_graph> <timestamp>Wed Oct 1 11:04:18 2014</timestamp> <block> <key>options</key> <param> - <key>id</key> - <value>viterbi_equalization</value> + <key>author</key> + <value>AA</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>window_size</key> + <value>2048, 2048</value> </param> <param> - <key>title</key> - <value>Viterbi Equalization</value> + <key>category</key> + <value>Custom</value> </param> <param> - <key>author</key> - <value>AA</value> + <key>comment</key> + <value></value> </param> <param> <key>description</key> <value>gnuradio flow graph</value> </param> <param> - <key>window_size</key> - <value>2048, 2048</value> + <key>_enabled</key> + <value>True</value> </param> <param> - <key>generate_options</key> - <value>wx_gui</value> + <key>_coordinate</key> + <value>(0, 4)</value> </param> <param> - <key>category</key> - <value>Custom</value> + <key>_rotation</key> + <value>0</value> </param> <param> - <key>run_options</key> - <value>prompt</value> + <key>generate_options</key> + <value>qt_gui</value> </param> <param> - <key>run</key> - <value>True</value> + <key>hier_block_src_path</key> + <value>.:</value> + </param> + <param> + <key>id</key> + <value>viterbi_equalization</value> </param> <param> <key>max_nouts</key> <value>0</value> </param> <param> - <key>realtime_scheduling</key> + <key>qt_qss_theme</key> <value></value> </param> <param> - <key>alias</key> + <key>realtime_scheduling</key> <value></value> </param> <param> - <key>_coordinate</key> - <value>(10, 10)</value> + <key>run_command</key> + <value>{python} -u {filename}</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>run_options</key> + <value>prompt</value> + </param> + <param> + <key>run</key> + <value>True</value> + </param> + <param> + <key>thread_safe_setters</key> + <value></value> + </param> + <param> + <key>title</key> + <value>Viterbi Equalization</value> </param> </block> <block> <key>variable</key> <param> - <key>id</key> - <value>noisevar</value> + <key>comment</key> + <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>value</key> - <value>10**(-EsN0_dB/10.0) * Es /2.0</value> + <key>_coordinate</key> + <value>(464, 68)</value> </param> <param> - <key>alias</key> - <value></value> + <key>_rotation</key> + <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(872, 157)</value> + <key>id</key> + <value>Es</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>value</key> + <value>numpy.mean((numpy.square(numpy.abs(tot_mod[1]))))</value> </param> </block> <block> - <key>variable</key> + <key>variable_qtgui_range</key> <param> - <key>id</key> - <value>bpsym</value> + <key>comment</key> + <value></value> + </param> + <param> + <key>value</key> + <value>2</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>value</key> - <value>int(round(math.log(fsm.I())/math.log(2)))</value> + <key>_coordinate</key> + <value>(608, 4)</value> </param> <param> - <key>alias</key> + <key>gui_hint</key> <value></value> </param> <param> - <key>_coordinate</key> - <value>(528, 13)</value> - </param> - <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>variable</key> <param> <key>id</key> - <value>channel</value> + <value>EsN0_dB</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>label</key> + <value>Es/N0 (dB)</value> </param> <param> - <key>value</key> - <value>fu.c_channel</value> + <key>min_len</key> + <value>200</value> </param> <param> - <key>alias</key> - <value></value> + <key>orient</key> + <value>Qt.Horizontal</value> </param> <param> - <key>_coordinate</key> - <value>(320, 85)</value> + <key>start</key> + <value>-10</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>step</key> + <value>1</value> + </param> + <param> + <key>stop</key> + <value>30</value> + </param> + <param> + <key>rangeType</key> + <value>float</value> + </param> + <param> + <key>widget</key> + <value>counter_slider</value> </param> </block> <block> <key>variable</key> <param> - <key>id</key> - <value>R</value> + <key>comment</key> + <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> + <key>_coordinate</key> + <value>(176, 68)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>R</value> + </param> + <param> <key>value</key> <value>100e3</value> </param> + </block> + <block> + <key>variable</key> <param> - <key>alias</key> + <key>comment</key> <value></value> </param> <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> <key>_coordinate</key> - <value>(216, 109)</value> + <value>(176, 4)</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>bpsym*1000</value> </param> + </block> + <block> + <key>variable</key> <param> - <key>alias</key> + <key>comment</key> <value></value> </param> <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> <key>_coordinate</key> - <value>(216, 21)</value> + <value>(464, 4)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> + <param> + <key>id</key> + <value>bpsym</value> + </param> + <param> + <key>value</key> + <value>int(round(math.log(fsm.I())/math.log(2)))</value> + </param> </block> <block> <key>variable</key> <param> - <key>id</key> - <value>fsm</value> + <key>comment</key> + <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>value</key> - <value>trellis.fsm(len(modulation[1]),len(channel))</value> + <key>_coordinate</key> + <value>(272, 68)</value> </param> <param> - <key>alias</key> - <value></value> + <key>_rotation</key> + <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(320, 157)</value> + <key>id</key> + <value>channel</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>value</key> + <value>fu.c_channel</value> </param> </block> <block> <key>variable</key> <param> - <key>id</key> - <value>tot_mod</value> + <key>comment</key> + <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>value</key> - <value>fu.make_isi_lookup(modulation,channel,False)</value> + <key>_coordinate</key> + <value>(272, 132)</value> </param> <param> - <key>alias</key> - <value></value> + <key>_rotation</key> + <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(320, 229)</value> + <key>id</key> + <value>fsm</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>value</key> + <value>trellis.fsm(len(modulation[1]),len(channel))</value> </param> </block> <block> <key>variable</key> <param> - <key>id</key> - <value>modulation</value> + <key>comment</key> + <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> + <key>_coordinate</key> + <value>(272, 4)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>modulation</value> + </param> + <param> <key>value</key> <value>fu.pam4</value> </param> + </block> + <block> + <key>variable</key> <param> - <key>alias</key> + <key>comment</key> <value></value> </param> <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> <key>_coordinate</key> - <value>(320, 21)</value> + <value>(464, 132)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> + <param> + <key>id</key> + <value>noisevar</value> + </param> + <param> + <key>value</key> + <value>10**(-EsN0_dB/10.0) * Es /2.0</value> + </param> </block> <block> <key>variable</key> <param> - <key>id</key> - <value>Es</value> + <key>comment</key> + <value></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> + <key>_coordinate</key> + <value>(272, 196)</value> </param> <param> - <key>alias</key> - <value></value> + <key>_rotation</key> + <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(568, 157)</value> + <key>id</key> + <value>tot_mod</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>value</key> + <value>fu.make_isi_lookup(modulation,channel,False)</value> </param> </block> <block> - <key>import</key> + <key>analog_noise_source_x</key> <param> - <key>id</key> - <value>import_0_0</value> + <key>amp</key> + <value>noisevar**0.5</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>alias</key> + <value></value> </param> <param> - <key>import</key> - <value>import gnuradio.trellis.fsm_utils as fu</value> + <key>comment</key> + <value></value> </param> <param> - <key>alias</key> + <key>affinity</key> <value></value> </param> <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> <key>_coordinate</key> - <value>(24, 252)</value> + <value>(752, 444)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>import</key> <param> <key>id</key> - <value>import_0</value> + <value>analog_noise_source_x_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>import</key> - <value>import numpy</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>alias</key> - <value></value> + <key>noise_type</key> + <value>analog.GR_GAUSSIAN</value> </param> <param> - <key>_coordinate</key> - <value>(16, 140)</value> + <key>type</key> + <value>float</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>seed</key> + <value>-42</value> </param> </block> <block> - <key>import</key> + <key>analog_random_source_x</key> <param> - <key>id</key> - <value>import_0_1</value> + <key>alias</key> + <value></value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>comment</key> + <value></value> </param> <param> - <key>import</key> - <value>import math</value> + <key>affinity</key> + <value></value> </param> <param> - <key>alias</key> - <value></value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(24, 188)</value> + <value>(0, 356)</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</value> + <value>analog_random_source_x_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>max</key> + <value>2</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>min</key> + <value>0</value> + </param> + <param> + <key>num_samps</key> + <value>1007</value> </param> <param> <key>type</key> - <value>'BER'</value> + <value>byte</value> </param> <param> - <key>win_size</key> - <value>block*100</value> + <key>repeat</key> + <value>True</value> </param> + </block> + <block> + <key>blks2_error_rate</key> <param> <key>bits_per_symbol</key> <value>1</value> @@ -416,152 +512,152 @@ <value></value> </param> <param> - <key>affinity</key> + <key>comment</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>affinity</key> + <value></value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(312, 1766)</value> + <value>(816, 708)</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</value> + <value>blks2_error_rate_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>stream_id</key> - <value>info</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(80, 1724)</value> + <key>type</key> + <value>'BER'</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>win_size</key> + <value>block*100</value> </param> </block> <block> - <key>virtual_source</key> + <key>blocks_add_xx</key> <param> - <key>id</key> - <value>virtual_source_0_0_0</value> + <key>alias</key> + <value></value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>comment</key> + <value></value> </param> <param> - <key>stream_id</key> - <value>estimate</value> + <key>affinity</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(72, 1820)</value> + <value>(1048, 384)</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</value> - </param> - <param> - <key>_enabled</key> - <value>True</value> + <value>blocks_add_xx_1</value> </param> <param> <key>type</key> <value>float</value> </param> <param> - <key>title</key> - <value>BER</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>units</key> - <value>BER</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>samp_rate</key> - <value>R</value> + <key>num_inputs</key> + <value>2</value> </param> <param> - <key>min_value</key> - <value>0</value> + <key>vlen</key> + <value>1</value> </param> + </block> + <block> + <key>blocks_null_sink</key> <param> - <key>max_value</key> - <value>1.0</value> + <key>alias</key> + <value></value> </param> <param> - <key>factor</key> - <value>1.0</value> + <key>bus_conns</key> + <value>[[0,],]</value> </param> <param> - <key>decimal_places</key> - <value>6</value> + <key>comment</key> + <value></value> </param> <param> - <key>ref_level</key> - <value>0</value> + <key>affinity</key> + <value></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>_coordinate</key> + <value>(1208, 344)</value> </param> <param> - <key>average</key> - <value>False</value> + <key>_rotation</key> + <value>0</value> </param> <param> - <key>avg_alpha</key> - <value>0.001</value> + <key>id</key> + <value>blocks_null_sink_1</value> </param> <param> - <key>show_gauge</key> - <value>False</value> + <key>type</key> + <value>float</value> </param> <param> - <key>win_size</key> - <value></value> + <key>num_inputs</key> + <value>1</value> </param> <param> - <key>grid_pos</key> - <value></value> + <key>vlen</key> + <value>1</value> </param> + </block> + <block> + <key>blocks_pack_k_bits_bb</key> <param> - <key>notebook</key> + <key>alias</key> <value></value> </param> <param> - <key>alias</key> + <key>comment</key> <value></value> </param> <param> @@ -569,758 +665,865 @@ <value></value> </param> <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> <key>_coordinate</key> - <value>(728, 1709)</value> + <value>(384, 380)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>note</key> <param> <key>id</key> - <value>note_0</value> + <value>blocks_pack_k_bits_bb_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>k</key> + <value>bpsym</value> </param> <param> - <key>note</key> - <value>Substititue the metrics/Viterbi block with Viterbi_combo</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>alias</key> - <value></value> + <key>minoutbuf</key> + <value>0</value> </param> + </block> + <block> + <key>blocks_throttle</key> <param> - <key>_coordinate</key> - <value>(704, 1468)</value> + <key>alias</key> + <value></value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>comment</key> + <value></value> </param> - </block> - <block> - <key>virtual_source</key> <param> - <key>id</key> - <value>virtual_source_0</value> + <key>affinity</key> + <value></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> + <value>(208, 380)</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> + <value>blocks_throttle_0</value> </param> <param> - <key>_enabled</key> + <key>ignoretag</key> <value>True</value> </param> <param> - <key>stream_id</key> - <value>info</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(232, 524)</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>samples_per_second</key> + <value>R</value> + </param> + <param> + <key>type</key> + <value>byte</value> + </param> + <param> + <key>vlen</key> + <value>1</value> </param> </block> <block> - <key>analog_random_source_x</key> + <key>blocks_unpack_k_bits_bb</key> <param> - <key>id</key> - <value>analog_random_source_x_0</value> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>affinity</key> + <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>type</key> - <value>byte</value> + <key>_coordinate</key> + <value>(672, 740)</value> </param> <param> - <key>min</key> + <key>_rotation</key> <value>0</value> </param> <param> - <key>max</key> - <value>2</value> + <key>id</key> + <value>blocks_unpack_k_bits_bb_0</value> </param> <param> - <key>num_samps</key> - <value>1007</value> + <key>k</key> + <value>bpsym</value> </param> <param> - <key>repeat</key> - <value>True</value> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> + <key>minoutbuf</key> + <value>0</value> </param> + </block> + <block> + <key>digital_chunks_to_symbols_xx</key> <param> <key>alias</key> <value></value> </param> <param> + <key>comment</key> + <value></value> + </param> + <param> <key>affinity</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>dimension</key> + <value>tot_mod[0]</value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>False</value> </param> <param> <key>_coordinate</key> - <value>(16, 559)</value> + <value>(760, 244)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>blocks_null_sink</key> <param> <key>id</key> - <value>blocks_null_sink_1</value> + <value>digital_chunks_to_symbols_xx_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>in_type</key> + <value>short</value> </param> <param> - <key>type</key> - <value>float</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>vlen</key> - <value>1</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>num_inputs</key> + <key>num_ports</key> <value>1</value> </param> <param> - <key>bus_conns</key> - <value>[[0,],]</value> + <key>out_type</key> + <value>float</value> </param> <param> + <key>symbol_table</key> + <value>tot_mod[1]</value> + </param> + </block> + <block> + <key>digital_chunks_to_symbols_xx</key> + <param> <key>alias</key> <value></value> </param> <param> + <key>comment</key> + <value></value> + </param> + <param> <key>affinity</key> <value></value> </param> <param> + <key>dimension</key> + <value>modulation[0]</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> <key>_coordinate</key> - <value>(800, 1008)</value> + <value>(512, 372)</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> + <value>digital_chunks_to_symbols_xx_0_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>in_type</key> + <value>byte</value> </param> <param> - <key>stream_id</key> - <value>observation</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(608, 1076)</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>num_ports</key> + <value>1</value> + </param> + <param> + <key>out_type</key> + <value>float</value> + </param> + <param> + <key>symbol_table</key> + <value>modulation[1]</value> </param> </block> <block> <key>fir_filter_xxx</key> <param> - <key>id</key> - <value>fir_filter_xxx_0</value> + <key>alias</key> + <value></value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>comment</key> + <value></value> </param> <param> - <key>type</key> - <value>fff</value> + <key>affinity</key> + <value></value> </param> <param> <key>decim</key> <value>1</value> </param> <param> - <key>taps</key> - <value>fu.c_channel</value> + <key>_enabled</key> + <value>True</value> </param> <param> - <key>samp_delay</key> + <key>_coordinate</key> + <value>(712, 372)</value> + </param> + <param> + <key>_rotation</key> <value>0</value> </param> <param> - <key>alias</key> - <value></value> + <key>id</key> + <value>fir_filter_xxx_0</value> </param> <param> - <key>affinity</key> - <value></value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> - <key>maxoutbuf</key> + <key>samp_delay</key> <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(904, 613)</value> + <key>taps</key> + <value>fu.c_channel</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>type</key> + <value>fff</value> </param> </block> <block> - <key>blocks_add_xx</key> + <key>import</key> <param> - <key>id</key> - <value>blocks_add_xx_1</value> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>type</key> - <value>float</value> + <key>_coordinate</key> + <value>(0, 116)</value> </param> <param> - <key>num_inputs</key> - <value>2</value> + <key>_rotation</key> + <value>0</value> </param> <param> - <key>vlen</key> - <value>1</value> + <key>id</key> + <value>import_0</value> + </param> + <param> + <key>import</key> + <value>import numpy</value> </param> + </block> + <block> + <key>import</key> <param> <key>alias</key> <value></value> </param> <param> - <key>affinity</key> + <key>comment</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> - <key>maxoutbuf</key> + <key>_coordinate</key> + <value>(0, 212)</value> + </param> + <param> + <key>_rotation</key> <value>0</value> </param> <param> + <key>id</key> + <value>import_0_0</value> + </param> + <param> + <key>import</key> + <value>import gnuradio.trellis.fsm_utils as fu</value> + </param> + </block> + <block> + <key>import</key> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> <key>_coordinate</key> - <value>(688, 944)</value> + <value>(0, 164)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> + <param> + <key>id</key> + <value>import_0_1</value> + </param> + <param> + <key>import</key> + <value>import math</value> + </param> </block> <block> - <key>digital_chunks_to_symbols_xx</key> + <key>note</key> <param> - <key>id</key> - <value>digital_chunks_to_symbols_xx_0</value> + <key>alias</key> + <value></value> + </param> + <param> + <key>comment</key> + <value></value> </param> <param> <key>_enabled</key> - <value>False</value> + <value>True</value> </param> <param> - <key>in_type</key> - <value>short</value> + <key>_coordinate</key> + <value>(752, 612)</value> </param> <param> - <key>out_type</key> - <value>float</value> + <key>_rotation</key> + <value>0</value> </param> <param> - <key>symbol_table</key> - <value>tot_mod[1]</value> + <key>id</key> + <value>note_0</value> </param> <param> - <key>dimension</key> - <value>tot_mod[0]</value> + <key>note</key> + <value>Substititue the metrics/Viterbi block with Viterbi_combo</value> </param> + </block> + <block> + <key>qtgui_number_sink</key> <param> - <key>num_ports</key> - <value>1</value> + <key>autoscale</key> + <value>False</value> + </param> + <param> + <key>avg</key> + <value>0</value> </param> <param> <key>alias</key> <value></value> </param> <param> - <key>affinity</key> + <key>comment</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>affinity</key> + <value></value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>1</value> </param> <param> <key>_coordinate</key> - <value>(944, 461)</value> + <value>(984, 700)</value> + </param> + <param> + <key>gui_hint</key> + <value></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> + <key>graph_type</key> + <value>qtgui.NUM_GRAPH_HORIZ</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>id</key> + <value>qtgui_number_sink_0</value> </param> <param> <key>type</key> <value>float</value> </param> <param> - <key>noise_type</key> - <value>analog.GR_GAUSSIAN</value> + <key>color1</key> + <value>("black", "black")</value> </param> <param> - <key>amp</key> - <value>noisevar**0.5</value> + <key>factor1</key> + <value>1</value> </param> <param> - <key>seed</key> - <value>-42</value> + <key>label1</key> + <value>BER</value> </param> <param> - <key>alias</key> + <key>unit1</key> <value></value> </param> <param> - <key>affinity</key> + <key>color10</key> + <value>("black", "black")</value> + </param> + <param> + <key>factor10</key> + <value>1</value> + </param> + <param> + <key>label10</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>unit10</key> + <value></value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>color2</key> + <value>("black", "black")</value> </param> <param> - <key>_coordinate</key> - <value>(288, 958)</value> + <key>factor2</key> + <value>1</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>label2</key> + <value></value> </param> - </block> - <block> - <key>trellis_metrics_x</key> <param> - <key>id</key> - <value>trellis_metrics_x_0</value> + <key>unit2</key> + <value></value> </param> <param> - <key>_enabled</key> - <value>False</value> + <key>color3</key> + <value>("black", "black")</value> </param> <param> - <key>type</key> - <value>f</value> + <key>factor3</key> + <value>1</value> </param> <param> - <key>card</key> - <value>fsm.O()</value> + <key>label3</key> + <value></value> </param> <param> - <key>dim</key> - <value>tot_mod[0]</value> + <key>unit3</key> + <value></value> </param> <param> - <key>table</key> - <value>tot_mod[1]</value> + <key>color4</key> + <value>("black", "black")</value> </param> <param> - <key>metric_type</key> - <value>digital.TRELLIS_EUCLIDEAN</value> + <key>factor4</key> + <value>1</value> </param> <param> - <key>alias</key> + <key>label4</key> <value></value> </param> <param> - <key>affinity</key> + <key>unit4</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>color5</key> + <value>("black", "black")</value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>factor5</key> + <value>1</value> </param> <param> - <key>_coordinate</key> - <value>(272, 1271)</value> + <key>label5</key> + <value></value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>unit5</key> + <value></value> </param> - </block> - <block> - <key>variable_slider</key> <param> - <key>id</key> - <value>EsN0_dB</value> + <key>color6</key> + <value>("black", "black")</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>factor6</key> + <value>1</value> </param> <param> - <key>label</key> - <value>Es/N0 (dB)</value> + <key>label6</key> + <value></value> </param> <param> - <key>value</key> - <value>20.0</value> + <key>unit6</key> + <value></value> </param> <param> - <key>min</key> - <value>-10</value> + <key>color7</key> + <value>("black", "black")</value> </param> <param> - <key>max</key> - <value>30</value> + <key>factor7</key> + <value>1</value> </param> <param> - <key>num_steps</key> - <value>1000</value> + <key>label7</key> + <value></value> </param> <param> - <key>style</key> - <value>wx.SL_HORIZONTAL</value> + <key>unit7</key> + <value></value> </param> <param> - <key>converver</key> - <value>float_converter</value> + <key>color8</key> + <value>("black", "black")</value> </param> <param> - <key>grid_pos</key> - <value></value> + <key>factor8</key> + <value>1</value> </param> <param> - <key>notebook</key> + <key>label8</key> <value></value> </param> <param> - <key>alias</key> + <key>unit8</key> <value></value> </param> <param> - <key>_coordinate</key> - <value>(728, 105)</value> + <key>color9</key> + <value>("black", "black")</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>factor9</key> + <value>1</value> </param> - </block> - <block> - <key>blocks_throttle</key> <param> - <key>id</key> - <value>blocks_throttle_0</value> + <key>label9</key> + <value></value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>unit9</key> + <value></value> </param> <param> - <key>type</key> - <value>byte</value> + <key>max</key> + <value>1</value> </param> <param> - <key>samples_per_second</key> - <value>R</value> + <key>min</key> + <value>0</value> </param> <param> - <key>vlen</key> + <key>name</key> + <value>"BER"</value> + </param> + <param> + <key>nconnections</key> <value>1</value> </param> <param> - <key>ignoretag</key> - <value>True</value> + <key>update_time</key> + <value>0.10</value> </param> + </block> + <block> + <key>trellis_encoder_xx</key> <param> <key>alias</key> <value></value> </param> <param> + <key>blocklength</key> + <value>0</value> + </param> + <param> + <key>blockwise</key> + <value>False</value> + </param> + <param> + <key>comment</key> + <value></value> + </param> + <param> <key>affinity</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>False</value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>fsm_args</key> + <value>fsm</value> </param> <param> <key>_coordinate</key> - <value>(240, 580)</value> + <value>(520, 244)</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> + <value>trellis_encoder_xx_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>init_state</key> + <value>0</value> </param> <param> - <key>in_type</key> - <value>byte</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>out_type</key> - <value>float</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>symbol_table</key> - <value>modulation[1]</value> + <key>type</key> + <value>bs</value> </param> + </block> + <block> + <key>trellis_metrics_x</key> <param> - <key>dimension</key> - <value>modulation[0]</value> + <key>alias</key> + <value></value> </param> <param> - <key>num_ports</key> - <value>1</value> + <key>comment</key> + <value></value> </param> <param> - <key>alias</key> - <value></value> + <key>table</key> + <value>tot_mod[1]</value> </param> <param> <key>affinity</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>dim</key> + <value>tot_mod[0]</value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>False</value> </param> <param> <key>_coordinate</key> - <value>(672, 613)</value> + <value>(208, 548)</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> + <value>trellis_metrics_x_0</value> </param> <param> - <key>stream_id</key> - <value>estimate</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(944, 1436)</value> + <key>metric_type</key> + <value>digital.TRELLIS_EUCLIDEAN</value> </param> <param> - <key>_rotation</key> + <key>minoutbuf</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>False</value> + <key>card</key> + <value>fsm.O()</value> </param> <param> <key>type</key> - <value>b</value> + <value>f</value> </param> + </block> + <block> + <key>trellis_viterbi_combined_xx</key> <param> - <key>fsm_args</key> - <value>fsm</value> + <key>alias</key> + <value></value> </param> <param> <key>block_size</key> <value>block/bpsym</value> </param> <param> - <key>init_state</key> - <value>-1</value> + <key>comment</key> + <value></value> </param> <param> - <key>final_state</key> - <value>-1</value> + <key>table</key> + <value>tot_mod[1]</value> </param> <param> - <key>alias</key> + <key>affinity</key> <value></value> </param> <param> - <key>affinity</key> - <value></value> + <key>dim</key> + <value>tot_mod[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>fsm_args</key> + <value>fsm</value> + </param> + <param> + <key>final_state</key> + <value>-1</value> </param> <param> <key>_coordinate</key> - <value>(480, 1271)</value> + <value>(352, 692)</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> + <key>init_state</key> + <value>-1</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</value> - </param> - <param> - <key>block_size</key> - <value>block/bpsym</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>init_state</key> - <value>-1</value> + <key>metric_type</key> + <value>digital.TRELLIS_EUCLIDEAN</value> </param> <param> - <key>final_state</key> - <value>-1</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>dim</key> - <value>tot_mod[0]</value> + <key>out_type</key> + <value>b</value> </param> + </block> + <block> + <key>trellis_viterbi_x</key> <param> - <key>table</key> - <value>tot_mod[1]</value> + <key>alias</key> + <value></value> </param> <param> - <key>metric_type</key> - <value>digital.TRELLIS_EUCLIDEAN</value> + <key>block_size</key> + <value>block/bpsym</value> </param> <param> - <key>alias</key> + <key>comment</key> <value></value> </param> <param> @@ -1328,210 +1531,217 @@ <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>False</value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>fsm_args</key> + <value>fsm</value> + </param> + <param> + <key>final_state</key> + <value>-1</value> </param> <param> <key>_coordinate</key> - <value>(352, 1410)</value> + <value>(432, 548)</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> + <value>trellis_viterbi_x_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>init_state</key> + <value>-1</value> </param> <param> - <key>k</key> - <value>bpsym</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>alias</key> - <value></value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>affinity</key> - <value></value> + <key>type</key> + <value>b</value> </param> + </block> + <block> + <key>virtual_sink</key> <param> - <key>minoutbuf</key> - <value>0</value> + <key>comment</key> + <value></value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(728, 1364)</value> + <value>(1176, 396)</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> + <value>virtual_sink_0</value> </param> <param> - <key>k</key> - <value>bpsym</value> + <key>stream_id</key> + <value>observation</value> </param> + </block> + <block> + <key>virtual_sink</key> <param> - <key>alias</key> + <key>comment</key> <value></value> </param> <param> - <key>affinity</key> - <value></value> + <key>_enabled</key> + <value>True</value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>_coordinate</key> + <value>(216, 460)</value> </param> <param> - <key>maxoutbuf</key> + <key>_rotation</key> <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(456, 572)</value> + <key>id</key> + <value>virtual_sink_0_0</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>stream_id</key> + <value>info</value> </param> </block> <block> - <key>trellis_encoder_xx</key> + <key>virtual_source</key> <param> - <key>id</key> - <value>trellis_encoder_xx_0</value> + <key>comment</key> + <value></value> </param> <param> <key>_enabled</key> - <value>False</value> - </param> - <param> - <key>type</key> - <value>bs</value> + <value>True</value> </param> <param> - <key>fsm_args</key> - <value>fsm</value> + <key>_coordinate</key> + <value>(0, 740)</value> </param> <param> - <key>init_state</key> + <key>_rotation</key> <value>0</value> </param> <param> - <key>alias</key> - <value></value> + <key>id</key> + <value>virtual_source_0</value> </param> <param> - <key>affinity</key> - <value></value> + <key>stream_id</key> + <value>observation</value> </param> + </block> + <block> + <key>virtual_source</key> <param> - <key>minoutbuf</key> - <value>0</value> + <key>comment</key> + <value></value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(672, 461)</value> + <value>(416, 460)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> + <param> + <key>id</key> + <value>virtual_source_0_0</value> + </param> + <param> + <key>stream_id</key> + <value>info</value> + </param> </block> <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>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>virtual_source_0_0</source_block_id> - <sink_block_id>blks2_error_rate_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_0_0</source_block_id> - <sink_block_id>blks2_error_rate_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>1</sink_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>blks2_error_rate_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> <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>blocks_null_sink_1</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>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_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>analog_random_source_x_0</source_block_id> - <sink_block_id>blocks_throttle_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> <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>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>1</sink_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>blocks_unpack_k_bits_bb_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_add_xx_1</source_block_id> - <sink_block_id>virtual_sink_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> @@ -1548,50 +1758,44 @@ <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>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>blocks_throttle_0</source_block_id> - <sink_block_id>blocks_pack_k_bits_bb_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_pack_k_bits_bb_0</source_block_id> - <sink_block_id>digital_chunks_to_symbols_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>blocks_unpack_k_bits_bb_0</source_block_id> - <sink_block_id>virtual_sink_0_1</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>trellis_viterbi_x_0</source_block_id> - <sink_block_id>blocks_unpack_k_bits_bb_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>trellis_viterbi_combined_xx_0</source_block_id> - <sink_block_id>blocks_unpack_k_bits_bb_0</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_pack_k_bits_bb_0</source_block_id> - <sink_block_id>trellis_encoder_xx_0</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> |