23 #ifndef INCLUDED_GRI_AGC_FF_H
24 #define INCLUDED_GRI_AGC_FF_H
38 float gain = 1.0,
float max_gain = 0.0)
39 : _rate(rate), _reference(reference), _gain(gain), _max_gain(max_gain) {};
41 float rate ()
const {
return _rate; }
43 float gain ()
const {
return _gain; }
52 float output = input * _gain;
53 _gain += (_reference - fabsf (output)) * _rate;
54 if (_max_gain > 0.0 && _gain > _max_gain)
59 void scaleN (
float output[],
const float input[],
unsigned n){
60 for (
unsigned i = 0; i < n; i++)
61 output[i] = scale (input[i]);
high performance Automatic Gain Control class
Definition: gri_agc_ff.h:34
float scale(float input)
Definition: gri_agc_ff.h:51
float _gain
Definition: gri_agc_ff.h:67
float gain() const
Definition: gri_agc_ff.h:43
float max_gain() const
Definition: gri_agc_ff.h:44
float reference() const
Definition: gri_agc_ff.h:42
void set_reference(float reference)
Definition: gri_agc_ff.h:47
gri_agc_ff(float rate=1e-4, float reference=1.0, float gain=1.0, float max_gain=0.0)
Definition: gri_agc_ff.h:37
void scaleN(float output[], const float input[], unsigned n)
Definition: gri_agc_ff.h:59
float _rate
Definition: gri_agc_ff.h:65
float rate() const
Definition: gri_agc_ff.h:41
#define GR_CORE_API
Definition: gr_core_api.h:30
float _reference
Definition: gri_agc_ff.h:66
float _max_gain
Definition: gri_agc_ff.h:68
void set_max_gain(float max_gain)
Definition: gri_agc_ff.h:49
void set_gain(float gain)
Definition: gri_agc_ff.h:48
void set_rate(float rate)
Definition: gri_agc_ff.h:46