diff options
author | ptrkrysik <ptrkrysik@gmail.com> | 2014-11-19 11:30:53 +0100 |
---|---|---|
committer | ptrkrysik <ptrkrysik@gmail.com> | 2014-11-19 11:30:53 +0100 |
commit | 381253a1d24f1273fad2f4e0d57d75d3ac6e518d (patch) | |
tree | 2ac0ba198a88845d41626a7056b7e0508a669fae /hier_blocks | |
parent | 7a7b9b0a3a446e83703f53bea11389f030c68fde (diff) |
Changes in clock offset corrector and gsm_input - the previous version wasn't working well when samp_rate_in was different from samp_rate_out.
Now resampling is done outside of clock offset corrector.
Diffstat (limited to 'hier_blocks')
-rw-r--r-- | hier_blocks/misc_utils/gsm_clock_offset_corrector.grc | 272 | ||||
-rw-r--r-- | hier_blocks/receiver/gsm_input.grc | 205 |
2 files changed, 294 insertions, 183 deletions
diff --git a/hier_blocks/misc_utils/gsm_clock_offset_corrector.grc b/hier_blocks/misc_utils/gsm_clock_offset_corrector.grc index efc1275..99d8e15 100644 --- a/hier_blocks/misc_utils/gsm_clock_offset_corrector.grc +++ b/hier_blocks/misc_utils/gsm_clock_offset_corrector.grc @@ -1,4 +1,5 @@ <?xml version='1.0' encoding='ASCII'?> +<?grc format='1' created='3.7.6'?> <flow_graph> <timestamp>Thu Nov 6 10:22:20 2014</timestamp> <block> @@ -29,6 +30,33 @@ </param> </block> <block> + <key>variable</key> + <param> + <key>id</key> + <value>samp_rate_out</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>value</key> + <value>samp_rate_in</value> + </param> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>_coordinate</key> + <value>(736, 19)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> <key>parameter</key> <param> <key>id</key> @@ -68,10 +96,10 @@ </param> </block> <block> - <key>parameter</key> + <key>pad_source</key> <param> <key>id</key> - <value>samp_rate_in</value> + <value>pad_source_0</value> </param> <param> <key>_enabled</key> @@ -79,27 +107,27 @@ </param> <param> <key>label</key> - <value>samp_rate_in</value> + <value>in</value> </param> <param> - <key>value</key> - <value>1625000.0/6.0*4.0</value> + <key>type</key> + <value>complex</value> </param> <param> - <key>type</key> - <value>eng_float</value> + <key>vlen</key> + <value>1</value> </param> <param> - <key>short_id</key> - <value></value> + <key>num_streams</key> + <value>1</value> </param> <param> - <key>alias</key> - <value></value> + <key>optional</key> + <value>False</value> </param> <param> <key>_coordinate</key> - <value>(368, 19)</value> + <value>(14, 299)</value> </param> <param> <key>_rotation</key> @@ -110,7 +138,7 @@ <key>parameter</key> <param> <key>id</key> - <value>samp_rate_out</value> + <value>ppm</value> </param> <param> <key>_enabled</key> @@ -118,11 +146,11 @@ </param> <param> <key>label</key> - <value>samp_rate_out</value> + <value>ppm</value> </param> <param> <key>value</key> - <value>1625000.0/6.0*4.0</value> + <value>0</value> </param> <param> <key>type</key> @@ -138,7 +166,7 @@ </param> <param> <key>_coordinate</key> - <value>(592, 20)</value> + <value>(496, 19)</value> </param> <param> <key>_rotation</key> @@ -146,10 +174,10 @@ </param> </block> <block> - <key>pad_sink</key> + <key>parameter</key> <param> <key>id</key> - <value>pad_sink_1</value> + <value>samp_rate_in</value> </param> <param> <key>_enabled</key> @@ -157,27 +185,27 @@ </param> <param> <key>label</key> - <value>out</value> + <value>samp_rate_in</value> </param> <param> - <key>type</key> - <value>complex</value> + <key>value</key> + <value>1625000.0/6.0*4.0</value> </param> <param> - <key>vlen</key> - <value>1</value> + <key>type</key> + <value>eng_float</value> </param> <param> - <key>num_streams</key> - <value>1</value> + <key>short_id</key> + <value></value> </param> <param> - <key>optional</key> - <value>False</value> + <key>alias</key> + <value></value> </param> <param> <key>_coordinate</key> - <value>(1184, 333)</value> + <value>(368, 19)</value> </param> <param> <key>_rotation</key> @@ -185,46 +213,38 @@ </param> </block> <block> - <key>fractional_resampler_xx</key> + <key>parameter</key> <param> <key>id</key> - <value>fractional_resampler_xx_0</value> + <value>samp_rate_out</value> </param> <param> <key>_enabled</key> - <value>True</value> + <value>False</value> </param> <param> - <key>type</key> - <value>complex</value> + <key>label</key> + <value>samp_rate_out</value> </param> <param> - <key>phase_shift</key> - <value>0</value> + <key>value</key> + <value>1625000.0/6.0*4.0</value> </param> <param> - <key>resamp_ratio</key> - <value>samp_rate_in/samp_rate_out</value> + <key>type</key> + <value>eng_float</value> </param> <param> - <key>alias</key> + <key>short_id</key> <value></value> </param> <param> - <key>affinity</key> + <key>alias</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> - </param> - <param> - <key>maxoutbuf</key> - <value>0</value> - </param> - <param> <key>_coordinate</key> - <value>(721, 303)</value> + <value>(592, 20)</value> </param> <param> <key>_rotation</key> @@ -235,7 +255,7 @@ <key>pad_source</key> <param> <key>id</key> - <value>pad_source_0</value> + <value>ppm_in</value> </param> <param> <key>_enabled</key> @@ -243,11 +263,11 @@ </param> <param> <key>label</key> - <value>in</value> + <value>ppm_in</value> </param> <param> <key>type</key> - <value>complex</value> + <value>message</value> </param> <param> <key>vlen</key> @@ -259,11 +279,11 @@ </param> <param> <key>optional</key> - <value>False</value> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(14, 299)</value> + <value>(16, 219)</value> </param> <param> <key>_rotation</key> @@ -271,22 +291,26 @@ </param> </block> <block> - <key>gsm_controlled_rotator_cc</key> + <key>fractional_resampler_xx</key> <param> <key>id</key> - <value>gsm_controlled_rotator_cc_0</value> + <value>fractional_resampler_xx_0_0</value> </param> <param> <key>_enabled</key> - <value>True</value> + <value>False</value> </param> <param> - <key>phase_inc</key> + <key>type</key> + <value>float</value> + </param> + <param> + <key>phase_shift</key> <value>0</value> </param> <param> - <key>samp_rate</key> - <value>samp_rate_out</value> + <key>resamp_ratio</key> + <value>samp_rate_in/samp_rate_out</value> </param> <param> <key>alias</key> @@ -306,7 +330,7 @@ </param> <param> <key>_coordinate</key> - <value>(968, 320)</value> + <value>(712, 144)</value> </param> <param> <key>_rotation</key> @@ -353,7 +377,7 @@ </param> <param> <key>_coordinate</key> - <value>(435, 216)</value> + <value>(416, 219)</value> </param> <param> <key>_rotation</key> @@ -364,7 +388,7 @@ <key>fractional_resampler_xx</key> <param> <key>id</key> - <value>fractional_resampler_xx_0_0</value> + <value>fractional_resampler_xx_0</value> </param> <param> <key>_enabled</key> @@ -372,7 +396,7 @@ </param> <param> <key>type</key> - <value>float</value> + <value>complex</value> </param> <param> <key>phase_shift</key> @@ -400,7 +424,7 @@ </param> <param> <key>_coordinate</key> - <value>(721, 220)</value> + <value>(704, 304)</value> </param> <param> <key>_rotation</key> @@ -408,18 +432,26 @@ </param> </block> <block> - <key>gsm_controlled_const_source_f</key> + <key>blocks_multiply_const_vxx</key> <param> <key>id</key> - <value>gsm_controlled_const_source_f_0</value> + <value>blocks_multiply_const_vxx_0_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>constant</key> - <value>ppm</value> + <key>type</key> + <value>float</value> + </param> + <param> + <key>const</key> + <value>1.0e-6*samp_rate_in/samp_rate_out</value> + </param> + <param> + <key>vlen</key> + <value>1</value> </param> <param> <key>alias</key> @@ -439,7 +471,7 @@ </param> <param> <key>_coordinate</key> - <value>(182, 216)</value> + <value>(392, 331)</value> </param> <param> <key>_rotation</key> @@ -447,10 +479,10 @@ </param> </block> <block> - <key>pad_source</key> + <key>pad_sink</key> <param> <key>id</key> - <value>ppm_in</value> + <value>pad_sink_1</value> </param> <param> <key>_enabled</key> @@ -458,11 +490,11 @@ </param> <param> <key>label</key> - <value>ppm_in</value> + <value>out</value> </param> <param> <key>type</key> - <value>message</value> + <value>complex</value> </param> <param> <key>vlen</key> @@ -474,11 +506,11 @@ </param> <param> <key>optional</key> - <value>True</value> + <value>False</value> </param> <param> <key>_coordinate</key> - <value>(13, 216)</value> + <value>(1112, 331)</value> </param> <param> <key>_rotation</key> @@ -486,38 +518,42 @@ </param> </block> <block> - <key>parameter</key> + <key>gsm_controlled_rotator_cc</key> <param> <key>id</key> - <value>ppm</value> + <value>gsm_controlled_rotator_cc_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>label</key> - <value>ppm</value> - </param> - <param> - <key>value</key> + <key>phase_inc</key> <value>0</value> </param> <param> - <key>type</key> - <value>eng_float</value> + <key>samp_rate</key> + <value>samp_rate_out</value> </param> <param> - <key>short_id</key> + <key>alias</key> <value></value> </param> <param> - <key>alias</key> + <key>affinity</key> <value></value> </param> <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> <key>_coordinate</key> - <value>(496, 19)</value> + <value>(928, 320)</value> </param> <param> <key>_rotation</key> @@ -525,26 +561,18 @@ </param> </block> <block> - <key>blocks_multiply_const_vxx</key> + <key>gsm_controlled_const_source_f</key> <param> <key>id</key> - <value>blocks_multiply_const_vxx_0_0</value> + <value>gsm_controlled_const_source_f_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>type</key> - <value>float</value> - </param> - <param> - <key>const</key> - <value>1.0e-6*samp_rate_in/samp_rate_out</value> - </param> - <param> - <key>vlen</key> - <value>1</value> + <key>constant</key> + <value>ppm</value> </param> <param> <key>alias</key> @@ -564,7 +592,7 @@ </param> <param> <key>_coordinate</key> - <value>(410, 333)</value> + <value>(168, 219)</value> </param> <param> <key>_rotation</key> @@ -611,7 +639,7 @@ </param> <param> <key>_coordinate</key> - <value>(571, 333)</value> + <value>(552, 331)</value> </param> <param> <key>_rotation</key> @@ -688,12 +716,6 @@ <sink_key>constant_msg</sink_key> </connection> <connection> - <source_block_id>gsm_controlled_const_source_f_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>pad_source_0</source_block_id> <sink_block_id>fractional_resampler_xx_0</sink_block_id> <source_key>0</source_key> @@ -712,12 +734,6 @@ <sink_key>1</sink_key> </connection> <connection> - <source_block_id>gsm_controlled_rotator_cc_0</source_block_id> - <sink_block_id>pad_sink_1</sink_block_id> - <source_key>0</source_key> - <sink_key>0</sink_key> - </connection> - <connection> <source_block_id>fractional_resampler_xx_0</source_block_id> <sink_block_id>gsm_controlled_rotator_cc_0</sink_block_id> <source_key>0</source_key> @@ -730,12 +746,6 @@ <sink_key>1</sink_key> </connection> <connection> - <source_block_id>gsm_controlled_const_source_f_0</source_block_id> - <sink_block_id>blocks_multiply_const_vxx_0_0</sink_block_id> - <source_key>0</source_key> - <sink_key>0</sink_key> - </connection> - <connection> <source_block_id>blocks_multiply_const_vxx_0_0</source_block_id> <sink_block_id>blocks_add_const_vxx_0</sink_block_id> <source_key>0</source_key> @@ -747,4 +757,28 @@ <source_key>0</source_key> <sink_key>1</sink_key> </connection> + <connection> + <source_block_id>blocks_multiply_const_vxx_0</source_block_id> + <sink_block_id>gsm_controlled_rotator_cc_0</sink_block_id> + <source_key>0</source_key> + <sink_key>1</sink_key> + </connection> + <connection> + <source_block_id>gsm_controlled_rotator_cc_0</source_block_id> + <sink_block_id>pad_sink_1</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>gsm_controlled_const_source_f_0</source_block_id> + <sink_block_id>blocks_multiply_const_vxx_0_0</sink_block_id> + <source_key>0</source_key> + <sink_key>0</sink_key> + </connection> + <connection> + <source_block_id>gsm_controlled_const_source_f_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> </flow_graph> diff --git a/hier_blocks/receiver/gsm_input.grc b/hier_blocks/receiver/gsm_input.grc index 8d99640..685f0b2 100644 --- a/hier_blocks/receiver/gsm_input.grc +++ b/hier_blocks/receiver/gsm_input.grc @@ -1,4 +1,5 @@ <?xml version='1.0' encoding='ASCII'?> +<?grc format='1' created='3.7.6'?> <flow_graph> <timestamp>Thu Nov 6 14:41:06 2014</timestamp> <block> @@ -65,38 +66,26 @@ </param> </block> <block> - <key>pad_sink</key> + <key>variable</key> <param> <key>id</key> - <value>pad_sink_0</value> + <value>samp_rate_out</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>label</key> - <value>out</value> - </param> - <param> - <key>type</key> - <value>complex</value> - </param> - <param> - <key>vlen</key> - <value>1</value> - </param> - <param> - <key>num_streams</key> - <value>1</value> + <key>value</key> + <value>1625000.0/6.0*osr</value> </param> <param> - <key>optional</key> - <value>False</value> + <key>alias</key> + <value></value> </param> <param> <key>_coordinate</key> - <value>(706, 213)</value> + <value>(632, 19)</value> </param> <param> <key>_rotation</key> @@ -182,6 +171,84 @@ </param> </block> <block> + <key>parameter</key> + <param> + <key>id</key> + <value>fc</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>label</key> + <value>fc</value> + </param> + <param> + <key>value</key> + <value>940e6</value> + </param> + <param> + <key>type</key> + <value>eng_float</value> + </param> + <param> + <key>short_id</key> + <value></value> + </param> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>_coordinate</key> + <value>(231, 22)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>parameter</key> + <param> + <key>id</key> + <value>samp_rate_in</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>label</key> + <value>samp_rate_in</value> + </param> + <param> + <key>value</key> + <value>1e6</value> + </param> + <param> + <key>type</key> + <value>eng_float</value> + </param> + <param> + <key>short_id</key> + <value></value> + </param> + <param> + <key>alias</key> + <value></value> + </param> + <param> + <key>_coordinate</key> + <value>(328, 22)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> <key>low_pass_filter</key> <param> <key>id</key> @@ -209,7 +276,7 @@ </param> <param> <key>samp_rate</key> - <value>1625000.0/6.0*osr</value> + <value>samp_rate_out</value> </param> <param> <key>cutoff_freq</key> @@ -245,7 +312,7 @@ </param> <param> <key>_coordinate</key> - <value>(502, 165)</value> + <value>(704, 179)</value> </param> <param> <key>_rotation</key> @@ -253,10 +320,10 @@ </param> </block> <block> - <key>pad_source</key> + <key>pad_sink</key> <param> <key>id</key> - <value>ppm_in</value> + <value>pad_sink_0</value> </param> <param> <key>_enabled</key> @@ -264,11 +331,11 @@ </param> <param> <key>label</key> - <value>ppm_in</value> + <value>out</value> </param> <param> <key>type</key> - <value>message</value> + <value>complex</value> </param> <param> <key>vlen</key> @@ -280,11 +347,11 @@ </param> <param> <key>optional</key> - <value>True</value> + <value>False</value> </param> <param> <key>_coordinate</key> - <value>(91, 242)</value> + <value>(904, 227)</value> </param> <param> <key>_rotation</key> @@ -292,30 +359,26 @@ </param> </block> <block> - <key>gsm_clock_offset_corrector</key> + <key>fractional_resampler_xx</key> <param> <key>id</key> - <value>gsm_clock_offset_corrector_0</value> + <value>fractional_resampler_xx_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>fc</key> - <value>fc</value> + <key>type</key> + <value>complex</value> </param> <param> - <key>ppm</key> + <key>phase_shift</key> <value>0</value> </param> <param> - <key>samp_rate_in</key> - <value>samp_rate_in</value> - </param> - <param> - <key>samp_rate_out</key> - <value>1625000.0/6.0*4.0</value> + <key>resamp_ratio</key> + <value>samp_rate_in/samp_rate_out</value> </param> <param> <key>alias</key> @@ -335,7 +398,7 @@ </param> <param> <key>_coordinate</key> - <value>(279, 190)</value> + <value>(488, 216)</value> </param> <param> <key>_rotation</key> @@ -374,7 +437,7 @@ </param> <param> <key>_coordinate</key> - <value>(88, 197)</value> + <value>(56, 179)</value> </param> <param> <key>_rotation</key> @@ -382,10 +445,10 @@ </param> </block> <block> - <key>parameter</key> + <key>pad_source</key> <param> <key>id</key> - <value>fc</value> + <value>ppm_in</value> </param> <param> <key>_enabled</key> @@ -393,27 +456,27 @@ </param> <param> <key>label</key> - <value>fc</value> + <value>ppm_in</value> </param> <param> - <key>value</key> - <value>940e6</value> + <key>type</key> + <value>message</value> </param> <param> - <key>type</key> - <value>eng_float</value> + <key>vlen</key> + <value>1</value> </param> <param> - <key>short_id</key> - <value></value> + <key>num_streams</key> + <value>1</value> </param> <param> - <key>alias</key> - <value></value> + <key>optional</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(231, 22)</value> + <value>(56, 243)</value> </param> <param> <key>_rotation</key> @@ -421,38 +484,46 @@ </param> </block> <block> - <key>parameter</key> + <key>gsm_clock_offset_corrector</key> <param> <key>id</key> - <value>samp_rate_in</value> + <value>gsm_clock_offset_corrector_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>label</key> - <value>samp_rate_in</value> + <key>fc</key> + <value>fc</value> </param> <param> - <key>value</key> - <value>1e6</value> + <key>ppm</key> + <value>ppm</value> </param> <param> - <key>type</key> - <value>eng_float</value> + <key>samp_rate_in</key> + <value>samp_rate_in</value> </param> <param> - <key>short_id</key> + <key>alias</key> <value></value> </param> <param> - <key>alias</key> + <key>affinity</key> <value></value> </param> <param> + <key>minoutbuf</key> + <value>0</value> + </param> + <param> + <key>maxoutbuf</key> + <value>0</value> + </param> + <param> <key>_coordinate</key> - <value>(328, 22)</value> + <value>(280, 195)</value> </param> <param> <key>_rotation</key> @@ -466,12 +537,18 @@ <sink_key>0</sink_key> </connection> <connection> - <source_block_id>gsm_clock_offset_corrector_0</source_block_id> + <source_block_id>fractional_resampler_xx_0</source_block_id> <sink_block_id>low_pass_filter_0_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> + <source_block_id>gsm_clock_offset_corrector_0</source_block_id> + <sink_block_id>fractional_resampler_xx_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>gsm_clock_offset_corrector_0</sink_block_id> <source_key>0</source_key> |