diff options
author | Tom Rondeau <trondeau@vt.edu> | 2011-01-17 17:00:13 -0500 |
---|---|---|
committer | Tom Rondeau <trondeau@vt.edu> | 2011-01-17 17:00:13 -0500 |
commit | 31bbbec88b19230eb37b197d7623c3671e57837e (patch) | |
tree | f081bf733ddbab9aceeff7d82585a142b4687463 /gnuradio-core/src/lib | |
parent | 328b0761c6266d746cd15dae87e0c838b5e0acfc (diff) | |
parent | f294603db32348e1f8fd0de18adf7b74db915d93 (diff) |
Merge branch 'master' into next
* master:
Adding new accessor for Goertzel filter to GRC block. Thanks to Marcus Leech for the last three modifications.
Adding accessors to Goertzel filter GR block to call setparms from implementation file for (re)setting parameters.
Adding accessor function to Goertzel filter implementaiton to set/reset its parameters.
Diffstat (limited to 'gnuradio-core/src/lib')
-rw-r--r-- | gnuradio-core/src/lib/filter/gr_goertzel_fc.cc | 18 | ||||
-rw-r--r-- | gnuradio-core/src/lib/filter/gr_goertzel_fc.h | 7 | ||||
-rw-r--r-- | gnuradio-core/src/lib/filter/gr_goertzel_fc.i | 6 | ||||
-rw-r--r-- | gnuradio-core/src/lib/filter/gri_goertzel.cc | 10 | ||||
-rw-r--r-- | gnuradio-core/src/lib/filter/gri_goertzel.h | 3 |
5 files changed, 38 insertions, 6 deletions
diff --git a/gnuradio-core/src/lib/filter/gr_goertzel_fc.cc b/gnuradio-core/src/lib/filter/gr_goertzel_fc.cc index a93751b2f0..938a522f40 100644 --- a/gnuradio-core/src/lib/filter/gr_goertzel_fc.cc +++ b/gnuradio-core/src/lib/filter/gr_goertzel_fc.cc @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2006,2010 Free Software Foundation, Inc. + * Copyright 2006,2010,2011 Free Software Foundation, Inc. * * This file is part of GNU Radio * @@ -42,6 +42,8 @@ gr_goertzel_fc::gr_goertzel_fc(int rate, int len, float freq) d_goertzel(rate, len, freq) { d_len = len; + d_rate = rate; + d_freq = freq; } int gr_goertzel_fc::work(int noutput_items, @@ -58,3 +60,17 @@ int gr_goertzel_fc::work(int noutput_items, return noutput_items; } + +void +gr_goertzel_fc::set_freq(float freq) +{ + d_freq = freq; + d_goertzel.gri_setparms(d_rate, d_len, d_freq); +} + +void +gr_goertzel_fc::set_rate(int rate) +{ + d_rate = rate; + d_goertzel.gri_setparms(d_rate, d_len, d_freq); +} diff --git a/gnuradio-core/src/lib/filter/gr_goertzel_fc.h b/gnuradio-core/src/lib/filter/gr_goertzel_fc.h index 9518c5c927..c60b63d882 100644 --- a/gnuradio-core/src/lib/filter/gr_goertzel_fc.h +++ b/gnuradio-core/src/lib/filter/gr_goertzel_fc.h @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2006 Free Software Foundation, Inc. + * Copyright 2006,2011 Free Software Foundation, Inc. * * This file is part of GNU Radio * @@ -44,11 +44,16 @@ private: gr_goertzel_fc(int rate, int len, float freq); gri_goertzel d_goertzel; int d_len; + float d_freq; + int d_rate; public: int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); + + void set_freq (float freq); + void set_rate (int rate); }; #endif /* INCLUDED_GR_GOERTZEL_FC_H */ diff --git a/gnuradio-core/src/lib/filter/gr_goertzel_fc.i b/gnuradio-core/src/lib/filter/gr_goertzel_fc.i index 4cbc1dece3..775c78cc8e 100644 --- a/gnuradio-core/src/lib/filter/gr_goertzel_fc.i +++ b/gnuradio-core/src/lib/filter/gr_goertzel_fc.i @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2006 Free Software Foundation, Inc. + * Copyright 2006,2011 Free Software Foundation, Inc. * * This file is part of GNU Radio * @@ -28,4 +28,8 @@ class gr_goertzel_fc : public gr_sync_decimator { private: gr_goertzel_fc(); + +public: + void set_freq (float freq); + void set_rate (int rate); }; diff --git a/gnuradio-core/src/lib/filter/gri_goertzel.cc b/gnuradio-core/src/lib/filter/gri_goertzel.cc index f0314e4004..85e66c069b 100644 --- a/gnuradio-core/src/lib/filter/gri_goertzel.cc +++ b/gnuradio-core/src/lib/filter/gri_goertzel.cc @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2002 Free Software Foundation, Inc. + * Copyright 2002,2011 Free Software Foundation, Inc. * * This file is part of GNU Radio * @@ -26,15 +26,21 @@ gri_goertzel::gri_goertzel(int rate, int len, float freq) { + gri_setparms(rate, len, freq); +} + +void +gri_goertzel::gri_setparms(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 gri_goertzel::batch(float *in) diff --git a/gnuradio-core/src/lib/filter/gri_goertzel.h b/gnuradio-core/src/lib/filter/gri_goertzel.h index 86d3d34d36..e062f000e0 100644 --- a/gnuradio-core/src/lib/filter/gri_goertzel.h +++ b/gnuradio-core/src/lib/filter/gri_goertzel.h @@ -1,6 +1,6 @@ /* -*- c++ -*- */ /* - * Copyright 2006 Free Software Foundation, Inc. + * Copyright 2006,2011 Free Software Foundation, Inc. * * This file is part of GNU Radio * @@ -34,6 +34,7 @@ class gri_goertzel public: gri_goertzel() {} gri_goertzel(int rate, int len, float freq); + void gri_setparms(int rate, int len, float freq); // Process a input array gr_complex batch(float *in); |