diff options
Diffstat (limited to 'gr-digital/examples/demod/symbol_sync_test_float.grc')
-rw-r--r-- | gr-digital/examples/demod/symbol_sync_test_float.grc | 693 |
1 files changed, 169 insertions, 524 deletions
diff --git a/gr-digital/examples/demod/symbol_sync_test_float.grc b/gr-digital/examples/demod/symbol_sync_test_float.grc index ce1b24ba4b..f072b1cd89 100644 --- a/gr-digital/examples/demod/symbol_sync_test_float.grc +++ b/gr-digital/examples/demod/symbol_sync_test_float.grc @@ -1,25 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> <?grc format='1' created='3.7.12'?> -<!-- - Copyright (C) 2017 Free Software Foundation - - This file is part of GNU Radio - - GNU Radio is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GNU Radio is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Radio; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, - Boston, MA 02110-1301, USA. ---> <flow_graph> <timestamp>Mon Jan 12 16:38:01 2015</timestamp> <block> @@ -50,7 +30,7 @@ </param> <param> <key>_coordinate</key> - <value>(10, 10)</value> + <value>(0, 0)</value> </param> <param> <key>_rotation</key> @@ -136,7 +116,7 @@ </param> <param> <key>value</key> - <value>4</value> + <value>(0,0,0,0,1)</value> </param> <param> <key>_enabled</key> @@ -144,7 +124,7 @@ </param> <param> <key>_coordinate</key> - <value>(392, 48)</value> + <value>(344, 0)</value> </param> <param> <key>gui_hint</key> @@ -180,7 +160,7 @@ </param> <param> <key>label</key> - <value></value> + <value>Data Source</value> </param> <param> <key>labels</key> @@ -192,23 +172,23 @@ </param> <param> <key>option0</key> - <value>0</value> + <value>(1,0,0,0,0)</value> </param> <param> <key>option1</key> - <value>1</value> + <value>(0,1,0,0,0)</value> </param> <param> <key>option2</key> - <value>2</value> + <value>(0,0,1,0,0)</value> </param> <param> <key>option3</key> - <value>3</value> + <value>(0,0,0,1,0)</value> </param> <param> <key>option4</key> - <value>4</value> + <value>(0,0,0,0,1)</value> </param> <param> <key>options</key> @@ -220,7 +200,7 @@ </param> <param> <key>type</key> - <value>int</value> + <value>raw</value> </param> <param> <key>widget</key> @@ -239,7 +219,7 @@ </param> <param> <key>_coordinate</key> - <value>(1800, 548)</value> + <value>(1488, 556)</value> </param> <param> <key>_rotation</key> @@ -274,7 +254,7 @@ </param> <param> <key>_coordinate</key> - <value>(2296, 420)</value> + <value>(1984, 428)</value> </param> <param> <key>gui_hint</key> @@ -309,7 +289,7 @@ </param> <param> <key>_coordinate</key> - <value>(1800, 420)</value> + <value>(1488, 428)</value> </param> <param> <key>_rotation</key> @@ -340,7 +320,7 @@ </param> <param> <key>_coordinate</key> - <value>(1944, 416)</value> + <value>(1632, 424)</value> </param> <param> <key>gui_hint</key> @@ -399,7 +379,7 @@ </param> <param> <key>_coordinate</key> - <value>(2192, 196)</value> + <value>(1848, 196)</value> </param> <param> <key>_rotation</key> @@ -426,7 +406,7 @@ </param> <param> <key>_coordinate</key> - <value>(8, 600)</value> + <value>(0, 544)</value> </param> <param> <key>_rotation</key> @@ -465,7 +445,7 @@ </param> <param> <key>_coordinate</key> - <value>(1800, 484)</value> + <value>(1488, 492)</value> </param> <param> <key>_rotation</key> @@ -500,7 +480,7 @@ </param> <param> <key>_coordinate</key> - <value>(2296, 500)</value> + <value>(1984, 508)</value> </param> <param> <key>gui_hint</key> @@ -566,7 +546,7 @@ </param> <param> <key>_coordinate</key> - <value>(2120, 536)</value> + <value>(1808, 544)</value> </param> <param> <key>gui_hint</key> @@ -629,7 +609,7 @@ </param> <param> <key>_coordinate</key> - <value>(1944, 536)</value> + <value>(1632, 544)</value> </param> <param> <key>gui_hint</key> @@ -696,7 +676,7 @@ </param> <param> <key>_coordinate</key> - <value>(8, 192)</value> + <value>(0, 128)</value> </param> <param> <key>_rotation</key> @@ -736,254 +716,7 @@ </param> </block> <block> - <key>blocks_add_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>_enabled</key> - <value>True</value> - </param> - <param> - <key>_coordinate</key> - <value>(448, 264)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - <param> - <key>id</key> - <value>blocks_add_xx_0</value> - </param> - <param> - <key>type</key> - <value>short</value> - </param> - <param> - <key>maxoutbuf</key> - <value>0</value> - </param> - <param> - <key>minoutbuf</key> - <value>0</value> - </param> - <param> - <key>num_inputs</key> - <value>5</value> - </param> - <param> - <key>vlen</key> - <value>1</value> - </param> - </block> - <block> - <key>blocks_char_to_float</key> - <param> - <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>_coordinate</key> - <value>(1160, 324)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - <param> - <key>id</key> - <value>blocks_char_to_float_2</value> - </param> - <param> - <key>maxoutbuf</key> - <value>0</value> - </param> - <param> - <key>minoutbuf</key> - <value>0</value> - </param> - <param> - <key>scale</key> - <value>1</value> - </param> - <param> - <key>vlen</key> - <value>1</value> - </param> - </block> - <block> - <key>blocks_float_to_char</key> - <param> - <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>_coordinate</key> - <value>(872, 324)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - <param> - <key>id</key> - <value>blocks_float_to_char_0</value> - </param> - <param> - <key>maxoutbuf</key> - <value>0</value> - </param> - <param> - <key>minoutbuf</key> - <value>0</value> - </param> - <param> - <key>scale</key> - <value>1</value> - </param> - <param> - <key>vlen</key> - <value>1</value> - </param> - </block> - <block> - <key>blocks_multiply_const_vxx</key> - <param> - <key>alias</key> - <value></value> - </param> - <param> - <key>comment</key> - <value></value> - </param> - <param> - <key>const</key> - <value>1 if data_src == 4 else 0</value> - </param> - <param> - <key>affinity</key> - <value></value> - </param> - <param> - <key>_enabled</key> - <value>True</value> - </param> - <param> - <key>_coordinate</key> - <value>(224, 540)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - <param> - <key>id</key> - <value>blocks_multiply_const_vxx_0</value> - </param> - <param> - <key>type</key> - <value>short</value> - </param> - <param> - <key>maxoutbuf</key> - <value>0</value> - </param> - <param> - <key>minoutbuf</key> - <value>0</value> - </param> - <param> - <key>vlen</key> - <value>1</value> - </param> - </block> - <block> - <key>blocks_multiply_const_vxx</key> - <param> - <key>alias</key> - <value></value> - </param> - <param> - <key>comment</key> - <value></value> - </param> - <param> - <key>const</key> - <value>1 if data_src == 3 else 0</value> - </param> - <param> - <key>affinity</key> - <value></value> - </param> - <param> - <key>_enabled</key> - <value>True</value> - </param> - <param> - <key>_coordinate</key> - <value>(216, 460)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - <param> - <key>id</key> - <value>blocks_multiply_const_vxx_0_0</value> - </param> - <param> - <key>type</key> - <value>short</value> - </param> - <param> - <key>maxoutbuf</key> - <value>0</value> - </param> - <param> - <key>minoutbuf</key> - <value>0</value> - </param> - <param> - <key>vlen</key> - <value>1</value> - </param> - </block> - <block> - <key>blocks_multiply_const_vxx</key> + <key>blocks_multiply_matrix_xx</key> <param> <key>alias</key> <value></value> @@ -993,10 +726,6 @@ <value></value> </param> <param> - <key>const</key> - <value>1 if data_src == 2 else 0</value> - </param> - <param> <key>affinity</key> <value></value> </param> @@ -1006,7 +735,7 @@ </param> <param> <key>_coordinate</key> - <value>(216, 380)</value> + <value>(360, 248)</value> </param> <param> <key>_rotation</key> @@ -1014,113 +743,15 @@ </param> <param> <key>id</key> - <value>blocks_multiply_const_vxx_0_0_0</value> + <value>blocks_multiply_matrix_xx_0</value> </param> <param> <key>type</key> - <value>short</value> - </param> - <param> - <key>maxoutbuf</key> - <value>0</value> - </param> - <param> - <key>minoutbuf</key> - <value>0</value> - </param> - <param> - <key>vlen</key> - <value>1</value> - </param> - </block> - <block> - <key>blocks_multiply_const_vxx</key> - <param> - <key>alias</key> - <value></value> - </param> - <param> - <key>comment</key> - <value></value> - </param> - <param> - <key>const</key> - <value>1 if data_src == 1 else 0</value> - </param> - <param> - <key>affinity</key> - <value></value> - </param> - <param> - <key>_enabled</key> - <value>True</value> - </param> - <param> - <key>_coordinate</key> - <value>(216, 308)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - <param> - <key>id</key> - <value>blocks_multiply_const_vxx_0_0_0_0</value> - </param> - <param> - <key>type</key> - <value>short</value> - </param> - <param> - <key>maxoutbuf</key> - <value>0</value> - </param> - <param> - <key>minoutbuf</key> - <value>0</value> - </param> - <param> - <key>vlen</key> - <value>1</value> - </param> - </block> - <block> - <key>blocks_multiply_const_vxx</key> - <param> - <key>alias</key> - <value></value> - </param> - <param> - <key>comment</key> - <value></value> - </param> - <param> - <key>const</key> - <value>1 if data_src == 0 else 0</value> - </param> - <param> - <key>affinity</key> - <value></value> - </param> - <param> - <key>_enabled</key> - <value>True</value> - </param> - <param> - <key>_coordinate</key> - <value>(208, 212)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> + <value>float</value> </param> <param> - <key>id</key> - <value>blocks_multiply_const_vxx_0_0_0_0_0</value> - </param> - <param> - <key>type</key> - <value>short</value> + <key>A</key> + <value>(data_src,)</value> </param> <param> <key>maxoutbuf</key> @@ -1131,8 +762,8 @@ <value>0</value> </param> <param> - <key>vlen</key> - <value>1</value> + <key>tag_propagation_policy</key> + <value>gr.TPP_ALL_TO_ALL</value> </param> </block> <block> @@ -1143,7 +774,7 @@ </param> <param> <key>comment</key> - <value></value> + <value>Pulse Shaping</value> </param> <param> <key>affinity</key> @@ -1155,7 +786,7 @@ </param> <param> <key>_coordinate</key> - <value>(1312, 324)</value> + <value>(928, 324)</value> </param> <param> <key>_rotation</key> @@ -1206,7 +837,7 @@ </param> <param> <key>_coordinate</key> - <value>(712, 324)</value> + <value>(192, 148)</value> </param> <param> <key>_rotation</key> @@ -1214,7 +845,7 @@ </param> <param> <key>id</key> - <value>blocks_short_to_float_0</value> + <value>blocks_short_to_float_1</value> </param> <param> <key>maxoutbuf</key> @@ -1281,7 +912,7 @@ </param> <param> <key>type</key> - <value>short</value> + <value>float</value> </param> <param> <key>vlen</key> @@ -1308,7 +939,7 @@ </param> <param> <key>_coordinate</key> - <value>(8, 364)</value> + <value>(0, 300)</value> </param> <param> <key>_rotation</key> @@ -1328,7 +959,7 @@ </param> <param> <key>type</key> - <value>short</value> + <value>float</value> </param> <param> <key>repeat</key> @@ -1367,7 +998,7 @@ </param> <param> <key>_coordinate</key> - <value>(8, 284)</value> + <value>(0, 220)</value> </param> <param> <key>_rotation</key> @@ -1387,7 +1018,7 @@ </param> <param> <key>type</key> - <value>short</value> + <value>float</value> </param> <param> <key>repeat</key> @@ -1426,7 +1057,7 @@ </param> <param> <key>_coordinate</key> - <value>(8, 444)</value> + <value>(0, 380)</value> </param> <param> <key>_rotation</key> @@ -1446,7 +1077,7 @@ </param> <param> <key>type</key> - <value>short</value> + <value>float</value> </param> <param> <key>repeat</key> @@ -1485,7 +1116,7 @@ </param> <param> <key>_coordinate</key> - <value>(8, 524)</value> + <value>(0, 460)</value> </param> <param> <key>_rotation</key> @@ -1505,7 +1136,7 @@ </param> <param> <key>type</key> - <value>short</value> + <value>float</value> </param> <param> <key>repeat</key> @@ -1525,49 +1156,6 @@ </param> </block> <block> - <key>digital_map_bb</key> - <param> - <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>_coordinate</key> - <value>(1024, 324)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - <param> - <key>id</key> - <value>digital_map_bb_0</value> - </param> - <param> - <key>map</key> - <value>[-1, 1,0]</value> - </param> - <param> - <key>maxoutbuf</key> - <value>0</value> - </param> - <param> - <key>minoutbuf</key> - <value>0</value> - </param> - </block> - <block> <key>digital_symbol_sync_xx</key> <param> <key>alias</key> @@ -1599,7 +1187,7 @@ </param> <param> <key>_coordinate</key> - <value>(1944, 276)</value> + <value>(1600, 276)</value> </param> <param> <key>_rotation</key> @@ -1655,16 +1243,83 @@ </param> </block> <block> - <key>fir_filter_xxx</key> + <key>epy_block</key> <param> <key>alias</key> <value></value> </param> <param> + <key>_io_cache</key> + <value>('Bit -> Symbol Map', 'ConstMap', [], [('0', 'float', 1)], [('0', 'float', 1)], '\n Map 0, 1 to -1, 1\n ', [])</value> + </param> + <param> + <key>_source_code</key> + <value>""" +Embedded Python Blocks: + +Each time this file is saved, GRC will instantiate the first class it finds +to get ports and parameters of your block. The arguments to __init__ will +be the parameters. All of them are required to have default values! +""" + +import numpy as np +from gnuradio import gr + +class ConstMap(gr.sync_block): + """ + Map 0, 1 to -1, 1 + """ + def __init__(self): + gr.sync_block.__init__( + self, + name='Bit -> Symbol Map', + in_sig=[np.float32], + out_sig=[np.float32] + ) + + def work(self, input_items, output_items): + """ + map + """ + sym_map = {0.0: -1.0, 1.0: 1.0, 2.0: 0.0} + output_items[0][:] = [sym_map[x] for x in input_items[0]] + return len(output_items[0]) +</value> + </param> + <param> <key>comment</key> + <value>BPSK Modulation</value> + </param> + <param> + <key>_enabled</key> + <value>1</value> + </param> + <param> + <key>_coordinate</key> + <value>(712, 328)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>epy_block_0</value> + </param> + </block> + <block> + <key>fir_filter_xxx</key> + <param> + <key>alias</key> <value></value> </param> <param> + <key>comment</key> + <value>Matched Filter (almost). +Because the input stream has 6 2/3 +samples per symbol, this incurs a slight ISI.</value> + </param> + <param> <key>affinity</key> <value></value> </param> @@ -1678,7 +1333,7 @@ </param> <param> <key>_coordinate</key> - <value>(1672, 316)</value> + <value>(1336, 316)</value> </param> <param> <key>_rotation</key> @@ -1725,7 +1380,7 @@ </param> <param> <key>_coordinate</key> - <value>(184, 12)</value> + <value>(184, 4)</value> </param> <param> <key>_rotation</key> @@ -1756,7 +1411,7 @@ </param> <param> <key>_coordinate</key> - <value>(184, 60)</value> + <value>(184, 52)</value> </param> <param> <key>_rotation</key> @@ -1772,6 +1427,37 @@ </param> </block> <block> + <key>note</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>(320, 316)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>note_0</value> + </param> + <param> + <key>note</key> + <value>Bit Pattern Generation</value> + </param> + </block> + <block> <key>qtgui_time_sink_x</key> <param> <key>autoscale</key> @@ -1807,7 +1493,7 @@ </param> <param> <key>_coordinate</key> - <value>(2296, 280)</value> + <value>(1952, 280)</value> </param> <param> <key>gui_hint</key> @@ -2170,7 +1856,7 @@ </param> <param> <key>_coordinate</key> - <value>(1976, 172)</value> + <value>(1632, 172)</value> </param> <param> <key>gui_hint</key> @@ -2505,7 +2191,8 @@ </param> <param> <key>comment</key> - <value></value> + <value>Resampling to 6 2/3 samples +per symbol ("clock desync")</value> </param> <param> <key>affinity</key> @@ -2525,7 +2212,7 @@ </param> <param> <key>_coordinate</key> - <value>(1472, 304)</value> + <value>(1120, 304)</value> </param> <param> <key>_rotation</key> @@ -2558,105 +2245,57 @@ </block> <connection> <source_block_id>analog_random_source_x_0</source_block_id> - <sink_block_id>blocks_multiply_const_vxx_0_0_0_0_0</sink_block_id> + <sink_block_id>blocks_short_to_float_1</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> + <source_block_id>blocks_multiply_matrix_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_char_to_float_2</source_block_id> - <sink_block_id>blocks_repeat_0</sink_block_id> - <source_key>0</source_key> - <sink_key>0</sink_key> - </connection> - <connection> - <source_block_id>blocks_float_to_char_0</source_block_id> - <sink_block_id>digital_map_bb_0</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_key>0</source_key> - <sink_key>4</sink_key> - </connection> - <connection> - <source_block_id>blocks_multiply_const_vxx_0_0</source_block_id> - <sink_block_id>blocks_add_xx_0</sink_block_id> - <source_key>0</source_key> - <sink_key>3</sink_key> - </connection> - <connection> - <source_block_id>blocks_multiply_const_vxx_0_0_0</source_block_id> - <sink_block_id>blocks_add_xx_0</sink_block_id> - <source_key>0</source_key> - <sink_key>2</sink_key> - </connection> - <connection> - <source_block_id>blocks_multiply_const_vxx_0_0_0_0</source_block_id> - <sink_block_id>blocks_add_xx_0</sink_block_id> - <source_key>0</source_key> - <sink_key>1</sink_key> - </connection> - <connection> - <source_block_id>blocks_multiply_const_vxx_0_0_0_0_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> - <connection> <source_block_id>blocks_repeat_0</source_block_id> <sink_block_id>rational_resampler_xxx_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>blocks_float_to_char_0</sink_block_id> + <source_block_id>blocks_short_to_float_1</source_block_id> + <sink_block_id>blocks_multiply_matrix_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_short_to_float_0</sink_block_id> + <sink_block_id>epy_block_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_vector_source_x_0_0</source_block_id> - <sink_block_id>blocks_multiply_const_vxx_0_0_0</sink_block_id> + <sink_block_id>blocks_multiply_matrix_xx_0</sink_block_id> <source_key>0</source_key> - <sink_key>0</sink_key> + <sink_key>2</sink_key> </connection> <connection> <source_block_id>blocks_vector_source_x_0_0_0</source_block_id> - <sink_block_id>blocks_multiply_const_vxx_0_0_0_0</sink_block_id> + <sink_block_id>blocks_multiply_matrix_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_vector_source_x_0_0_1</source_block_id> - <sink_block_id>blocks_multiply_const_vxx_0_0</sink_block_id> + <sink_block_id>blocks_multiply_matrix_xx_0</sink_block_id> <source_key>0</source_key> - <sink_key>0</sink_key> + <sink_key>3</sink_key> </connection> <connection> <source_block_id>blocks_vector_source_x_0_0_1_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>digital_map_bb_0</source_block_id> - <sink_block_id>blocks_char_to_float_2</sink_block_id> + <sink_block_id>blocks_multiply_matrix_xx_0</sink_block_id> <source_key>0</source_key> - <sink_key>0</sink_key> + <sink_key>4</sink_key> </connection> <connection> <source_block_id>digital_symbol_sync_xx_0</source_block_id> @@ -2683,6 +2322,12 @@ <sink_key>0</sink_key> </connection> <connection> + <source_block_id>epy_block_0</source_block_id> + <sink_block_id>blocks_repeat_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> <source_block_id>fir_filter_xxx_0_1_0_0_0</source_block_id> <sink_block_id>digital_symbol_sync_xx_0</sink_block_id> <source_key>0</source_key> |