Skip to content

Instantly share code, notes, and snippets.

@daniestevez
Created May 21, 2019 20:57
Show Gist options
  • Select an option

  • Save daniestevez/6f4f17deb24e2711d4b98f6002c1efbb to your computer and use it in GitHub Desktop.

Select an option

Save daniestevez/6f4f17deb24e2711d4b98f6002c1efbb to your computer and use it in GitHub Desktop.

Revisions

  1. daniestevez created this gist May 21, 2019.
    1,250 changes: 1,250 additions & 0 deletions lora_dechirp.grc
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,1250 @@
    <?xml version='1.0' encoding='utf-8'?>
    <?grc format='1' created='3.7.13'?>
    <flow_graph>
    <timestamp>Sun May 19 19:22:59 2019</timestamp>
    <block>
    <key>options</key>
    <param>
    <key>author</key>
    <value></value>
    </param>
    <param>
    <key>window_size</key>
    <value></value>
    </param>
    <param>
    <key>category</key>
    <value>[GRC Hier Blocks]</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>(8, 8)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>generate_options</key>
    <value>no_gui</value>
    </param>
    <param>
    <key>hier_block_src_path</key>
    <value>.:</value>
    </param>
    <param>
    <key>id</key>
    <value>lora_dechirp</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>run</value>
    </param>
    <param>
    <key>run</key>
    <value>True</value>
    </param>
    <param>
    <key>sizing_mode</key>
    <value>fixed</value>
    </param>
    <param>
    <key>thread_safe_setters</key>
    <value></value>
    </param>
    <param>
    <key>title</key>
    <value></value>
    </param>
    <param>
    <key>placement</key>
    <value>(0,0)</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>(520, 20)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>bw</value>
    </param>
    <param>
    <key>value</key>
    <value>125e3</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>(904, 12)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>fft_size</value>
    </param>
    <param>
    <key>value</key>
    <value>2**int(np.log2(0.5*samp_rate/bw*2**sf))</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>(256, 20)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>samp_rate</value>
    </param>
    <param>
    <key>value</key>
    <value>192000</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>(632, 20)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>sf</value>
    </param>
    <param>
    <key>value</key>
    <value>11</value>
    </param>
    </block>
    <block>
    <key>analog_sig_source_x</key>
    <param>
    <key>amp</key>
    <value>samp_rate/bw</value>
    </param>
    <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>freq</key>
    <value>bw/2**sf*(bw/samp_rate)</value>
    </param>
    <param>
    <key>_coordinate</key>
    <value>(16, 476)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>analog_sig_source_x_0</value>
    </param>
    <param>
    <key>maxoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>minoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>offset</key>
    <value>-0.5*samp_rate/bw</value>
    </param>
    <param>
    <key>type</key>
    <value>float</value>
    </param>
    <param>
    <key>samp_rate</key>
    <value>samp_rate</value>
    </param>
    <param>
    <key>waveform</key>
    <value>analog.GR_SAW_WAVE</value>
    </param>
    </block>
    <block>
    <key>blocks_complex_to_mag_squared</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>(440, 620)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>blocks_complex_to_mag_squared_0</value>
    </param>
    <param>
    <key>maxoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>minoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>vlen</key>
    <value>1024</value>
    </param>
    </block>
    <block>
    <key>blocks_complex_to_mag_squared</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>(232, 280)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>blocks_complex_to_mag_squared_1</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_file_sink</key>
    <param>
    <key>append</key>
    <value>False</value>
    </param>
    <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>file</key>
    <value>lora_detector.f32</value>
    </param>
    <param>
    <key>_coordinate</key>
    <value>(864, 604)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>blocks_file_sink_1</value>
    </param>
    <param>
    <key>type</key>
    <value>float</value>
    </param>
    <param>
    <key>unbuffered</key>
    <value>False</value>
    </param>
    <param>
    <key>vlen</key>
    <value>1</value>
    </param>
    </block>
    <block>
    <key>blocks_file_sink</key>
    <param>
    <key>append</key>
    <value>False</value>
    </param>
    <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>file</key>
    <value>fsk_detector.f32</value>
    </param>
    <param>
    <key>_coordinate</key>
    <value>(592, 260)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>blocks_file_sink_1_0</value>
    </param>
    <param>
    <key>type</key>
    <value>float</value>
    </param>
    <param>
    <key>unbuffered</key>
    <value>False</value>
    </param>
    <param>
    <key>vlen</key>
    <value>1</value>
    </param>
    </block>
    <block>
    <key>blocks_file_source</key>
    <param>
    <key>begin_tag</key>
    <value>pmt.PMT_NIL</value>
    </param>
    <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>file</key>
    <value>/tmp/sonda.fifo</value>
    </param>
    <param>
    <key>_coordinate</key>
    <value>(8, 116)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>blocks_file_source_0</value>
    </param>
    <param>
    <key>maxoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>minoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>type</key>
    <value>short</value>
    </param>
    <param>
    <key>repeat</key>
    <value>False</value>
    </param>
    <param>
    <key>vlen</key>
    <value>1</value>
    </param>
    </block>
    <block>
    <key>blocks_integrate_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>decim</key>
    <value>fft_size</value>
    </param>
    <param>
    <key>_enabled</key>
    <value>1</value>
    </param>
    <param>
    <key>_coordinate</key>
    <value>(416, 276)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>blocks_integrate_xx_0</value>
    </param>
    <param>
    <key>type</key>
    <value>float</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_interleaved_short_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>1</value>
    </param>
    <param>
    <key>_coordinate</key>
    <value>(184, 132)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>blocks_interleaved_short_to_complex_0</value>
    </param>
    <param>
    <key>maxoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>minoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>swap</key>
    <value>False</value>
    </param>
    <param>
    <key>vector_input</key>
    <value>False</value>
    </param>
    </block>
    <block>
    <key>blocks_max_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>1</value>
    </param>
    <param>
    <key>_coordinate</key>
    <value>(640, 620)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>blocks_max_xx_0</value>
    </param>
    <param>
    <key>type</key>
    <value>float</value>
    </param>
    <param>
    <key>vlen</key>
    <value>fft_size</value>
    </param>
    <param>
    <key>maxoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>minoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>num_inputs</key>
    <value>1</value>
    </param>
    <param>
    <key>vlen_out</key>
    <value>1</value>
    </param>
    </block>
    <block>
    <key>blocks_multiply_conjugate_cc</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>(424, 480)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>blocks_multiply_conjugate_cc_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_multiply_const_vxx</key>
    <param>
    <key>alias</key>
    <value></value>
    </param>
    <param>
    <key>comment</key>
    <value></value>
    </param>
    <param>
    <key>const</key>
    <value>2**(-15)</value>
    </param>
    <param>
    <key>affinity</key>
    <value></value>
    </param>
    <param>
    <key>_enabled</key>
    <value>1</value>
    </param>
    <param>
    <key>_coordinate</key>
    <value>(368, 132)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>blocks_multiply_const_vxx_0</value>
    </param>
    <param>
    <key>type</key>
    <value>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_stream_to_vector</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>(640, 492)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>blocks_stream_to_vector_0</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>num_items</key>
    <value>fft_size</value>
    </param>
    <param>
    <key>vlen</key>
    <value>1</value>
    </param>
    </block>
    <block>
    <key>blocks_vco_c</key>
    <param>
    <key>amplitude</key>
    <value>1</value>
    </param>
    <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>(200, 492)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>blocks_vco_c_0</value>
    </param>
    <param>
    <key>maxoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>minoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>samp_rate</key>
    <value>samp_rate</value>
    </param>
    <param>
    <key>sensitivity</key>
    <value>2*np.pi*bw</value>
    </param>
    </block>
    <block>
    <key>dc_blocker_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>1</value>
    </param>
    <param>
    <key>_coordinate</key>
    <value>(560, 124)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>dc_blocker_xx_0</value>
    </param>
    <param>
    <key>length</key>
    <value>10000</value>
    </param>
    <param>
    <key>long_form</key>
    <value>True</value>
    </param>
    <param>
    <key>maxoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>minoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>type</key>
    <value>cc</value>
    </param>
    </block>
    <block>
    <key>fft_vxx</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>fft_size</key>
    <value>fft_size</value>
    </param>
    <param>
    <key>forward</key>
    <value>True</value>
    </param>
    <param>
    <key>_coordinate</key>
    <value>(816, 460)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>id</key>
    <value>fft_vxx_0</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>nthreads</key>
    <value>1</value>
    </param>
    <param>
    <key>shift</key>
    <value>True</value>
    </param>
    <param>
    <key>window</key>
    <value>window.rectangular(fft_size)</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>(768, 28)</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 numpy as np</value>
    </param>
    </block>
    <block>
    <key>low_pass_filter</key>
    <param>
    <key>beta</key>
    <value>6.76</value>
    </param>
    <param>
    <key>alias</key>
    <value></value>
    </param>
    <param>
    <key>comment</key>
    <value></value>
    </param>
    <param>
    <key>affinity</key>
    <value></value>
    </param>
    <param>
    <key>cutoff_freq</key>
    <value>1.05*bw/2</value>
    </param>
    <param>
    <key>decim</key>
    <value>1</value>
    </param>
    <param>
    <key>_enabled</key>
    <value>1</value>
    </param>
    <param>
    <key>type</key>
    <value>fir_filter_ccf</value>
    </param>
    <param>
    <key>_coordinate</key>
    <value>(720, 84)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>gain</key>
    <value>1</value>
    </param>
    <param>
    <key>id</key>
    <value>low_pass_filter_0</value>
    </param>
    <param>
    <key>interp</key>
    <value>1</value>
    </param>
    <param>
    <key>maxoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>minoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>samp_rate</key>
    <value>samp_rate</value>
    </param>
    <param>
    <key>width</key>
    <value>bw*0.02</value>
    </param>
    <param>
    <key>win</key>
    <value>firdes.WIN_HAMMING</value>
    </param>
    </block>
    <block>
    <key>low_pass_filter</key>
    <param>
    <key>beta</key>
    <value>6.76</value>
    </param>
    <param>
    <key>alias</key>
    <value></value>
    </param>
    <param>
    <key>comment</key>
    <value></value>
    </param>
    <param>
    <key>affinity</key>
    <value></value>
    </param>
    <param>
    <key>cutoff_freq</key>
    <value>2.5e3</value>
    </param>
    <param>
    <key>decim</key>
    <value>1</value>
    </param>
    <param>
    <key>_enabled</key>
    <value>1</value>
    </param>
    <param>
    <key>type</key>
    <value>fir_filter_ccf</value>
    </param>
    <param>
    <key>_coordinate</key>
    <value>(56, 228)</value>
    </param>
    <param>
    <key>_rotation</key>
    <value>0</value>
    </param>
    <param>
    <key>gain</key>
    <value>1</value>
    </param>
    <param>
    <key>id</key>
    <value>low_pass_filter_1</value>
    </param>
    <param>
    <key>interp</key>
    <value>1</value>
    </param>
    <param>
    <key>maxoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>minoutbuf</key>
    <value>0</value>
    </param>
    <param>
    <key>samp_rate</key>
    <value>samp_rate</value>
    </param>
    <param>
    <key>width</key>
    <value>100</value>
    </param>
    <param>
    <key>win</key>
    <value>firdes.WIN_HAMMING</value>
    </param>
    </block>
    <connection>
    <source_block_id>analog_sig_source_x_0</source_block_id>
    <sink_block_id>blocks_vco_c_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
    </connection>
    <connection>
    <source_block_id>blocks_complex_to_mag_squared_0</source_block_id>
    <sink_block_id>blocks_max_xx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
    </connection>
    <connection>
    <source_block_id>blocks_complex_to_mag_squared_1</source_block_id>
    <sink_block_id>blocks_integrate_xx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
    </connection>
    <connection>
    <source_block_id>blocks_file_source_0</source_block_id>
    <sink_block_id>blocks_interleaved_short_to_complex_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
    </connection>
    <connection>
    <source_block_id>blocks_integrate_xx_0</source_block_id>
    <sink_block_id>blocks_file_sink_1_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
    </connection>
    <connection>
    <source_block_id>blocks_interleaved_short_to_complex_0</source_block_id>
    <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
    </connection>
    <connection>
    <source_block_id>blocks_max_xx_0</source_block_id>
    <sink_block_id>blocks_file_sink_1</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
    </connection>
    <connection>
    <source_block_id>blocks_multiply_conjugate_cc_0</source_block_id>
    <sink_block_id>blocks_stream_to_vector_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
    </connection>
    <connection>
    <source_block_id>blocks_multiply_const_vxx_0</source_block_id>
    <sink_block_id>dc_blocker_xx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
    </connection>
    <connection>
    <source_block_id>blocks_stream_to_vector_0</source_block_id>
    <sink_block_id>fft_vxx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
    </connection>
    <connection>
    <source_block_id>blocks_vco_c_0</source_block_id>
    <sink_block_id>blocks_multiply_conjugate_cc_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>1</sink_key>
    </connection>
    <connection>
    <source_block_id>dc_blocker_xx_0</source_block_id>
    <sink_block_id>low_pass_filter_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
    </connection>
    <connection>
    <source_block_id>fft_vxx_0</source_block_id>
    <sink_block_id>blocks_complex_to_mag_squared_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
    </connection>
    <connection>
    <source_block_id>low_pass_filter_0</source_block_id>
    <sink_block_id>blocks_multiply_conjugate_cc_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
    </connection>
    <connection>
    <source_block_id>low_pass_filter_0</source_block_id>
    <sink_block_id>low_pass_filter_1</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
    </connection>
    <connection>
    <source_block_id>low_pass_filter_1</source_block_id>
    <sink_block_id>blocks_complex_to_mag_squared_1</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
    </connection>
    </flow_graph>