gr_peak_detector_ib.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef INCLUDED_GR_PEAK_DETECTOR_IB_H
00026 #define INCLUDED_GR_PEAK_DETECTOR_IB_H
00027
00028 #include <gr_sync_block.h>
00029
00030 class gr_peak_detector_ib;
00031 typedef boost::shared_ptr<gr_peak_detector_ib> gr_peak_detector_ib_sptr;
00032
00033 gr_peak_detector_ib_sptr gr_make_peak_detector_ib (float threshold_factor_rise = 0.25,
00034 float threshold_factor_fall = 0.40,
00035 int look_ahead = 10,
00036 float alpha = 0.001);
00037
00060 class gr_peak_detector_ib : public gr_sync_block
00061 {
00062 friend gr_peak_detector_ib_sptr gr_make_peak_detector_ib (float threshold_factor_rise,
00063 float threshold_factor_fall,
00064 int look_ahead, float alpha);
00065
00066 gr_peak_detector_ib (float threshold_factor_rise,
00067 float threshold_factor_fall,
00068 int look_ahead, float alpha);
00069
00070 private:
00071 float d_threshold_factor_rise;
00072 float d_threshold_factor_fall;
00073 int d_look_ahead;
00074 float d_avg_alpha;
00075 float d_avg;
00076 unsigned char d_found;
00077
00078 public:
00079
00083 void set_threshold_factor_rise(float thr) { d_threshold_factor_rise = thr; }
00084
00088 void set_threshold_factor_fall(float thr) { d_threshold_factor_fall = thr; }
00089
00093 void set_look_ahead(int look) { d_look_ahead = look; }
00094
00098 void set_alpha(int alpha) { d_avg_alpha = alpha; }
00099
00103 float threshold_factor_rise() { return d_threshold_factor_rise; }
00104
00108 float threshold_factor_fall() { return d_threshold_factor_fall; }
00109
00113 int look_ahead() { return d_look_ahead; }
00114
00118 float alpha() { return d_avg_alpha; }
00119
00120 int work (int noutput_items,
00121 gr_vector_const_void_star &input_items,
00122 gr_vector_void_star &output_items);
00123 };
00124
00125 #endif