diff options
Diffstat (limited to 'gr-analog/lib/fmdet_cf_impl.cc')
-rw-r--r-- | gr-analog/lib/fmdet_cf_impl.cc | 39 |
1 files changed, 11 insertions, 28 deletions
diff --git a/gr-analog/lib/fmdet_cf_impl.cc b/gr-analog/lib/fmdet_cf_impl.cc index 38496d189b..a9b372478a 100644 --- a/gr-analog/lib/fmdet_cf_impl.cc +++ b/gr-analog/lib/fmdet_cf_impl.cc @@ -31,8 +31,6 @@ namespace gr { namespace analog { -#define M_TWOPI (2*M_PI) - fmdet_cf::sptr fmdet_cf::make(float samplerate, float freq_low, float freq_high, float scl) @@ -46,26 +44,13 @@ namespace gr { : sync_block("fmdet_cf", io_signature::make(1, 1, sizeof(gr_complex)), io_signature::make(1, 1, sizeof(float))), - d_S1(0.1), d_S2(0.1), - d_S3(0.1), d_S4(0.1) + d_S1(0.1), d_S2(0.1), + d_S3(0.1), d_S4(0.1) { - //const float h[] = { 0.003118678733, -0.012139843428, 0.027270898036, - // -0.051318579352, 0.090406910552, -0.162926865366, - // 0.361885392563, 0.000000000000, -0.361885392563, - // 0.162926865366, -0.090406910552, 0.051318579352, - // -0.027270898036, 0.012139843428, -0.003118678733}; - - //std::vector<float> taps(15); - d_freq = 0; d_freqhi = freq_high; d_freqlo = freq_low; set_scale(scl); - - //for(int i = 0; i < 15; i++) { - //taps[i] = h[i]; - //} - // d_filter = gr_fir_util::create_gr_fir_ccf(taps); } fmdet_cf_impl::~fmdet_cf_impl() @@ -95,28 +80,26 @@ namespace gr { { const gr_complex *iptr = (gr_complex*)input_items[0]; float *optr = (float*)output_items[0]; - //const gr_complex *scaleiptr = (gr_complex*)input_items[0]; int size = noutput_items; gr_complex Sdot, S0; gr_complex S1=d_S1, S2=d_S2, S3=d_S3, S4=d_S4; - float d_8 = 8.0; while(size-- > 0) { - S0 = *iptr++; + S0 = *iptr++; - Sdot = d_scl * (-S0+d_8*S1-d_8*S2+S4); + Sdot = d_scl * (-S0 + 8.f*S1 - 8.f*S3 + S4); - d_freq = (S2.real()*Sdot.imag()-S2.imag()*Sdot.real()) / - (S2.real()*S2.real()+S2.imag()*S2.imag()); + d_freq = (S2.real()*Sdot.imag() - S2.imag()*Sdot.real()) / + (S2.real()*S2.real() + S2.imag()*S2.imag()); - S4 = S3; - S3 = S2; - S2 = S1; - S1 = S0; + S4 = S3; + S3 = S2; + S2 = S1; + S1 = S0; - *optr++ = d_freq-d_bias; + *optr++ = d_freq-d_bias; } d_S1 = S1; d_S2 = S2; |