mirror of
https://github.com/brmlab/osmo-tetra.git
synced 2025-06-08 18:04:12 +02:00
add rate 8/17 RCPC for speech with STCH
This commit is contained in:
parent
e3032cd897
commit
c959894fbe
2 changed files with 13 additions and 0 deletions
|
@ -99,6 +99,7 @@ const uint8_t P_rate1_3[] = { 0, 1, 2, 3, 5, 6, 7 };
|
||||||
/* Voice */
|
/* Voice */
|
||||||
const uint8_t P_rate8_12[] = { 0, 1, 2, 4 };
|
const uint8_t P_rate8_12[] = { 0, 1, 2, 4 };
|
||||||
const uint8_t P_rate8_18[] = { 0, 1, 2, 3, 4, 5, 7, 8, 10, 11 };
|
const uint8_t P_rate8_18[] = { 0, 1, 2, 3, 4, 5, 7, 8, 10, 11 };
|
||||||
|
const uint8_t P_rate8_17[] = { 0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17, 19, 20, 22, 23 };
|
||||||
|
|
||||||
struct puncturer {
|
struct puncturer {
|
||||||
enum tetra_rcpc_puncturer type;
|
enum tetra_rcpc_puncturer type;
|
||||||
|
@ -177,6 +178,15 @@ static const struct puncturer punct_72_162 = {
|
||||||
.i_func = &i_func_equals,
|
.i_func = &i_func_equals,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* EN 300 395-2 Section 5.6.2.1 */
|
||||||
|
static const struct puncturer punct_38_80 = {
|
||||||
|
.type = TETRA_RCPC_PUNCT_72_162,
|
||||||
|
.P = P_rate8_17,
|
||||||
|
.t = 17,
|
||||||
|
.period = 24,
|
||||||
|
.i_func = &i_func_equals,
|
||||||
|
};
|
||||||
|
|
||||||
static const struct puncturer *tetra_puncts[] = {
|
static const struct puncturer *tetra_puncts[] = {
|
||||||
[TETRA_RCPC_PUNCT_2_3] = &punct_2_3,
|
[TETRA_RCPC_PUNCT_2_3] = &punct_2_3,
|
||||||
[TETRA_RCPC_PUNCT_1_3] = &punct_1_3,
|
[TETRA_RCPC_PUNCT_1_3] = &punct_1_3,
|
||||||
|
@ -184,6 +194,7 @@ static const struct puncturer *tetra_puncts[] = {
|
||||||
[TETRA_RCPC_PUNCT_148_432] = &punct_148_432,
|
[TETRA_RCPC_PUNCT_148_432] = &punct_148_432,
|
||||||
[TETRA_RCPC_PUNCT_114_171] = &punct_114_171,
|
[TETRA_RCPC_PUNCT_114_171] = &punct_114_171,
|
||||||
[TETRA_RCPC_PUNCT_72_162] = &punct_72_162,
|
[TETRA_RCPC_PUNCT_72_162] = &punct_72_162,
|
||||||
|
[TETRA_RCPC_PUNCT_38_80] = &punct_38_80,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Puncture the mother code (in) and write 'len' symbols to out */
|
/* Puncture the mother code (in) and write 'len' symbols to out */
|
||||||
|
@ -252,6 +263,7 @@ static const struct punct_test_param punct_test_params[] = {
|
||||||
{ 288, 432, 4, TETRA_RCPC_PUNCT_2_3 }, /* SCH/F */
|
{ 288, 432, 4, TETRA_RCPC_PUNCT_2_3 }, /* SCH/F */
|
||||||
{ 114, 171, 3, TETRA_RCPC_PUNCT_114_171 }, /* Speech class 1 */
|
{ 114, 171, 3, TETRA_RCPC_PUNCT_114_171 }, /* Speech class 1 */
|
||||||
{ 72, 162, 3, TETRA_RCPC_PUNCT_72_162 }, /* Speech class 2 */
|
{ 72, 162, 3, TETRA_RCPC_PUNCT_72_162 }, /* Speech class 2 */
|
||||||
|
{ 38, 80, 3, TETRA_RCPC_PUNCT_38_80 }, /* Speech class 2 in STCH */
|
||||||
};
|
};
|
||||||
|
|
||||||
static int mother_memcmp(const uint8_t *mother, const uint8_t *depunct, int len)
|
static int mother_memcmp(const uint8_t *mother, const uint8_t *depunct, int len)
|
||||||
|
|
|
@ -20,6 +20,7 @@ enum tetra_rcpc_puncturer {
|
||||||
TETRA_RCPC_PUNCT_148_432,
|
TETRA_RCPC_PUNCT_148_432,
|
||||||
TETRA_RCPC_PUNCT_114_171,
|
TETRA_RCPC_PUNCT_114_171,
|
||||||
TETRA_RCPC_PUNCT_72_162,
|
TETRA_RCPC_PUNCT_72_162,
|
||||||
|
TETRA_RCPC_PUNCT_38_80,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Puncture the mother code (in) and write 'len' symbols to out */
|
/* Puncture the mother code (in) and write 'len' symbols to out */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue