GNU Radio's GSM Package
Convolutional encoding and decoding routines

Files

file  conv.h
 

Classes

struct  osmo_conv_code
 
struct  osmo_conv_encoder
 
struct  osmo_conv_decoder
 

Enumerations

enum  osmo_conv_term { CONV_TERM_FLUSH = 0, CONV_TERM_TRUNCATION, CONV_TERM_TAIL_BITING }
 

Functions

int osmo_conv_get_input_length (const struct osmo_conv_code *code, int len)
 
int osmo_conv_get_output_length (const struct osmo_conv_code *code, int len)
 
void osmo_conv_encode_init (struct osmo_conv_encoder *encoder, const struct osmo_conv_code *code)
 
void osmo_conv_encode_load_state (struct osmo_conv_encoder *encoder, const ubit_t *input)
 
int osmo_conv_encode_raw (struct osmo_conv_encoder *encoder, const ubit_t *input, ubit_t *output, int n)
 
int osmo_conv_encode_flush (struct osmo_conv_encoder *encoder, ubit_t *output)
 
int osmo_conv_encode (const struct osmo_conv_code *code, const ubit_t *input, ubit_t *output)
 
void osmo_conv_decode_init (struct osmo_conv_decoder *decoder, const struct osmo_conv_code *code, int len, int start_state)
 
void osmo_conv_decode_reset (struct osmo_conv_decoder *decoder, int start_state)
 
void osmo_conv_decode_rewind (struct osmo_conv_decoder *decoder)
 
void osmo_conv_decode_deinit (struct osmo_conv_decoder *decoder)
 
int osmo_conv_decode_scan (struct osmo_conv_decoder *decoder, const sbit_t *input, int n)
 
int osmo_conv_decode_flush (struct osmo_conv_decoder *decoder, const sbit_t *input)
 
int osmo_conv_decode_get_output (struct osmo_conv_decoder *decoder, ubit_t *output, int has_flush, int end_state)
 
int osmo_conv_decode (const struct osmo_conv_code *code, const sbit_t *input, ubit_t *output)
 

Detailed Description

Enumeration Type Documentation

◆ osmo_conv_term

possibe termination types

The termination type will determine which state the encoder/decoder can start/end with. This is mostly taken care of in the high level API call. So if you use the low level API, you must take care of making the proper calls yourself.

Enumerator
CONV_TERM_FLUSH 

Flush encoder state

CONV_TERM_TRUNCATION 

Direct truncation

CONV_TERM_TAIL_BITING 

Tail biting

Function Documentation

◆ osmo_conv_decode()

int osmo_conv_decode ( const struct osmo_conv_code code,
const sbit_t input,
ubit_t output 
)

◆ osmo_conv_decode_deinit()

void osmo_conv_decode_deinit ( struct osmo_conv_decoder decoder)

◆ osmo_conv_decode_flush()

int osmo_conv_decode_flush ( struct osmo_conv_decoder decoder,
const sbit_t input 
)

◆ osmo_conv_decode_get_output()

int osmo_conv_decode_get_output ( struct osmo_conv_decoder decoder,
ubit_t output,
int  has_flush,
int  end_state 
)

◆ osmo_conv_decode_init()

void osmo_conv_decode_init ( struct osmo_conv_decoder decoder,
const struct osmo_conv_code code,
int  len,
int  start_state 
)

◆ osmo_conv_decode_reset()

void osmo_conv_decode_reset ( struct osmo_conv_decoder decoder,
int  start_state 
)

◆ osmo_conv_decode_rewind()

void osmo_conv_decode_rewind ( struct osmo_conv_decoder decoder)

◆ osmo_conv_decode_scan()

int osmo_conv_decode_scan ( struct osmo_conv_decoder decoder,
const sbit_t input,
int  n 
)

◆ osmo_conv_encode()

int osmo_conv_encode ( const struct osmo_conv_code code,
const ubit_t input,
ubit_t output 
)

◆ osmo_conv_encode_flush()

int osmo_conv_encode_flush ( struct osmo_conv_encoder encoder,
ubit_t output 
)

◆ osmo_conv_encode_init()

void osmo_conv_encode_init ( struct osmo_conv_encoder encoder,
const struct osmo_conv_code code 
)

◆ osmo_conv_encode_load_state()

void osmo_conv_encode_load_state ( struct osmo_conv_encoder encoder,
const ubit_t input 
)

◆ osmo_conv_encode_raw()

int osmo_conv_encode_raw ( struct osmo_conv_encoder encoder,
const ubit_t input,
ubit_t output,
int  n 
)

◆ osmo_conv_get_input_length()

int osmo_conv_get_input_length ( const struct osmo_conv_code code,
int  len 
)

◆ osmo_conv_get_output_length()

int osmo_conv_get_output_length ( const struct osmo_conv_code code,
int  len 
)