osmo-gmr: Puncturing

osmo-gmr 0.2.104-2b98 Osmocom GMR-1

Files | Data Structures | Functions | Variables
Puncturing
GMR-1 Layer 1 library » Channel coding primitives

## Files
file | punct.h
| Osmocom GMR-1 puncturing header.
file | punct.c
| Osmocom GMR-1 puncturing implementation.

## Data Structures
struct | gmr1_puncturer
| structure describing a puncturing code More...

## Functions
int | gmr1_puncturer_generate (struct osmo_conv_code *code, const struct gmr1_puncturer *punct_pre, const struct gmr1_puncturer *punct_main, const struct gmr1_puncturer *punct_post, int repeat)
| Generate convolutional code puncturing array for a osmo_conv_code. More...

## Variables
const struct gmr1_puncturer | gmr1_punct_k5_12_P23
| GMR-1 P(2;3) puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_P25
| GMR-1 P(2;5) puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_Ps25
| GMR-1 Ps(2;5) puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_P311
| GMR-1 P(3;11) puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_P412
| GMR-1 P(4;12) puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_Ps412
| GMR-1 Ps(4;12) puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_P12
| GMR-1 P(1;2) puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_Ps12
| GMR-1 Ps(1;2) puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_A
| GMR-1 A puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_B
| GMR-1 B puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_C
| GMR-1 C puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_D
| GMR-1 D puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_E
| GMR-1 E puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_P38
| GMR-1 P(3;8) puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_P26
| GMR-1 P(2;6) puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_P37
| GMR-1 P(3;7) puncturing code for the K=5 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_13_P16
| GMR-1 P(1;6) puncturing code for the K=5 rate 1/3 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_13_P25
| GMR-1 P(2;5) puncturing code for the K=5 rate 1/3 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_13_P15
| GMR-1 P(1;5) puncturing code for the K=5 rate 1/3 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_13_Ps15
| GMR-1 Ps(1;5) puncturing code for the K=5 rate 1/3 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_13_P78
| GMR-1 P(7;8) puncturing code for the K=5 rate 1/3 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_15_P23
| GMR-1 P(2;3) puncturing code for the K=5 rate 1/5 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_15_P53
| GMR-1 P(5;3) puncturing code for the K=5 rate 1/5 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_15_Ps53
| GMR-1 Ps(5;3) puncturing code for the K=5 rate 1/5 conv coder.
const struct gmr1_puncturer | gmr1_punct_k7_12_P23
| GMR-1 P(2;3) puncturing code for the K=7 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k7_12_P410
| GMR-1 P(4;10) puncturing code for the K=7 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k7_12_P512
| GMR-1 P(5;12) puncturing code for the K=7 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k7_12_P116
| GMR-1 P(1;16) puncturing code for the K=7 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k7_12_P148
| GMR-1 P(1;48) puncturing code for the K=7 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k7_12_P184
| GMR-1 P(1;84) puncturing code for the K=7 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k7_12_P1152
| GMR-1 P(1;152) puncturing code for the K=7 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k7_12_P45
| GMR-1 P(4;5) puncturing code for the K=7 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k7_12_P245
| GMR-1 P2(4;5) puncturing code for the K=7 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_12_P13
| GMR-1 P(1;3) puncturing code for the K=9 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_12_P47
| GMR-1 P(4;7) puncturing code for the K=9 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_12_P34
| GMR-1 P(3;4) puncturing code for the K=9 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_12_P17
| GMR-1 P(1;7) puncturing code for the K=9 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_12_P19
| GMR-1 P(1;9) puncturing code for the K=9 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_12_P26
| GMR-1 P(2;6) puncturing code for the K=9 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_12_P110
| GMR-1 P(1;10) puncturing code for the K=9 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_12_P14
| GMR-1 P(1;4) puncturing code for the K=9 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_12_P45
| GMR-1 P(4;5) puncturing code for the K=9 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_12_P234
| GMR-1 P2(3;4) puncturing code for the K=9 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k6_14_P45
| GMR-1 P(4;5) puncturing code for the K=6 rate 1/4 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_14_P148
| GMR-1 P(14;8) puncturing code for the K=9 rate 1/4 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_14_P65
| GMR-1 P(6;5) puncturing code for the K=9 rate 1/4 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_13_P12
| GMR-1 P(1;2) puncturing code for the K=9 rate 1/3 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_13_P1213
| GMR-1 P(12;13) puncturing code for the K=9 rate 1/3 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_13_P44
| GMR-1 P(4;4) puncturing code for the K=9 rate 1/3 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_13_P33
| GMR-1 P(3;3) puncturing code for the K=9 rate 1/3 conv coder.
const struct gmr1_puncturer | gmr1_punct_k9_13_P65
| GMR-1 P(6;5) puncturing code for the K=9 rate 1/3 conv coder.
const struct gmr1_puncturer | gmr1_punct_k5_12_P23
| GMR-1 P(2;3) puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_12_P25
| GMR-1 P(2;5) puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_12_Ps25
| GMR-1 Ps(2;5) puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_12_P311
| GMR-1 P(3;11) puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_12_P412
| GMR-1 P(4;12) puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_12_Ps412
| GMR-1 Ps(4;12) puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_12_P12
| GMR-1 P(1;2) puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_12_Ps12
| GMR-1 Ps(1;2) puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_12_A
| GMR-1 A puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_12_B
| GMR-1 B puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_12_C
| GMR-1 C puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_12_D
| GMR-1 D puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_12_E
| GMR-1 E puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_12_P38
| GMR-1 P(3;8) puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_12_P26
| GMR-1 P(2;6) puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_12_P37
| GMR-1 P(3;7) puncturing code for the K=5 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_13_P16
| GMR-1 P(1;6) puncturing code for the K=5 rate 1/3 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_13_P25
| GMR-1 P(2;5) puncturing code for the K=5 rate 1/3 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_13_P15
| GMR-1 P(1;5) puncturing code for the K=5 rate 1/3 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_13_Ps15
| GMR-1 Ps(1;5) puncturing code for the K=5 rate 1/3 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_13_P78
| GMR-1 P(7;8) puncturing code for the K=5 rate 1/3 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_15_P23
| GMR-1 P(2;3) puncturing code for the K=5 rate 1/5 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_15_P53
| GMR-1 P(5;3) puncturing code for the K=5 rate 1/5 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k5_15_Ps53
| GMR-1 Ps(5;3) puncturing code for the K=5 rate 1/5 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k7_12_P23
| GMR-1 P(2;3) puncturing code for the K=7 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k7_12_P410
| GMR-1 P(4;10) puncturing code for the K=7 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k7_12_P512
| GMR-1 P(5;12) puncturing code for the K=7 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k7_12_P116
| GMR-1 P(1;16) puncturing code for the K=7 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k7_12_P148
| GMR-1 P(1;48) puncturing code for the K=7 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k7_12_P184
| GMR-1 P(1;84) puncturing code for the K=7 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k7_12_P1152
| GMR-1 P(1;152) puncturing code for the K=7 rate 1/2 conv coder.
const struct gmr1_puncturer | gmr1_punct_k7_12_P45
| GMR-1 P(4;5) puncturing code for the K=7 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k7_12_P245
| GMR-1 P2(4;5) puncturing code for the K=7 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_12_P13
| GMR-1 P(1;3) puncturing code for the K=9 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_12_P47
| GMR-1 P(4;7) puncturing code for the K=9 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_12_P34
| GMR-1 P(3;4) puncturing code for the K=9 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_12_P17
| GMR-1 P(1;7) puncturing code for the K=9 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_12_P19
| GMR-1 P(1;9) puncturing code for the K=9 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_12_P26
| GMR-1 P(2;6) puncturing code for the K=9 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_12_P110
| GMR-1 P(1;10) puncturing code for the K=9 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_12_P14
| GMR-1 P(1;4) puncturing code for the K=9 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_12_P45
| GMR-1 P(4;5) puncturing code for the K=9 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_12_P234
| GMR-1 P2(3;4) puncturing code for the K=9 rate 1/2 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k6_14_P45
| GMR-1 P(4;5) puncturing code for the K=6 rate 1/4 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_14_P148
| GMR-1 P(14;8) puncturing code for the K=9 rate 1/4 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_14_P65
| GMR-1 P(6;5) puncturing code for the K=9 rate 1/4 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_13_P12
| GMR-1 P(1;2) puncturing code for the K=9 rate 1/3 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_13_P1213
| GMR-1 P(12;13) puncturing code for the K=9 rate 1/3 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_13_P44
| GMR-1 P(4;4) puncturing code for the K=9 rate 1/3 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_13_P33
| GMR-1 P(3;3) puncturing code for the K=9 rate 1/3 conv coder. More...
const struct gmr1_puncturer | gmr1_punct_k9_13_P65
| GMR-1 P(6;5) puncturing code for the K=9 rate 1/3 conv coder. More...

