// -------------------------------------------------------------- #ifndef AGC_H #define AGC_H #include #include "radio_types.h" #include "statistics.h" // -------------------------------------------------------------- // Types // -------------------------------------------------------------- typedef struct _agc_t { radio_float_t w; radio_float_t w_max; radio_float_t w_min; sl_minmax_t slMax; } agc_t; // -------------------------------------------------------------- #ifdef __cplusplus extern "C" { #endif // -------------------------------------------------------------- // AGC // -------------------------------------------------------------- // Scalar version void AGC_Init(agc_t *pObj, uint32_t windowLength, radio_float_t w_min, radio_float_t w_max); void AGC_Free(agc_t *pObj); void AGC_reset(agc_t *pObj, radio_float_t w_init); void AGC_Train(agc_t *pObj, radio_float_t e, radio_float_t mu); void AGC_Process(agc_t *pObj, radio_float_t x, radio_float_t mu, radio_float_t target); radio_float_t AGC_GetWeight(agc_t *pObj); // -------------------------------------------------------------- #ifdef __cplusplus } #endif // __cplusplus // -------------------------------------------------------------- #endif // AGC_H