diff options
author | Your Name <you@example.com> | 2016-06-08 22:30:52 +0200 |
---|---|---|
committer | Your Name <you@example.com> | 2016-06-08 22:30:52 +0200 |
commit | 799133a2e63253480fd5ec7d2a8092595687a90f (patch) | |
tree | 9b298cbf474e389bcad95281e596a940e1845e30 | |
parent | c6eb3b5c6a013d5c19878a584b03c31813f87e77 (diff) |
Changed clock_offset_corrector in order to address the problem #152 - this is not ideal solution yet, as it involves removing of sampling frequency offset correction.
-rw-r--r-- | hier_blocks/misc_utils/gsm_clock_offset_corrector.grc | 671 | ||||
-rw-r--r-- | python/misc_utils/clock_offset_corrector.py | 33 |
2 files changed, 348 insertions, 356 deletions
diff --git a/hier_blocks/misc_utils/gsm_clock_offset_corrector.grc b/hier_blocks/misc_utils/gsm_clock_offset_corrector.grc index 99d8e15..2222d7e 100644 --- a/hier_blocks/misc_utils/gsm_clock_offset_corrector.grc +++ b/hier_blocks/misc_utils/gsm_clock_offset_corrector.grc @@ -1,504 +1,510 @@ -<?xml version='1.0' encoding='ASCII'?> -<?grc format='1' created='3.7.6'?> +<?xml version='1.0' encoding='utf-8'?> +<?grc format='1' created='3.7.9'?> <flow_graph> <timestamp>Thu Nov 6 10:22:20 2014</timestamp> <block> - <key>import</key> + <key>options</key> <param> - <key>id</key> - <value>math_imp</value> + <key>author</key> + <value>Piotr Krysik</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>window_size</key> + <value>2280, 1024</value> </param> <param> - <key>import</key> - <value>import math</value> + <key>category</key> + <value>GSM</value> </param> <param> - <key>alias</key> + <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>(11, 125)</value> + <value>(10, 10)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>variable</key> <param> - <key>id</key> - <value>samp_rate_out</value> + <key>generate_options</key> + <value>hb</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>hier_block_src_path</key> + <value>.:</value> </param> <param> - <key>value</key> - <value>samp_rate_in</value> + <key>id</key> + <value>clock_offset_corrector</value> </param> <param> - <key>alias</key> - <value></value> + <key>max_nouts</key> + <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(736, 19)</value> + <key>qt_qss_theme</key> + <value></value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>realtime_scheduling</key> + <value></value> </param> - </block> - <block> - <key>parameter</key> <param> - <key>id</key> - <value>fc</value> + <key>run_command</key> + <value>{python} -u {filename}</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>run_options</key> + <value>prompt</value> </param> <param> - <key>label</key> - <value>fc</value> + <key>run</key> + <value>True</value> </param> <param> - <key>value</key> - <value>936.6e6</value> + <key>thread_safe_setters</key> + <value></value> </param> <param> - <key>type</key> - <value>eng_float</value> + <key>title</key> + <value>Clock offset corrector</value> </param> + </block> + <block> + <key>variable</key> <param> - <key>short_id</key> + <key>comment</key> <value></value> </param> <param> - <key>alias</key> - <value></value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(274, 19)</value> + <value>(736, 19)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>pad_source</key> <param> <key>id</key> - <value>pad_source_0</value> + <value>samp_rate_out</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>value</key> + <value>samp_rate_in</value> </param> + </block> + <block> + <key>blocks_add_const_vxx</key> <param> - <key>label</key> - <value>in</value> + <key>alias</key> + <value></value> </param> <param> - <key>type</key> - <value>complex</value> + <key>comment</key> + <value></value> </param> <param> - <key>vlen</key> - <value>1</value> + <key>const</key> + <value>samp_rate_in/samp_rate_out</value> </param> <param> - <key>num_streams</key> - <value>1</value> + <key>affinity</key> + <value></value> </param> <param> - <key>optional</key> - <value>False</value> + <key>_enabled</key> + <value>0</value> </param> <param> <key>_coordinate</key> - <value>(14, 299)</value> + <value>(552, 331)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>parameter</key> <param> <key>id</key> - <value>ppm</value> - </param> - <param> - <key>_enabled</key> - <value>True</value> + <value>blocks_add_const_vxx_0</value> </param> <param> - <key>label</key> - <value>ppm</value> + <key>type</key> + <value>float</value> </param> <param> - <key>value</key> + <key>maxoutbuf</key> <value>0</value> </param> <param> - <key>type</key> - <value>eng_float</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>short_id</key> - <value></value> + <key>vlen</key> + <value>1</value> </param> + </block> + <block> + <key>blocks_multiply_const_vxx</key> <param> <key>alias</key> <value></value> </param> <param> - <key>_coordinate</key> - <value>(496, 19)</value> + <key>comment</key> + <value></value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>const</key> + <value>fc/samp_rate_out*(2*math.pi)/1e6</value> </param> - </block> - <block> - <key>parameter</key> <param> - <key>id</key> - <value>samp_rate_in</value> + <key>affinity</key> + <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>label</key> - <value>samp_rate_in</value> + <key>_coordinate</key> + <value>(432, 220)</value> </param> <param> - <key>value</key> - <value>1625000.0/6.0*4.0</value> + <key>_rotation</key> + <value>0</value> </param> <param> - <key>type</key> - <value>eng_float</value> + <key>id</key> + <value>blocks_multiply_const_vxx_0</value> </param> <param> - <key>short_id</key> - <value></value> + <key>type</key> + <value>float</value> </param> <param> - <key>alias</key> - <value></value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>_coordinate</key> - <value>(368, 19)</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>vlen</key> + <value>1</value> </param> </block> <block> - <key>parameter</key> - <param> - <key>id</key> - <value>samp_rate_out</value> - </param> - <param> - <key>_enabled</key> - <value>False</value> - </param> + <key>blocks_multiply_const_vxx</key> <param> - <key>label</key> - <value>samp_rate_out</value> + <key>alias</key> + <value></value> </param> <param> - <key>value</key> - <value>1625000.0/6.0*4.0</value> + <key>comment</key> + <value></value> </param> <param> - <key>type</key> - <value>eng_float</value> + <key>const</key> + <value>1.0e-6*samp_rate_in/samp_rate_out</value> </param> <param> - <key>short_id</key> + <key>affinity</key> <value></value> </param> <param> - <key>alias</key> - <value></value> + <key>_enabled</key> + <value>0</value> </param> <param> <key>_coordinate</key> - <value>(592, 20)</value> + <value>(392, 331)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>pad_source</key> <param> <key>id</key> - <value>ppm_in</value> + <value>blocks_multiply_const_vxx_0_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>type</key> + <value>float</value> </param> <param> - <key>label</key> - <value>ppm_in</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>type</key> - <value>message</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> <key>vlen</key> <value>1</value> </param> + </block> + <block> + <key>parameter</key> <param> - <key>num_streams</key> - <value>1</value> + <key>alias</key> + <value></value> </param> <param> - <key>optional</key> + <key>comment</key> + <value></value> + </param> + <param> + <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> - <value>(16, 219)</value> + <value>(274, 19)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>fractional_resampler_xx</key> <param> <key>id</key> - <value>fractional_resampler_xx_0_0</value> + <value>fc</value> </param> <param> - <key>_enabled</key> - <value>False</value> + <key>label</key> + <value>fc</value> </param> <param> - <key>type</key> - <value>float</value> + <key>short_id</key> + <value></value> </param> <param> - <key>phase_shift</key> - <value>0</value> + <key>type</key> + <value>eng_float</value> </param> <param> - <key>resamp_ratio</key> - <value>samp_rate_in/samp_rate_out</value> + <key>value</key> + <value>936.6e6</value> </param> + </block> + <block> + <key>fractional_resampler_xx</key> <param> <key>alias</key> <value></value> </param> <param> - <key>affinity</key> + <key>comment</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>affinity</key> + <value></value> </param> <param> - <key>maxoutbuf</key> + <key>_enabled</key> <value>0</value> </param> <param> <key>_coordinate</key> - <value>(712, 144)</value> + <value>(592, 537)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>blocks_multiply_const_vxx</key> <param> <key>id</key> - <value>blocks_multiply_const_vxx_0</value> + <value>fractional_resampler_xx_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>type</key> - <value>float</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>const</key> - <value>fc/samp_rate_out*(2*math.pi)/1e6</value> + <key>phase_shift</key> + <value>0</value> </param> <param> - <key>vlen</key> - <value>1</value> + <key>resamp_ratio</key> + <value>samp_rate_in/samp_rate_out</value> </param> <param> + <key>type</key> + <value>complex</value> + </param> + </block> + <block> + <key>gsm_controlled_const_source_f</key> + <param> <key>alias</key> <value></value> </param> <param> - <key>affinity</key> + <key>comment</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>affinity</key> + <value></value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(416, 219)</value> + <value>(184, 220)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>fractional_resampler_xx</key> <param> <key>id</key> - <value>fractional_resampler_xx_0</value> - </param> - <param> - <key>_enabled</key> - <value>True</value> + <value>gsm_controlled_const_source_f_0</value> </param> <param> - <key>type</key> - <value>complex</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>phase_shift</key> + <key>minoutbuf</key> <value>0</value> </param> <param> - <key>resamp_ratio</key> - <value>samp_rate_in/samp_rate_out</value> + <key>constant</key> + <value>ppm</value> </param> + </block> + <block> + <key>gsm_controlled_rotator_cc</key> <param> <key>alias</key> <value></value> </param> <param> - <key>affinity</key> + <key>comment</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>affinity</key> + <value></value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(704, 304)</value> + <value>(952, 193)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>blocks_multiply_const_vxx</key> <param> <key>id</key> - <value>blocks_multiply_const_vxx_0_0</value> + <value>gsm_controlled_rotator_cc_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>maxoutbuf</key> + <value>0</value> </param> <param> - <key>type</key> - <value>float</value> + <key>minoutbuf</key> + <value>0</value> </param> <param> - <key>const</key> - <value>1.0e-6*samp_rate_in/samp_rate_out</value> + <key>phase_inc</key> + <value>0</value> </param> <param> - <key>vlen</key> - <value>1</value> + <key>samp_rate</key> + <value>samp_rate_out</value> </param> + </block> + <block> + <key>import</key> <param> <key>alias</key> <value></value> </param> <param> - <key>affinity</key> + <key>comment</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> - </param> - <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(392, 331)</value> + <value>(11, 125)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> + <param> + <key>id</key> + <value>math_imp</value> + </param> + <param> + <key>import</key> + <value>import math</value> + </param> </block> <block> <key>pad_sink</key> <param> - <key>id</key> - <value>pad_sink_1</value> + <key>comment</key> + <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>label</key> - <value>out</value> + <key>_coordinate</key> + <value>(1168, 204)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + <param> + <key>id</key> + <value>pad_sink_1</value> </param> <param> <key>type</key> <value>complex</value> </param> <param> - <key>vlen</key> - <value>1</value> + <key>label</key> + <value>out</value> </param> <param> <key>num_streams</key> @@ -509,229 +515,242 @@ <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>(1112, 331)</value> + <value>(32, 188)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>gsm_controlled_rotator_cc</key> <param> <key>id</key> - <value>gsm_controlled_rotator_cc_0</value> + <value>pad_source_0</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>label</key> + <value>in</value> </param> <param> - <key>phase_inc</key> - <value>0</value> + <key>num_streams</key> + <value>1</value> </param> <param> - <key>samp_rate</key> - <value>samp_rate_out</value> + <key>optional</key> + <value>False</value> </param> <param> - <key>alias</key> - <value></value> + <key>type</key> + <value>complex</value> </param> <param> - <key>affinity</key> + <key>vlen</key> + <value>1</value> + </param> + </block> + <block> + <key>parameter</key> + <param> + <key>alias</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> + <key>comment</key> + <value></value> </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(928, 320)</value> + <value>(496, 19)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>gsm_controlled_const_source_f</key> <param> <key>id</key> - <value>gsm_controlled_const_source_f_0</value> - </param> - <param> - <key>_enabled</key> - <value>True</value> + <value>ppm</value> </param> <param> - <key>constant</key> + <key>label</key> <value>ppm</value> </param> <param> - <key>alias</key> + <key>short_id</key> <value></value> </param> <param> - <key>affinity</key> - <value></value> + <key>type</key> + <value>eng_float</value> </param> <param> - <key>minoutbuf</key> + <key>value</key> <value>0</value> </param> + </block> + <block> + <key>pad_source</key> + <param> + <key>comment</key> + <value></value> + </param> <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(168, 219)</value> + <value>(32, 244)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>blocks_add_const_vxx</key> <param> <key>id</key> - <value>blocks_add_const_vxx_0</value> + <value>ppm_in</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>label</key> + <value>ppm_in</value> </param> <param> - <key>type</key> - <value>float</value> + <key>num_streams</key> + <value>1</value> </param> <param> - <key>const</key> - <value>samp_rate_in/samp_rate_out</value> + <key>optional</key> + <value>True</value> + </param> + <param> + <key>type</key> + <value>message</value> </param> <param> <key>vlen</key> <value>1</value> </param> + </block> + <block> + <key>parameter</key> <param> <key>alias</key> <value></value> </param> <param> - <key>affinity</key> + <key>comment</key> <value></value> </param> <param> - <key>minoutbuf</key> - <value>0</value> - </param> - <param> - <key>maxoutbuf</key> - <value>0</value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>_coordinate</key> - <value>(552, 331)</value> + <value>(368, 19)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> - </block> - <block> - <key>options</key> <param> <key>id</key> - <value>clock_offset_corrector</value> + <value>samp_rate_in</value> </param> <param> - <key>_enabled</key> - <value>True</value> + <key>label</key> + <value>samp_rate_in</value> </param> <param> - <key>title</key> - <value>Clock offset corrector</value> + <key>short_id</key> + <value></value> </param> <param> - <key>author</key> - <value>Piotr Krysik</value> + <key>type</key> + <value>eng_float</value> </param> <param> - <key>description</key> - <value></value> + <key>value</key> + <value>1625000.0/6.0*4.0</value> </param> + </block> + <block> + <key>parameter</key> <param> - <key>window_size</key> - <value>2280, 1024</value> + <key>alias</key> + <value></value> </param> <param> - <key>generate_options</key> - <value>hb</value> + <key>comment</key> + <value></value> </param> <param> - <key>category</key> - <value>GSM</value> + <key>_enabled</key> + <value>False</value> </param> <param> - <key>run_options</key> - <value>prompt</value> + <key>_coordinate</key> + <value>(592, 20)</value> </param> <param> - <key>run</key> - <value>True</value> + <key>_rotation</key> + <value>0</value> </param> <param> - <key>max_nouts</key> - <value>0</value> + <key>id</key> + <value>samp_rate_out</value> </param> <param> - <key>realtime_scheduling</key> - <value></value> + <key>label</key> + <value>samp_rate_out</value> </param> <param> - <key>alias</key> + <key>short_id</key> <value></value> </param> <param> - <key>_coordinate</key> - <value>(10, 10)</value> + <key>type</key> + <value>eng_float</value> </param> <param> - <key>_rotation</key> - <value>0</value> + <key>value</key> + <value>1625000.0/6.0*4.0</value> </param> </block> <connection> - <source_block_id>ppm_in</source_block_id> - <sink_block_id>gsm_controlled_const_source_f_0</sink_block_id> - <source_key>0</source_key> - <sink_key>constant_msg</sink_key> - </connection> - <connection> - <source_block_id>pad_source_0</source_block_id> + <source_block_id>blocks_add_const_vxx_0</source_block_id> <sink_block_id>fractional_resampler_xx_0</sink_block_id> <source_key>0</source_key> - <sink_key>0</sink_key> + <sink_key>1</sink_key> </connection> <connection> <source_block_id>blocks_multiply_const_vxx_0</source_block_id> - <sink_block_id>fractional_resampler_xx_0_0</sink_block_id> + <sink_block_id>gsm_controlled_rotator_cc_0</sink_block_id> <source_key>0</source_key> - <sink_key>0</sink_key> + <sink_key>1</sink_key> </connection> <connection> - <source_block_id>blocks_add_const_vxx_0</source_block_id> - <sink_block_id>fractional_resampler_xx_0_0</sink_block_id> + <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> - <sink_key>1</sink_key> + <sink_key>0</sink_key> </connection> <connection> <source_block_id>fractional_resampler_xx_0</source_block_id> @@ -740,28 +759,16 @@ <sink_key>0</sink_key> </connection> <connection> - <source_block_id>blocks_add_const_vxx_0</source_block_id> - <sink_block_id>fractional_resampler_xx_0</sink_block_id> - <source_key>0</source_key> - <sink_key>1</sink_key> - </connection> - <connection> - <source_block_id>blocks_multiply_const_vxx_0_0</source_block_id> - <sink_block_id>blocks_add_const_vxx_0</sink_block_id> + <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>fractional_resampler_xx_0_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>blocks_multiply_const_vxx_0</source_block_id> - <sink_block_id>gsm_controlled_rotator_cc_0</sink_block_id> + <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>1</sink_key> + <sink_key>0</sink_key> </connection> <connection> <source_block_id>gsm_controlled_rotator_cc_0</source_block_id> @@ -770,15 +777,21 @@ <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_block_id>pad_source_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>gsm_controlled_const_source_f_0</source_block_id> - <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id> + <source_block_id>pad_source_0</source_block_id> + <sink_block_id>gsm_controlled_rotator_cc_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> + <connection> + <source_block_id>ppm_in</source_block_id> + <sink_block_id>gsm_controlled_const_source_f_0</sink_block_id> + <source_key>out</source_key> + <sink_key>constant_msg</sink_key> + </connection> </flow_graph> diff --git a/python/misc_utils/clock_offset_corrector.py b/python/misc_utils/clock_offset_corrector.py index b75d682..ce222a0 100644 --- a/python/misc_utils/clock_offset_corrector.py +++ b/python/misc_utils/clock_offset_corrector.py @@ -7,10 +7,8 @@ ################################################## from gnuradio import blocks -from gnuradio import filter from gnuradio import gr from gnuradio.filter import firdes -from distutils.version import LooseVersion as version import grgsm import math @@ -41,28 +39,16 @@ class clock_offset_corrector(grgsm.hier_block): ################################################## self.gsm_controlled_rotator_cc_0 = grgsm.controlled_rotator_cc(0,samp_rate_out) self.gsm_controlled_const_source_f_0 = grgsm.controlled_const_source_f(ppm) - self.fractional_resampler_xx_0 = filter.fractional_resampler_cc(0, samp_rate_in/samp_rate_out) - self.blocks_multiply_const_vxx_0_0 = blocks.multiply_const_vff((1.0e-6*samp_rate_in/samp_rate_out, )) self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vff((fc/samp_rate_out*(2*math.pi)/1e6, )) - self.blocks_add_const_vxx_0 = blocks.add_const_vff((samp_rate_in/samp_rate_out, )) ################################################## # Connections ################################################## - self.connect((self, 0), (self.fractional_resampler_xx_0, 0)) - self.connect((self.fractional_resampler_xx_0, 0), (self.gsm_controlled_rotator_cc_0, 0)) - self.connect((self.blocks_add_const_vxx_0, 0), (self.fractional_resampler_xx_0, 1)) - self.connect((self.blocks_multiply_const_vxx_0_0, 0), (self.blocks_add_const_vxx_0, 0)) - self.connect((self.blocks_multiply_const_vxx_0, 0), (self.gsm_controlled_rotator_cc_0, 1)) - self.connect((self.gsm_controlled_rotator_cc_0, 0), (self, 0)) - self.connect((self.gsm_controlled_const_source_f_0, 0), (self.blocks_multiply_const_vxx_0_0, 0)) - self.connect((self.gsm_controlled_const_source_f_0, 0), (self.blocks_multiply_const_vxx_0, 0)) - - ################################################## - # Asynch Message Connections - ################################################## - self.msg_connect(self, "ppm_in", self.gsm_controlled_const_source_f_0, "constant_msg") - + self.msg_connect((self, 'ppm_in'), (self.gsm_controlled_const_source_f_0, 'constant_msg')) + self.connect((self.blocks_multiply_const_vxx_0, 0), (self.gsm_controlled_rotator_cc_0, 1)) + self.connect((self.gsm_controlled_const_source_f_0, 0), (self.blocks_multiply_const_vxx_0, 0)) + self.connect((self.gsm_controlled_rotator_cc_0, 0), (self, 0)) + self.connect((self, 0), (self.gsm_controlled_rotator_cc_0, 0)) def get_fc(self): return self.fc @@ -84,18 +70,11 @@ class clock_offset_corrector(grgsm.hier_block): def set_samp_rate_in(self, samp_rate_in): self.samp_rate_in = samp_rate_in self.set_samp_rate_out(self.samp_rate_in) - self.fractional_resampler_xx_0.set_resamp_ratio(self.samp_rate_in/self.samp_rate_out) - self.blocks_multiply_const_vxx_0_0.set_k((1.0e-6*self.samp_rate_in/self.samp_rate_out, )) - self.blocks_add_const_vxx_0.set_k((self.samp_rate_in/self.samp_rate_out, )) def get_samp_rate_out(self): return self.samp_rate_out def set_samp_rate_out(self, samp_rate_out): self.samp_rate_out = samp_rate_out - self.blocks_multiply_const_vxx_0.set_k((self.fc/self.samp_rate_out*(2*math.pi)/1e6, )) - self.fractional_resampler_xx_0.set_resamp_ratio(self.samp_rate_in/self.samp_rate_out) - self.blocks_multiply_const_vxx_0_0.set_k((1.0e-6*self.samp_rate_in/self.samp_rate_out, )) self.gsm_controlled_rotator_cc_0.set_samp_rate(self.samp_rate_out) - self.blocks_add_const_vxx_0.set_k((self.samp_rate_in/self.samp_rate_out, )) - + self.blocks_multiply_const_vxx_0.set_k((self.fc/self.samp_rate_out*(2*math.pi)/1e6, )) |