## Detailed Description

## Function Documentation

## ◆ gmr1_puncturer_generate()

int gmr1_puncturer_generate | ( | struct osmo_conv_code * | code,
|  | const struct gmr1_puncturer * | punct_pre,
|  | const struct gmr1_puncturer * | punct_main,
|  | const struct gmr1_puncturer * | punct_post,
|  | int | repeat
| ) |  |

Generate convolutional code puncturing array for a osmo_conv_code.

Parameters

  [in,out] | code | The code for which to generate the puncturing array
  [in] | punct_pre | The puncturing scheme for first block (can be NULL)
  [in] | punct_main | The puncturing scheme
  [in] | punct_post | The puncturing scheme for last block (can be NULL)
  [in] | repeat | How many time to apply main punctured (0 = auto)

Returns
  0 for success, <0 for error codes.

The array is allocated with malloc and must be free'd by the caller when no longer required.

References gmr1_puncturer::L, gmr1_puncturer::mask, osmo_conv_code::N, gmr1_puncturer::N, osmo_conv_get_output_length(), osmo_conv_code::puncture, and gmr1_puncturer::r.

## Variable Documentation

## ◆ gmr1_punct_k5_12_A

const struct gmr1_puncturer gmr1_punct_k5_12_A

Initial value:
= {
.r = 0,
.L = 4,
.N = 2,
.mask = {
1, 1,
1, 1,
1, 1,
1, 1,
},
}

