summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom2009-10-06 19:31:45 -0700
committerTom2009-10-06 19:31:45 -0700
commit45286cd769e42c325b7c65a2f0a96757e2e97b97 (patch)
treea83f88ff46640e3c99ca34573a214aa58aedf555
parentdd7adee2762b62adf80c3e4fa87d42557a7a78d2 (diff)
downloadgnuradio-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.cc3
-rw-r--r--gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.h9
-rw-r--r--gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.i3
-rw-r--r--gnuradio-examples/grc/demod/pam_timing.grc373
-rw-r--r--grc/blocks/gr_pfb_clock_sync.xml11
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>