23 #ifndef INCLUDED_GRI_AGC_CC_H
24 #define INCLUDED_GRI_AGC_CC_H
39 float gain = 1.0,
float max_gain = 0.0)
40 : _rate(rate), _reference(reference),
41 _gain(gain), _max_gain(max_gain) {};
43 float rate ()
const {
return _rate; }
45 float gain ()
const {
return _gain; }
56 _gain += _rate * (_reference - sqrt(output.real()*output.real() +
57 output.imag()*output.imag()));
58 if (_max_gain > 0.0 && _gain > _max_gain)
64 for (
unsigned i = 0; i < n; i++)
65 output[i] = scale (input[i]);
float rate() const
Definition: gri_agc_cc.h:43
void scaleN(gr_complex output[], const gr_complex input[], unsigned n)
Definition: gri_agc_cc.h:63
void set_rate(float rate)
Definition: gri_agc_cc.h:48
#define GR_CORE_API
Definition: gr_core_api.h:30
gr_complex scale(gr_complex input)
Definition: gri_agc_cc.h:53
std::complex< float > gr_complex
Definition: gr_complex.h:26
gri_agc_cc(float rate=1e-4, float reference=1.0, float gain=1.0, float max_gain=0.0)
Definition: gri_agc_cc.h:38
high performance Automatic Gain Control class
Definition: gri_agc_cc.h:35
void set_reference(float reference)
Definition: gri_agc_cc.h:49
float _max_gain
Definition: gri_agc_cc.h:72
float max_gain() const
Definition: gri_agc_cc.h:46
float reference() const
Definition: gri_agc_cc.h:44
float gain() const
Definition: gri_agc_cc.h:45
float _reference
Definition: gri_agc_cc.h:70
float _gain
Definition: gri_agc_cc.h:71
float _rate
Definition: gri_agc_cc.h:69
void set_gain(float gain)
Definition: gri_agc_cc.h:50
void set_max_gain(float max_gain)
Definition: gri_agc_cc.h:51