summaryrefslogtreecommitdiff
path: root/gr-digital/examples/demod
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2017-09-14 08:58:39 -0700
committerMartin Braun <martin.braun@ettus.com>2017-09-14 19:42:45 -0700
commitfd482bc25c99e8349b0baceae200c1f5e27dd2bd (patch)
tree064e7b35be0c661dfccaa9558b2e89546994bf2b /gr-digital/examples/demod
parent34933ac6bc9be665b916be146cf040197fc19229 (diff)
digital: Cosmetic updates to symbol sync examples
- Added annotations (block comments) - Reduced number of blocks, same functionality, less distraction - Minor label changes
Diffstat (limited to 'gr-digital/examples/demod')
-rw-r--r--gr-digital/examples/demod/symbol_sync_test_complex.grc778
-rw-r--r--gr-digital/examples/demod/symbol_sync_test_float.grc693
2 files changed, 396 insertions, 1075 deletions
diff --git a/gr-digital/examples/demod/symbol_sync_test_complex.grc b/gr-digital/examples/demod/symbol_sync_test_complex.grc
index 77bacdeb12..28812e20cd 100644
--- a/gr-digital/examples/demod/symbol_sync_test_complex.grc
+++ b/gr-digital/examples/demod/symbol_sync_test_complex.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>
@@ -66,7 +46,7 @@
</param>
<param>
<key>id</key>
- <value>symbol_sync_test_complex</value>
+ <value>symbol_sync_test_float</value>
</param>
<param>
<key>max_nouts</key>
@@ -98,7 +78,7 @@
</param>
<param>
<key>title</key>
- <value>Symbol Sync Test (Complex)</value>
+ <value>Symbol Sync Test (Float)</value>
</param>
</block>
<block>
@@ -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>(2288, 588)</value>
+ <value>(1488, 556)</value>
</param>
<param>
<key>_rotation</key>
@@ -274,7 +254,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(2760, 484)</value>
+ <value>(1984, 460)</value>
</param>
<param>
<key>gui_hint</key>
@@ -309,7 +289,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(2288, 460)</value>
+ <value>(1488, 428)</value>
</param>
<param>
<key>_rotation</key>
@@ -332,7 +312,7 @@
</param>
<param>
<key>value</key>
- <value>0.25</value>
+ <value>0.125</value>
</param>
<param>
<key>_enabled</key>
@@ -340,7 +320,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(2440, 568)</value>
+ <value>(1632, 424)</value>
</param>
<param>
<key>gui_hint</key>
@@ -399,7 +379,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(2608, 212)</value>
+ <value>(2128, 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>(2288, 524)</value>
+ <value>(1488, 492)</value>
</param>
<param>
<key>_rotation</key>
@@ -500,7 +480,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(2760, 564)</value>
+ <value>(1984, 540)</value>
</param>
<param>
<key>gui_hint</key>
@@ -535,7 +515,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1336, 236)</value>
+ <value>(1280, 228)</value>
</param>
<param>
<key>_rotation</key>
@@ -558,7 +538,7 @@
</param>
<param>
<key>value</key>
- <value>1.0</value>
+ <value>0.28365</value>
</param>
<param>
<key>_enabled</key>
@@ -566,7 +546,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(2608, 568)</value>
+ <value>(1808, 544)</value>
</param>
<param>
<key>gui_hint</key>
@@ -629,7 +609,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(2440, 448)</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,151 +716,6 @@
</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_float_to_complex</key>
<param>
<key>alias</key>
@@ -900,7 +735,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(2752, 328)</value>
+ <value>(2248, 328)</value>
</param>
<param>
<key>_rotation</key>
@@ -943,7 +778,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(2752, 392)</value>
+ <value>(2248, 392)</value>
</param>
<param>
<key>_rotation</key>
@@ -986,7 +821,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1936, 328)</value>
+ <value>(1512, 328)</value>
</param>
<param>
<key>_rotation</key>
@@ -1021,160 +856,7 @@
</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>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>const</key>
- <value>1 if data_src == 2 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, 380)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_multiply_const_vxx_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 == 1 else 0</value>
+ <value>0.707+0.707j</value>
</param>
<param>
<key>affinity</key>
@@ -1186,7 +868,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(216, 308)</value>
+ <value>(1696, 340)</value>
</param>
<param>
<key>_rotation</key>
@@ -1194,11 +876,11 @@
</param>
<param>
<key>id</key>
- <value>blocks_multiply_const_vxx_0_0_0_0</value>
+ <value>blocks_multiply_const_vxx_1</value>
</param>
<param>
<key>type</key>
- <value>short</value>
+ <value>complex</value>
</param>
<param>
<key>maxoutbuf</key>
@@ -1214,7 +896,7 @@
</param>
</block>
<block>
- <key>blocks_multiply_const_vxx</key>
+ <key>blocks_multiply_matrix_xx</key>
<param>
<key>alias</key>
<value></value>
@@ -1224,10 +906,6 @@
<value></value>
</param>
<param>
- <key>const</key>
- <value>1 if data_src == 0 else 0</value>
- </param>
- <param>
<key>affinity</key>
<value></value>
</param>
@@ -1237,7 +915,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(208, 212)</value>
+ <value>(360, 248)</value>
</param>
<param>
<key>_rotation</key>
@@ -1245,62 +923,15 @@
</param>
<param>
<key>id</key>
- <value>blocks_multiply_const_vxx_0_0_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>0.707+0.707j</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(2128, 340)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_multiply_const_vxx_1</value>
+ <value>float</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
+ <key>A</key>
+ <value>(data_src,)</value>
</param>
<param>
<key>maxoutbuf</key>
@@ -1311,8 +942,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>
@@ -1323,7 +954,7 @@
</param>
<param>
<key>comment</key>
- <value></value>
+ <value>Pulse Shaping</value>
</param>
<param>
<key>affinity</key>
@@ -1335,7 +966,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1312, 324)</value>
+ <value>(912, 332)</value>
</param>
<param>
<key>_rotation</key>
@@ -1343,7 +974,7 @@
</param>
<param>
<key>id</key>
- <value>blocks_repeat_0</value>
+ <value>blocks_repeat_0_0</value>
</param>
<param>
<key>interp</key>
@@ -1386,7 +1017,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(712, 324)</value>
+ <value>(192, 148)</value>
</param>
<param>
<key>_rotation</key>
@@ -1394,7 +1025,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>
@@ -1461,7 +1092,7 @@
</param>
<param>
<key>type</key>
- <value>short</value>
+ <value>float</value>
</param>
<param>
<key>vlen</key>
@@ -1488,7 +1119,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(8, 364)</value>
+ <value>(0, 300)</value>
</param>
<param>
<key>_rotation</key>
@@ -1508,7 +1139,7 @@
</param>
<param>
<key>type</key>
- <value>short</value>
+ <value>float</value>
</param>
<param>
<key>repeat</key>
@@ -1547,7 +1178,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(8, 284)</value>
+ <value>(0, 220)</value>
</param>
<param>
<key>_rotation</key>
@@ -1567,7 +1198,7 @@
</param>
<param>
<key>type</key>
- <value>short</value>
+ <value>float</value>
</param>
<param>
<key>repeat</key>
@@ -1606,7 +1237,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(8, 444)</value>
+ <value>(0, 380)</value>
</param>
<param>
<key>_rotation</key>
@@ -1626,7 +1257,7 @@
</param>
<param>
<key>type</key>
- <value>short</value>
+ <value>float</value>
</param>
<param>
<key>repeat</key>
@@ -1665,7 +1296,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(8, 524)</value>
+ <value>(0, 460)</value>
</param>
<param>
<key>_rotation</key>
@@ -1685,7 +1316,7 @@
</param>
<param>
<key>type</key>
- <value>short</value>
+ <value>float</value>
</param>
<param>
<key>repeat</key>
@@ -1705,49 +1336,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>
@@ -1779,7 +1367,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(2376, 292)</value>
+ <value>(1920, 292)</value>
</param>
<param>
<key>_rotation</key>
@@ -1827,7 +1415,7 @@
</param>
<param>
<key>constellation</key>
- <value>digital.constellation_qpsk().base()</value>
+ <value>digital.constellation_bpsk().base()</value>
</param>
<param>
<key>ted_type</key>
@@ -1835,16 +1423,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 -&gt; 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 -&gt; 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>(696, 328)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>epy_block_0_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>
@@ -1858,7 +1513,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1688, 316)</value>
+ <value>(1264, 324)</value>
</param>
<param>
<key>_rotation</key>
@@ -1866,7 +1521,7 @@
</param>
<param>
<key>id</key>
- <value>fir_filter_xxx_0_1_0_0_0</value>
+ <value>fir_filter_xxx_0_1_0_0_0_0</value>
</param>
<param>
<key>maxoutbuf</key>
@@ -1905,7 +1560,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(184, 12)</value>
+ <value>(184, 4)</value>
</param>
<param>
<key>_rotation</key>
@@ -1921,6 +1576,68 @@
</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>(184, 52)</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>from gnuradio import digital</value>
+ </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>
@@ -1956,7 +1673,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(2992, 296)</value>
+ <value>(2472, 296)</value>
</param>
<param>
<key>gui_hint</key>
@@ -1972,7 +1689,7 @@
</param>
<param>
<key>id</key>
- <value>qtgui_time_sink_x_0_0_0_0_0</value>
+ <value>qtgui_time_sink_x_0_0_0_0_0_0</value>
</param>
<param>
<key>legend</key>
@@ -2319,7 +2036,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(2376, 204)</value>
+ <value>(1920, 196)</value>
</param>
<param>
<key>gui_hint</key>
@@ -2351,7 +2068,7 @@
</param>
<param>
<key>label1</key>
- <value>Re</value>
+ <value></value>
</param>
<param>
<key>marker1</key>
@@ -2399,7 +2116,7 @@
</param>
<param>
<key>label2</key>
- <value>Im</value>
+ <value></value>
</param>
<param>
<key>marker2</key>
@@ -2654,7 +2371,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>
@@ -2674,7 +2392,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1480, 304)</value>
+ <value>(1080, 312)</value>
</param>
<param>
<key>_rotation</key>
@@ -2707,37 +2425,19 @@
</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>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_add_xx_0</source_block_id>
- <sink_block_id>blocks_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>
+ <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_float_to_complex_0_0</source_block_id>
- <sink_block_id>qtgui_time_sink_x_0_0_0_0_0</sink_block_id>
+ <sink_block_id>qtgui_time_sink_x_0_0_0_0_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>1</sink_key>
</connection>
<connection>
<source_block_id>blocks_float_to_complex_1_0</source_block_id>
- <sink_block_id>qtgui_time_sink_x_0_0_0_0_0</sink_block_id>
+ <sink_block_id>qtgui_time_sink_x_0_0_0_0_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>2</sink_key>
</connection>
@@ -2748,94 +2448,64 @@
<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_block_id>blocks_multiply_const_vxx_1</source_block_id>
+ <sink_block_id>digital_symbol_sync_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>blocks_multiply_const_vxx_1</source_block_id>
- <sink_block_id>digital_symbol_sync_xx_0</sink_block_id>
+ <sink_block_id>qtgui_time_sink_x_0_1_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_multiply_const_vxx_1</source_block_id>
- <sink_block_id>qtgui_time_sink_x_0_1_0</sink_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_repeat_0</source_block_id>
+ <source_block_id>blocks_repeat_0_0</source_block_id>
<sink_block_id>rational_resampler_xxx_0_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_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>
@@ -2857,19 +2527,25 @@
</connection>
<connection>
<source_block_id>digital_symbol_sync_xx_0</source_block_id>
- <sink_block_id>qtgui_time_sink_x_0_0_0_0_0</sink_block_id>
+ <sink_block_id>qtgui_time_sink_x_0_0_0_0_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>epy_block_0_0</source_block_id>
+ <sink_block_id>blocks_repeat_0_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>
+ <source_block_id>fir_filter_xxx_0_1_0_0_0_0</source_block_id>
<sink_block_id>blocks_float_to_complex_3</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>rational_resampler_xxx_0_0</source_block_id>
- <sink_block_id>fir_filter_xxx_0_1_0_0_0</sink_block_id>
+ <sink_block_id>fir_filter_xxx_0_1_0_0_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
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 -&gt; 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 -&gt; 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>