diff options
author | Tom | 2009-10-06 19:31:45 -0700 |
---|---|---|
committer | Tom | 2009-10-06 19:31:45 -0700 |
commit | 45286cd769e42c325b7c65a2f0a96757e2e97b97 (patch) | |
tree | a83f88ff46640e3c99ca34573a214aa58aedf555 | |
parent | dd7adee2762b62adf80c3e4fa87d42557a7a78d2 (diff) | |
download | gnuradio-45286cd769e42c325b7c65a2f0a96757e2e97b97.tar.gz gnuradio-45286cd769e42c325b7c65a2f0a96757e2e97b97.tar.bz2 gnuradio-45286cd769e42c325b7c65a2f0a96757e2e97b97.zip |
Adding accessor functions for both alpha and beta.
-rw-r--r-- | gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.cc | 3 | ||||
-rw-r--r-- | gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.h | 9 | ||||
-rw-r--r-- | gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.i | 3 | ||||
-rw-r--r-- | gnuradio-examples/grc/demod/pam_timing.grc | 373 | ||||
-rw-r--r-- | grc/blocks/gr_pfb_clock_sync.xml | 11 |
5 files changed, 273 insertions, 126 deletions
diff --git a/gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.cc b/gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.cc index 60ce5d2b3..62282fd6a 100644 --- a/gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.cc +++ b/gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.cc @@ -60,7 +60,8 @@ gr_pfb_clock_sync_ccf::gr_pfb_clock_sync_ccf (float sps, float gain, // The accumulator keeps track of overflow to increment the stride correctly. // set it here to the fractional difference based on the initial phaes // assert(init_phase <= 2*M_PI); - set_gain(gain); + set_alpha(gain); + set_beta(0.25*gain*gain); d_k = d_nfilters / 2; d_rate = 0; d_start_count = 0; diff --git a/gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.h b/gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.h index b8e0f83b6..5a6061931 100644 --- a/gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.h +++ b/gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.h @@ -98,10 +98,13 @@ public: void print_taps(); void print_diff_taps(); - void set_gain(float gain) + void set_alpha(float alpha) { - d_alpha = gain; - d_beta = 0.25*d_alpha*d_alpha; + d_alpha = alpha; + } + void set_beta(float beta) + { + d_beta = beta; } int general_work (int noutput_items, diff --git a/gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.i b/gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.i index 9defbc7cd..785915479 100644 --- a/gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.i +++ b/gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.i @@ -46,5 +46,6 @@ class gr_pfb_clock_sync_ccf : public gr_block std::vector<float> diff_channel_taps(int channel); void print_taps(); void print_diff_taps(); - void set_gain(float gain); + void set_alpha(float alpha); + void set_beta(float beta); }; diff --git a/gnuradio-examples/grc/demod/pam_timing.grc b/gnuradio-examples/grc/demod/pam_timing.grc index 8722714b8..4152d79a9 100644 --- a/gnuradio-examples/grc/demod/pam_timing.grc +++ b/gnuradio-examples/grc/demod/pam_timing.grc @@ -1,6 +1,6 @@ <?xml version='1.0' encoding='ASCII'?> <flow_graph> - <timestamp>Tue Oct 6 18:00:19 2009</timestamp> + <timestamp>Tue Oct 6 19:23:45 2009</timestamp> <block> <key>options</key> <param> @@ -368,29 +368,6 @@ </param> </block> <block> - <key>variable</key> - <param> - <key>id</key> - <value>rrctaps</value> - </param> - <param> - <key>_enabled</key> - <value>True</value> - </param> - <param> - <key>value</key> - <value>firdes.root_raised_cosine(nfilts,1.0,0.25/nfilts, .35, 11*spb*nfilts)</value> - </param> - <param> - <key>_coordinate</key> - <value>(180, 935)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - </block> - <block> <key>gr_throttle</key> <param> <key>id</key> @@ -464,37 +441,6 @@ </param> </block> <block> - <key>gr_fractional_interpolator_xx</key> - <param> - <key>id</key> - <value>gr_fractional_interpolator_xx_0</value> - </param> - <param> - <key>_enabled</key> - <value>True</value> - </param> - <param> - <key>type</key> - <value>complex</value> - </param> - <param> - <key>phase_shift</key> - <value>0.5</value> - </param> - <param> - <key>interp_ratio</key> - <value>1</value> - </param> - <param> - <key>_coordinate</key> - <value>(349, 662)</value> - </param> - <param> - <key>_rotation</key> - <value>0</value> - </param> - </block> - <block> <key>variable</key> <param> <key>id</key> @@ -577,42 +523,53 @@ </param> </block> <block> - <key>variable_slider</key> + <key>gr_add_xx</key> <param> <key>id</key> - <value>gain</value> + <value>gr_add_xx_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>label</key> - <value>Gain</value> + <key>type</key> + <value>float</value> </param> <param> - <key>value</key> - <value>0</value> + <key>num_inputs</key> + <value>2</value> </param> <param> - <key>min</key> + <key>vlen</key> + <value>1</value> + </param> + <param> + <key>_coordinate</key> + <value>(482, 130)</value> + </param> + <param> + <key>_rotation</key> <value>0</value> </param> + </block> + <block> + <key>notebook</key> <param> - <key>max</key> - <value>1</value> + <key>id</key> + <value>notebook_0</value> </param> <param> - <key>num_steps</key> - <value>1000</value> + <key>_enabled</key> + <value>True</value> </param> <param> <key>style</key> - <value>wx.SL_HORIZONTAL</value> + <value>wx.NB_TOP</value> </param> <param> - <key>converver</key> - <value>float_converter</value> + <key>labels</key> + <value>['error', 'phase', 'freq']</value> </param> <param> <key>grid_pos</key> @@ -624,7 +581,7 @@ </param> <param> <key>_coordinate</key> - <value>(757, -1)</value> + <value>(851, 531)</value> </param> <param> <key>_rotation</key> @@ -632,10 +589,56 @@ </param> </block> <block> - <key>gr_add_xx</key> + <key>variable</key> <param> <key>id</key> - <value>gr_add_xx_0</value> + <value>rrctaps</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>value</key> + <value>firdes.root_raised_cosine(nfilts,1.0,0.25/nfilts, .35, 11*spb*nfilts)</value> + </param> + <param> + <key>_coordinate</key> + <value>(110, 830)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>variable</key> + <param> + <key>id</key> + <value>initphase</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>value</key> + <value>0.5</value> + </param> + <param> + <key>_coordinate</key> + <value>(110, 913)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>gr_fractional_interpolator_xx</key> + <param> + <key>id</key> + <value>gr_fractional_interpolator_xx_0</value> </param> <param> <key>_enabled</key> @@ -643,19 +646,19 @@ </param> <param> <key>type</key> - <value>float</value> + <value>complex</value> </param> <param> - <key>num_inputs</key> - <value>2</value> + <key>phase_shift</key> + <value>initphase</value> </param> <param> - <key>vlen</key> - <value>1</value> + <key>interp_ratio</key> + <value>interpratio</value> </param> <param> <key>_coordinate</key> - <value>(482, 130)</value> + <value>(349, 662)</value> </param> <param> <key>_rotation</key> @@ -663,22 +666,42 @@ </param> </block> <block> - <key>notebook</key> + <key>variable_slider</key> <param> <key>id</key> - <value>notebook_0</value> + <value>interpratio</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> + <key>label</key> + <value></value> + </param> + <param> + <key>value</key> + <value>1</value> + </param> + <param> + <key>min</key> + <value>0</value> + </param> + <param> + <key>max</key> + <value>2</value> + </param> + <param> + <key>num_steps</key> + <value>1000</value> + </param> + <param> <key>style</key> - <value>wx.NB_TOP</value> + <value>wx.SL_HORIZONTAL</value> </param> <param> - <key>labels</key> - <value>['error', 'phase', 'freq']</value> + <key>converver</key> + <value>float_converter</value> </param> <param> <key>grid_pos</key> @@ -690,7 +713,7 @@ </param> <param> <key>_coordinate</key> - <value>(851, 531)</value> + <value>(232, 921)</value> </param> <param> <key>_rotation</key> @@ -713,7 +736,7 @@ </param> <param> <key>title</key> - <value>Scope Plot</value> + <value>Error</value> </param> <param> <key>samp_rate</key> @@ -721,7 +744,7 @@ </param> <param> <key>v_scale</key> - <value>0</value> + <value>.5</value> </param> <param> <key>t_scale</key> @@ -780,7 +803,7 @@ </param> <param> <key>v_scale</key> - <value>0</value> + <value>9</value> </param> <param> <key>t_scale</key> @@ -816,38 +839,58 @@ </param> </block> <block> - <key>gr_pfb_clock_sync_ccf</key> + <key>wxgui_scopesink2</key> <param> <key>id</key> - <value>gr_pfb_clock_sync_ccf_0</value> + <value>wxgui_scopesink2_0_0_0_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>sps</key> - <value>spb</value> + <key>type</key> + <value>float</value> </param> <param> - <key>gain</key> - <value>gain</value> + <key>title</key> + <value>Scope Plot</value> </param> <param> - <key>taps</key> - <value>rrctaps</value> + <key>samp_rate</key> + <value>samp_rate</value> </param> <param> - <key>filter_size</key> - <value>nfilts</value> + <key>v_scale</key> + <value>1.25</value> </param> <param> - <key>init_phase</key> - <value>14</value> + <key>t_scale</key> + <value>0</value> + </param> + <param> + <key>ac_couple</key> + <value>False</value> + </param> + <param> + <key>xy_mode</key> + <value>False</value> + </param> + <param> + <key>num_inputs</key> + <value>1</value> + </param> + <param> + <key>grid_pos</key> + <value></value> + </param> + <param> + <key>notebook</key> + <value>notebook_0,2</value> </param> <param> <key>_coordinate</key> - <value>(341, 777)</value> + <value>(797, 915)</value> </param> <param> <key>_rotation</key> @@ -855,58 +898,152 @@ </param> </block> <block> - <key>wxgui_scopesink2</key> + <key>variable_slider</key> <param> <key>id</key> - <value>wxgui_scopesink2_0_0_0_0</value> + <value>alpha</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> - <key>type</key> - <value>float</value> + <key>label</key> + <value>Alpha</value> </param> <param> - <key>title</key> - <value>Scope Plot</value> + <key>value</key> + <value>0</value> </param> <param> - <key>samp_rate</key> - <value>samp_rate</value> + <key>min</key> + <value>0</value> </param> <param> - <key>v_scale</key> - <value>0</value> + <key>max</key> + <value>1</value> </param> <param> - <key>t_scale</key> + <key>num_steps</key> + <value>1000</value> + </param> + <param> + <key>style</key> + <value>wx.SL_HORIZONTAL</value> + </param> + <param> + <key>converver</key> + <value>float_converter</value> + </param> + <param> + <key>grid_pos</key> + <value></value> + </param> + <param> + <key>notebook</key> + <value></value> + </param> + <param> + <key>_coordinate</key> + <value>(757, -1)</value> + </param> + <param> + <key>_rotation</key> <value>0</value> </param> + </block> + <block> + <key>variable_slider</key> <param> - <key>ac_couple</key> - <value>False</value> + <key>id</key> + <value>beta</value> </param> <param> - <key>xy_mode</key> - <value>False</value> + <key>_enabled</key> + <value>True</value> </param> <param> - <key>num_inputs</key> + <key>label</key> + <value>Beta</value> + </param> + <param> + <key>value</key> + <value>0</value> + </param> + <param> + <key>min</key> + <value>0</value> + </param> + <param> + <key>max</key> <value>1</value> </param> <param> + <key>num_steps</key> + <value>1000</value> + </param> + <param> + <key>style</key> + <value>wx.SL_HORIZONTAL</value> + </param> + <param> + <key>converver</key> + <value>float_converter</value> + </param> + <param> <key>grid_pos</key> <value></value> </param> <param> <key>notebook</key> - <value>notebook_0,2</value> + <value></value> </param> <param> <key>_coordinate</key> - <value>(797, 915)</value> + <value>(871, 0)</value> + </param> + <param> + <key>_rotation</key> + <value>0</value> + </param> + </block> + <block> + <key>gr_pfb_clock_sync_ccf</key> + <param> + <key>id</key> + <value>gr_pfb_clock_sync_ccf_0</value> + </param> + <param> + <key>_enabled</key> + <value>True</value> + </param> + <param> + <key>sps</key> + <value>spb</value> + </param> + <param> + <key>alpha</key> + <value>alpha</value> + </param> + <param> + <key>beta</key> + <value>beta</value> + </param> + <param> + <key>taps</key> + <value>rrctaps</value> + </param> + <param> + <key>filter_size</key> + <value>nfilts</value> + </param> + <param> + <key>init_phase</key> + <value>14</value> + </param> + <param> + <key>_coordinate</key> + <value>(346, 773)</value> </param> <param> <key>_rotation</key> diff --git a/grc/blocks/gr_pfb_clock_sync.xml b/grc/blocks/gr_pfb_clock_sync.xml index 3a066c23c..c9487f52c 100644 --- a/grc/blocks/gr_pfb_clock_sync.xml +++ b/grc/blocks/gr_pfb_clock_sync.xml @@ -8,7 +8,7 @@ <name>Polyphase Clock Sync</name> <key>gr_pfb_clock_sync_ccf</key> <import>from gnuradio import gr</import> - <make>gr.pfb_clock_sync_ccf($sps, $gain, $taps, $filter_size, $init_phase)</make> + <make>gr.pfb_clock_sync_ccf($sps, $alpha, $taps, $filter_size, $init_phase)</make> <callback>set_taps($taps)</callback> <callback>set_gain($gain)</callback> @@ -18,8 +18,13 @@ <type>real</type> </param> <param> - <name>Gain</name> - <key>gain</key> + <name>Alpha</name> + <key>alpha</key> + <type>real</type> + </param> + <param> + <name>Beta</name> + <key>beta</key> <type>real</type> </param> <param> |