GMR-1 A puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_12_B

const struct gmr1_puncturer gmr1_punct_k5_12_B

Initial value:
= {
.r = 1,
.L = 4,
.N = 2,
.mask = {
1, 0,
1, 1,
1, 1,
1, 1,
},
}

GMR-1 B puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_12_C

const struct gmr1_puncturer gmr1_punct_k5_12_C

Initial value:
= {
.r = 2,
.L = 4,
.N = 2,
.mask = {
1, 0,
1, 1,
1, 0,
1, 1,
},
}

GMR-1 C puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_12_D

const struct gmr1_puncturer gmr1_punct_k5_12_D

Initial value:
= {
.r = 3,
.L = 4,
.N = 2,
.mask = {
0, 1,
1, 0,
0, 1,
1, 1,
},
}

GMR-1 D puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_12_E

const struct gmr1_puncturer gmr1_punct_k5_12_E

Initial value:
= {
.r = 1,
.L = 4,
.N = 2,
.mask = {
1, 2,
1, 1,
1, 1,
1, 1,
},
}

GMR-1 E puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_12_P12

const struct gmr1_puncturer gmr1_punct_k5_12_P12

Initial value:
= {
.r = 1,
.L = 2,
.N = 2,
.mask = {
1, 1,
1, 0,
},
}

GMR-1 P(1;2) puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_12_P23

const struct gmr1_puncturer gmr1_punct_k5_12_P23

Initial value:
= {
.r = 2,
.L = 3,
.N = 2,
.mask = {
0, 1,
1, 0,
1, 1,
},
}

GMR-1 P(2;3) puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_12_P25

