eqrls_rrrf

Recursive least mean-squares equalization object

Variants: eqrls_cccf, eqrls_rrrf

Public Functions

eqrls_rrrf eqrls_rrrf_create(float * _h, unsigned int _n)
eqrls_rrrf eqrls_rrrf_recreate(eqrls_rrrf _q, float * _h, unsigned int _n)
eqrls_rrrf eqrls_rrrf_copy(eqrls_rrrf _q)
int eqrls_rrrf_destroy(eqrls_rrrf _q)
int eqrls_rrrf_reset(eqrls_rrrf _q)
int eqrls_rrrf_print(eqrls_rrrf _q)
float eqrls_rrrf_get_bw(eqrls_rrrf _q)
int eqrls_rrrf_set_bw(eqrls_rrrf _q, float _mu)
int eqrls_rrrf_push(eqrls_rrrf _q, float _x)
int eqrls_rrrf_execute(eqrls_rrrf _q, float * _y)
int eqrls_rrrf_step(eqrls_rrrf _q, float _d, float _d_hat)
int eqrls_rrrf_get_weights(eqrls_rrrf _q, float * _w)
int eqrls_rrrf_train(eqrls_rrrf _q, float * _w, float * _x, float * _d, unsigned int _n)

Interfaces

eqrls_rrrf eqrls_rrrf_create(float * _h, unsigned int _n)

Create RLS EQ initialized with external coefficients

  • _h : filter coefficients; set to NULL for {1,0,0...}, shape: (_n, 1)
  • _n : filter length

eqrls_rrrf eqrls_rrrf_recreate(eqrls_rrrf _q, float * _h, unsigned int _n)

Re-create EQ initialized with external coefficients

  • _q : equalizer object
  • _h : filter coefficients (NULL for {1,0,0...}), shape: (_n, 1)
  • _n : filter length

eqrls_rrrf eqrls_rrrf_copy(eqrls_rrrf _q)

Copy object including all internal objects and state

int eqrls_rrrf_destroy(eqrls_rrrf _q)

Destroy equalizer object, freeing all internal memory

int eqrls_rrrf_reset(eqrls_rrrf _q)

Reset equalizer object, clearing internal state

int eqrls_rrrf_print(eqrls_rrrf _q)

Print equalizer internal state

float eqrls_rrrf_get_bw(eqrls_rrrf _q)

Get equalizer learning rate

int eqrls_rrrf_set_bw(eqrls_rrrf _q, float _mu)

Set equalizer learning rate

  • _q : equalizer object
  • _mu : learning rate, 0 < _mu

int eqrls_rrrf_push(eqrls_rrrf _q, float _x)

Push sample into equalizer internal buffer

  • _q : equalizer object
  • _x : input sample

int eqrls_rrrf_execute(eqrls_rrrf _q, float * _y)

Execute internal dot product and return result

  • _q : equalizer object
  • _y : output sample

int eqrls_rrrf_step(eqrls_rrrf _q, float _d, float _d_hat)

Step through one cycle of equalizer training

  • _q : equalizer object
  • _d : desired output
  • _d_hat : actual output

int eqrls_rrrf_get_weights(eqrls_rrrf _q, float * _w)

Get equalizer's internal coefficients

  • _q : equalizer object
  • _w : weights, shape: (_p, 1)

int eqrls_rrrf_train(eqrls_rrrf _q, float * _w, float * _x, float * _d, unsigned int _n)

Train equalizer object on group of samples

  • _q : equalizer object
  • _w : input/output weights, shape: (_p, 1)
  • _x : received sample vector, shape: (_n, 1)
  • _d : desired output vector, shape: (_n, 1)
  • _n : input, output vector length