23#ifndef _ATSC_SLICER_AGC_H_
24#define _ATSC_SLICER_AGC_H_
43 float gain() {
return _gain; }
48 float t = input * _gain;
49 float output = t - REFERENCE;
50 float error = REFERENCE - dc.filter(t);
51 _gain += error * RATE;
55 float scale(
float input)
57 float avg = dc.filter(input);
60 _gain += _gain * .99 + .01 * REFERENCE / avg;
61 return input * _gain - REFERENCE;
66 static const float REFERENCE = 1.25;
67 static const float RATE = 1.0e-5;
Automatic Gain Control class for atsc slicer.
Definition: slicer_agc_impl.h:37
gr::filter::single_pole_iir< float, float, float > dc
Definition: slicer_agc_impl.h:69
float _gain
Definition: slicer_agc_impl.h:68
float scale(float input)
Definition: slicer_agc_impl.h:46
atsci_slicer_agc()
Definition: slicer_agc_impl.h:40
float gain()
Definition: slicer_agc_impl.h:43
#define ATSC_API
Definition: gr-atsc/include/gnuradio/atsc/api.h:30