const struct gmr1_puncturer gmr1_punct_k5_12_P25

Initial value:
= {
.r = 2,
.L = 5,
.N = 2,
.mask = {
1, 0,
1, 1,
1, 0,
1, 1,
1, 1,
},
}

GMR-1 P(2;5) puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_12_P26

const struct gmr1_puncturer gmr1_punct_k5_12_P26

Initial value:
= {
.r = 2,
.L = 6,
.N = 2,
.mask = {
1, 0,
1, 1,
1, 1,
1, 0,
1, 1,
1, 1,
},
}

GMR-1 P(2;6) puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_12_P311

const struct gmr1_puncturer gmr1_punct_k5_12_P311

Initial value:
= {
.r = 3,
.L = 11,
.N = 2,
.mask = {
1, 0,
1, 1,
1, 0,
1, 1,
1, 1,
1, 0,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
},
}

GMR-1 P(3;11) puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_12_P37

const struct gmr1_puncturer gmr1_punct_k5_12_P37

Initial value:
= {
.r = 3,
.L = 7,
.N = 2,
.mask = {
1, 0,
1, 1,
1, 0,
1, 1,
1, 0,
1, 1,
1, 1,
},
}

GMR-1 P(3;7) puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_12_P38

const struct gmr1_puncturer gmr1_punct_k5_12_P38

Initial value:
= {
.r = 3,
.L = 8,
.N = 2,
.mask = {
0, 1,
1, 1,
0, 1,
1, 1,
1, 1,
1, 1,
1, 0,
1, 1,
},
}

GMR-1 P(3;8) puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_12_P412

const struct gmr1_puncturer gmr1_punct_k5_12_P412

Initial value:
= {
.r = 4,
.L = 12,
.N = 2,
.mask = {
1, 0,
1, 1,
1, 0,
1, 1,
1, 0,
1, 1,
1, 0,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
},
}

GMR-1 P(4;12) puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_12_Ps12

const struct gmr1_puncturer gmr1_punct_k5_12_Ps12

Initial value:
= {
.r = 1,
.L = 2,
.N = 2,
.mask = {
1, 0,
1, 1,
},
}

GMR-1 Ps(1;2) puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_12_Ps25

const struct gmr1_puncturer gmr1_punct_k5_12_Ps25

Initial value:
= {
.r = 2,
.L = 5,
.N = 2,
.mask = {
1, 1,
1, 1,
1, 0,
1, 1,
1, 0,
},
}

GMR-1 Ps(2;5) puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_12_Ps412

const struct gmr1_puncturer gmr1_punct_k5_12_Ps412

Initial value:
= {
.r = 4,
.L = 12,
.N = 2,
.mask = {
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 0,
1, 1,
1, 0,
1, 1,
1, 0,
1, 1,
1, 0,
},
}

GMR-1 Ps(4;12) puncturing code for the K=5 rate 1/2 conv coder.

## ◆ gmr1_punct_k5_13_P15

const struct gmr1_puncturer gmr1_punct_k5_13_P15

Initial value:
= {
.r = 1,
.L = 5,
.N = 3,
.mask = {
1, 0, 1,
1, 1, 1,
1, 1, 1,
1, 1, 1,
1, 1, 1,
},
}

GMR-1 P(1;5) puncturing code for the K=5 rate 1/3 conv coder.

## ◆ gmr1_punct_k5_13_P16

const struct gmr1_puncturer gmr1_punct_k5_13_P16

Initial value:
= {
.r = 1,
.L = 6,
.N = 3,
.mask = {
1, 1, 0,
1, 1, 1,
1, 1, 1,
1, 1, 1,
1, 1, 1,
1, 1, 1,
},
}

GMR-1 P(1;6) puncturing code for the K=5 rate 1/3 conv coder.

## ◆ gmr1_punct_k5_13_P25

const struct gmr1_puncturer gmr1_punct_k5_13_P25

Initial value:
= {
.r = 2,
.L = 5,
.N = 3,
.mask = {
1, 1, 1,
1, 1, 1,
1, 0, 1,
1, 1, 1,
1, 0, 1,
},
}

