Skip to content

Instantly share code, notes, and snippets.

@cFu3nbEt
Created May 5, 2016 03:48
Show Gist options
  • Select an option

  • Save cFu3nbEt/4adeb14fdc8ff3211a7bdc6a5bb10b4b to your computer and use it in GitHub Desktop.

Select an option

Save cFu3nbEt/4adeb14fdc8ff3211a7bdc6a5bb10b4b to your computer and use it in GitHub Desktop.
Pi/4-QPSK Demod
<?xml version='1.0' encoding='utf-8'?>
<?grc format='1' created='3.7.9'?>
<flow_graph>
<timestamp>Sat Jan 1 09:00:00 2000</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>Modulators</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, 18)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>generate_options</key>
<value>hb</value>
</param>
<param>
<key>hier_block_src_path</key>
<value>.:</value>
</param>
<param>
<key>id</key>
<value>pi4qpsk_demod</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>Pi/4-QPSK Demod</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>(1104, 31)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>bits_per_symbol</value>
</param>
<param>
<key>value</key>
<value>2</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>(664, 31)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>clock_sync_filter_size</value>
</param>
<param>
<key>value</key>
<value>32</value>
</param>
</block>
<block>
<key>variable_constellation</key>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>const_points</key>
<value>[1+1j, -1+1j, 1-1j, -1-1j]</value>
</param>
<param>
<key>dims</key>
<value>1</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(944, 11)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>differential_constellation</value>
</param>
<param>
<key>rot_sym</key>
<value>4</value>
</param>
<param>
<key>soft_dec_lut</key>
<value>None</value>
</param>
<param>
<key>precision</key>
<value>8</value>
</param>
<param>
<key>sym_map</key>
<value>[0, 1, 2, 3]</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>(544, 31)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>loop_bandwidth</value>
</param>
<param>
<key>value</key>
<value>cmath.pi*2/100.0</value>
</param>
</block>
<block>
<key>variable_rrc_filter_taps</key>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>alpha</key>
<value>rolloff_factor</value>
</param>
<param>
<key>_coordinate</key>
<value>(808, 5)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>gain</key>
<value>clock_sync_filter_size</value>
</param>
<param>
<key>id</key>
<value>rrc_filter_taps</value>
</param>
<param>
<key>ntaps</key>
<value>11*samples_per_symbol*clock_sync_filter_size</value>
</param>
<param>
<key>samp_rate</key>
<value>clock_sync_filter_size*samples_per_symbol</value>
</param>
<param>
<key>sym_rate</key>
<value>1.0</value>
</param>
</block>
<block>
<key>analog_agc2_xx</key>
<param>
<key>attack_rate</key>
<value>0.6e-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>decay_rate</key>
<value>1e-3</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(152, 139)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>gain</key>
<value>1.0</value>
</param>
<param>
<key>id</key>
<value>analog_agc2_xx_0</value>
</param>
<param>
<key>max_gain</key>
<value>65536</value>
</param>
<param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
<key>minoutbuf</key>
<value>0</value>
</param>
<param>
<key>reference</key>
<value>1.0</value>
</param>
<param>
<key>type</key>
<value>complex</value>
</param>
</block>
<block>
<key>blocks_unpack_k_bits_bb</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(768, 261)</value>
</param>
<param>
<key>_rotation</key>
<value>180</value>
</param>
<param>
<key>id</key>
<value>blocks_unpack_k_bits_bb_0</value>
</param>
<param>
<key>k</key>
<value>bits_per_symbol</value>
</param>
<param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
<key>minoutbuf</key>
<value>0</value>
</param>
</block>
<block>
<key>digital_cma_equalizer_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>(760, 146)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>mu</key>
<value>1/100.0</value>
</param>
<param>
<key>id</key>
<value>digital_cma_equalizer_cc_0</value>
</param>
<param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
<key>minoutbuf</key>
<value>0</value>
</param>
<param>
<key>modulus</key>
<value>1</value>
</param>
<param>
<key>num_taps</key>
<value>11</value>
</param>
<param>
<key>sps</key>
<value>1</value>
</param>
</block>
<block>
<key>digital_constellation_decoder_cb</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>constellation</key>
<value>differential_constellation</value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(920, 261)</value>
</param>
<param>
<key>_rotation</key>
<value>180</value>
</param>
<param>
<key>id</key>
<value>digital_constellation_decoder_cb_0</value>
</param>
<param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
<key>minoutbuf</key>
<value>0</value>
</param>
</block>
<block>
<key>digital_diff_phasor_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>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(952, 168)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>digital_diff_phasor_cc_0</value>
</param>
<param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
<key>minoutbuf</key>
<value>0</value>
</param>
</block>
<block>
<key>digital_fll_band_edge_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>rolloff</key>
<value>rolloff_factor</value>
</param>
<param>
<key>_coordinate</key>
<value>(320, 120)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>digital_fll_band_edge_cc_0</value>
</param>
<param>
<key>w</key>
<value>loop_bandwidth</value>
</param>
<param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
<key>minoutbuf</key>
<value>0</value>
</param>
<param>
<key>filter_size</key>
<value>55</value>
</param>
<param>
<key>samps_per_sym</key>
<value>samples_per_symbol</value>
</param>
<param>
<key>type</key>
<value>cc</value>
</param>
</block>
<block>
<key>digital_pfb_clock_sync_xxx</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>filter_size</key>
<value>clock_sync_filter_size</value>
</param>
<param>
<key>_coordinate</key>
<value>(536, 120)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>digital_pfb_clock_sync_xxx_0</value>
</param>
<param>
<key>init_phase</key>
<value>clock_sync_filter_size/2</value>
</param>
<param>
<key>loop_bw</key>
<value>loop_bandwidth</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>1</value>
</param>
<param>
<key>sps</key>
<value>samples_per_symbol</value>
</param>
<param>
<key>taps</key>
<value>rrc_filter_taps</value>
</param>
<param>
<key>type</key>
<value>ccf</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>(176, 37)</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 cmath</value>
</param>
</block>
<block>
<key>pad_sink</key>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(640, 261)</value>
</param>
<param>
<key>_rotation</key>
<value>180</value>
</param>
<param>
<key>id</key>
<value>pad_sink_0</value>
</param>
<param>
<key>type</key>
<value>byte</value>
</param>
<param>
<key>label</key>
<value>out</value>
</param>
<param>
<key>num_streams</key>
<value>1</value>
</param>
<param>
<key>optional</key>
<value>False</value>
</param>
<param>
<key>vlen</key>
<value>1</value>
</param>
</block>
<block>
<key>pad_source</key>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(8, 165)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>pad_source_0</value>
</param>
<param>
<key>label</key>
<value>in</value>
</param>
<param>
<key>num_streams</key>
<value>1</value>
</param>
<param>
<key>optional</key>
<value>False</value>
</param>
<param>
<key>type</key>
<value>complex</value>
</param>
<param>
<key>vlen</key>
<value>1</value>
</param>
</block>
<block>
<key>parameter</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>(416, 18)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>rolloff_factor</value>
</param>
<param>
<key>label</key>
<value>Roll-off factor</value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>0.35</value>
</param>
</block>
<block>
<key>parameter</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>(272, 18)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>samples_per_symbol</value>
</param>
<param>
<key>label</key>
<value>Samples/Symbol</value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>intx</value>
</param>
<param>
<key>value</key>
<value>2</value>
</param>
</block>
<connection>
<source_block_id>analog_agc2_xx_0</source_block_id>
<sink_block_id>digital_fll_band_edge_cc_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>blocks_unpack_k_bits_bb_0</source_block_id>
<sink_block_id>pad_sink_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>digital_cma_equalizer_cc_0</source_block_id>
<sink_block_id>digital_diff_phasor_cc_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>digital_constellation_decoder_cb_0</source_block_id>
<sink_block_id>blocks_unpack_k_bits_bb_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>digital_diff_phasor_cc_0</source_block_id>
<sink_block_id>digital_constellation_decoder_cb_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>digital_fll_band_edge_cc_0</source_block_id>
<sink_block_id>digital_pfb_clock_sync_xxx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
<sink_block_id>digital_cma_equalizer_cc_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>pad_source_0</source_block_id>
<sink_block_id>analog_agc2_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
</flow_graph>
@huangyanliang23
Copy link

@ cFu3nbEt
Hi,Bro
Do you have the pi4qpsk_mod.grc design code?
Can you share it to me?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment