summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Ettus2009-10-06 17:56:38 -0700
committerMatt Ettus2009-10-06 17:56:38 -0700
commit1661deaf5732118c6cb8d0c91cdcaf4f12b80932 (patch)
tree3ebfe099fc50c2ce4be58f8294dc7f48d4f95e7a
parentd3c44ab5ea730c973588e5a590543df01372109c (diff)
parent10a573eb24a2c78c090a7a62614a8610f4ee17e1 (diff)
downloadgnuradio-1661deaf5732118c6cb8d0c91cdcaf4f12b80932.tar.gz
gnuradio-1661deaf5732118c6cb8d0c91cdcaf4f12b80932.tar.bz2
gnuradio-1661deaf5732118c6cb8d0c91cdcaf4f12b80932.zip
Merge branch 'sync' of http://gnuradio.org/git/trondeau into sync
-rw-r--r--gnuradio-core/src/lib/filter/gr_pfb_clock_sync_ccf.cc20
1 files changed, 13 insertions, 7 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 b67efc52d..79779c91c 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
@@ -209,9 +209,12 @@ gr_pfb_clock_sync_ccf::general_work (int noutput_items,
gr_complex *in = (gr_complex *) input_items[0];
gr_complex *out = (gr_complex *) output_items[0];
- float *err;
- if(ninput_items.size() == 2)
+ float *err, *outrate, *outk;
+ if(output_items.size() > 2) {
err = (float *) output_items[1];
+ outrate = (float*)output_items[2];
+ outk = (float*)output_items[3];
+ }
if (d_updated) {
d_updated = false;
@@ -230,9 +233,6 @@ gr_pfb_clock_sync_ccf::general_work (int noutput_items,
out[i] = d_filters[filtnum]->filter(&in[count]);
error = (out[i] * d_diff_filters[filtnum]->filter(&in[count])).real();
- if(ninput_items.size() == 2)
- err[i] = error;
-
d_k = d_k + d_alpha*error + d_rate;
d_rate = d_rate + d_beta*error;
while(d_k >= d_nfilters) {
@@ -247,8 +247,14 @@ gr_pfb_clock_sync_ccf::general_work (int noutput_items,
i++;
count += d_sps;
- printf("error: %f k: %f rate: %f\n",
- error, d_k, d_rate);
+ if(output_items.size() > 2) {
+ err[i] = error;
+ outrate[i] = d_rate;
+ outk[i] = d_k;
+ }
+
+ //printf("error: %f k: %f rate: %f\n",
+ // error, d_k, d_rate);
}
// Set the start index at the next entrance to the work function