[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r4080 - gnuradio/trunk/gnuradio-core/src/lib/general
From: |
n4hy |
Subject: |
[Commit-gnuradio] r4080 - gnuradio/trunk/gnuradio-core/src/lib/general |
Date: |
Wed, 13 Dec 2006 22:20:16 -0700 (MST) |
Author: n4hy
Date: 2006-12-13 22:20:15 -0700 (Wed, 13 Dec 2006)
New Revision: 4080
Modified:
gnuradio/trunk/gnuradio-core/src/lib/general/gr_costas_loop_cc.cc
Log:
Two loop gr_costas_loop removing one if statement per sample
Modified: gnuradio/trunk/gnuradio-core/src/lib/general/gr_costas_loop_cc.cc
===================================================================
--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_costas_loop_cc.cc
2006-12-14 03:31:45 UTC (rev 4079)
+++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_costas_loop_cc.cc
2006-12-14 05:20:15 UTC (rev 4080)
@@ -98,33 +98,58 @@
float error;
gr_complex nco_out;
+
+ if (write_foptr) {
- for (int i = 0; i < noutput_items; i++){
- nco_out = gr_expj(-d_phase);
- optr[i] = iptr[i] * nco_out;
-
- error = (*this.*d_phase_detector)(optr[i]);
- if (error > 1)
- error = 1;
- else if (error < -1)
- error = -1;
-
- d_freq = d_freq + d_beta * error;
- d_phase = d_phase + d_freq + d_alpha * error;
-
- while(d_phase>M_TWOPI)
- d_phase -= M_TWOPI;
- while(d_phase<-M_TWOPI)
- d_phase += M_TWOPI;
-
- if (d_freq > d_max_freq)
- d_freq = d_max_freq;
- else if (d_freq < d_min_freq)
- d_freq = d_min_freq;
-
- if (write_foptr){
+ for (int i = 0; i < noutput_items; i++){
+ nco_out = gr_expj(-d_phase);
+ optr[i] = iptr[i] * nco_out;
+
+ error = (*this.*d_phase_detector)(optr[i]);
+ if (error > 1)
+ error = 1;
+ else if (error < -1)
+ error = -1;
+
+ d_freq = d_freq + d_beta * error;
+ d_phase = d_phase + d_freq + d_alpha * error;
+
+ while(d_phase>M_TWOPI)
+ d_phase -= M_TWOPI;
+ while(d_phase<-M_TWOPI)
+ d_phase += M_TWOPI;
+
+ if (d_freq > d_max_freq)
+ d_freq = d_max_freq;
+ else if (d_freq < d_min_freq)
+ d_freq = d_min_freq;
+
foptr[i] = gr_complex(d_freq,0);
- //foptr[i] = gr_complex(error, 0);
+ }
+ } else {
+ for (int i = 0; i < noutput_items; i++){
+ nco_out = gr_expj(-d_phase);
+ optr[i] = iptr[i] * nco_out;
+
+ error = (*this.*d_phase_detector)(optr[i]);
+ if (error > 1)
+ error = 1;
+ else if (error < -1)
+ error = -1;
+
+ d_freq = d_freq + d_beta * error;
+ d_phase = d_phase + d_freq + d_alpha * error;
+
+ while(d_phase>M_TWOPI)
+ d_phase -= M_TWOPI;
+ while(d_phase<-M_TWOPI)
+ d_phase += M_TWOPI;
+
+ if (d_freq > d_max_freq)
+ d_freq = d_max_freq;
+ else if (d_freq < d_min_freq)
+ d_freq = d_min_freq;
+
}
}
return noutput_items;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r4080 - gnuradio/trunk/gnuradio-core/src/lib/general,
n4hy <=