eqrls_cccf

Recursive least mean-squares equalization object

Variants: eqrls_cccf, eqrls_rrrf

Public Functions

eqrls_cccf eqrls_cccf_create(float complex * _h, unsigned int _n)
eqrls_cccf eqrls_cccf_recreate(eqrls_cccf _q, float complex * _h, unsigned int _n)
eqrls_cccf eqrls_cccf_copy(eqrls_cccf _q)
int eqrls_cccf_destroy(eqrls_cccf _q)
int eqrls_cccf_reset(eqrls_cccf _q)
int eqrls_cccf_print(eqrls_cccf _q)
float eqrls_cccf_get_bw(eqrls_cccf _q)
int eqrls_cccf_set_bw(eqrls_cccf _q, float _mu)
int eqrls_cccf_push(eqrls_cccf _q, float complex _x)
int eqrls_cccf_execute(eqrls_cccf _q, float complex * _y)
int eqrls_cccf_step(eqrls_cccf _q, float complex _d, float complex _d_hat)
int eqrls_cccf_get_weights(eqrls_cccf _q, float complex * _w)
int eqrls_cccf_train(eqrls_cccf _q, float complex * _w, float complex * _x, float complex * _d, unsigned int _n)

Interfaces

eqrls_cccf eqrls_cccf_create(float complex * _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_cccf eqrls_cccf_recreate(eqrls_cccf _q, float complex * _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_cccf eqrls_cccf_copy(eqrls_cccf _q)

Copy object including all internal objects and state

int eqrls_cccf_destroy(eqrls_cccf _q)

Destroy equalizer object, freeing all internal memory

int eqrls_cccf_reset(eqrls_cccf _q)

Reset equalizer object, clearing internal state

int eqrls_cccf_print(eqrls_cccf _q)

Print equalizer internal state

float eqrls_cccf_get_bw(eqrls_cccf _q)

Get equalizer learning rate

int eqrls_cccf_set_bw(eqrls_cccf _q, float _mu)

Set equalizer learning rate

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

int eqrls_cccf_push(eqrls_cccf _q, float complex _x)

Push sample into equalizer internal buffer

  • _q : equalizer object
  • _x : input sample

int eqrls_cccf_execute(eqrls_cccf _q, float complex * _y)

Execute internal dot product and return result

  • _q : equalizer object
  • _y : output sample

int eqrls_cccf_step(eqrls_cccf _q, float complex _d, float complex _d_hat)

Step through one cycle of equalizer training

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

int eqrls_cccf_get_weights(eqrls_cccf _q, float complex * _w)

Get equalizer's internal coefficients

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

int eqrls_cccf_train(eqrls_cccf _q, float complex * _w, float complex * _x, float complex * _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