GMR-1 P(2;5) puncturing code for the K=5 rate 1/3 conv coder.

## ◆ gmr1_punct_k5_13_P78

const struct gmr1_puncturer gmr1_punct_k5_13_P78

Initial value:
= {
.r = 7,
.L = 8,
.N = 3,
.mask = {
0, 0, 1,
1, 1, 0,
1, 1, 1,
0, 1, 1,
1, 1, 1,
1, 1, 0,
1, 0, 1,
1, 0, 1,
},
}

GMR-1 P(7;8) puncturing code for the K=5 rate 1/3 conv coder.

## ◆ gmr1_punct_k5_13_Ps15

const struct gmr1_puncturer gmr1_punct_k5_13_Ps15

Initial value:
= {
.r = 1,
.L = 5,
.N = 3,
.mask = {
1, 1, 1,
1, 1, 1,
1, 1, 1,
1, 1, 1,
1, 0, 1,
},
}

GMR-1 Ps(1;5) puncturing code for the K=5 rate 1/3 conv coder.

## ◆ gmr1_punct_k5_15_P23

const struct gmr1_puncturer gmr1_punct_k5_15_P23

Initial value:
= {
.r = 2,
.L = 3,
.N = 5,
.mask = {
1, 1, 1, 1, 1,
1, 1, 0, 1, 1,
1, 1, 1, 1, 0,
},
}

GMR-1 P(2;3) puncturing code for the K=5 rate 1/5 conv coder.

## ◆ gmr1_punct_k5_15_P53

const struct gmr1_puncturer gmr1_punct_k5_15_P53

Initial value:
= {
.r = 5,
.L = 3,
.N = 5,
.mask = {
1, 1, 1, 0, 1,
1, 0, 0, 1, 1,
1, 1, 1, 0, 0,
},
}

GMR-1 P(5;3) puncturing code for the K=5 rate 1/5 conv coder.

## ◆ gmr1_punct_k5_15_Ps53

const struct gmr1_puncturer gmr1_punct_k5_15_Ps53

Initial value:
= {
.r = 5,
.L = 3,
.N = 5,
.mask = {
1, 1, 1, 0, 0,
1, 0, 0, 1, 1,
1, 1, 1, 0, 1,
},
}

GMR-1 Ps(5;3) puncturing code for the K=5 rate 1/5 conv coder.

## ◆ gmr1_punct_k6_14_P45

const struct gmr1_puncturer gmr1_punct_k6_14_P45

Initial value:
= {
.r = 4,
.L = 5,
.N = 4,
.mask = {
1, 0, 1, 1,
1, 0, 1, 1,
1, 1, 1, 0,
1, 1, 1, 1,
1, 1, 1, 0,
},
}

GMR-1 P(4;5) puncturing code for the K=6 rate 1/4 conv coder.

## ◆ gmr1_punct_k7_12_P116

const struct gmr1_puncturer gmr1_punct_k7_12_P116

Initial value:
= {
.r = 1,
.L = 16,
.N = 2,
.mask = {
1, 0,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
},
}

GMR-1 P(1;16) puncturing code for the K=7 rate 1/2 conv coder.

## ◆ gmr1_punct_k7_12_P23

const struct gmr1_puncturer gmr1_punct_k7_12_P23

Initial value:
= {
.r = 2,
.L = 3,
.N = 2,
.mask = {
1, 1,
1, 0,
0, 1,
},
}

GMR-1 P(2;3) puncturing code for the K=7 rate 1/2 conv coder.

## ◆ gmr1_punct_k7_12_P245

const struct gmr1_puncturer gmr1_punct_k7_12_P245

Initial value:
= {
.r = 4,
.L = 5,
.N = 2,
.mask = {
1, 0,
0, 1,
1, 0,
0, 1,
1, 1,
},
}

GMR-1 P2(4;5) puncturing code for the K=7 rate 1/2 conv coder.

## ◆ gmr1_punct_k7_12_P410

const struct gmr1_puncturer gmr1_punct_k7_12_P410

