diff options
Diffstat (limited to 'src/coding/gsm0503_interleaving.c')
-rw-r--r-- | src/coding/gsm0503_interleaving.c | 63 |
1 files changed, 29 insertions, 34 deletions
diff --git a/src/coding/gsm0503_interleaving.c b/src/coding/gsm0503_interleaving.c index 19e68474..b42f242d 100644 --- a/src/coding/gsm0503_interleaving.c +++ b/src/coding/gsm0503_interleaving.c @@ -29,16 +29,12 @@ /*! \addtogroup interleaving * @{ - * GSM TS 05.03 interleaving + * GSM TS 05.03 interleaving * - * This module contains interleaving / de-interleaving routines for - * various channel types, as defined in 3GPP TS 05.03 / 45.003 - */ - -/*! \file gsm0503_interleaving.c */ - -/* - * GSM xCCH interleaving and burst mapping + * This module contains interleaving / de-interleaving routines for + * various channel types, as defined in 3GPP TS 05.03 / 45.003. + * + * GSM xCCH interleaving and burst mapping: * * Interleaving: * @@ -57,7 +53,30 @@ * e(B, 58) = h_n(B) * * Where hl(B) and hn(B) are bits in burst B indicating flags. - */ + * + * GSM TCH HR/AHS interleaving and burst mapping: + * + * Interleaving: + * + * Given 288 coded input bits, form 4 blocks of 114 bits, + * where even bits of the first 2 blocks and odd bits of the last 2 blocks + * are used: + * + * i(B, j) = c(n, k) k = 0, ..., 227 + * n = 0, ..., N, N + 1, ... + * B = B_0 + 2n + b + * j, b = table[k]; + * + * Mapping on Burst: + * + * e(B, j) = i(B, j) + * e(B, 59 + j) = i(B, 57 + j) j = 0, ..., 56 + * e(B, 57) = h_l(B) + * e(B, 58) = h_n(B) + * + * Where hl(B) and hn(B) are bits in burst B indicating flags. + * + * \file gsm0503_interleaving.c */ /*! De-Interleave burst bits according to TS 05.03 4.1.4 * \param[out] cB caller-allocated output buffer for 456 soft coded bits @@ -633,30 +652,6 @@ void gsm0503_tch_fr_interleave(const ubit_t *cB, ubit_t *iB) } } -/* - * GSM TCH HR/AHS interleaving and burst mapping - * - * Interleaving: - * - * Given 288 coded input bits, form 4 blocks of 114 bits, - * where even bits of the first 2 blocks and odd bits of the last 2 blocks - * are used: - * - * i(B, j) = c(n, k) k = 0, ..., 227 - * n = 0, ..., N, N + 1, ... - * B = B_0 + 2n + b - * j, b = table[k]; - * - * Mapping on Burst: - * - * e(B, j) = i(B, j) - * e(B, 59 + j) = i(B, 57 + j) j = 0, ..., 56 - * e(B, 57) = h_l(B) - * e(B, 58) = h_n(B) - * - * Where hl(B) and hn(B) are bits in burst B indicating flags. - */ - /*! GSM TCH HR/AHS De-Interleaving and burst mapping * \param[out] cB caller-allocated buffer for 228 unpacked output bits * \param[in] iB 228 unpacked interleaved input bits */ |