aboutsummaryrefslogtreecommitdiffstats
path: root/hier_blocks
diff options
context:
space:
mode:
authorptrkrysik <ptrkrysik@gmail.com>2014-11-19 11:30:53 +0100
committerptrkrysik <ptrkrysik@gmail.com>2014-11-19 11:30:53 +0100
commit381253a1d24f1273fad2f4e0d57d75d3ac6e518d (patch)
tree2ac0ba198a88845d41626a7056b7e0508a669fae /hier_blocks
parent7a7b9b0a3a446e83703f53bea11389f030c68fde (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.grc272
-rw-r--r--hier_blocks/receiver/gsm_input.grc205
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>