summaryrefslogtreecommitdiff
path: root/gr-digital/examples/demod
diff options
context:
space:
mode:
authorJohannes Demel <demel@uni-bremen.de>2019-07-20 12:32:02 +0200
committerMartin Braun <martin.braun@ettus.com>2019-07-23 21:26:52 -0700
commit58857ac727084a5d40fdbfc5f597f734811cef0c (patch)
treebd666110c9c2f7cb928acb992ae5fe70b7c39cde /gr-digital/examples/demod
parentf7f3866998584c35b27613c5a5464727b981587f (diff)
digital: Fix GRC examples for YAML format
With this commit the remaining GRC examples that were not yet converted to YAML are converted too. GRC did not open these examples because it threw an error. > Error: (ValueError("invalid literal for int() with base 10: > 'digital.packet_utils.default_access_code'",), '% if > int(eval(access_code))==0:\nself.${id} = ${id} = > digital.header_format_default(digital.packet_utils.default_access_code,\\\n${threshold}, > ${bps})\n% else:\nself.${id} = ${id} = > digital.header_format_default(${access_code},\\\n${threshold}, ${bps})\n% endif') This could be fixed by manually editing the corresponding GRC files. All uses of `digital.packet_utils.default_access_code` are replaced with a string. This allows GRC to open these files. Still, GRC will hang in case `digital.packet_utils.default_access_code` is used again. This hints at a bug with the `default_access_code` code.
Diffstat (limited to 'gr-digital/examples/demod')
-rw-r--r--gr-digital/examples/demod/symbol_sync_test_complex.grc3384
-rw-r--r--gr-digital/examples/demod/symbol_sync_test_float.grc3110
2 files changed, 1600 insertions, 4894 deletions
diff --git a/gr-digital/examples/demod/symbol_sync_test_complex.grc b/gr-digital/examples/demod/symbol_sync_test_complex.grc
index 28812e20cd..3c838f4f1f 100644
--- a/gr-digital/examples/demod/symbol_sync_test_complex.grc
+++ b/gr-digital/examples/demod/symbol_sync_test_complex.grc
@@ -1,2552 +1,838 @@
-<?xml version='1.0' encoding='utf-8'?>
-<?grc format='1' created='3.7.12'?>
-<flow_graph>
- <timestamp>Mon Jan 12 16:38:01 2015</timestamp>
- <block>
- <key>options</key>
- <param>
- <key>author</key>
- <value>Andy Walls</value>
- </param>
- <param>
- <key>window_size</key>
- <value>3200, 700</value>
- </param>
- <param>
- <key>category</key>
- <value>Custom</value>
- </param>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>description</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(0, 0)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>generate_options</key>
- <value>qt_gui</value>
- </param>
- <param>
- <key>hier_block_src_path</key>
- <value>.:</value>
- </param>
- <param>
- <key>id</key>
- <value>symbol_sync_test_float</value>
- </param>
- <param>
- <key>max_nouts</key>
- <value>0</value>
- </param>
- <param>
- <key>qt_qss_theme</key>
- <value></value>
- </param>
- <param>
- <key>realtime_scheduling</key>
- <value></value>
- </param>
- <param>
- <key>run_command</key>
- <value>{python} -u {filename}</value>
- </param>
- <param>
- <key>run_options</key>
- <value>prompt</value>
- </param>
- <param>
- <key>run</key>
- <value>True</value>
- </param>
- <param>
- <key>thread_safe_setters</key>
- <value></value>
- </param>
- <param>
- <key>title</key>
- <value>Symbol Sync Test (Float)</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(552, 244)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>baud_rate</value>
- </param>
- <param>
- <key>value</key>
- <value>1200.0</value>
- </param>
- </block>
- <block>
- <key>variable_qtgui_chooser</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>value</key>
- <value>(0,0,0,0,1)</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(344, 0)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>0,0,1,1</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>data_src</value>
- </param>
- <param>
- <key>label0</key>
- <value>Random</value>
- </param>
- <param>
- <key>label1</key>
- <value>Low freq</value>
- </param>
- <param>
- <key>label2</key>
- <value>Dot Pattern</value>
- </param>
- <param>
- <key>label3</key>
- <value>Pulse</value>
- </param>
- <param>
- <key>label4</key>
- <value>Packets</value>
- </param>
- <param>
- <key>label</key>
- <value>Data Source</value>
- </param>
- <param>
- <key>labels</key>
- <value>[]</value>
- </param>
- <param>
- <key>num_opts</key>
- <value>5</value>
- </param>
- <param>
- <key>option0</key>
- <value>(1,0,0,0,0)</value>
- </param>
- <param>
- <key>option1</key>
- <value>(0,1,0,0,0)</value>
- </param>
- <param>
- <key>option2</key>
- <value>(0,0,1,0,0)</value>
- </param>
- <param>
- <key>option3</key>
- <value>(0,0,0,1,0)</value>
- </param>
- <param>
- <key>option4</key>
- <value>(0,0,0,0,1)</value>
- </param>
- <param>
- <key>options</key>
- <value>[0, 1, 2]</value>
- </param>
- <param>
- <key>orient</key>
- <value>Qt.QVBoxLayout</value>
- </param>
- <param>
- <key>type</key>
- <value>raw</value>
- </param>
- <param>
- <key>widget</key>
- <value>combo_box</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1488, 556)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>integral_gain</value>
- </param>
- <param>
- <key>value</key>
- <value>2.0/ted_gain*(1.0-math.exp(-zeta*omega_n_norm)*(math.sinh(zeta*omega_n_norm)+(math.cosh(omega_d_norm) if zeta &gt; 1.0 else math.cos(omega_d_norm))))</value>
- </param>
- </block>
- <block>
- <key>variable_qtgui_label</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>value</key>
- <value>"%8.6f" % integral_gain</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>formatter</key>
- <value>None</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1984, 460)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>0,2,1,1</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>integral_gain_label</value>
- </param>
- <param>
- <key>label</key>
- <value>Integral Gain</value>
- </param>
- <param>
- <key>type</key>
- <value>string</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1488, 428)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>omega_d_norm</value>
- </param>
- <param>
- <key>value</key>
- <value>omega_n_norm*math.sqrt((zeta*zeta-1.0) if zeta &gt; 1.0 else (1.0-zeta*zeta))</value>
- </param>
- </block>
- <block>
- <key>variable_qtgui_range</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>value</key>
- <value>0.125</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1632, 424)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>1,1,1,1</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>omega_n_norm</value>
- </param>
- <param>
- <key>label</key>
- <value>Normalized Bandwidth</value>
- </param>
- <param>
- <key>min_len</key>
- <value>200</value>
- </param>
- <param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
- </param>
- <param>
- <key>start</key>
- <value>0.0</value>
- </param>
- <param>
- <key>step</key>
- <value>0.001</value>
- </param>
- <param>
- <key>stop</key>
- <value>2.0*math.pi*0.25</value>
- </param>
- <param>
- <key>rangeType</key>
- <value>float</value>
- </param>
- <param>
- <key>widget</key>
- <value>counter_slider</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(2128, 196)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>osps</value>
- </param>
- <param>
- <key>value</key>
- <value>1</value>
- </param>
- </block>
- <block>
- <key>variable_tag_object</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(0, 544)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>packet_time_est_tag</value>
- </param>
- <param>
- <key>key</key>
- <value>pmt.intern("test")</value>
- </param>
- <param>
- <key>offset</key>
- <value>9</value>
- </param>
- <param>
- <key>src</key>
- <value>pmt.intern("packet_vector_source")</value>
- </param>
- <param>
- <key>value</key>
- <value>pmt.from_double(0.0)</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1488, 492)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>proportional_gain</value>
- </param>
- <param>
- <key>value</key>
- <value>2.0/ted_gain*math.exp(-zeta*omega_n_norm)*math.sinh(zeta*omega_n_norm)</value>
- </param>
- </block>
- <block>
- <key>variable_qtgui_label</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>value</key>
- <value>"%8.6f" % proportional_gain</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>formatter</key>
- <value>None</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1984, 540)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>1,2,1,1</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>proportional_gain_label</value>
- </param>
- <param>
- <key>label</key>
- <value>Proportional Gain</value>
- </param>
- <param>
- <key>type</key>
- <value>string</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1280, 228)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>sps</value>
- </param>
- <param>
- <key>value</key>
- <value>7</value>
- </param>
- </block>
- <block>
- <key>variable_qtgui_range</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>value</key>
- <value>0.28365</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1808, 544)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>1,0,1,1</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>ted_gain</value>
- </param>
- <param>
- <key>label</key>
- <value>Expected TED Gain</value>
- </param>
- <param>
- <key>min_len</key>
- <value>200</value>
- </param>
- <param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
- </param>
- <param>
- <key>start</key>
- <value>0.05</value>
- </param>
- <param>
- <key>step</key>
- <value>0.01</value>
- </param>
- <param>
- <key>stop</key>
- <value>5.0</value>
- </param>
- <param>
- <key>rangeType</key>
- <value>float</value>
- </param>
- <param>
- <key>widget</key>
- <value>counter_slider</value>
- </param>
- </block>
- <block>
- <key>variable_qtgui_range</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>value</key>
- <value>1.0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1632, 544)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>0,1,1,1</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>zeta</value>
- </param>
- <param>
- <key>label</key>
- <value>Damping Factor</value>
- </param>
- <param>
- <key>min_len</key>
- <value>200</value>
- </param>
- <param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
- </param>
- <param>
- <key>start</key>
- <value>0.1</value>
- </param>
- <param>
- <key>step</key>
- <value>0.1</value>
- </param>
- <param>
- <key>stop</key>
- <value>5.0</value>
- </param>
- <param>
- <key>rangeType</key>
- <value>float</value>
- </param>
- <param>
- <key>widget</key>
- <value>counter_slider</value>
- </param>
- </block>
- <block>
- <key>analog_random_source_x</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>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(0, 128)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>analog_random_source_x_0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>max</key>
- <value>2</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
- </param>
- <param>
- <key>num_samps</key>
- <value>16384</value>
- </param>
- <param>
- <key>type</key>
- <value>short</value>
- </param>
- <param>
- <key>repeat</key>
- <value>True</value>
- </param>
- </block>
- <block>
- <key>blocks_float_to_complex</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>(2248, 328)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_float_to_complex_0_0</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_float_to_complex</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>(2248, 392)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_float_to_complex_1_0</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_float_to_complex</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>(1512, 328)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_float_to_complex_3</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>(1696, 340)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_multiply_const_vxx_1</value>
- </param>
- <param>
- <key>type</key>
- <value>complex</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_matrix_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>(360, 248)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_multiply_matrix_xx_0</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>A</key>
- <value>(data_src,)</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>tag_propagation_policy</key>
- <value>gr.TPP_ALL_TO_ALL</value>
- </param>
- </block>
- <block>
- <key>blocks_repeat</key>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>comment</key>
- <value>Pulse Shaping</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(912, 332)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_repeat_0_0</value>
- </param>
- <param>
- <key>interp</key>
- <value>sps*2</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- </block>
- <block>
- <key>blocks_short_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>(192, 148)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_short_to_float_1</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_throttle</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>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(544, 324)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_throttle_0</value>
- </param>
- <param>
- <key>ignoretag</key>
- <value>True</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>samples_per_second</key>
- <value>baud_rate*10</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- </block>
- <block>
- <key>blocks_vector_source_x</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>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(0, 300)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_vector_source_x_0_0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>repeat</key>
- <value>True</value>
- </param>
- <param>
- <key>tags</key>
- <value>[]</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>vector</key>
- <value>(0, 1, 0, 1, 0, 1, 0, 1)</value>
- </param>
- </block>
- <block>
- <key>blocks_vector_source_x</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>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(0, 220)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_vector_source_x_0_0_0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>repeat</key>
- <value>True</value>
- </param>
- <param>
- <key>tags</key>
- <value>[]</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>vector</key>
- <value>(0,0,0,0,1,1,1,1)</value>
- </param>
- </block>
- <block>
- <key>blocks_vector_source_x</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>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(0, 380)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_vector_source_x_0_0_1</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>repeat</key>
- <value>True</value>
- </param>
- <param>
- <key>tags</key>
- <value>[]</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>vector</key>
- <value>[1]+[0]*7</value>
- </param>
- </block>
- <block>
- <key>blocks_vector_source_x</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>(0, 460)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_vector_source_x_0_0_1_0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>repeat</key>
- <value>True</value>
- </param>
- <param>
- <key>tags</key>
- <value>[packet_time_est_tag]</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>vector</key>
- <value>[1,0]*(4*12*0)+[1,1,0,1,0,1,0,1]*12+[1,0,1,1,1,1,1,0,0,1]+[1,1,1,1,0,1,1,0,0,1]+[1,0,1,1,1,1,1,0,0,1]+[0,1,1,1,0,1,1,0,1,0]+[0,0,0,0,0,1,0,1,0,1,1,0,0,1,1,1,0,0,0,0]+[2]*128</value>
- </param>
- </block>
- <block>
- <key>digital_symbol_sync_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>damping</key>
- <value>zeta</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>ted_gain</key>
- <value>ted_gain</value>
- </param>
- <param>
- <key>nfilters</key>
- <value>128</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1920, 292)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>type</key>
- <value>cc</value>
- </param>
- <param>
- <key>id</key>
- <value>digital_symbol_sync_xx_0</value>
- </param>
- <param>
- <key>resamp_type</key>
- <value>digital.IR_MMSE_8TAP</value>
- </param>
- <param>
- <key>loop_bw</key>
- <value>omega_n_norm</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>max_dev</key>
- <value>1.5</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>osps</key>
- <value>osps</value>
- </param>
- <param>
- <key>pfb_mf_taps</key>
- <value>[]</value>
- </param>
- <param>
- <key>sps</key>
- <value>sps</value>
- </param>
- <param>
- <key>constellation</key>
- <value>digital.constellation_bpsk().base()</value>
- </param>
- <param>
- <key>ted_type</key>
- <value>digital.TED_MUELLER_AND_MULLER</value>
- </param>
- </block>
- <block>
- <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:
+options:
+ parameters:
+ author: Andy Walls
+ category: Custom
+ cmake_opt: ''
+ comment: ''
+ copyright: ''
+ description: ''
+ gen_cmake: 'On'
+ gen_linking: dynamic
+ generate_options: qt_gui
+ hier_block_src_path: '.:'
+ id: symbol_sync_test_float
+ max_nouts: '0'
+ output_language: python
+ placement: (0,0)
+ qt_qss_theme: ''
+ realtime_scheduling: ''
+ run: 'True'
+ run_command: '{python} -u {filename}'
+ run_options: prompt
+ sizing_mode: fixed
+ thread_safe_setters: ''
+ title: Symbol Sync Test (Float)
+ window_size: 3200, 700
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [0, 0]
+ rotation: 0
+ state: enabled
-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!
-"""
+blocks:
+- name: baud_rate
+ id: variable
+ parameters:
+ comment: ''
+ value: '1200.0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [552, 244]
+ rotation: 0
+ state: enabled
+- name: data_src
+ id: variable_qtgui_chooser
+ parameters:
+ comment: ''
+ gui_hint: 0,0,1,1
+ label: Data Source
+ label0: Random
+ label1: Low freq
+ label2: Dot Pattern
+ label3: Pulse
+ label4: Packets
+ labels: '[]'
+ num_opts: '5'
+ option1: (0,1,0,0,0)
+ option2: (0,0,1,0,0)
+ option3: (0,0,0,1,0)
+ option4: (0,0,0,0,1)
+ options: '[0, 1, 2]'
+ orient: Qt.QVBoxLayout
+ type: raw
+ value: (0,0,0,0,1)
+ widget: combo_box
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [344, 0]
+ rotation: 0
+ state: enabled
+- name: integral_gain
+ id: variable
+ parameters:
+ comment: ''
+ value: 2.0/ted_gain*(1.0-math.exp(-zeta*omega_n_norm)*(math.sinh(zeta*omega_n_norm)+(math.cosh(omega_d_norm)
+ if zeta > 1.0 else math.cos(omega_d_norm))))
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1488, 556]
+ rotation: 0
+ state: enabled
+- name: integral_gain_label
+ id: variable_qtgui_label
+ parameters:
+ comment: ''
+ formatter: None
+ gui_hint: 0,2,1,1
+ label: Integral Gain
+ type: string
+ value: '"%8.6f" % integral_gain'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1984, 460]
+ rotation: 0
+ state: enabled
+- name: omega_d_norm
+ id: variable
+ parameters:
+ comment: ''
+ value: omega_n_norm*math.sqrt((zeta*zeta-1.0) if zeta > 1.0 else (1.0-zeta*zeta))
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1488, 428]
+ rotation: 0
+ state: enabled
+- name: omega_n_norm
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 1,1,1,1
+ label: Normalized Bandwidth
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0.0'
+ step: '0.001'
+ stop: 2.0*math.pi*0.25
+ value: '0.125'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1632, 424]
+ rotation: 0
+ state: enabled
+- name: osps
+ id: variable
+ parameters:
+ comment: ''
+ value: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2128, 196]
+ rotation: 0
+ state: enabled
+- name: packet_time_est_tag
+ id: variable_tag_object
+ parameters:
+ comment: ''
+ key: pmt.intern("test")
+ offset: '9'
+ src: pmt.intern("packet_vector_source")
+ value: pmt.from_double(0.0)
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [0, 544]
+ rotation: 0
+ state: enabled
+- name: proportional_gain
+ id: variable
+ parameters:
+ comment: ''
+ value: 2.0/ted_gain*math.exp(-zeta*omega_n_norm)*math.sinh(zeta*omega_n_norm)
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1488, 492]
+ rotation: 0
+ state: enabled
+- name: proportional_gain_label
+ id: variable_qtgui_label
+ parameters:
+ comment: ''
+ formatter: None
+ gui_hint: 1,2,1,1
+ label: Proportional Gain
+ type: string
+ value: '"%8.6f" % proportional_gain'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1984, 540]
+ rotation: 0
+ state: enabled
+- name: sps
+ id: variable
+ parameters:
+ comment: ''
+ value: '7'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1280, 228]
+ rotation: 0
+ state: enabled
+- name: ted_gain
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 1,0,1,1
+ label: Expected TED Gain
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0.05'
+ step: '0.01'
+ stop: '5.0'
+ value: '0.28365'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1808, 544]
+ rotation: 0
+ state: enabled
+- name: zeta
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 0,1,1,1
+ label: Damping Factor
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0.1'
+ step: '0.1'
+ stop: '5.0'
+ value: '1.0'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1632, 544]
+ rotation: 0
+ state: enabled
+- name: analog_random_source_x_0
+ id: analog_random_source_x
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ max: '2'
+ maxoutbuf: '0'
+ min: '0'
+ minoutbuf: '0'
+ num_samps: '16384'
+ repeat: 'True'
+ type: short
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [0, 128]
+ rotation: 0
+ state: enabled
+- name: blocks_float_to_complex_0_0
+ id: blocks_float_to_complex
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2248, 328]
+ rotation: 0
+ state: enabled
+- name: blocks_float_to_complex_1_0
+ id: blocks_float_to_complex
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2248, 392]
+ rotation: 0
+ state: enabled
+- name: blocks_float_to_complex_3
+ id: blocks_float_to_complex
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1512, 328]
+ rotation: 0
+ state: enabled
+- name: blocks_multiply_const_vxx_1
+ id: blocks_multiply_const_vxx
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ const: 0.707+0.707j
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ type: complex
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1696, 340]
+ rotation: 0
+ state: enabled
+- name: blocks_multiply_matrix_xx_0
+ id: blocks_multiply_matrix_xx
+ parameters:
+ A: (data_src,)
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ tag_propagation_policy: gr.TPP_ALL_TO_ALL
+ type: float
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [360, 248]
+ rotation: 0
+ state: enabled
+- name: blocks_repeat_0_0
+ id: blocks_repeat
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: Pulse Shaping
+ interp: sps*2
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ type: float
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [912, 332]
+ rotation: 0
+ state: enabled
+- name: blocks_short_to_float_1
+ id: blocks_short_to_float
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ scale: '1'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [192, 148]
+ rotation: 0
+ state: enabled
+- name: blocks_throttle_0
+ id: blocks_throttle
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ ignoretag: 'True'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ samples_per_second: baud_rate*10
+ type: float
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [544, 324]
+ rotation: 0
+ state: enabled
+- name: blocks_vector_source_x_0_0
+ id: blocks_vector_source_x
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ repeat: 'True'
+ tags: '[]'
+ type: float
+ vector: (0, 1, 0, 1, 0, 1, 0, 1)
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [0, 300]
+ rotation: 0
+ state: enabled
+- name: blocks_vector_source_x_0_0_0
+ id: blocks_vector_source_x
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ repeat: 'True'
+ tags: '[]'
+ type: float
+ vector: (0,0,0,0,1,1,1,1)
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [0, 220]
+ rotation: 0
+ state: enabled
+- name: blocks_vector_source_x_0_0_1
+ id: blocks_vector_source_x
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ repeat: 'True'
+ tags: '[]'
+ type: float
+ vector: '[1]+[0]*7'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [0, 380]
+ rotation: 0
+ state: enabled
+- name: blocks_vector_source_x_0_0_1_0
+ id: blocks_vector_source_x
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ repeat: 'True'
+ tags: '[packet_time_est_tag]'
+ type: float
+ vector: '[1,0]*(4*12*0)+[1,1,0,1,0,1,0,1]*12+[1,0,1,1,1,1,1,0,0,1]+[1,1,1,1,0,1,1,0,0,1]+[1,0,1,1,1,1,1,0,0,1]+[0,1,1,1,0,1,1,0,1,0]+[0,0,0,0,0,1,0,1,0,1,1,0,0,1,1,1,0,0,0,0]+[2]*128'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [0, 460]
+ rotation: 0
+ state: enabled
+- name: digital_symbol_sync_xx_0
+ id: digital_symbol_sync_xx
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ constellation: digital.constellation_bpsk().base()
+ damping: zeta
+ loop_bw: omega_n_norm
+ max_dev: '1.5'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ nfilters: '128'
+ osps: osps
+ pfb_mf_taps: '[]'
+ resamp_type: digital.IR_MMSE_8TAP
+ sps: sps
+ ted_gain: ted_gain
+ ted_type: digital.TED_MUELLER_AND_MULLER
+ type: cc
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1920, 292]
+ rotation: 0
+ state: enabled
+- name: epy_block_0_0
+ id: epy_block
+ parameters:
+ _source_code: "\"\"\"\nEmbedded Python Blocks:\n\nEach time this file is saved,\
+ \ GRC will instantiate the first class it finds\nto get ports and parameters\
+ \ of your block. The arguments to __init__ will\nbe the parameters. All of\
+ \ them are required to have default values!\n\"\"\"\n\nimport numpy as np\n\
+ from gnuradio import gr\n\nclass ConstMap(gr.sync_block):\n \"\"\"\n Map\
+ \ 0, 1 to -1, 1\n \"\"\"\n def __init__(self):\n gr.sync_block.__init__(\n\
+ \ self,\n name='Bit -> Symbol Map',\n in_sig=[np.float32],\n\
+ \ out_sig=[np.float32]\n )\n\n def work(self, input_items,\
+ \ output_items):\n \"\"\"\n map\n \"\"\"\n sym_map\
+ \ = {0.0: -1.0, 1.0: 1.0, 2.0: 0.0}\n output_items[0][:] = [sym_map[x]\
+ \ for x in input_items[0]]\n return len(output_items[0])\n"
+ affinity: ''
+ alias: ''
+ comment: BPSK Modulation
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ _io_cache: ('Bit -> Symbol Map', 'ConstMap', [], [('0', 'float', 1)], [('0', 'float',
+ 1)], '\n Map 0, 1 to -1, 1\n ', [])
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [696, 328]
+ rotation: 0
+ state: enabled
+- name: fir_filter_xxx_0_1_0_0_0_0
+ id: fir_filter_xxx
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: "Matched Filter (almost). \nBecause the input stream has 6 2/3 \nsamples\
+ \ per symbol, this incurs a slight ISI."
+ decim: '1'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ samp_delay: int((sps-1.0)/2.0)+4
+ taps: '[1.0/float(sps)]*sps'
+ type: fff
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1264, 324]
+ rotation: 0
+ state: enabled
+- name: import_0
+ id: import
+ parameters:
+ alias: ''
+ comment: ''
+ imports: import math
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [184, 4]
+ rotation: 0
+ state: enabled
+- name: import_0_0
+ id: import
+ parameters:
+ alias: ''
+ comment: ''
+ imports: from gnuradio import digital
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [184, 52]
+ rotation: 0
+ state: enabled
+- name: note_0
+ id: note
+ parameters:
+ alias: ''
+ comment: ''
+ note: Bit Pattern Generation
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [328, 452.0]
+ rotation: 0
+ state: enabled
+- name: qtgui_time_sink_x_0_0_0_0_0_0
+ id: qtgui_time_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ axislabels: 'True'
+ color1: '"blue"'
+ color10: '"blue"'
+ color2: '"magenta"'
+ color3: '"red"'
+ color4: '"green"'
+ color5: '"black"'
+ color6: '"yellow"'
+ color7: '"black"'
+ color8: '"black"'
+ color9: '"dark green"'
+ comment: ''
+ ctrlpanel: 'False'
+ entags: 'True'
+ grid: 'False'
+ gui_hint: 3,1,1,2
+ label1: Soft Bits Re
+ label10: ''
+ label2: Soft Bits Im
+ label3: Error
+ label4: Instantaneous Period
+ label5: Average Period
+ label6: (unused)
+ label7: ''
+ label8: ''
+ label9: ''
+ legend: 'True'
+ marker1: '1'
+ marker10: '-1'
+ marker2: '0'
+ marker3: '-1'
+ marker4: '-1'
+ marker5: '-1'
+ marker6: '-1'
+ marker7: '-1'
+ marker8: '-1'
+ marker9: '-1'
+ name: Symbol Synched Output and Debug
+ nconnections: '3'
+ size: 256*osps
+ srate: baud_rate*osps
+ stemplot: 'False'
+ style1: '1'
+ style10: '1'
+ style2: '1'
+ style3: '1'
+ style4: '1'
+ style5: '1'
+ style6: '0'
+ style7: '1'
+ style8: '0'
+ style9: '1'
+ tr_chan: '0'
+ tr_delay: '0.01'
+ tr_level: '0.1'
+ tr_mode: qtgui.TRIG_MODE_NORM
+ tr_slope: qtgui.TRIG_SLOPE_POS
+ tr_tag: '"time_est"'
+ type: complex
+ update_time: '0.1'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ ylabel: Amplitude
+ ymax: sps+2
+ ymin: '-1.5'
+ yunit: '""'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [2472, 296]
+ rotation: 0
+ state: enabled
+- name: qtgui_time_sink_x_0_1_0
+ id: qtgui_time_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ axislabels: 'True'
+ color1: '"blue"'
+ color10: '"blue"'
+ color2: '"red"'
+ color3: '"green"'
+ color4: '"black"'
+ color5: '"dark green"'
+ color6: '"magenta"'
+ color7: '"yellow"'
+ color8: '"dark red"'
+ color9: '"dark green"'
+ comment: ''
+ ctrlpanel: 'False'
+ entags: 'True'
+ grid: 'True'
+ gui_hint: 3,0,1,1
+ label1: ''
+ label10: ''
+ label2: ''
+ label3: ''
+ label4: ''
+ label5: Baseband
+ label6: Abs(Corr)
+ label7: ''
+ label8: ''
+ label9: ''
+ legend: 'True'
+ marker1: '-1'
+ marker10: '-1'
+ marker2: '-1'
+ marker3: '-1'
+ marker4: '-1'
+ marker5: '-1'
+ marker6: '-1'
+ marker7: '-1'
+ marker8: '-1'
+ marker9: '-1'
+ name: '""'
+ nconnections: '1'
+ size: 1024*3
+ srate: baud_rate*sps
+ stemplot: 'False'
+ style1: '1'
+ style10: '1'
+ style2: '1'
+ style3: '1'
+ style4: '1'
+ style5: '1'
+ style6: '1'
+ style7: '1'
+ style8: '1'
+ style9: '1'
+ tr_chan: '0'
+ tr_delay: '0.01'
+ tr_level: '0.1'
+ tr_mode: qtgui.TRIG_MODE_NORM
+ tr_slope: qtgui.TRIG_SLOPE_POS
+ tr_tag: ''
+ type: complex
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ ylabel: Amplitude
+ ymax: '1.5'
+ ymin: '-1.5'
+ yunit: '""'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1920, 196]
+ rotation: 0
+ state: enabled
+- name: rational_resampler_xxx_0_0
+ id: rational_resampler_xxx
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: "Resampling to 6 2/3 samples \nper symbol (\"clock desync\")"
+ decim: '21'
+ fbw: '0.45'
+ interp: '10'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ taps: ''
+ type: fff
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1080, 312]
+ rotation: 0
+ state: enabled
-import numpy as np
-from gnuradio import gr
+connections:
+- [analog_random_source_x_0, '0', blocks_short_to_float_1, '0']
+- [blocks_float_to_complex_0_0, '0', qtgui_time_sink_x_0_0_0_0_0_0, '1']
+- [blocks_float_to_complex_1_0, '0', qtgui_time_sink_x_0_0_0_0_0_0, '2']
+- [blocks_float_to_complex_3, '0', blocks_multiply_const_vxx_1, '0']
+- [blocks_multiply_const_vxx_1, '0', digital_symbol_sync_xx_0, '0']
+- [blocks_multiply_const_vxx_1, '0', qtgui_time_sink_x_0_1_0, '0']
+- [blocks_multiply_matrix_xx_0, '0', blocks_throttle_0, '0']
+- [blocks_repeat_0_0, '0', rational_resampler_xxx_0_0, '0']
+- [blocks_short_to_float_1, '0', blocks_multiply_matrix_xx_0, '0']
+- [blocks_throttle_0, '0', epy_block_0_0, '0']
+- [blocks_vector_source_x_0_0, '0', blocks_multiply_matrix_xx_0, '2']
+- [blocks_vector_source_x_0_0_0, '0', blocks_multiply_matrix_xx_0, '1']
+- [blocks_vector_source_x_0_0_1, '0', blocks_multiply_matrix_xx_0, '3']
+- [blocks_vector_source_x_0_0_1_0, '0', blocks_multiply_matrix_xx_0, '4']
+- [digital_symbol_sync_xx_0, '0', qtgui_time_sink_x_0_0_0_0_0_0, '0']
+- [digital_symbol_sync_xx_0, '1', blocks_float_to_complex_0_0, '0']
+- [digital_symbol_sync_xx_0, '2', blocks_float_to_complex_0_0, '1']
+- [digital_symbol_sync_xx_0, '3', blocks_float_to_complex_1_0, '0']
+- [epy_block_0_0, '0', blocks_repeat_0_0, '0']
+- [fir_filter_xxx_0_1_0_0_0_0, '0', blocks_float_to_complex_3, '0']
+- [rational_resampler_xxx_0_0, '0', fir_filter_xxx_0_1_0_0_0_0, '0']
-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>
- <param>
- <key>decim</key>
- <value>1</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1264, 324)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>fir_filter_xxx_0_1_0_0_0_0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>samp_delay</key>
- <value>int((sps-1.0)/2.0)+4</value>
- </param>
- <param>
- <key>taps</key>
- <value>[1.0/float(sps)]*sps</value>
- </param>
- <param>
- <key>type</key>
- <value>fff</value>
- </param>
- </block>
- <block>
- <key>import</key>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(184, 4)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>import_0</value>
- </param>
- <param>
- <key>import</key>
- <value>import math</value>
- </param>
- </block>
- <block>
- <key>import</key>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(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>
- <value>False</value>
- </param>
- <param>
- <key>axislabels</key>
- <value>True</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>ctrlpanel</key>
- <value>False</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>entags</key>
- <value>True</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(2472, 296)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>3,1,1,2</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>grid</key>
- <value>False</value>
- </param>
- <param>
- <key>id</key>
- <value>qtgui_time_sink_x_0_0_0_0_0_0</value>
- </param>
- <param>
- <key>legend</key>
- <value>True</value>
- </param>
- <param>
- <key>alpha1</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color1</key>
- <value>"blue"</value>
- </param>
- <param>
- <key>label1</key>
- <value>Soft Bits Re</value>
- </param>
- <param>
- <key>marker1</key>
- <value>1</value>
- </param>
- <param>
- <key>style1</key>
- <value>1</value>
- </param>
- <param>
- <key>width1</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha10</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color10</key>
- <value>"blue"</value>
- </param>
- <param>
- <key>label10</key>
- <value></value>
- </param>
- <param>
- <key>marker10</key>
- <value>-1</value>
- </param>
- <param>
- <key>style10</key>
- <value>1</value>
- </param>
- <param>
- <key>width10</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha2</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color2</key>
- <value>"magenta"</value>
- </param>
- <param>
- <key>label2</key>
- <value>Soft Bits Im</value>
- </param>
- <param>
- <key>marker2</key>
- <value>0</value>
- </param>
- <param>
- <key>style2</key>
- <value>1</value>
- </param>
- <param>
- <key>width2</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha3</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color3</key>
- <value>"red"</value>
- </param>
- <param>
- <key>label3</key>
- <value>Error</value>
- </param>
- <param>
- <key>marker3</key>
- <value>-1</value>
- </param>
- <param>
- <key>style3</key>
- <value>1</value>
- </param>
- <param>
- <key>width3</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha4</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color4</key>
- <value>"green"</value>
- </param>
- <param>
- <key>label4</key>
- <value>Instantaneous Period</value>
- </param>
- <param>
- <key>marker4</key>
- <value>-1</value>
- </param>
- <param>
- <key>style4</key>
- <value>1</value>
- </param>
- <param>
- <key>width4</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha5</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color5</key>
- <value>"black"</value>
- </param>
- <param>
- <key>label5</key>
- <value>Average Period</value>
- </param>
- <param>
- <key>marker5</key>
- <value>-1</value>
- </param>
- <param>
- <key>style5</key>
- <value>1</value>
- </param>
- <param>
- <key>width5</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha6</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color6</key>
- <value>"yellow"</value>
- </param>
- <param>
- <key>label6</key>
- <value>(unused)</value>
- </param>
- <param>
- <key>marker6</key>
- <value>-1</value>
- </param>
- <param>
- <key>style6</key>
- <value>0</value>
- </param>
- <param>
- <key>width6</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha7</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color7</key>
- <value>"black"</value>
- </param>
- <param>
- <key>label7</key>
- <value></value>
- </param>
- <param>
- <key>marker7</key>
- <value>-1</value>
- </param>
- <param>
- <key>style7</key>
- <value>1</value>
- </param>
- <param>
- <key>width7</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha8</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color8</key>
- <value>"black"</value>
- </param>
- <param>
- <key>label8</key>
- <value></value>
- </param>
- <param>
- <key>marker8</key>
- <value>-1</value>
- </param>
- <param>
- <key>style8</key>
- <value>0</value>
- </param>
- <param>
- <key>width8</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha9</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color9</key>
- <value>"dark green"</value>
- </param>
- <param>
- <key>label9</key>
- <value></value>
- </param>
- <param>
- <key>marker9</key>
- <value>-1</value>
- </param>
- <param>
- <key>style9</key>
- <value>1</value>
- </param>
- <param>
- <key>width9</key>
- <value>1</value>
- </param>
- <param>
- <key>name</key>
- <value>Symbol Synched Output and Debug</value>
- </param>
- <param>
- <key>nconnections</key>
- <value>3</value>
- </param>
- <param>
- <key>size</key>
- <value>256*osps</value>
- </param>
- <param>
- <key>srate</key>
- <value>baud_rate*osps</value>
- </param>
- <param>
- <key>tr_chan</key>
- <value>0</value>
- </param>
- <param>
- <key>tr_delay</key>
- <value>0.01</value>
- </param>
- <param>
- <key>tr_level</key>
- <value>0.1</value>
- </param>
- <param>
- <key>tr_mode</key>
- <value>qtgui.TRIG_MODE_NORM</value>
- </param>
- <param>
- <key>tr_slope</key>
- <value>qtgui.TRIG_SLOPE_POS</value>
- </param>
- <param>
- <key>tr_tag</key>
- <value>"time_est"</value>
- </param>
- <param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>update_time</key>
- <value>0.1</value>
- </param>
- <param>
- <key>ylabel</key>
- <value>Amplitude</value>
- </param>
- <param>
- <key>yunit</key>
- <value>""</value>
- </param>
- <param>
- <key>ymax</key>
- <value>sps+2</value>
- </param>
- <param>
- <key>ymin</key>
- <value>-1.5</value>
- </param>
- </block>
- <block>
- <key>qtgui_time_sink_x</key>
- <param>
- <key>autoscale</key>
- <value>False</value>
- </param>
- <param>
- <key>axislabels</key>
- <value>True</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>ctrlpanel</key>
- <value>False</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>entags</key>
- <value>True</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1920, 196)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>3,0,1,1</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>grid</key>
- <value>True</value>
- </param>
- <param>
- <key>id</key>
- <value>qtgui_time_sink_x_0_1_0</value>
- </param>
- <param>
- <key>legend</key>
- <value>True</value>
- </param>
- <param>
- <key>alpha1</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color1</key>
- <value>"blue"</value>
- </param>
- <param>
- <key>label1</key>
- <value></value>
- </param>
- <param>
- <key>marker1</key>
- <value>-1</value>
- </param>
- <param>
- <key>style1</key>
- <value>1</value>
- </param>
- <param>
- <key>width1</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha10</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color10</key>
- <value>"blue"</value>
- </param>
- <param>
- <key>label10</key>
- <value></value>
- </param>
- <param>
- <key>marker10</key>
- <value>-1</value>
- </param>
- <param>
- <key>style10</key>
- <value>1</value>
- </param>
- <param>
- <key>width10</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha2</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color2</key>
- <value>"red"</value>
- </param>
- <param>
- <key>label2</key>
- <value></value>
- </param>
- <param>
- <key>marker2</key>
- <value>-1</value>
- </param>
- <param>
- <key>style2</key>
- <value>1</value>
- </param>
- <param>
- <key>width2</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha3</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color3</key>
- <value>"green"</value>
- </param>
- <param>
- <key>label3</key>
- <value></value>
- </param>
- <param>
- <key>marker3</key>
- <value>-1</value>
- </param>
- <param>
- <key>style3</key>
- <value>1</value>
- </param>
- <param>
- <key>width3</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha4</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color4</key>
- <value>"black"</value>
- </param>
- <param>
- <key>label4</key>
- <value></value>
- </param>
- <param>
- <key>marker4</key>
- <value>-1</value>
- </param>
- <param>
- <key>style4</key>
- <value>1</value>
- </param>
- <param>
- <key>width4</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha5</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color5</key>
- <value>"dark green"</value>
- </param>
- <param>
- <key>label5</key>
- <value>Baseband</value>
- </param>
- <param>
- <key>marker5</key>
- <value>-1</value>
- </param>
- <param>
- <key>style5</key>
- <value>1</value>
- </param>
- <param>
- <key>width5</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha6</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color6</key>
- <value>"magenta"</value>
- </param>
- <param>
- <key>label6</key>
- <value>Abs(Corr)</value>
- </param>
- <param>
- <key>marker6</key>
- <value>-1</value>
- </param>
- <param>
- <key>style6</key>
- <value>1</value>
- </param>
- <param>
- <key>width6</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha7</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color7</key>
- <value>"yellow"</value>
- </param>
- <param>
- <key>label7</key>
- <value></value>
- </param>
- <param>
- <key>marker7</key>
- <value>-1</value>
- </param>
- <param>
- <key>style7</key>
- <value>1</value>
- </param>
- <param>
- <key>width7</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha8</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color8</key>
- <value>"dark red"</value>
- </param>
- <param>
- <key>label8</key>
- <value></value>
- </param>
- <param>
- <key>marker8</key>
- <value>-1</value>
- </param>
- <param>
- <key>style8</key>
- <value>1</value>
- </param>
- <param>
- <key>width8</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha9</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color9</key>
- <value>"dark green"</value>
- </param>
- <param>
- <key>label9</key>
- <value></value>
- </param>
- <param>
- <key>marker9</key>
- <value>-1</value>
- </param>
- <param>
- <key>style9</key>
- <value>1</value>
- </param>
- <param>
- <key>width9</key>
- <value>1</value>
- </param>
- <param>
- <key>name</key>
- <value>""</value>
- </param>
- <param>
- <key>nconnections</key>
- <value>1</value>
- </param>
- <param>
- <key>size</key>
- <value>1024*3</value>
- </param>
- <param>
- <key>srate</key>
- <value>baud_rate*sps</value>
- </param>
- <param>
- <key>tr_chan</key>
- <value>0</value>
- </param>
- <param>
- <key>tr_delay</key>
- <value>0.01</value>
- </param>
- <param>
- <key>tr_level</key>
- <value>0.1</value>
- </param>
- <param>
- <key>tr_mode</key>
- <value>qtgui.TRIG_MODE_NORM</value>
- </param>
- <param>
- <key>tr_slope</key>
- <value>qtgui.TRIG_SLOPE_POS</value>
- </param>
- <param>
- <key>tr_tag</key>
- <value></value>
- </param>
- <param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>update_time</key>
- <value>0.10</value>
- </param>
- <param>
- <key>ylabel</key>
- <value>Amplitude</value>
- </param>
- <param>
- <key>yunit</key>
- <value>""</value>
- </param>
- <param>
- <key>ymax</key>
- <value>1.5</value>
- </param>
- <param>
- <key>ymin</key>
- <value>-1.5</value>
- </param>
- </block>
- <block>
- <key>rational_resampler_xxx</key>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>comment</key>
- <value>Resampling to 6 2/3 samples
-per symbol ("clock desync")</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>decim</key>
- <value>21</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>fbw</key>
- <value>0.45</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1080, 312)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>rational_resampler_xxx_0_0</value>
- </param>
- <param>
- <key>interp</key>
- <value>10</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>taps</key>
- <value></value>
- </param>
- <param>
- <key>type</key>
- <value>fff</value>
- </param>
- </block>
- <connection>
- <source_block_id>analog_random_source_x_0</source_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_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_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>2</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_float_to_complex_3</source_block_id>
- <sink_block_id>blocks_multiply_const_vxx_1</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_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>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_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_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_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>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_matrix_xx_0</sink_block_id>
- <source_key>0</source_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_matrix_xx_0</sink_block_id>
- <source_key>0</source_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_matrix_xx_0</sink_block_id>
- <source_key>0</source_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_matrix_xx_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>4</sink_key>
- </connection>
- <connection>
- <source_block_id>digital_symbol_sync_xx_0</source_block_id>
- <sink_block_id>blocks_float_to_complex_1_0</sink_block_id>
- <source_key>3</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>digital_symbol_sync_xx_0</source_block_id>
- <sink_block_id>blocks_float_to_complex_0_0</sink_block_id>
- <source_key>2</source_key>
- <sink_key>1</sink_key>
- </connection>
- <connection>
- <source_block_id>digital_symbol_sync_xx_0</source_block_id>
- <sink_block_id>blocks_float_to_complex_0_0</sink_block_id>
- <source_key>1</source_key>
- <sink_key>0</sink_key>
- </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_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_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_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
-</flow_graph>
+metadata:
+ file_format: 1
diff --git a/gr-digital/examples/demod/symbol_sync_test_float.grc b/gr-digital/examples/demod/symbol_sync_test_float.grc
index f072b1cd89..8c004155b3 100644
--- a/gr-digital/examples/demod/symbol_sync_test_float.grc
+++ b/gr-digital/examples/demod/symbol_sync_test_float.grc
@@ -1,2348 +1,768 @@
-<?xml version='1.0' encoding='utf-8'?>
-<?grc format='1' created='3.7.12'?>
-<flow_graph>
- <timestamp>Mon Jan 12 16:38:01 2015</timestamp>
- <block>
- <key>options</key>
- <param>
- <key>author</key>
- <value>Andy Walls</value>
- </param>
- <param>
- <key>window_size</key>
- <value>2600, 700</value>
- </param>
- <param>
- <key>category</key>
- <value>Custom</value>
- </param>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>description</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(0, 0)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>generate_options</key>
- <value>qt_gui</value>
- </param>
- <param>
- <key>hier_block_src_path</key>
- <value>.:</value>
- </param>
- <param>
- <key>id</key>
- <value>symbol_sync_test_float</value>
- </param>
- <param>
- <key>max_nouts</key>
- <value>0</value>
- </param>
- <param>
- <key>qt_qss_theme</key>
- <value></value>
- </param>
- <param>
- <key>realtime_scheduling</key>
- <value></value>
- </param>
- <param>
- <key>run_command</key>
- <value>{python} -u {filename}</value>
- </param>
- <param>
- <key>run_options</key>
- <value>prompt</value>
- </param>
- <param>
- <key>run</key>
- <value>True</value>
- </param>
- <param>
- <key>thread_safe_setters</key>
- <value></value>
- </param>
- <param>
- <key>title</key>
- <value>Symbol Sync Test (Float)</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(552, 244)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>baud_rate</value>
- </param>
- <param>
- <key>value</key>
- <value>1200.0</value>
- </param>
- </block>
- <block>
- <key>variable_qtgui_chooser</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>value</key>
- <value>(0,0,0,0,1)</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(344, 0)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>0,0,1,1</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>data_src</value>
- </param>
- <param>
- <key>label0</key>
- <value>Random</value>
- </param>
- <param>
- <key>label1</key>
- <value>Low freq</value>
- </param>
- <param>
- <key>label2</key>
- <value>Dot Pattern</value>
- </param>
- <param>
- <key>label3</key>
- <value>Pulse</value>
- </param>
- <param>
- <key>label4</key>
- <value>Packets</value>
- </param>
- <param>
- <key>label</key>
- <value>Data Source</value>
- </param>
- <param>
- <key>labels</key>
- <value>[]</value>
- </param>
- <param>
- <key>num_opts</key>
- <value>5</value>
- </param>
- <param>
- <key>option0</key>
- <value>(1,0,0,0,0)</value>
- </param>
- <param>
- <key>option1</key>
- <value>(0,1,0,0,0)</value>
- </param>
- <param>
- <key>option2</key>
- <value>(0,0,1,0,0)</value>
- </param>
- <param>
- <key>option3</key>
- <value>(0,0,0,1,0)</value>
- </param>
- <param>
- <key>option4</key>
- <value>(0,0,0,0,1)</value>
- </param>
- <param>
- <key>options</key>
- <value>[0, 1, 2]</value>
- </param>
- <param>
- <key>orient</key>
- <value>Qt.QVBoxLayout</value>
- </param>
- <param>
- <key>type</key>
- <value>raw</value>
- </param>
- <param>
- <key>widget</key>
- <value>combo_box</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1488, 556)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>integral_gain</value>
- </param>
- <param>
- <key>value</key>
- <value>2.0/ted_gain*(1.0-math.exp(-zeta*omega_n_norm)*(math.sinh(zeta*omega_n_norm)+(math.cosh(omega_d_norm) if zeta &gt; 1.0 else math.cos(omega_d_norm))))</value>
- </param>
- </block>
- <block>
- <key>variable_qtgui_label</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>value</key>
- <value>"%8.6f" % integral_gain</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>formatter</key>
- <value>None</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1984, 428)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>0,2,1,1</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>integral_gain_label</value>
- </param>
- <param>
- <key>label</key>
- <value>Integral Gain</value>
- </param>
- <param>
- <key>type</key>
- <value>string</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1488, 428)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>omega_d_norm</value>
- </param>
- <param>
- <key>value</key>
- <value>omega_n_norm*math.sqrt((zeta*zeta-1.0) if zeta &gt; 1.0 else (1.0-zeta*zeta))</value>
- </param>
- </block>
- <block>
- <key>variable_qtgui_range</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>value</key>
- <value>0.125</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1632, 424)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>1,1,1,1</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>omega_n_norm</value>
- </param>
- <param>
- <key>label</key>
- <value>Normalized Bandwidth</value>
- </param>
- <param>
- <key>min_len</key>
- <value>200</value>
- </param>
- <param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
- </param>
- <param>
- <key>start</key>
- <value>0.0</value>
- </param>
- <param>
- <key>step</key>
- <value>0.001</value>
- </param>
- <param>
- <key>stop</key>
- <value>2.0*math.pi*0.25</value>
- </param>
- <param>
- <key>rangeType</key>
- <value>float</value>
- </param>
- <param>
- <key>widget</key>
- <value>counter_slider</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1848, 196)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>osps</value>
- </param>
- <param>
- <key>value</key>
- <value>1</value>
- </param>
- </block>
- <block>
- <key>variable_tag_object</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(0, 544)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>packet_time_est_tag</value>
- </param>
- <param>
- <key>key</key>
- <value>pmt.intern("test")</value>
- </param>
- <param>
- <key>offset</key>
- <value>9</value>
- </param>
- <param>
- <key>src</key>
- <value>pmt.intern("packet_vector_source")</value>
- </param>
- <param>
- <key>value</key>
- <value>pmt.from_double(0.0)</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1488, 492)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>proportional_gain</value>
- </param>
- <param>
- <key>value</key>
- <value>2.0/ted_gain*math.exp(-zeta*omega_n_norm)*math.sinh(zeta*omega_n_norm)</value>
- </param>
- </block>
- <block>
- <key>variable_qtgui_label</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>value</key>
- <value>"%8.6f" % proportional_gain</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>formatter</key>
- <value>None</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1984, 508)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>1,2,1,1</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>proportional_gain_label</value>
- </param>
- <param>
- <key>label</key>
- <value>Proportional Gain</value>
- </param>
- <param>
- <key>type</key>
- <value>string</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1328, 228)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>sps</value>
- </param>
- <param>
- <key>value</key>
- <value>7</value>
- </param>
- </block>
- <block>
- <key>variable_qtgui_range</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>value</key>
- <value>0.28365</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1808, 544)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>1,0,1,1</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>ted_gain</value>
- </param>
- <param>
- <key>label</key>
- <value>Expected TED Gain</value>
- </param>
- <param>
- <key>min_len</key>
- <value>200</value>
- </param>
- <param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
- </param>
- <param>
- <key>start</key>
- <value>0.05</value>
- </param>
- <param>
- <key>step</key>
- <value>0.01</value>
- </param>
- <param>
- <key>stop</key>
- <value>5.0</value>
- </param>
- <param>
- <key>rangeType</key>
- <value>float</value>
- </param>
- <param>
- <key>widget</key>
- <value>counter_slider</value>
- </param>
- </block>
- <block>
- <key>variable_qtgui_range</key>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>value</key>
- <value>1.0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1632, 544)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>0,1,1,1</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>zeta</value>
- </param>
- <param>
- <key>label</key>
- <value>Damping Factor</value>
- </param>
- <param>
- <key>min_len</key>
- <value>200</value>
- </param>
- <param>
- <key>orient</key>
- <value>Qt.Horizontal</value>
- </param>
- <param>
- <key>start</key>
- <value>0.1</value>
- </param>
- <param>
- <key>step</key>
- <value>0.1</value>
- </param>
- <param>
- <key>stop</key>
- <value>5.0</value>
- </param>
- <param>
- <key>rangeType</key>
- <value>float</value>
- </param>
- <param>
- <key>widget</key>
- <value>counter_slider</value>
- </param>
- </block>
- <block>
- <key>analog_random_source_x</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>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(0, 128)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>analog_random_source_x_0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>max</key>
- <value>2</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
- </param>
- <param>
- <key>num_samps</key>
- <value>16384</value>
- </param>
- <param>
- <key>type</key>
- <value>short</value>
- </param>
- <param>
- <key>repeat</key>
- <value>True</value>
- </param>
- </block>
- <block>
- <key>blocks_multiply_matrix_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>(360, 248)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_multiply_matrix_xx_0</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>A</key>
- <value>(data_src,)</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>tag_propagation_policy</key>
- <value>gr.TPP_ALL_TO_ALL</value>
- </param>
- </block>
- <block>
- <key>blocks_repeat</key>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>comment</key>
- <value>Pulse Shaping</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(928, 324)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_repeat_0</value>
- </param>
- <param>
- <key>interp</key>
- <value>sps*2</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- </block>
- <block>
- <key>blocks_short_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>(192, 148)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_short_to_float_1</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_throttle</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>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(544, 324)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_throttle_0</value>
- </param>
- <param>
- <key>ignoretag</key>
- <value>True</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>samples_per_second</key>
- <value>baud_rate*10</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- </block>
- <block>
- <key>blocks_vector_source_x</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>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(0, 300)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_vector_source_x_0_0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>repeat</key>
- <value>True</value>
- </param>
- <param>
- <key>tags</key>
- <value>[]</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>vector</key>
- <value>(0, 1, 0, 1, 0, 1, 0, 1)</value>
- </param>
- </block>
- <block>
- <key>blocks_vector_source_x</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>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(0, 220)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_vector_source_x_0_0_0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>repeat</key>
- <value>True</value>
- </param>
- <param>
- <key>tags</key>
- <value>[]</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>vector</key>
- <value>(0,0,0,0,1,1,1,1)</value>
- </param>
- </block>
- <block>
- <key>blocks_vector_source_x</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>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(0, 380)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_vector_source_x_0_0_1</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>repeat</key>
- <value>True</value>
- </param>
- <param>
- <key>tags</key>
- <value>[]</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>vector</key>
- <value>[1]+[0]*7</value>
- </param>
- </block>
- <block>
- <key>blocks_vector_source_x</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>(0, 460)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>blocks_vector_source_x_0_0_1_0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>repeat</key>
- <value>True</value>
- </param>
- <param>
- <key>tags</key>
- <value>[packet_time_est_tag]</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>vector</key>
- <value>[1,0]*(4*12*0)+[1,1,0,1,0,1,0,1]*12+[1,0,1,1,1,1,1,0,0,1]+[1,1,1,1,0,1,1,0,0,1]+[1,0,1,1,1,1,1,0,0,1]+[0,1,1,1,0,1,1,0,1,0]+[0,0,0,0,0,1,0,1,0,1,1,0,0,1,1,1,0,0,0,0]+[2]*128</value>
- </param>
- </block>
- <block>
- <key>digital_symbol_sync_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>damping</key>
- <value>zeta</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>ted_gain</key>
- <value>ted_gain</value>
- </param>
- <param>
- <key>nfilters</key>
- <value>128</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1600, 276)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>type</key>
- <value>ff</value>
- </param>
- <param>
- <key>id</key>
- <value>digital_symbol_sync_xx_0</value>
- </param>
- <param>
- <key>resamp_type</key>
- <value>digital.IR_MMSE_8TAP</value>
- </param>
- <param>
- <key>loop_bw</key>
- <value>omega_n_norm</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>max_dev</key>
- <value>1.5</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>osps</key>
- <value>osps</value>
- </param>
- <param>
- <key>pfb_mf_taps</key>
- <value>[]</value>
- </param>
- <param>
- <key>sps</key>
- <value>sps</value>
- </param>
- <param>
- <key>constellation</key>
- <value>digital.constellation_bpsk().base()</value>
- </param>
- <param>
- <key>ted_type</key>
- <value>digital.TED_MUELLER_AND_MULLER</value>
- </param>
- </block>
- <block>
- <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:
+options:
+ parameters:
+ author: Andy Walls
+ category: Custom
+ cmake_opt: ''
+ comment: ''
+ copyright: ''
+ description: ''
+ gen_cmake: 'On'
+ gen_linking: dynamic
+ generate_options: qt_gui
+ hier_block_src_path: '.:'
+ id: symbol_sync_test_float
+ max_nouts: '0'
+ output_language: python
+ placement: (0,0)
+ qt_qss_theme: ''
+ realtime_scheduling: ''
+ run: 'True'
+ run_command: '{python} -u {filename}'
+ run_options: prompt
+ sizing_mode: fixed
+ thread_safe_setters: ''
+ title: Symbol Sync Test (Float)
+ window_size: 2600, 700
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [0, 0]
+ rotation: 0
+ state: enabled
-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!
-"""
+blocks:
+- name: baud_rate
+ id: variable
+ parameters:
+ comment: ''
+ value: '1200.0'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [552, 244]
+ rotation: 0
+ state: enabled
+- name: data_src
+ id: variable_qtgui_chooser
+ parameters:
+ comment: ''
+ gui_hint: 0,0,1,1
+ label: Data Source
+ label0: Random
+ label1: Low freq
+ label2: Dot Pattern
+ label3: Pulse
+ label4: Packets
+ labels: '[]'
+ num_opts: '5'
+ option1: (0,1,0,0,0)
+ option2: (0,0,1,0,0)
+ option3: (0,0,0,1,0)
+ option4: (0,0,0,0,1)
+ options: '[0, 1, 2]'
+ orient: Qt.QVBoxLayout
+ type: raw
+ value: (0,0,0,0,1)
+ widget: combo_box
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [344, 0]
+ rotation: 0
+ state: enabled
+- name: integral_gain
+ id: variable
+ parameters:
+ comment: ''
+ value: 2.0/ted_gain*(1.0-math.exp(-zeta*omega_n_norm)*(math.sinh(zeta*omega_n_norm)+(math.cosh(omega_d_norm)
+ if zeta > 1.0 else math.cos(omega_d_norm))))
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1488, 556]
+ rotation: 0
+ state: enabled
+- name: integral_gain_label
+ id: variable_qtgui_label
+ parameters:
+ comment: ''
+ formatter: None
+ gui_hint: 0,2,1,1
+ label: Integral Gain
+ type: string
+ value: '"%8.6f" % integral_gain'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1984, 428]
+ rotation: 0
+ state: enabled
+- name: omega_d_norm
+ id: variable
+ parameters:
+ comment: ''
+ value: omega_n_norm*math.sqrt((zeta*zeta-1.0) if zeta > 1.0 else (1.0-zeta*zeta))
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1488, 428]
+ rotation: 0
+ state: enabled
+- name: omega_n_norm
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 1,1,1,1
+ label: Normalized Bandwidth
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0.0'
+ step: '0.001'
+ stop: 2.0*math.pi*0.25
+ value: '0.125'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1632, 424]
+ rotation: 0
+ state: enabled
+- name: osps
+ id: variable
+ parameters:
+ comment: ''
+ value: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1848, 196]
+ rotation: 0
+ state: enabled
+- name: packet_time_est_tag
+ id: variable_tag_object
+ parameters:
+ comment: ''
+ key: pmt.intern("test")
+ offset: '9'
+ src: pmt.intern("packet_vector_source")
+ value: pmt.from_double(0.0)
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [0, 544]
+ rotation: 0
+ state: enabled
+- name: proportional_gain
+ id: variable
+ parameters:
+ comment: ''
+ value: 2.0/ted_gain*math.exp(-zeta*omega_n_norm)*math.sinh(zeta*omega_n_norm)
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1488, 492]
+ rotation: 0
+ state: enabled
+- name: proportional_gain_label
+ id: variable_qtgui_label
+ parameters:
+ comment: ''
+ formatter: None
+ gui_hint: 1,2,1,1
+ label: Proportional Gain
+ type: string
+ value: '"%8.6f" % proportional_gain'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1984, 508]
+ rotation: 0
+ state: enabled
+- name: sps
+ id: variable
+ parameters:
+ comment: ''
+ value: '7'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1328, 228]
+ rotation: 0
+ state: enabled
+- name: ted_gain
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 1,0,1,1
+ label: Expected TED Gain
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0.05'
+ step: '0.01'
+ stop: '5.0'
+ value: '0.28365'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1808, 544]
+ rotation: 0
+ state: enabled
+- name: zeta
+ id: variable_qtgui_range
+ parameters:
+ comment: ''
+ gui_hint: 0,1,1,1
+ label: Damping Factor
+ min_len: '200'
+ orient: Qt.Horizontal
+ rangeType: float
+ start: '0.1'
+ step: '0.1'
+ stop: '5.0'
+ value: '1.0'
+ widget: counter_slider
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1632, 544]
+ rotation: 0
+ state: enabled
+- name: analog_random_source_x_0
+ id: analog_random_source_x
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ max: '2'
+ maxoutbuf: '0'
+ min: '0'
+ minoutbuf: '0'
+ num_samps: '16384'
+ repeat: 'True'
+ type: short
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [0, 128]
+ rotation: 0
+ state: enabled
+- name: blocks_multiply_matrix_xx_0
+ id: blocks_multiply_matrix_xx
+ parameters:
+ A: (data_src,)
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ tag_propagation_policy: gr.TPP_ALL_TO_ALL
+ type: float
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [360, 248]
+ rotation: 0
+ state: enabled
+- name: blocks_repeat_0
+ id: blocks_repeat
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: Pulse Shaping
+ interp: sps*2
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ type: float
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [928, 324]
+ rotation: 0
+ state: enabled
+- name: blocks_short_to_float_1
+ id: blocks_short_to_float
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ scale: '1'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [192, 148]
+ rotation: 0
+ state: enabled
+- name: blocks_throttle_0
+ id: blocks_throttle
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ ignoretag: 'True'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ samples_per_second: baud_rate*10
+ type: float
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [544, 324]
+ rotation: 0
+ state: enabled
+- name: blocks_vector_source_x_0_0
+ id: blocks_vector_source_x
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ repeat: 'True'
+ tags: '[]'
+ type: float
+ vector: (0, 1, 0, 1, 0, 1, 0, 1)
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [0, 300]
+ rotation: 0
+ state: enabled
+- name: blocks_vector_source_x_0_0_0
+ id: blocks_vector_source_x
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ repeat: 'True'
+ tags: '[]'
+ type: float
+ vector: (0,0,0,0,1,1,1,1)
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [0, 220]
+ rotation: 0
+ state: enabled
+- name: blocks_vector_source_x_0_0_1
+ id: blocks_vector_source_x
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ repeat: 'True'
+ tags: '[]'
+ type: float
+ vector: '[1]+[0]*7'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [0, 380]
+ rotation: 0
+ state: enabled
+- name: blocks_vector_source_x_0_0_1_0
+ id: blocks_vector_source_x
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ repeat: 'True'
+ tags: '[packet_time_est_tag]'
+ type: float
+ vector: '[1,0]*(4*12*0)+[1,1,0,1,0,1,0,1]*12+[1,0,1,1,1,1,1,0,0,1]+[1,1,1,1,0,1,1,0,0,1]+[1,0,1,1,1,1,1,0,0,1]+[0,1,1,1,0,1,1,0,1,0]+[0,0,0,0,0,1,0,1,0,1,1,0,0,1,1,1,0,0,0,0]+[2]*128'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [0, 460]
+ rotation: 0
+ state: enabled
+- name: digital_symbol_sync_xx_0
+ id: digital_symbol_sync_xx
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ constellation: digital.constellation_bpsk().base()
+ damping: zeta
+ loop_bw: omega_n_norm
+ max_dev: '1.5'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ nfilters: '128'
+ osps: osps
+ pfb_mf_taps: '[]'
+ resamp_type: digital.IR_MMSE_8TAP
+ sps: sps
+ ted_gain: ted_gain
+ ted_type: digital.TED_MUELLER_AND_MULLER
+ type: ff
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1600, 276]
+ rotation: 0
+ state: enabled
+- name: epy_block_0
+ id: epy_block
+ parameters:
+ _source_code: "\"\"\"\nEmbedded Python Blocks:\n\nEach time this file is saved,\
+ \ GRC will instantiate the first class it finds\nto get ports and parameters\
+ \ of your block. The arguments to __init__ will\nbe the parameters. All of\
+ \ them are required to have default values!\n\"\"\"\n\nimport numpy as np\n\
+ from gnuradio import gr\n\nclass ConstMap(gr.sync_block):\n \"\"\"\n Map\
+ \ 0, 1 to -1, 1\n \"\"\"\n def __init__(self):\n gr.sync_block.__init__(\n\
+ \ self,\n name='Bit -> Symbol Map',\n in_sig=[np.float32],\n\
+ \ out_sig=[np.float32]\n )\n\n def work(self, input_items,\
+ \ output_items):\n \"\"\"\n map\n \"\"\"\n sym_map\
+ \ = {0.0: -1.0, 1.0: 1.0, 2.0: 0.0}\n output_items[0][:] = [sym_map[x]\
+ \ for x in input_items[0]]\n return len(output_items[0])\n"
+ affinity: ''
+ alias: ''
+ comment: BPSK Modulation
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ states:
+ _io_cache: ('Bit -> Symbol Map', 'ConstMap', [], [('0', 'float', 1)], [('0', 'float',
+ 1)], '\n Map 0, 1 to -1, 1\n ', [])
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [712, 328]
+ rotation: 0
+ state: enabled
+- name: fir_filter_xxx_0_1_0_0_0
+ id: fir_filter_xxx
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: "Matched Filter (almost). \nBecause the input stream has 6 2/3 \nsamples\
+ \ per symbol, this incurs a slight ISI."
+ decim: '1'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ samp_delay: int((sps-1.0)/2.0)+4
+ taps: '[1.0/float(sps)]*sps'
+ type: fff
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1336, 316]
+ rotation: 0
+ state: enabled
+- name: import_0
+ id: import
+ parameters:
+ alias: ''
+ comment: ''
+ imports: import math
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [184, 4]
+ rotation: 0
+ state: enabled
+- name: import_0_0
+ id: import
+ parameters:
+ alias: ''
+ comment: ''
+ imports: from gnuradio import digital
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [184, 52]
+ rotation: 0
+ state: enabled
+- name: note_0
+ id: note
+ parameters:
+ alias: ''
+ comment: ''
+ note: Bit Pattern Generation
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [328, 452.0]
+ rotation: 0
+ state: enabled
+- name: qtgui_time_sink_x_0_0_0_0_0
+ id: qtgui_time_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ axislabels: 'True'
+ color1: '"blue"'
+ color10: '"blue"'
+ color2: '"red"'
+ color3: '"green"'
+ color4: '"black"'
+ color5: '"cyan"'
+ color6: '"magenta"'
+ color7: '"yellow"'
+ color8: '"dark red"'
+ color9: '"dark green"'
+ comment: ''
+ ctrlpanel: 'False'
+ entags: 'True'
+ grid: 'False'
+ gui_hint: 3,1,1,2
+ label1: Soft Bits
+ label10: ''
+ label2: Error
+ label3: Instantaneous Period
+ label4: Average Period
+ label5: ''
+ label6: ''
+ label7: ''
+ label8: ''
+ label9: ''
+ legend: 'True'
+ marker1: '0'
+ marker10: '-1'
+ marker2: '-1'
+ marker3: '-1'
+ marker4: '-1'
+ marker5: '-1'
+ marker6: '-1'
+ marker7: '-1'
+ marker8: '-1'
+ marker9: '-1'
+ name: Symbol Synched Output and Debug
+ nconnections: '4'
+ size: 256*osps
+ srate: baud_rate*osps
+ stemplot: 'False'
+ style1: '1'
+ style10: '1'
+ style2: '1'
+ style3: '1'
+ style4: '1'
+ style5: '1'
+ style6: '1'
+ style7: '1'
+ style8: '1'
+ style9: '1'
+ tr_chan: '0'
+ tr_delay: '0.01'
+ tr_level: '0.1'
+ tr_mode: qtgui.TRIG_MODE_NORM
+ tr_slope: qtgui.TRIG_SLOPE_POS
+ tr_tag: '"time_est"'
+ type: float
+ update_time: '0.1'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ ylabel: Amplitude
+ ymax: sps+2
+ ymin: '-1.5'
+ yunit: '""'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1952, 280]
+ rotation: 0
+ state: enabled
+- name: qtgui_time_sink_x_0_1_0
+ id: qtgui_time_sink_x
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha1: '1.0'
+ alpha10: '1.0'
+ alpha2: '1.0'
+ alpha3: '1.0'
+ alpha4: '1.0'
+ alpha5: '1.0'
+ alpha6: '1.0'
+ alpha7: '1.0'
+ alpha8: '1.0'
+ alpha9: '1.0'
+ autoscale: 'False'
+ axislabels: 'True'
+ color1: '"blue"'
+ color10: '"blue"'
+ color2: '"red"'
+ color3: '"green"'
+ color4: '"black"'
+ color5: '"dark green"'
+ color6: '"magenta"'
+ color7: '"yellow"'
+ color8: '"dark red"'
+ color9: '"dark green"'
+ comment: ''
+ ctrlpanel: 'False'
+ entags: 'True'
+ grid: 'True'
+ gui_hint: 3,0,1,1
+ label1: ''
+ label10: ''
+ label2: ''
+ label3: ''
+ label4: ''
+ label5: Baseband
+ label6: Abs(Corr)
+ label7: ''
+ label8: ''
+ label9: ''
+ legend: 'True'
+ marker1: '-1'
+ marker10: '-1'
+ marker2: '-1'
+ marker3: '-1'
+ marker4: '-1'
+ marker5: '-1'
+ marker6: '-1'
+ marker7: '-1'
+ marker8: '-1'
+ marker9: '-1'
+ name: '""'
+ nconnections: '1'
+ size: 1024*3
+ srate: baud_rate*sps
+ stemplot: 'False'
+ style1: '1'
+ style10: '1'
+ style2: '1'
+ style3: '1'
+ style4: '1'
+ style5: '1'
+ style6: '1'
+ style7: '1'
+ style8: '1'
+ style9: '1'
+ tr_chan: '0'
+ tr_delay: '0.01'
+ tr_level: '0.1'
+ tr_mode: qtgui.TRIG_MODE_NORM
+ tr_slope: qtgui.TRIG_SLOPE_POS
+ tr_tag: ''
+ type: float
+ update_time: '0.10'
+ width1: '1'
+ width10: '1'
+ width2: '1'
+ width3: '1'
+ width4: '1'
+ width5: '1'
+ width6: '1'
+ width7: '1'
+ width8: '1'
+ width9: '1'
+ ylabel: Amplitude
+ ymax: '1.5'
+ ymin: '-1.5'
+ yunit: '""'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1632, 172]
+ rotation: 0
+ state: enabled
+- name: rational_resampler_xxx_0
+ id: rational_resampler_xxx
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: "Resampling to 6 2/3 samples \nper symbol (\"clock desync\")"
+ decim: '21'
+ fbw: '0.45'
+ interp: '10'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ taps: ''
+ type: fff
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [1120, 304]
+ rotation: 0
+ state: enabled
-import numpy as np
-from gnuradio import gr
+connections:
+- [analog_random_source_x_0, '0', blocks_short_to_float_1, '0']
+- [blocks_multiply_matrix_xx_0, '0', blocks_throttle_0, '0']
+- [blocks_repeat_0, '0', rational_resampler_xxx_0, '0']
+- [blocks_short_to_float_1, '0', blocks_multiply_matrix_xx_0, '0']
+- [blocks_throttle_0, '0', epy_block_0, '0']
+- [blocks_vector_source_x_0_0, '0', blocks_multiply_matrix_xx_0, '2']
+- [blocks_vector_source_x_0_0_0, '0', blocks_multiply_matrix_xx_0, '1']
+- [blocks_vector_source_x_0_0_1, '0', blocks_multiply_matrix_xx_0, '3']
+- [blocks_vector_source_x_0_0_1_0, '0', blocks_multiply_matrix_xx_0, '4']
+- [digital_symbol_sync_xx_0, '0', qtgui_time_sink_x_0_0_0_0_0, '0']
+- [digital_symbol_sync_xx_0, '1', qtgui_time_sink_x_0_0_0_0_0, '1']
+- [digital_symbol_sync_xx_0, '2', qtgui_time_sink_x_0_0_0_0_0, '2']
+- [digital_symbol_sync_xx_0, '3', qtgui_time_sink_x_0_0_0_0_0, '3']
+- [epy_block_0, '0', blocks_repeat_0, '0']
+- [fir_filter_xxx_0_1_0_0_0, '0', digital_symbol_sync_xx_0, '0']
+- [fir_filter_xxx_0_1_0_0_0, '0', qtgui_time_sink_x_0_1_0, '0']
+- [rational_resampler_xxx_0, '0', fir_filter_xxx_0_1_0_0_0, '0']
-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>
- <param>
- <key>decim</key>
- <value>1</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1336, 316)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>fir_filter_xxx_0_1_0_0_0</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>samp_delay</key>
- <value>int((sps-1.0)/2.0)+4</value>
- </param>
- <param>
- <key>taps</key>
- <value>[1.0/float(sps)]*sps</value>
- </param>
- <param>
- <key>type</key>
- <value>fff</value>
- </param>
- </block>
- <block>
- <key>import</key>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(184, 4)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>import_0</value>
- </param>
- <param>
- <key>import</key>
- <value>import math</value>
- </param>
- </block>
- <block>
- <key>import</key>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(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>
- <value>False</value>
- </param>
- <param>
- <key>axislabels</key>
- <value>True</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>ctrlpanel</key>
- <value>False</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>entags</key>
- <value>True</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1952, 280)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>3,1,1,2</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>grid</key>
- <value>False</value>
- </param>
- <param>
- <key>id</key>
- <value>qtgui_time_sink_x_0_0_0_0_0</value>
- </param>
- <param>
- <key>legend</key>
- <value>True</value>
- </param>
- <param>
- <key>alpha1</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color1</key>
- <value>"blue"</value>
- </param>
- <param>
- <key>label1</key>
- <value>Soft Bits</value>
- </param>
- <param>
- <key>marker1</key>
- <value>0</value>
- </param>
- <param>
- <key>style1</key>
- <value>1</value>
- </param>
- <param>
- <key>width1</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha10</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color10</key>
- <value>"blue"</value>
- </param>
- <param>
- <key>label10</key>
- <value></value>
- </param>
- <param>
- <key>marker10</key>
- <value>-1</value>
- </param>
- <param>
- <key>style10</key>
- <value>1</value>
- </param>
- <param>
- <key>width10</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha2</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color2</key>
- <value>"red"</value>
- </param>
- <param>
- <key>label2</key>
- <value>Error</value>
- </param>
- <param>
- <key>marker2</key>
- <value>-1</value>
- </param>
- <param>
- <key>style2</key>
- <value>1</value>
- </param>
- <param>
- <key>width2</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha3</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color3</key>
- <value>"green"</value>
- </param>
- <param>
- <key>label3</key>
- <value>Instantaneous Period</value>
- </param>
- <param>
- <key>marker3</key>
- <value>-1</value>
- </param>
- <param>
- <key>style3</key>
- <value>1</value>
- </param>
- <param>
- <key>width3</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha4</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color4</key>
- <value>"black"</value>
- </param>
- <param>
- <key>label4</key>
- <value>Average Period</value>
- </param>
- <param>
- <key>marker4</key>
- <value>-1</value>
- </param>
- <param>
- <key>style4</key>
- <value>1</value>
- </param>
- <param>
- <key>width4</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha5</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color5</key>
- <value>"cyan"</value>
- </param>
- <param>
- <key>label5</key>
- <value></value>
- </param>
- <param>
- <key>marker5</key>
- <value>-1</value>
- </param>
- <param>
- <key>style5</key>
- <value>1</value>
- </param>
- <param>
- <key>width5</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha6</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color6</key>
- <value>"magenta"</value>
- </param>
- <param>
- <key>label6</key>
- <value></value>
- </param>
- <param>
- <key>marker6</key>
- <value>-1</value>
- </param>
- <param>
- <key>style6</key>
- <value>1</value>
- </param>
- <param>
- <key>width6</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha7</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color7</key>
- <value>"yellow"</value>
- </param>
- <param>
- <key>label7</key>
- <value></value>
- </param>
- <param>
- <key>marker7</key>
- <value>-1</value>
- </param>
- <param>
- <key>style7</key>
- <value>1</value>
- </param>
- <param>
- <key>width7</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha8</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color8</key>
- <value>"dark red"</value>
- </param>
- <param>
- <key>label8</key>
- <value></value>
- </param>
- <param>
- <key>marker8</key>
- <value>-1</value>
- </param>
- <param>
- <key>style8</key>
- <value>1</value>
- </param>
- <param>
- <key>width8</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha9</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color9</key>
- <value>"dark green"</value>
- </param>
- <param>
- <key>label9</key>
- <value></value>
- </param>
- <param>
- <key>marker9</key>
- <value>-1</value>
- </param>
- <param>
- <key>style9</key>
- <value>1</value>
- </param>
- <param>
- <key>width9</key>
- <value>1</value>
- </param>
- <param>
- <key>name</key>
- <value>Symbol Synched Output and Debug</value>
- </param>
- <param>
- <key>nconnections</key>
- <value>4</value>
- </param>
- <param>
- <key>size</key>
- <value>256*osps</value>
- </param>
- <param>
- <key>srate</key>
- <value>baud_rate*osps</value>
- </param>
- <param>
- <key>tr_chan</key>
- <value>0</value>
- </param>
- <param>
- <key>tr_delay</key>
- <value>0.01</value>
- </param>
- <param>
- <key>tr_level</key>
- <value>0.1</value>
- </param>
- <param>
- <key>tr_mode</key>
- <value>qtgui.TRIG_MODE_NORM</value>
- </param>
- <param>
- <key>tr_slope</key>
- <value>qtgui.TRIG_SLOPE_POS</value>
- </param>
- <param>
- <key>tr_tag</key>
- <value>"time_est"</value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>update_time</key>
- <value>0.1</value>
- </param>
- <param>
- <key>ylabel</key>
- <value>Amplitude</value>
- </param>
- <param>
- <key>yunit</key>
- <value>""</value>
- </param>
- <param>
- <key>ymax</key>
- <value>sps+2</value>
- </param>
- <param>
- <key>ymin</key>
- <value>-1.5</value>
- </param>
- </block>
- <block>
- <key>qtgui_time_sink_x</key>
- <param>
- <key>autoscale</key>
- <value>False</value>
- </param>
- <param>
- <key>axislabels</key>
- <value>True</value>
- </param>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>comment</key>
- <value></value>
- </param>
- <param>
- <key>ctrlpanel</key>
- <value>False</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>entags</key>
- <value>True</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1632, 172)</value>
- </param>
- <param>
- <key>gui_hint</key>
- <value>3,0,1,1</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>grid</key>
- <value>True</value>
- </param>
- <param>
- <key>id</key>
- <value>qtgui_time_sink_x_0_1_0</value>
- </param>
- <param>
- <key>legend</key>
- <value>True</value>
- </param>
- <param>
- <key>alpha1</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color1</key>
- <value>"blue"</value>
- </param>
- <param>
- <key>label1</key>
- <value></value>
- </param>
- <param>
- <key>marker1</key>
- <value>-1</value>
- </param>
- <param>
- <key>style1</key>
- <value>1</value>
- </param>
- <param>
- <key>width1</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha10</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color10</key>
- <value>"blue"</value>
- </param>
- <param>
- <key>label10</key>
- <value></value>
- </param>
- <param>
- <key>marker10</key>
- <value>-1</value>
- </param>
- <param>
- <key>style10</key>
- <value>1</value>
- </param>
- <param>
- <key>width10</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha2</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color2</key>
- <value>"red"</value>
- </param>
- <param>
- <key>label2</key>
- <value></value>
- </param>
- <param>
- <key>marker2</key>
- <value>-1</value>
- </param>
- <param>
- <key>style2</key>
- <value>1</value>
- </param>
- <param>
- <key>width2</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha3</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color3</key>
- <value>"green"</value>
- </param>
- <param>
- <key>label3</key>
- <value></value>
- </param>
- <param>
- <key>marker3</key>
- <value>-1</value>
- </param>
- <param>
- <key>style3</key>
- <value>1</value>
- </param>
- <param>
- <key>width3</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha4</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color4</key>
- <value>"black"</value>
- </param>
- <param>
- <key>label4</key>
- <value></value>
- </param>
- <param>
- <key>marker4</key>
- <value>-1</value>
- </param>
- <param>
- <key>style4</key>
- <value>1</value>
- </param>
- <param>
- <key>width4</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha5</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color5</key>
- <value>"dark green"</value>
- </param>
- <param>
- <key>label5</key>
- <value>Baseband</value>
- </param>
- <param>
- <key>marker5</key>
- <value>-1</value>
- </param>
- <param>
- <key>style5</key>
- <value>1</value>
- </param>
- <param>
- <key>width5</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha6</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color6</key>
- <value>"magenta"</value>
- </param>
- <param>
- <key>label6</key>
- <value>Abs(Corr)</value>
- </param>
- <param>
- <key>marker6</key>
- <value>-1</value>
- </param>
- <param>
- <key>style6</key>
- <value>1</value>
- </param>
- <param>
- <key>width6</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha7</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color7</key>
- <value>"yellow"</value>
- </param>
- <param>
- <key>label7</key>
- <value></value>
- </param>
- <param>
- <key>marker7</key>
- <value>-1</value>
- </param>
- <param>
- <key>style7</key>
- <value>1</value>
- </param>
- <param>
- <key>width7</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha8</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color8</key>
- <value>"dark red"</value>
- </param>
- <param>
- <key>label8</key>
- <value></value>
- </param>
- <param>
- <key>marker8</key>
- <value>-1</value>
- </param>
- <param>
- <key>style8</key>
- <value>1</value>
- </param>
- <param>
- <key>width8</key>
- <value>1</value>
- </param>
- <param>
- <key>alpha9</key>
- <value>1.0</value>
- </param>
- <param>
- <key>color9</key>
- <value>"dark green"</value>
- </param>
- <param>
- <key>label9</key>
- <value></value>
- </param>
- <param>
- <key>marker9</key>
- <value>-1</value>
- </param>
- <param>
- <key>style9</key>
- <value>1</value>
- </param>
- <param>
- <key>width9</key>
- <value>1</value>
- </param>
- <param>
- <key>name</key>
- <value>""</value>
- </param>
- <param>
- <key>nconnections</key>
- <value>1</value>
- </param>
- <param>
- <key>size</key>
- <value>1024*3</value>
- </param>
- <param>
- <key>srate</key>
- <value>baud_rate*sps</value>
- </param>
- <param>
- <key>tr_chan</key>
- <value>0</value>
- </param>
- <param>
- <key>tr_delay</key>
- <value>0.01</value>
- </param>
- <param>
- <key>tr_level</key>
- <value>0.1</value>
- </param>
- <param>
- <key>tr_mode</key>
- <value>qtgui.TRIG_MODE_NORM</value>
- </param>
- <param>
- <key>tr_slope</key>
- <value>qtgui.TRIG_SLOPE_POS</value>
- </param>
- <param>
- <key>tr_tag</key>
- <value></value>
- </param>
- <param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>update_time</key>
- <value>0.10</value>
- </param>
- <param>
- <key>ylabel</key>
- <value>Amplitude</value>
- </param>
- <param>
- <key>yunit</key>
- <value>""</value>
- </param>
- <param>
- <key>ymax</key>
- <value>1.5</value>
- </param>
- <param>
- <key>ymin</key>
- <value>-1.5</value>
- </param>
- </block>
- <block>
- <key>rational_resampler_xxx</key>
- <param>
- <key>alias</key>
- <value></value>
- </param>
- <param>
- <key>comment</key>
- <value>Resampling to 6 2/3 samples
-per symbol ("clock desync")</value>
- </param>
- <param>
- <key>affinity</key>
- <value></value>
- </param>
- <param>
- <key>decim</key>
- <value>21</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>fbw</key>
- <value>0.45</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1120, 304)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- <param>
- <key>id</key>
- <value>rational_resampler_xxx_0</value>
- </param>
- <param>
- <key>interp</key>
- <value>10</value>
- </param>
- <param>
- <key>maxoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>minoutbuf</key>
- <value>0</value>
- </param>
- <param>
- <key>taps</key>
- <value></value>
- </param>
- <param>
- <key>type</key>
- <value>fff</value>
- </param>
- </block>
- <connection>
- <source_block_id>analog_random_source_x_0</source_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_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>
- <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_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>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_matrix_xx_0</sink_block_id>
- <source_key>0</source_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_matrix_xx_0</sink_block_id>
- <source_key>0</source_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_matrix_xx_0</sink_block_id>
- <source_key>0</source_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_matrix_xx_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>4</sink_key>
- </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>
- <source_key>3</source_key>
- <sink_key>3</sink_key>
- </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>
- <source_key>2</source_key>
- <sink_key>2</sink_key>
- </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>
- <source_key>1</source_key>
- <sink_key>1</sink_key>
- </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>
- <source_key>0</source_key>
- <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>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>fir_filter_xxx_0_1_0_0_0</source_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>rational_resampler_xxx_0</source_block_id>
- <sink_block_id>fir_filter_xxx_0_1_0_0_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
-</flow_graph>
+metadata:
+ file_format: 1