diff options
author | Achilleas Anastasopoulos | 2011-08-31 19:35:58 -0400 |
---|---|---|
committer | Achilleas Anastasopoulos | 2011-08-31 19:35:58 -0400 |
commit | 8f6be2790220af5b4628de7daee3be4b494e3b3e (patch) | |
tree | a269d1fdd6970e3a8c4a96e70680bc732612402a /gnuradio-examples | |
parent | d9955bc0ba633ebd4bb2964b656f47cd05ccd05f (diff) | |
download | gnuradio-8f6be2790220af5b4628de7daee3be4b494e3b3e.tar.gz gnuradio-8f6be2790220af5b4628de7daee3be4b494e3b3e.tar.bz2 gnuradio-8f6be2790220af5b4628de7daee3be4b494e3b3e.zip |
Added SCCC encoder/decoder grc blocksi and examples. Also moved all grc blocks related to trellis inside the gr-trellis/grc directory
Diffstat (limited to 'gnuradio-examples')
-rw-r--r-- | gnuradio-examples/grc/trellis/interference_cancellation.grc | 763 | ||||
-rw-r--r-- | gnuradio-examples/grc/trellis/readme.txt | 12 | ||||
-rw-r--r-- | gnuradio-examples/grc/trellis/sccc.grc | 832 |
3 files changed, 1277 insertions, 330 deletions
diff --git a/gnuradio-examples/grc/trellis/interference_cancellation.grc b/gnuradio-examples/grc/trellis/interference_cancellation.grc index e93babd78..7674b4bf1 100644 --- a/gnuradio-examples/grc/trellis/interference_cancellation.grc +++ b/gnuradio-examples/grc/trellis/interference_cancellation.grc @@ -1,6 +1,6 @@ <?xml version='1.0' encoding='ASCII'?> <flow_graph> - <timestamp>Thu Mar 19 11:22:40 2009</timestamp> + <timestamp>Wed Aug 31 17:40:25 2011</timestamp> <block> <key>options</key> <param> @@ -36,6 +36,14 @@ <value>Custom</value> </param> <param> + <key>run_options</key> + <value>prompt</value> + </param> + <param> + <key>run</key> + <value>True</value> + </param> + <param> <key>realtime_scheduling</key> <value></value> </param> @@ -79,18 +87,22 @@ <value>100</value> </param> <param> - <key>slider_length</key> - <value>200</value> + <key>style</key> + <value>wx.SL_HORIZONTAL</value> </param> <param> - <key>slider_type</key> - <value>horizontal</value> + <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>_coordinate</key> <value>(243, 11)</value> </param> @@ -130,18 +142,22 @@ <value>100</value> </param> <param> - <key>slider_length</key> - <value>200</value> + <key>style</key> + <value>wx.SL_HORIZONTAL</value> </param> <param> - <key>slider_type</key> - <value>horizontal</value> + <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>_coordinate</key> <value>(447, 14)</value> </param> @@ -213,41 +229,6 @@ </param> </block> <block> - <key>gr_chunks_to_symbols_xx</key> - <param> - <key>id</key> - <value>gr_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>complex</value> - </param> - <param> - <key>symbol_table</key> - <value>1,1j,-1j,-1</value> - </param> - <param> - <key>dimension</key> - <value>1</value> - </param> - <param> - <key>_coordinate</key> - <value>(665, 187)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - </block> - <block> <key>gr_multiply_const_vxx</key> <param> <key>id</key> @@ -344,6 +325,10 @@ <value>1</value> </param> <param> + <key>num_ports</key> + <value>1</value> + </param> + <param> <key>_coordinate</key> <value>(660, 311)</value> </param> @@ -638,6 +623,10 @@ <value>1</value> </param> <param> + <key>num_ports</key> + <value>1</value> + </param> + <param> <key>_coordinate</key> <value>(405, 998)</value> </param> @@ -816,6 +805,10 @@ <value>1</value> </param> <param> + <key>num_ports</key> + <value>1</value> + </param> + <param> <key>_coordinate</key> <value>(420, 1368)</value> </param> @@ -968,10 +961,10 @@ </param> </block> <block> - <key>wxgui_numbersink2</key> + <key>trellis_encoder_xx</key> <param> <key>id</key> - <value>wxgui_numbersink2_2</value> + <value>trellis_encoder_xx_1</value> </param> <param> <key>_enabled</key> @@ -979,71 +972,74 @@ </param> <param> <key>type</key> - <value>float</value> + <value>ss</value> </param> <param> - <key>title</key> - <value>BER 2 (raw)</value> + <key>fsm_args</key> + <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_16.fsm"</value> </param> <param> - <key>units</key> - <value>BER</value> + <key>init_state</key> + <value>0</value> </param> <param> - <key>samp_rate</key> - <value>R</value> + <key>_coordinate</key> + <value>(336, 311)</value> </param> <param> - <key>base_value</key> - <value>0.0</value> + <key>_rotation</key> + <value>0</value> </param> + </block> + <block> + <key>trellis_viterbi_combined_xx</key> <param> - <key>min_value</key> - <value>0</value> + <key>id</key> + <value>trellis_viterbi_combined_xx_1</value> </param> <param> - <key>max_value</key> - <value>1.0</value> + <key>_enabled</key> + <value>True</value> </param> <param> - <key>factor</key> - <value>1.0</value> + <key>type</key> + <value>c</value> </param> <param> - <key>decimal_places</key> - <value>6</value> + <key>out_type</key> + <value>s</value> </param> <param> - <key>ref_level</key> - <value>0</value> + <key>fsm_args</key> + <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_16.fsm"</value> </param> <param> - <key>number_rate</key> - <value>15</value> + <key>block_size</key> + <value>1000</value> </param> <param> - <key>peak_hold</key> - <value>False</value> + <key>init_state</key> + <value>-1</value> </param> <param> - <key>average</key> - <value>False</value> + <key>final_state</key> + <value>-1</value> </param> <param> - <key>avg_alpha</key> - <value>0.001</value> + <key>dim</key> + <value>1</value> </param> <param> - <key>show_gauge</key> - <value>True</value> + <key>table</key> + <value>alpha**0.5*1,alpha**0.5*1j,alpha**0.5*(-1j),alpha**0.5*(-1)</value> </param> <param> - <key>grid_pos</key> - <value>0,1,1,1</value> + <key>metric_type</key> + <value>trellis.TRELLIS_EUCLIDEAN</value> </param> <param> <key>_coordinate</key> - <value>(1260, 659)</value> + <value>(79, 501)</value> </param> <param> <key>_rotation</key> @@ -1051,10 +1047,10 @@ </param> </block> <block> - <key>wxgui_numbersink2</key> + <key>trellis_viterbi_combined_xx</key> <param> <key>id</key> - <value>wxgui_numbersink2_3</value> + <value>trellis_viterbi_combined_xx_2</value> </param> <param> <key>_enabled</key> @@ -1062,71 +1058,74 @@ </param> <param> <key>type</key> - <value>float</value> + <value>c</value> </param> <param> - <key>title</key> - <value>BER 2 (after cancelling user 1)</value> + <key>out_type</key> + <value>s</value> </param> <param> - <key>units</key> - <value>BER</value> + <key>fsm_args</key> + <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_16.fsm"</value> </param> <param> - <key>samp_rate</key> - <value>R</value> + <key>block_size</key> + <value>1000</value> </param> <param> - <key>base_value</key> - <value>0.0</value> + <key>init_state</key> + <value>-1</value> </param> <param> - <key>min_value</key> - <value>0</value> + <key>final_state</key> + <value>-1</value> </param> <param> - <key>max_value</key> - <value>1.0</value> + <key>dim</key> + <value>1</value> </param> <param> - <key>factor</key> - <value>1.0</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>decimal_places</key> - <value>6</value> + <key>metric_type</key> + <value>trellis.TRELLIS_EUCLIDEAN</value> </param> <param> - <key>ref_level</key> - <value>0</value> + <key>_coordinate</key> + <value>(82, 766)</value> </param> <param> - <key>number_rate</key> - <value>15</value> + <key>_rotation</key> + <value>0</value> </param> + </block> + <block> + <key>trellis_encoder_xx</key> <param> - <key>peak_hold</key> - <value>False</value> + <key>id</key> + <value>trellis_encoder_xx_2</value> </param> <param> - <key>average</key> - <value>False</value> + <key>_enabled</key> + <value>True</value> </param> <param> - <key>avg_alpha</key> - <value>0.001</value> + <key>type</key> + <value>ss</value> </param> <param> - <key>show_gauge</key> - <value>True</value> + <key>fsm_args</key> + <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_16.fsm"</value> </param> <param> - <key>grid_pos</key> - <value>1,1,1,1</value> + <key>init_state</key> + <value>0</value> </param> <param> <key>_coordinate</key> - <value>(1262, 1020)</value> + <value>(89, 998)</value> </param> <param> <key>_rotation</key> @@ -1134,10 +1133,10 @@ </param> </block> <block> - <key>wxgui_numbersink2</key> + <key>trellis_viterbi_combined_xx</key> <param> <key>id</key> - <value>wxgui_numbersink2_3_0</value> + <value>trellis_viterbi_combined_xx_0</value> </param> <param> <key>_enabled</key> @@ -1145,71 +1144,74 @@ </param> <param> <key>type</key> - <value>float</value> + <value>c</value> </param> <param> - <key>title</key> - <value>BER 1 (after cancelling user 2)</value> + <key>out_type</key> + <value>s</value> </param> <param> - <key>units</key> - <value>BER</value> + <key>fsm_args</key> + <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_16.fsm"</value> </param> <param> - <key>samp_rate</key> - <value>R</value> + <key>block_size</key> + <value>1000</value> </param> <param> - <key>base_value</key> - <value>0.0</value> + <key>init_state</key> + <value>-1</value> </param> <param> - <key>min_value</key> - <value>0</value> + <key>final_state</key> + <value>-1</value> </param> <param> - <key>max_value</key> - <value>1.0</value> + <key>dim</key> + <value>1</value> </param> <param> - <key>factor</key> - <value>1.0</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>decimal_places</key> - <value>6</value> + <key>metric_type</key> + <value>trellis.TRELLIS_EUCLIDEAN</value> </param> <param> - <key>ref_level</key> - <value>0</value> + <key>_coordinate</key> + <value>(83, 1111)</value> </param> <param> - <key>number_rate</key> - <value>15</value> + <key>_rotation</key> + <value>0</value> </param> + </block> + <block> + <key>trellis_encoder_xx</key> <param> - <key>peak_hold</key> - <value>False</value> + <key>id</key> + <value>trellis_encoder_xx_2_0</value> </param> <param> - <key>average</key> - <value>False</value> + <key>_enabled</key> + <value>True</value> </param> <param> - <key>avg_alpha</key> - <value>0.001</value> + <key>type</key> + <value>ss</value> </param> <param> - <key>show_gauge</key> - <value>True</value> + <key>fsm_args</key> + <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_16.fsm"</value> </param> <param> - <key>grid_pos</key> - <value>1,0,1,1</value> + <key>init_state</key> + <value>0</value> </param> <param> <key>_coordinate</key> - <value>(1269, 1417)</value> + <value>(105, 1367)</value> </param> <param> <key>_rotation</key> @@ -1217,53 +1219,54 @@ </param> </block> <block> - <key>variable</key> + <key>trellis_viterbi_combined_xx</key> <param> <key>id</key> - <value>R</value> + <value>trellis_viterbi_combined_xx_0_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>value</key> - <value>10e3</value> + <key>type</key> + <value>c</value> </param> <param> - <key>_coordinate</key> - <value>(748, 12)</value> + <key>out_type</key> + <value>s</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>fsm_args</key> + <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_16.fsm"</value> </param> - </block> - <block> - <key>trellis_encoder_xx</key> <param> - <key>id</key> - <value>trellis_encoder_xx_0</value> + <key>block_size</key> + <value>1000</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>init_state</key> + <value>-1</value> </param> <param> - <key>type</key> - <value>ss</value> + <key>final_state</key> + <value>-1</value> </param> <param> - <key>fsm_args</key> - <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_16.fsm"</value> + <key>dim</key> + <value>1</value> </param> <param> - <key>init_state</key> - <value>0</value> + <key>table</key> + <value>alpha**0.5*1,alpha**0.5*1j,alpha**0.5*(-1j),alpha**0.5*(-1)</value> + </param> + <param> + <key>metric_type</key> + <value>trellis.TRELLIS_EUCLIDEAN</value> </param> <param> <key>_coordinate</key> - <value>(334, 190)</value> + <value>(75, 1495)</value> </param> <param> <key>_rotation</key> @@ -1271,10 +1274,10 @@ </param> </block> <block> - <key>trellis_encoder_xx</key> + <key>gr_add_xx</key> <param> <key>id</key> - <value>trellis_encoder_xx_1</value> + <value>gr_add_xx_1</value> </param> <param> <key>_enabled</key> @@ -1282,19 +1285,19 @@ </param> <param> <key>type</key> - <value>ss</value> + <value>complex</value> </param> <param> - <key>fsm_args</key> - <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_16.fsm"</value> + <key>num_inputs</key> + <value>2</value> </param> <param> - <key>init_state</key> - <value>0</value> + <key>vlen</key> + <value>1</value> </param> <param> <key>_coordinate</key> - <value>(336, 311)</value> + <value>(1400, 262)</value> </param> <param> <key>_rotation</key> @@ -1302,10 +1305,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> @@ -1313,43 +1316,63 @@ </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+"gr-trellis/src/examples/fsm_files/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> + <key>ac_couple</key> + <value>False</value> + </param> + <param> + <key>xy_mode</key> + <value>True</value> + </param> + <param> + <key>num_inputs</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> + <key>win_size</key> + <value></value> </param> <param> - <key>metric_type</key> - <value>trellis.TRELLIS_EUCLIDEAN</value> + <key>grid_pos</key> + <value></value> + </param> + <param> + <key>notebook</key> + <value></value> + </param> + <param> + <key>trig_mode</key> + <value>gr.gr_TRIG_MODE_AUTO</value> + </param> + <param> + <key>y_axis_label</key> + <value>Counts</value> </param> <param> <key>_coordinate</key> - <value>(79, 501)</value> + <value>(1533, 149)</value> </param> <param> <key>_rotation</key> @@ -1357,54 +1380,53 @@ </param> </block> <block> - <key>trellis_viterbi_combined_xx</key> + <key>variable</key> <param> <key>id</key> - <value>trellis_viterbi_combined_xx_2</value> + <value>prefix</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>type</key> - <value>c</value> - </param> - <param> - <key>out_type</key> - <value>s</value> + <key>value</key> + <value>"/n/harrisville/x/anastas/gnuradio_trunk/"</value> </param> <param> - <key>fsm_args</key> - <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_16.fsm"</value> + <key>_coordinate</key> + <value>(871, 14)</value> </param> <param> - <key>block_size</key> - <value>1000</value> + <key>_rotation</key> + <value>0</value> </param> + </block> + <block> + <key>trellis_encoder_xx</key> <param> - <key>init_state</key> - <value>-1</value> + <key>id</key> + <value>trellis_encoder_xx_0</value> </param> <param> - <key>final_state</key> - <value>-1</value> + <key>_enabled</key> + <value>True</value> </param> <param> - <key>dim</key> - <value>1</value> + <key>type</key> + <value>ss</value> </param> <param> - <key>table</key> - <value>(1-alpha)**0.5*1,(1-alpha)**0.5*1j,(1-alpha)**0.5*(-1j),(1-alpha)**0.5*(-1)</value> + <key>fsm_args</key> + <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_16.fsm"</value> </param> <param> - <key>metric_type</key> - <value>trellis.TRELLIS_EUCLIDEAN</value> + <key>init_state</key> + <value>0</value> </param> <param> <key>_coordinate</key> - <value>(82, 766)</value> + <value>(340, 187)</value> </param> <param> <key>_rotation</key> @@ -1412,10 +1434,10 @@ </param> </block> <block> - <key>trellis_encoder_xx</key> + <key>gr_throttle</key> <param> <key>id</key> - <value>trellis_encoder_xx_2</value> + <value>gr_throttle_0</value> </param> <param> <key>_enabled</key> @@ -1423,19 +1445,19 @@ </param> <param> <key>type</key> - <value>ss</value> + <value>short</value> </param> <param> - <key>fsm_args</key> - <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_16.fsm"</value> + <key>samples_per_second</key> + <value>R</value> </param> <param> - <key>init_state</key> - <value>0</value> + <key>vlen</key> + <value>1</value> </param> <param> <key>_coordinate</key> - <value>(89, 998)</value> + <value>(534, 149)</value> </param> <param> <key>_rotation</key> @@ -1443,54 +1465,61 @@ </param> </block> <block> - <key>trellis_viterbi_combined_xx</key> + <key>gr_chunks_to_symbols_xx</key> <param> <key>id</key> - <value>trellis_viterbi_combined_xx_0</value> + <value>gr_chunks_to_symbols_xx_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>type</key> - <value>c</value> + <key>in_type</key> + <value>short</value> </param> <param> <key>out_type</key> - <value>s</value> + <value>complex</value> </param> <param> - <key>fsm_args</key> - <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_16.fsm"</value> + <key>symbol_table</key> + <value>1,1j,-1j,-1</value> </param> <param> - <key>block_size</key> - <value>1000</value> + <key>dimension</key> + <value>1</value> </param> <param> - <key>init_state</key> - <value>-1</value> + <key>num_ports</key> + <value>1</value> </param> <param> - <key>final_state</key> - <value>-1</value> + <key>_coordinate</key> + <value>(682, 186)</value> </param> <param> - <key>dim</key> - <value>1</value> + <key>_rotation</key> + <value>0</value> </param> + </block> + <block> + <key>variable</key> <param> - <key>table</key> - <value>(1-alpha)**0.5*1,(1-alpha)**0.5*1j,(1-alpha)**0.5*(-1j),(1-alpha)**0.5*(-1)</value> + <key>id</key> + <value>R</value> </param> <param> - <key>metric_type</key> - <value>trellis.TRELLIS_EUCLIDEAN</value> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>value</key> + <value>100e3</value> </param> <param> <key>_coordinate</key> - <value>(83, 1111)</value> + <value>(748, 12)</value> </param> <param> <key>_rotation</key> @@ -1498,10 +1527,10 @@ </param> </block> <block> - <key>trellis_encoder_xx</key> + <key>wxgui_numbersink2</key> <param> <key>id</key> - <value>trellis_encoder_xx_2_0</value> + <value>wxgui_numbersink2_0</value> </param> <param> <key>_enabled</key> @@ -1509,74 +1538,75 @@ </param> <param> <key>type</key> - <value>ss</value> + <value>float</value> </param> <param> - <key>fsm_args</key> - <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_16.fsm"</value> + <key>title</key> + <value>BER 1 (raw)</value> </param> <param> - <key>init_state</key> - <value>0</value> + <key>units</key> + <value>BER</value> </param> <param> - <key>_coordinate</key> - <value>(105, 1367)</value> + <key>samp_rate</key> + <value>R</value> </param> <param> - <key>_rotation</key> + <key>min_value</key> <value>0</value> </param> - </block> - <block> - <key>trellis_viterbi_combined_xx</key> <param> - <key>id</key> - <value>trellis_viterbi_combined_xx_0_0</value> + <key>max_value</key> + <value>1</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>factor</key> + <value>1.0</value> </param> <param> - <key>type</key> - <value>c</value> + <key>decimal_places</key> + <value>6</value> </param> <param> - <key>out_type</key> - <value>s</value> + <key>ref_level</key> + <value>0</value> </param> <param> - <key>fsm_args</key> - <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_16.fsm"</value> + <key>number_rate</key> + <value>15</value> </param> <param> - <key>block_size</key> - <value>1000</value> + <key>peak_hold</key> + <value>False</value> </param> <param> - <key>init_state</key> - <value>-1</value> + <key>average</key> + <value>True</value> </param> <param> - <key>final_state</key> - <value>-1</value> + <key>avg_alpha</key> + <value>0.001</value> </param> <param> - <key>dim</key> - <value>1</value> + <key>show_gauge</key> + <value>True</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>win_size</key> + <value></value> </param> <param> - <key>metric_type</key> - <value>trellis.TRELLIS_EUCLIDEAN</value> + <key>grid_pos</key> + <value>0,0,1,1</value> + </param> + <param> + <key>notebook</key> + <value></value> </param> <param> <key>_coordinate</key> - <value>(75, 1495)</value> + <value>(1267, 410)</value> </param> <param> <key>_rotation</key> @@ -1584,53 +1614,86 @@ </param> </block> <block> - <key>variable</key> + <key>wxgui_numbersink2</key> <param> <key>id</key> - <value>prefix</value> + <value>wxgui_numbersink2_2</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>value</key> - <value>"../../../"</value> + <key>type</key> + <value>float</value> </param> <param> - <key>_coordinate</key> - <value>(871, 14)</value> + <key>title</key> + <value>BER 2 (raw)</value> </param> <param> - <key>_rotation</key> + <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> - </block> - <block> - <key>gr_add_xx</key> <param> - <key>id</key> - <value>gr_add_xx_1</value> + <key>max_value</key> + <value>1.0</value> </param> <param> - <key>_enabled</key> + <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>True</value> </param> <param> - <key>type</key> - <value>complex</value> + <key>avg_alpha</key> + <value>0.001</value> </param> <param> - <key>num_inputs</key> - <value>2</value> + <key>show_gauge</key> + <value>True</value> </param> <param> - <key>vlen</key> - <value>1</value> + <key>win_size</key> + <value></value> + </param> + <param> + <key>grid_pos</key> + <value>0,1,1,1</value> + </param> + <param> + <key>notebook</key> + <value></value> </param> <param> <key>_coordinate</key> - <value>(1400, 262)</value> + <value>(1260, 659)</value> </param> <param> <key>_rotation</key> @@ -1641,7 +1704,7 @@ <key>wxgui_numbersink2</key> <param> <key>id</key> - <value>wxgui_numbersink2_0</value> + <value>wxgui_numbersink2_3</value> </param> <param> <key>_enabled</key> @@ -1653,7 +1716,7 @@ </param> <param> <key>title</key> - <value>BER 1 (raw)</value> + <value>BER 2 (after cancelling user 1)</value> </param> <param> <key>units</key> @@ -1664,16 +1727,12 @@ <value>R</value> </param> <param> - <key>base_value</key> - <value>0.0</value> - </param> - <param> <key>min_value</key> <value>0</value> </param> <param> <key>max_value</key> - <value>1</value> + <value>1.0</value> </param> <param> <key>factor</key> @@ -1697,7 +1756,7 @@ </param> <param> <key>average</key> - <value>False</value> + <value>True</value> </param> <param> <key>avg_alpha</key> @@ -1708,12 +1767,20 @@ <value>True</value> </param> <param> + <key>win_size</key> + <value></value> + </param> + <param> <key>grid_pos</key> - <value>0,0,1,1</value> + <value>1,1,1,1</value> + </param> + <param> + <key>notebook</key> + <value></value> </param> <param> <key>_coordinate</key> - <value>(1267, 410)</value> + <value>(1262, 1020)</value> </param> <param> <key>_rotation</key> @@ -1721,10 +1788,10 @@ </param> </block> <block> - <key>wxgui_scopesink2</key> + <key>wxgui_numbersink2</key> <param> <key>id</key> - <value>wxgui_scopesink2_0</value> + <value>wxgui_numbersink2_3_0</value> </param> <param> <key>_enabled</key> @@ -1732,43 +1799,75 @@ </param> <param> <key>type</key> - <value>complex</value> + <value>float</value> </param> <param> <key>title</key> - <value>Scope Plot</value> + <value>BER 1 (after cancelling user 2)</value> + </param> + <param> + <key>units</key> + <value>BER</value> </param> <param> <key>samp_rate</key> <value>R</value> </param> <param> - <key>v_scale</key> + <key>min_value</key> <value>0</value> </param> <param> - <key>t_scale</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>ac_couple</key> + <key>number_rate</key> + <value>15</value> + </param> + <param> + <key>peak_hold</key> <value>False</value> </param> <param> - <key>xy_mode</key> + <key>average</key> <value>True</value> </param> <param> - <key>num_inputs</key> - <value>1</value> + <key>avg_alpha</key> + <value>0.001</value> + </param> + <param> + <key>show_gauge</key> + <value>True</value> + </param> + <param> + <key>win_size</key> + <value></value> </param> <param> <key>grid_pos</key> + <value>1,0,1,1</value> + </param> + <param> + <key>notebook</key> <value></value> </param> <param> <key>_coordinate</key> - <value>(1533, 149)</value> + <value>(1269, 1417)</value> </param> <param> <key>_rotation</key> @@ -1782,12 +1881,6 @@ <sink_key>0</sink_key> </connection> <connection> - <source_block_id>trellis_encoder_xx_0</source_block_id> - <sink_block_id>gr_chunks_to_symbols_xx_0</sink_block_id> - <source_key>0</source_key> - <sink_key>0</sink_key> - </connection> - <connection> <source_block_id>trellis_encoder_xx_1</source_block_id> <sink_block_id>gr_chunks_to_symbols_xx_1</sink_block_id> <source_key>0</source_key> @@ -2069,4 +2162,16 @@ <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>gr_throttle_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>gr_throttle_0</source_block_id> + <sink_block_id>gr_chunks_to_symbols_xx_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> </flow_graph> diff --git a/gnuradio-examples/grc/trellis/readme.txt b/gnuradio-examples/grc/trellis/readme.txt index d620fd628..75966c4be 100644 --- a/gnuradio-examples/grc/trellis/readme.txt +++ b/gnuradio-examples/grc/trellis/readme.txt @@ -1,5 +1,7 @@ -This is an example of using gr-trellis in grc. +These are examples of using gr-trellis in grc. +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: 1) A viterbi decoder decoding user 1 assuming user 2 is noise @@ -13,4 +15,12 @@ The combined signal is observed in noise and four different receivers are consid You can change the signal to noise ratio P/sigma^2 and the allocation of power to the two users, alpha. + +Serially Concatenated Convolutionsl 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. + + + Enjoy. diff --git a/gnuradio-examples/grc/trellis/sccc.grc b/gnuradio-examples/grc/trellis/sccc.grc new file mode 100644 index 000000000..166e70f50 --- /dev/null +++ b/gnuradio-examples/grc/trellis/sccc.grc @@ -0,0 +1,832 @@ +<?xml version='1.0' encoding='ASCII'?> +<flow_graph> + <timestamp>Wed Aug 31 19:29:07 2011</timestamp> + <block> + <key>options</key> + <param> + <key>id</key> + <value>sccc</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>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>realtime_scheduling</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>noisevar</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>value</key> + <value>10**(-snr_db/10)</value> + </param> + <param> + <key>_coordinate</key> + <value>(389, 15)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>random_source_x</key> + <param> + <key>id</key> + <value>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>_coordinate</key> + <value>(21, 170)</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>"/n/harrisville/x/anastas/gnuradio_trunk/"</value> + </param> + <param> + <key>_coordinate</key> + <value>(590, 15)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>variable</key> + <param> + <key>id</key> + <value>block</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>value</key> + <value>1000</value> + </param> + <param> + <key>_coordinate</key> + <value>(764, 16)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>gr_add_xx</key> + <param> + <key>id</key> + <value>gr_add_xx_1</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>type</key> + <value>complex</value> + </param> + <param> + <key>num_inputs</key> + <value>2</value> + </param> + <param> + <key>vlen</key> + <value>1</value> + </param> + <param> + <key>_coordinate</key> + <value>(951, 256)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>gr_sub_xx</key> + <param> + <key>id</key> + <value>gr_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>_coordinate</key> + <value>(445, 517)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>gr_multiply_xx</key> + <param> + <key>id</key> + <value>gr_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>_coordinate</key> + <value>(228.25, 798.39170361874085)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>gr_short_to_float</key> + <param> + <key>id</key> + <value>gr_short_to_float_1_0</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>_coordinate</key> + <value>(416, 815)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>variable_slider</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>min</key> + <value>-10</value> + </param> + <param> + <key>max</key> + <value>10</value> + </param> + <param> + <key>num_steps</key> + <value>100</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>_coordinate</key> + <value>(229, 13)</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>10e3</value> + </param> + <param> + <key>_coordinate</key> + <value>(482, 17)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>wxgui_scopesink2</key> + <param> + <key>id</key> + <value>wxgui_scopesink2_0</value> + </param> + <param> + <key>_enabled</key> + <value>False</value> + </param> + <param> + <key>type</key> + <value>complex</value> + </param> + <param> + <key>title</key> + <value>Scope Plot</value> + </param> + <param> + <key>samp_rate</key> + <value>R</value> + </param> + <param> + <key>v_scale</key> + <value>0</value> + </param> + <param> + <key>v_offset</key> + <value>0</value> + </param> + <param> + <key>t_scale</key> + <value>0</value> + </param> + <param> + <key>ac_couple</key> + <value>False</value> + </param> + <param> + <key>xy_mode</key> + <value>True</value> + </param> + <param> + <key>num_inputs</key> + <value>1</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>trig_mode</key> + <value>gr.gr_TRIG_MODE_AUTO</value> + </param> + <param> + <key>y_axis_label</key> + <value>Counts</value> + </param> + <param> + <key>_coordinate</key> + <value>(952, 73)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>gr_throttle</key> + <param> + <key>id</key> + <value>gr_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>_coordinate</key> + <value>(514, 105)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>gr_chunks_to_symbols_xx</key> + <param> + <key>id</key> + <value>gr_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>complex</value> + </param> + <param> + <key>symbol_table</key> + <value>1,0,1j,0,-1j,0,-1,0, 0,1,0,1j,0,-1j,0,-1</value> + </param> + <param> + <key>dimension</key> + <value>2</value> + </param> + <param> + <key>num_ports</key> + <value>1</value> + </param> + <param> + <key>_coordinate</key> + <value>(551, 184)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>gr_noise_source_x</key> + <param> + <key>id</key> + <value>gr_noise_source_x_0</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>type</key> + <value>complex</value> + </param> + <param> + <key>noise_type</key> + <value>gr.GR_GAUSSIAN</value> + </param> + <param> + <key>amp</key> + <value>noisevar</value> + </param> + <param> + <key>seed</key> + <value>42</value> + </param> + <param> + <key>_coordinate</key> + <value>(672, 290)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>trellis_sccc_encoder_xx</key> + <param> + <key>id</key> + <value>trellis_sccc_encoder_xx_0</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>type</key> + <value>ss</value> + </param> + <param> + <key>o_fsm_args</key> + <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_4.fsm"</value> + </param> + <param> + <key>o_init_state</key> + <value>0</value> + </param> + <param> + <key>i_fsm_args</key> + <value>prefix+"gr-trellis/src/examples/fsm_files/awgn2o3_4.fsm"</value> + </param> + <param> + <key>i_init_state</key> + <value>0</value> + </param> + <param> + <key>interleaver_args</key> + <value>trellis.interleaver(block,666)</value> + </param> + <param> + <key>bl</key> + <value>block</value> + </param> + <param> + <key>_coordinate</key> + <value>(242, 154)</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</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>type</key> + <value>float</value> + </param> + <param> + <key>title</key> + <value>BER</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>True</value> + </param> + <param> + <key>avg_alpha</key> + <value>0.001</value> + </param> + <param> + <key>show_gauge</key> + <value>True</value> + </param> + <param> + <key>win_size</key> + <value></value> + </param> + <param> + <key>grid_pos</key> + <value>1,0,1,1</value> + </param> + <param> + <key>notebook</key> + <value></value> + </param> + <param> + <key>_coordinate</key> + <value>(688, 572)</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>c</value> + </param> + <param> + <key>out_type</key> + <value>s</value> + </param> + <param> + <key>o_fsm_args</key> + <value>prefix+"gr-trellis/src/examples/fsm_files/awgn1o2_4.fsm"</value> + </param> + <param> + <key>o_init_state</key> + <value>0</value> + </param> + <param> + <key>o_final_state</key> + <value>-1</value> + </param> + <param> + <key>i_fsm_args</key> + <value>prefix+"gr-trellis/src/examples/fsm_files/awgn2o3_4.fsm"</value> + </param> + <param> + <key>i_init_state</key> + <value>0</value> + </param> + <param> + <key>i_final_state</key> + <value>-1</value> + </param> + <param> + <key>interleaver</key> + <value>trellis.interleaver(block,666)</value> + </param> + <param> + <key>block_size</key> + <value>block</value> + </param> + <param> + <key>iterations</key> + <value>5</value> + </param> + <param> + <key>dim</key> + <value>2</value> + </param> + <param> + <key>table</key> + <value>1,0,1j,0,-1j,0,-1,0, 0,1,0,1j,0,-1j,0,-1</value> + </param> + <param> + <key>metric_type</key> + <value>trellis.TRELLIS_EUCLIDEAN</value> + </param> + <param> + <key>siso_type</key> + <value>trellis.TRELLIS_SUM_PRODUCT</value> + </param> + <param> + <key>scaling</key> + <value>1.0</value> + </param> + <param> + <key>_coordinate</key> + <value>(159, 335)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <connection> + <source_block_id>random_source_x_0</source_block_id> + <sink_block_id>gr_sub_xx_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>gr_throttle_0</source_block_id> + <sink_block_id>gr_chunks_to_symbols_xx_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>gr_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>gr_noise_source_x_0</source_block_id> + <sink_block_id>gr_add_xx_1</sink_block_id> + <source_key>0</source_key> + <sink_key>1</sink_key> + </connection> + <connection> + <source_block_id>gr_chunks_to_symbols_xx_0</source_block_id> + <sink_block_id>gr_add_xx_1</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>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>gr_throttle_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>gr_add_xx_1</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>trellis_sccc_decoder_combined_xx_0</source_block_id> + <sink_block_id>gr_sub_xx_0</sink_block_id> + <source_key>0</source_key> + <sink_key>1</sink_key> + </connection> + <connection> + <source_block_id>gr_multiply_xx_2_0</source_block_id> + <sink_block_id>gr_short_to_float_1_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>gr_short_to_float_1_0</source_block_id> + <sink_block_id>wxgui_numbersink2_3_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>gr_sub_xx_0</source_block_id> + <sink_block_id>gr_multiply_xx_2_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>gr_sub_xx_0</source_block_id> + <sink_block_id>gr_multiply_xx_2_0</sink_block_id> + <source_key>0</source_key> + <sink_key>1</sink_key> + </connection> +</flow_graph> |