tvmpch_cccf

Time-varying multipath channel emulation

Variants: tvmpch_cccf

Public Functions

tvmpch_cccf tvmpch_cccf_create(unsigned int _n, float _std, float _tau)
tvmpch_cccf tvmpch_cccf_copy(tvmpch_cccf _q)
int tvmpch_cccf_destroy(tvmpch_cccf _q)
int tvmpch_cccf_reset(tvmpch_cccf _q)
int tvmpch_cccf_print(tvmpch_cccf _q)
int tvmpch_cccf_push(tvmpch_cccf _q, float complex _x)
int tvmpch_cccf_execute(tvmpch_cccf _q, float complex * _y)
int tvmpch_cccf_execute_one(tvmpch_cccf _q, float complex _x, float complex * _y)
int tvmpch_cccf_execute_block(tvmpch_cccf _q, float complex * _x, unsigned int _n, float complex * _y)

Interfaces

tvmpch_cccf tvmpch_cccf_create(unsigned int _n, float _std, float _tau)

Create time-varying multi-path channel emulator object, specifying the number of coefficients, the standard deviation of coefficients, and the coherence time. The larger the standard deviation, the more dramatic the frequency response of the channel. The shorter the coeherent time, the faster the channel effects.

  • _n : number of coefficients, 0 < _n
  • _std : standard deviation, 0 <= _std
  • _tau : normalized coherence time, 0 < _tau < 1

tvmpch_cccf tvmpch_cccf_copy(tvmpch_cccf _q)

Copy object including all internal objects and state

int tvmpch_cccf_destroy(tvmpch_cccf _q)

Destroy channel object, freeing all internal memory

int tvmpch_cccf_reset(tvmpch_cccf _q)

Reset object

int tvmpch_cccf_print(tvmpch_cccf _q)

Print channel object internals to standard output

int tvmpch_cccf_push(tvmpch_cccf _q, float complex _x)

Push sample into emulator

  • _q : channel object
  • _x : input sample

int tvmpch_cccf_execute(tvmpch_cccf _q, float complex * _y)

Compute output sample

  • _q : channel object
  • _y : output sample

int tvmpch_cccf_execute_one(tvmpch_cccf _q, float complex _x, float complex * _y)

Execute filter on one sample, equivalent to push() and execute()

  • _q : channel object
  • _x : single input sample
  • _y : pointer to single output sample

int tvmpch_cccf_execute_block(tvmpch_cccf _q, float complex * _x, unsigned int _n, float complex * _y)

Apply channel impairments on a block of samples

  • _q : channel object
  • _x : input array, shape: (_n, 1)
  • _n : input array length
  • _y : output array, shape: (_n, 1)