Initial value:
= {
.r = 4,
.L = 10,
.N = 2,
.mask = {
1, 0,
1, 1,
1, 0,
1, 1,
1, 0,
1, 1,
1, 1,
1, 1,
1, 0,
1, 1,
},
}

GMR-1 P(4;10) puncturing code for the K=7 rate 1/2 conv coder.

## ◆ gmr1_punct_k7_12_P45

const struct gmr1_puncturer gmr1_punct_k7_12_P45

Initial value:
= {
.r = 4,
.L = 5,
.N = 2,
.mask = {
0, 1,
1, 1,
1, 0,
0, 1,
1, 0,
},
}

GMR-1 P(4;5) puncturing code for the K=7 rate 1/2 conv coder.

## ◆ gmr1_punct_k7_12_P512

const struct gmr1_puncturer gmr1_punct_k7_12_P512

Initial value:
= {
.r = 5,
.L = 12,
.N = 2,
.mask = {
1, 1,
1, 0,
1, 1,
1, 0,
1, 1,
1, 1,
1, 1,
1, 0,
1, 1,
1, 0,
1, 1,
1, 0,
},
}

GMR-1 P(5;12) puncturing code for the K=7 rate 1/2 conv coder.

## ◆ gmr1_punct_k9_12_P110

const struct gmr1_puncturer gmr1_punct_k9_12_P110

Initial value:
= {
.r = 1,
.L = 10,
.N = 2,
.mask = {
0, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
},
}

GMR-1 P(1;10) puncturing code for the K=9 rate 1/2 conv coder.

## ◆ gmr1_punct_k9_12_P13

const struct gmr1_puncturer gmr1_punct_k9_12_P13

Initial value:
= {
.r = 1,
.L = 3,
.N = 2,
.mask = {
1, 0,
1, 1,
1, 1,
},
}

GMR-1 P(1;3) puncturing code for the K=9 rate 1/2 conv coder.

## ◆ gmr1_punct_k9_12_P14

const struct gmr1_puncturer gmr1_punct_k9_12_P14

Initial value:
= {
.r = 1,
.L = 4,
.N = 2,
.mask = {
1, 0,
1, 1,
1, 1,
1, 1,
},
}

GMR-1 P(1;4) puncturing code for the K=9 rate 1/2 conv coder.

## ◆ gmr1_punct_k9_12_P17

const struct gmr1_puncturer gmr1_punct_k9_12_P17

Initial value:
= {
.r = 1,
.L = 7,
.N = 2,
.mask = {
1, 0,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
},
}

GMR-1 P(1;7) puncturing code for the K=9 rate 1/2 conv coder.

## ◆ gmr1_punct_k9_12_P19

const struct gmr1_puncturer gmr1_punct_k9_12_P19

Initial value:
= {
.r = 1,
.L = 9,
.N = 2,
.mask = {
0, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
1, 1,
},
}

GMR-1 P(1;9) puncturing code for the K=9 rate 1/2 conv coder.

## ◆ gmr1_punct_k9_12_P234

const struct gmr1_puncturer gmr1_punct_k9_12_P234

Initial value:
= {
.r = 3,
.L = 4,
.N = 2,
.mask = {
1, 0,
0, 1,
1, 0,
1, 1,
},
}

GMR-1 P2(3;4) puncturing code for the K=9 rate 1/2 conv coder.

## ◆ gmr1_punct_k9_12_P26

const struct gmr1_puncturer gmr1_punct_k9_12_P26

Initial value:
= {
.r = 2,
.L = 6,
.N = 2,
.mask = {
1, 0,
1, 1,
1, 1,
1, 0,
1, 1,
1, 1,
},
}

GMR-1 P(2;6) puncturing code for the K=9 rate 1/2 conv coder.

## ◆ gmr1_punct_k9_12_P34

const struct gmr1_puncturer gmr1_punct_k9_12_P34

Initial value:
= {
.r = 3,
.L = 4,
.N = 2,
.mask = {
1, 1,
1, 0,
0, 1,
1, 0,
},
}

GMR-1 P(3;4) puncturing code for the K=9 rate 1/2 conv coder.

