Puncturing
[Coded Modulation and H-ARQ]

Let $S_i,i\in\{0,1,2\}$ be the 32-bit initial values of the generator state given by

$S_0(0) = \mathrm{1E23D852} + 16s$

$S_1(0) = \mathrm{81F38A1C} + 16s$

$S_2(0) = \mathrm{FE1A133E} + 16s$

where $s$ is a seed. The seed is typically different for each transport block and each round in the HARQ protocol. It can be also used for layer 1 encryption.

The state recursions at iteration $n$ are given by

$b_0(n)=((2^{13}S_0(n-1))\oplus S_0(n-1))2^{-19}$

$b_1(n)=((2^{2}S_1(n-1))\oplus S_1(n-1))2^{-25}$

$b_2(n)=((2^{3}S_2(n-1))\oplus S_2(n-1))2^{-11}$

$S_0(n)=((S_0(n-1)\mathrm{and}\mathrm{FFFFFFFE})2^{12})\oplus b_0(n)$

$S_1(n)=((S_1(n-1)\mathrm{and}\mathrm{FFFFFFF8})2^{4})\oplus b_0(n)$

$S_2(n)=((S_2(n-1)\mathrm{and}\mathrm{FFFFFFF0})2^{17})\oplus b_0(n)$

and the output of the generator is $U(n)=S_0(n)\oplus S_1(n)\oplus S_2(n)$.

Let $N_c$ be the number of coded bits after puncturing, $N_i$ be the number of input bits and $N_{\mathrm{bps}}$ be the number bits per symbol $N_{\mathrm{bps}}\in\{2,4,6\}$. Let the input sequence be denoted $c[i],i\in\{0,1,\cdots,N_i-1\}$. The Tausworthe puncturing procedure is achieved according to the following algorithm for a rate 1/2 binary code:

1. Based on $N_c$, $N_i$ check that the rate falls between ($\frac{N_{\mathrm{bps}}}{4}$,$\frac{3N_{\mathrm{bps}}}{8}$), otherwise declare an error.

2. Set the number of punctured bits to $N_p\leftarrow (N_i-N_c)/N_{\mathrm{bps}}$.

3. Initially mark all $N_c$ coded bits to be transmitted.

4. Set the initial seed of the Tausworthe to the function value $\mathrm{s}$

5. Set $N_{i2}\leftarrow \lfloor N_i/N_{\mathrm{bps}}\rfloor $.

6. Set $i\leftarrow0$

7. Let $U(i)$ be the $i^{\mathrm{th}}$ output of the Tausworthe generator and $U'(i)=U(i)\mathrm{mod}2^{\lceil \log_2(N_{i2})\rceil}$

8. if $U'(i) < N_{i2}$ and $\mathrm{c[U'(i)]}$ is not already punctured go to 10

9. goto 7

10. Mark $c[U' + jN_{i2}])$ as punctured for $j=0,1,\cdots,N_{\mathrm{bps}}-1$.

11. Set $i\leftarrow i+1$

12. if $i<N_{i2}$ goto 7


Generated on Thu May 14 10:34:28 2009 for OPENAIR by  doxygen 1.4.7