diff options
Diffstat (limited to 'gr-fft/lib/fft_impl_goertzel.cc')
-rw-r--r-- | gr-fft/lib/fft_impl_goertzel.cc | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/gr-fft/lib/fft_impl_goertzel.cc b/gr-fft/lib/fft_impl_goertzel.cc deleted file mode 100644 index b008d0481..000000000 --- a/gr-fft/lib/fft_impl_goertzel.cc +++ /dev/null @@ -1,78 +0,0 @@ -/* -*- c++ -*- */ -/* - * Copyright 2002,2011,2012 Free Software Foundation, Inc. - * - * This file is part of GNU Radio - * - * GNU Radio is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. - * - * GNU Radio is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GNU Radio; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, - * Boston, MA 02110-1301, USA. - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <cmath> -#include <fft/fft_impl_goertzel.h> - -fft_impl_goertzel::fft_impl_goertzel(int rate, int len, float freq) -{ - set_params(rate, len, freq); -} - -void -fft_impl_goertzel::set_params(int rate, int len, float freq) -{ - d_d1 = 0.0; - d_d2 = 0.0; - - float w = 2.0*M_PI*freq/rate; - d_wr = 2.0*std::cos(w); - d_wi = std::sin(w); - d_len = len; - d_processed = 0; - -} - -gr_complex -fft_impl_goertzel::batch(float *in) -{ - d_d1 = 0.0; - d_d2 = 0.0; - - for(int i = 0; i < d_len; i++) - input(in[i]); - - return output(); -} - -void -fft_impl_goertzel::input(const float &input) -{ - float y = input + d_wr*d_d1 - d_d2; - d_d2 = d_d1; - d_d1 = y; - d_processed++; -} - -gr_complex -fft_impl_goertzel::output() -{ - gr_complex out((0.5*d_wr*d_d1-d_d2)/d_len, (d_wi*d_d1)/d_len); - d_d1 = 0.0; - d_d2 = 0.0; - d_processed = 0; - return out; -} |