## ◆ gmr1_punct_k9_12_P45

const struct gmr1_puncturer gmr1_punct_k9_12_P45

Initial value:
= {
.r = 4,
.L = 5,
.N = 2,
.mask = {
0, 1,
1, 1,
0, 1,
1, 0,
1, 0,
},
}

GMR-1 P(4;5) puncturing code for the K=9 rate 1/2 conv coder.

## ◆ gmr1_punct_k9_12_P47

const struct gmr1_puncturer gmr1_punct_k9_12_P47

Initial value:
= {
.r = 4,
.L = 7,
.N = 2,
.mask = {
0, 1,
1, 1,
1, 0,
1, 1,
1, 0,
1, 1,
1, 0,
},
}

GMR-1 P(4;7) puncturing code for the K=9 rate 1/2 conv coder.

## ◆ gmr1_punct_k9_13_P12

const struct gmr1_puncturer gmr1_punct_k9_13_P12

Initial value:
= {
.r = 1,
.L = 2,
.N = 3,
.mask = {
1, 1, 1,
0, 1, 1,
},
}

GMR-1 P(1;2) puncturing code for the K=9 rate 1/3 conv coder.

## ◆ gmr1_punct_k9_13_P1213

const struct gmr1_puncturer gmr1_punct_k9_13_P1213

Initial value:
= {
.r = 12,
.L = 13,
.N = 3,
.mask = {
1, 1, 0,
1, 0, 1,
0, 1, 1,
1, 1, 0,
1, 0, 1,
0, 1, 1,
1, 1, 0,
1, 0, 1,
0, 1, 1,
1, 1, 0,
1, 0, 1,
0, 1, 1,
1, 1, 1,
},
}

GMR-1 P(12;13) puncturing code for the K=9 rate 1/3 conv coder.

## ◆ gmr1_punct_k9_13_P33

const struct gmr1_puncturer gmr1_punct_k9_13_P33

Initial value:
= {
.r = 3,
.L = 3,
.N = 3,
.mask = {
0, 1, 1,
1, 0, 1,
1, 1, 0,
},
}

GMR-1 P(3;3) puncturing code for the K=9 rate 1/3 conv coder.

## ◆ gmr1_punct_k9_13_P44

const struct gmr1_puncturer gmr1_punct_k9_13_P44

Initial value:
= {
.r = 4,
.L = 4,
.N = 3,
.mask = {
1, 1, 0,
0, 1, 1,
1, 0, 1,
1, 1, 0,
},
}

GMR-1 P(4;4) puncturing code for the K=9 rate 1/3 conv coder.

## ◆ gmr1_punct_k9_13_P65

const struct gmr1_puncturer gmr1_punct_k9_13_P65

Initial value:
= {
.r = 6,
.L = 5,
.N = 3,
.mask = {
1, 0, 1,
0, 1, 1,
1, 0, 0,
0, 1, 1,
1, 1, 0,
},
}

GMR-1 P(6;5) puncturing code for the K=9 rate 1/3 conv coder.

## ◆ gmr1_punct_k9_14_P148

const struct gmr1_puncturer gmr1_punct_k9_14_P148

Initial value:
= {
.r = 14,
.L = 8,
.N = 4,
.mask = {
1, 0, 0, 1,
1, 0, 1, 0,
1, 0, 1, 0,
1, 0, 0, 1,
1, 1, 0, 1,
1, 0, 0, 1,
1, 0, 0, 1,
1, 1, 0, 1,
},
}

GMR-1 P(14;8) puncturing code for the K=9 rate 1/4 conv coder.

## ◆ gmr1_punct_k9_14_P65

const struct gmr1_puncturer gmr1_punct_k9_14_P65

Initial value:
= {
.r = 6,
.L = 5,
.N = 4,
.mask = {
0, 1, 1, 1,
1, 0, 1, 1,
1, 1, 1, 1,
0, 0, 1, 0,
1, 0, 1, 1,
},
}

GMR-1 P(6;5) puncturing code for the K=9 rate 1/4 conv coder.