osmo-gmr: TCH9 channel coding

osmo-gmr 0.2.104-2b98 Osmocom GMR-1

Files | Enumerations | Functions
TCH9 channel coding
GMR-1 Layer 1 library » Channel coder / decoders

## Files
file | tch9.h
| Osmocom GMR-1 TCH9 channel coding header.
file | tch9.c
| Osmocom GMR-1 TCH9 channel coding implementation.

## Enumerations
enum | gmr1_tch9_mode { GMR1_TCH9_2k4 , GMR1_TCH9_4k8 , GMR1_TCH9_9k6 , GMR1_TCH9_MAX }
| TCH9 possible data rates. More...

## Functions
void | gmr1_tch9_encode (ubit_t *bits_e, const uint8_t *l2, enum gmr1_tch9_mode mode, const ubit_t *bits_sacch, const ubit_t *bits_status, const ubit_t *ciph, struct gmr1_interleaver *il)
| GMR-1 TCH9 channel coder. More...
void | gmr1_tch9_decode (uint8_t *l2, sbit_t *bits_sacch, sbit_t *bits_status, const sbit_t *bits_e, enum gmr1_tch9_mode mode, const ubit_t *ciph, struct gmr1_interleaver *il, int *conv_rv)
| GMR-1 TCH9 channel decoder. More...

## Detailed Description

## Enumeration Type Documentation

## ◆ gmr1_tch9_mode

enum gmr1_tch9_mode

TCH9 possible data rates.

Enumerator
GMR1_TCH9_2k4 | TCH9 with 2.4k data rate.
GMR1_TCH9_4k8 | TCH9 with 4.8k data rate.
GMR1_TCH9_9k6 | TCH9 with 9.6k data rate.
GMR1_TCH9_MAX | Dummy value.

## Function Documentation

## ◆ gmr1_tch9_decode()

void gmr1_tch9_decode | ( | uint8_t * | l2,
|  | sbit_t * | bits_sacch,
|  | sbit_t * | bits_status,
|  | const sbit_t * | bits_e,
|  | enum gmr1_tch9_mode | mode,
|  | const ubit_t * | ciph,
|  | struct gmr1_interleaver * | il,
|  | int * | conv_rv
| ) |  |

GMR-1 TCH9 channel decoder.

Parameters

  [out] | l2 | L2 packet data
  [out] | bits_sacch | 10 saach bits demultiplexed
  [out] | bits_status | 4 status bits demultiplexed
  [in] | bits_e | 662 encoded bits of one NT9 burst
  [in] | mode | Channel encoding mode
  [in] | ciph | 658 bits of cipher stream (can be NULL)
  [in,out] | il | Inter-burst interleaver state
  [out] | conv_rv | Return of the convolutional decode (can be NULL)

L2 data size depends on the mode (18 bytes for 2k4, 30 bytes for 4k8, 60 bytes for 9k6).

## ◆ gmr1_tch9_encode()

void gmr1_tch9_encode | ( | ubit_t * | bits_e,
|  | const uint8_t * | l2,
|  | enum gmr1_tch9_mode | mode,
|  | const ubit_t * | bits_sacch,
|  | const ubit_t * | bits_status,
|  | const ubit_t * | ciph,
|  | struct gmr1_interleaver * | il
| ) |  |

GMR-1 TCH9 channel coder.

Parameters

  [out] | bits_e | 662 encoded bits of one NT9 burst
  [in] | l2 | L2 packet data
  [in] | mode | Channel encoding mode
  [in] | bits_sacch | 10 saach bits to be multiplexed
  [in] | bits_status | 4 status bits to be multiplexed
  [in] | ciph | 658 bits of cipher stream (can be NULL)
  [in,out] | il | Inter-burst interleaver state

L2 data size depends on the mode (18 bytes for 2k4, 30 bytes for 4k8, 60 bytes for 9k6).