channel_cccf

Channel emulation

Public Functions

channel_cccf channel_cccf_create()
channel_cccf channel_cccf_copy(channel_cccf _q)
int channel_cccf_destroy(channel_cccf _q)
int channel_cccf_print(channel_cccf _q)
int channel_cccf_add_awgn(channel_cccf _q, float _noise_floor, float _snr)
int channel_cccf_add_carrier_offset(channel_cccf _q, float _frequency, float _phase)
int channel_cccf_add_multipath(channel_cccf _q, float complex * _h, unsigned int _h_len)
int channel_cccf_add_shadowing(channel_cccf _q, float _sigma, float _fd)
int channel_cccf_execute(channel_cccf _q, float complex _x, float complex * _y)
int channel_cccf_execute_block(channel_cccf _q, float complex * _x, unsigned int _n, float complex * _y)

Interfaces

channel_cccf channel_cccf_create()

Create channel object with default parameters

channel_cccf channel_cccf_copy(channel_cccf _q)

Copy object including all internal objects and state

int channel_cccf_destroy(channel_cccf _q)

Destroy channel object, freeing all internal memory

int channel_cccf_print(channel_cccf _q)

Print channel object internals to standard output

int channel_cccf_add_awgn(channel_cccf _q, float _noise_floor, float _snr)

Include additive white Gausss noise impairment

  • _q : channel object
  • _noise_floor : noise floor power spectral density [dB]
  • _snr : signal-to-noise ratio [dB]

int channel_cccf_add_carrier_offset(channel_cccf _q, float _frequency, float _phase)

Include carrier offset impairment

  • _q : channel object
  • _frequency : carrier frequency offset [radians/sample]
  • _phase : carrier phase offset [radians]

int channel_cccf_add_multipath(channel_cccf _q, float complex * _h, unsigned int _h_len)

Include multi-path channel impairment

  • _q : channel object
  • _h : channel coefficients (NULL for random)
  • _h_len : number of channel coefficients

int channel_cccf_add_shadowing(channel_cccf _q, float _sigma, float _fd)

Include slowly-varying shadowing impairment

  • _q : channel object
  • _sigma : standard deviation for log-normal shadowing
  • _fd : Doppler frequency, 0 <= _fd < 0.5

int channel_cccf_execute(channel_cccf _q, float complex _x, float complex * _y)

Apply channel impairments on single input sample

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

int channel_cccf_execute_block(channel_cccf _q, float complex * _x, unsigned int _n, float complex * _y)

Apply channel impairments on block of samples

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