qpacketmodem

Packet encoder/decoder

Public Functions

qpacketmodem qpacketmodem_create()
qpacketmodem qpacketmodem_copy(qpacketmodem _q)
int qpacketmodem_destroy(qpacketmodem _q)
int qpacketmodem_print(qpacketmodem _q)
int qpacketmodem_reset(qpacketmodem _q)
int qpacketmodem_configure(qpacketmodem _q, unsigned int _payload_len, crc_scheme _check, fec_scheme _fec0, fec_scheme _fec1, int _ms)
unsigned int qpacketmodem_get_frame_len(qpacketmodem _q)
unsigned int qpacketmodem_get_payload_len(qpacketmodem _q)
unsigned int qpacketmodem_get_crc(qpacketmodem _q)
unsigned int qpacketmodem_get_fec0(qpacketmodem _q)
unsigned int qpacketmodem_get_fec1(qpacketmodem _q)
unsigned int qpacketmodem_get_modscheme(qpacketmodem _q)
float qpacketmodem_get_demodulator_phase_error(qpacketmodem _q)
float qpacketmodem_get_demodulator_evm(qpacketmodem _q)
int qpacketmodem_encode_syms(qpacketmodem _q, const unsigned char * _payload, unsigned char * _syms)
int qpacketmodem_decode_syms(qpacketmodem _q, unsigned char * _syms, unsigned char * _payload)
int qpacketmodem_decode_bits(qpacketmodem _q, unsigned char * _bits, unsigned char * _payload)
int qpacketmodem_encode(qpacketmodem _q, const unsigned char * _payload, float complex * _frame)
int qpacketmodem_decode(qpacketmodem _q, float complex * _frame, unsigned char * _payload)
int qpacketmodem_decode_soft(qpacketmodem _q, float complex * _frame, unsigned char * _payload)
int qpacketmodem_decode_soft_sym(qpacketmodem _q, float complex _symbol)
int qpacketmodem_decode_soft_payload(qpacketmodem _q, unsigned char * _payload)

Interfaces

qpacketmodem qpacketmodem_create()

Create packet encoder

qpacketmodem qpacketmodem_copy(qpacketmodem _q)

Copy object including all internal objects and state

int qpacketmodem_destroy(qpacketmodem _q)

Destroy object, freeing all allocated memory

int qpacketmodem_print(qpacketmodem _q)

Print modem status to stdout

int qpacketmodem_reset(qpacketmodem _q)

Reset internal state of modem object

int qpacketmodem_configure(qpacketmodem _q, unsigned int _payload_len, crc_scheme _check, fec_scheme _fec0, fec_scheme _fec1, int _ms)

LIQUID_FEC_GOLAY2412

  • _q :
  • _payload_len :
  • _check :
  • _fec0 :
  • _fec1 : forward error-correction scheme (outer)
  • _ms : modulation scheme, e.g. LIQUID_MODEM_QPSK

unsigned int qpacketmodem_get_frame_len(qpacketmodem _q)

Get length of encoded frame in symbols

unsigned int qpacketmodem_get_payload_len(qpacketmodem _q)

Get unencoded/decoded payload length (bytes)

unsigned int qpacketmodem_get_crc(qpacketmodem _q)

Get data integrity check, e.g. LIQUID_CRC_32

unsigned int qpacketmodem_get_fec0(qpacketmodem _q)

Get inner forward error-correction scheme, e.g. LIQUID_GOLAY_2412

unsigned int qpacketmodem_get_fec1(qpacketmodem _q)

Get outer forward error-correction scheme, e.g. LIQUID_GOLAY_2412

unsigned int qpacketmodem_get_modscheme(qpacketmodem _q)

Get modulation scheme, e.g. LIQUID_MODEM_QPSK

float qpacketmodem_get_demodulator_phase_error(qpacketmodem _q)

Get demodulator phase error (instantaneous) [radians]

float qpacketmodem_get_demodulator_evm(qpacketmodem _q)

Get demodulator error-vector magnitude after frame was received

int qpacketmodem_encode_syms(qpacketmodem _q, const unsigned char * _payload, unsigned char * _syms)

encode packet into un-modulated frame symbol indices

  • _q : qpacketmodem object
  • _payload : unencoded payload bytes
  • _syms : encoded but un-modulated payload symbol indices

int qpacketmodem_decode_syms(qpacketmodem _q, unsigned char * _syms, unsigned char * _payload)

[size: frame_len x 1]

  • _q :
  • _syms :
  • _payload : recovered decoded payload bytes

int qpacketmodem_decode_bits(qpacketmodem _q, unsigned char * _bits, unsigned char * _payload)

decode packet from demodulated frame bits (soft-decision decoding)

  • _q : qpacketmodem object
  • _bits : received soft-decision bits, shape: (bps*frame_len, 1)
  • _payload : recovered decoded payload bytes

int qpacketmodem_encode(qpacketmodem _q, const unsigned char * _payload, float complex * _frame)

encode and modulate packet into modulated frame samples

  • _q : qpacketmodem object
  • _payload : unencoded payload bytes
  • _frame : encoded/modulated payload symbols

int qpacketmodem_decode(qpacketmodem _q, float complex * _frame, unsigned char * _payload)

decode packet from modulated frame samples, returning flag if CRC passed using hard-decision decoding

  • _q : qpacketmodem object
  • _frame : encoded/modulated payload symbols
  • _payload : recovered decoded payload bytes

int qpacketmodem_decode_soft(qpacketmodem _q, float complex * _frame, unsigned char * _payload)

decode packet from modulated frame samples, returning flag if CRC passed using soft-decision decoding

  • _q : qpacketmodem object
  • _frame : encoded/modulated payload symbols
  • _payload : recovered decoded payload bytes

int qpacketmodem_decode_soft_sym(qpacketmodem _q, float complex _symbol)

decode symbol from modulated frame samples, returning flag if all symbols received

  • _q : qpacketmodem object
  • _symbol : input received symbol before demodulation

int qpacketmodem_decode_soft_payload(qpacketmodem _q, unsigned char * _payload)

Decode entire packet, assuming that entire frame has been received.

  • _q : qpacketmodem object
  • _payload : output payload [bytes]