Difference between revisions of "Aufgaben:Exercise 3.8: Rate Compatible Punctured Convolutional Codes"
Line 1: | Line 1: | ||
− | {{quiz-Header|Buchseite= | + | {{quiz-Header|Buchseite=Channel_Coding/Code_Description_with_State_and_Trellis_Diagram}} |
− | [[File:P_ID2708__KC_A_3_8.png|right|frame| | + | [[File:P_ID2708__KC_A_3_8.png|right|frame|RCPC Puncturing Matrices]] |
− | + | An important application for [[Channel_Coding/Code_Description_with_State_and_Trellis_Diagram#Punctured_convolutional_codes|"punctured convolutional codes"]] are the <i>Rate Compatible Punctured Convolutional Codes</i> (or '''RCPC–Codes''' for short)proposed by [[Biographies_and_Bibliographies/Chair_of_LNT#Prof._Dr.-. Ing._Dr.-Ing._E.h._Joachim_Hagenauer_.281993-2006.29|"Joachim Hagenauer"]] in [Hag88]. Starting from a mother code $\mathcal{C}_0$ with rate $R_0 = 1/n$ other codes $\mathcal{C}_l$ with higher code rate $(R_l > R_0)$ are determined by different puncturing matrices $\mathbf{P}_l$ . | |
− | + | On the right are the puncturing matrices to be analyzed $\mathbf{P}_0, \hspace{0.05cm}\text{ ...} \hspace{0.05cm} , \ \mathbf{P}_4$ shown. | |
− | * | + | *If for the matrix $\mathbf{P}_l$ the matrix element $P_{ij} = 1$, the corresponding codebit is transmitted, while $P_{ij} = 0$ indicates puncturing. |
− | * | + | *In the questionnaire, we also use the shorter notation $P_{ij}^{(l)}$ for the element $P_{ij}$ of the matrix $\mathbf{P}_l$ . |
− | In | + | In the graph all the zeros in the matrix $\mathbf{P}_l$ that were still ones in the matrix $\mathbf{P}_{l–1}$ are marked in red. This measure increases the code rate $R_{l}$ compared to $R_{l-1}$ . |
− | + | The RCPC–codes are well suited for the realization of | |
− | * <i> | + | * <i>unequal error protection</i> for hybrid ARQ procedures, |
− | * | + | * systems with <i>incremental redundancy</i>. |
− | + | Incremental redundancy systems" means that after conventional convolutional coding, bits corresponding to the puncturing matrix $\mathbf{P}_l$ are omitted from the codeword $\underline{x}^{(0)}$ and the shortened codeword $\underline{x}^{(l)}$ is transmitted: | |
− | * | + | *If the punctured codeword cannot be correctly decoded in the receiver, the receiver requests further redundancy from the transmitter in the form of the previously punctured bits. |
− | * | + | *This prevents the transmission of redundancy that is not required and adapts the throughput to the channel conditions. |
Line 30: | Line 30: | ||
− | + | Hints: | |
− | * | + | * This exercise refers to the section [[Channel_Coding/Code_Description_with_State_and_Trellis_Diagram#Punctured_convolutional_codes|"Punctured convolutional codes"]] in the chapter "Code description with state and trellis diagram". |
− | * | + | *The reference [Hag88] refers to the paper "Hagenauer, J.: ''Rate Compatible Punctured Convolutional Codes (RCPC codes) and their Applications''. In: IEEE Transactions on Communications, vol COM-36, pp 389 - 400, 1988." |
− | * Professor [[Biographies_and_Bibliographies/ | + | *Professor [[Biographies_and_Bibliographies/Chair_of_LNT#Prof._Dr.-Ing._E.h._Joachim_Hagenauer_.281993-2006.29| Joachim Hagenauer]] was head of the Department of Communications Engineering (LNT) at the Technical University of Munich from 1993 to 2006. |
− | * | + | *The initiators of the learning tutorial you just used – Günter Söder and Klaus Eichin – thank their long-time boss for supporting and promoting our $\rm LNTwww$ project during the first six years. |
Line 42: | Line 42: | ||
− | === | + | ===Questions=== |
<quiz display=simple> | <quiz display=simple> | ||
− | { | + | {What statements do the given puncturing matrices provide? |
|type="[]"} | |type="[]"} | ||
− | + | + | + The rate of the RCPC mother code is $R_0 = 1/3$. |
− | + | + | + The puncturing period is $p = 8$. |
− | - | + | - The memory of the RCPC code class is $M = 4$. |
− | { | + | {Which code rates do the codes $\mathcal{C}_1$, ... , $\mathcal{C}_4$ have? |
|type="{}"} | |type="{}"} | ||
${\rm Matrix \ P_1} \Rightarrow {\rm Code \ \mathcal{C}_1} \text{:} \hspace{0.4cm} R_1 \ = \ ${ 0.4 3% } | ${\rm Matrix \ P_1} \Rightarrow {\rm Code \ \mathcal{C}_1} \text{:} \hspace{0.4cm} R_1 \ = \ ${ 0.4 3% } | ||
Line 57: | Line 57: | ||
${\rm Matrix \ P_4} \Rightarrow {\rm Code \ \mathcal{C}_4} \text{:} \hspace{0.4cm} R_4 \ = \ ${ 0.889 3% } | ${\rm Matrix \ P_4} \Rightarrow {\rm Code \ \mathcal{C}_4} \text{:} \hspace{0.4cm} R_4 \ = \ ${ 0.889 3% } | ||
− | { | + | {Which statements are valid for the matrix elements $P_{ij}^{(l)}$? |
|type="[]"} | |type="[]"} | ||
− | + | + | + From $P_{ij}^{(l)} = 1$ follows $P_{ij}^{(\lambda)} = 1$ for all $\lambda < l$. |
− | - | + | - From $P_{ij}^{(l)} = 1$ follows $P_{ij}^{(\lambda)} = 1$ for all $\lambda > l$. |
− | - | + | - From $P_{ij}^{(l)} = 0$ follows $P_{ij}^{(\lambda)} = 0$ for all $\lambda < l$. |
− | + | + | + From $P_{ij}^{(l)} = 0$ follows $P_{ij}^{(\lambda)} = 0$ for all $\lambda > l$. |
</quiz> | </quiz> | ||
− | === | + | ===Solution=== |
{{ML-Kopf}} | {{ML-Kopf}} | ||
− | '''(1)''' | + | '''(1)''' Correct are <u>solutions 1 and 2</u>: |
− | * | + | *The number of rows of the puncturing matrices gives the parameter $n$ of the $(n, \ k = 1)$–RCPC mother code. |
− | * | + | *From this, its rate is $R_0 = 1/3$. The column number is equal to the puncturing period $p$. For the class of codes under consideration, $p = 8$. |
− | * | + | * In contrast, the puncturing matrices do not provide any information about the memory of the code ⇒ |
− | '''(2)''' | + | '''(2)''' For the rate of the code $\mathcal{C}_l = p/N_l$, where $N_l$ denotes the number of all ones in the puncturing matrix $\mathbf{P}_l$ and $p$ denotes the puncturing period. Starting from the rate $R_0 = 1/3$ of the mother code $\mathcal{C}_0$, we obtain: |
* $R_1 = 8/20 = 2/5 = \underline{0.400}$, | * $R_1 = 8/20 = 2/5 = \underline{0.400}$, | ||
* $R_2 = 8/16 = 1/2 = \underline{0.500}$, | * $R_2 = 8/16 = 1/2 = \underline{0.500}$, | ||
Line 80: | Line 80: | ||
− | '''(3)''' | + | '''(3)''' Correct are the <u>solutions 1 and 4</u>: |
− | * | + | *All ones in the matrix $\mathbf{P}_4$ are also in the matrices $\mathbf{P}_3, \hspace{0.05cm}\text{ ...} above it. \hspace{0.05cm}, \ \mathbf{P}_0$. |
− | *In | + | *In the matrix $\mathbf{P}_3$ three ones are added compared to $\mathbf{P}_4$, in the matrix $\mathbf{P}_2$ compared to $\mathbf{P}_3$ again four, etc. |
{{ML-Fuß}} | {{ML-Fuß}} | ||
− | |||
− | |||
[[Category:Channel Coding: Exercises|^3.3 State and Trellis Diagram^]] | [[Category:Channel Coding: Exercises|^3.3 State and Trellis Diagram^]] |
Revision as of 16:01, 3 October 2022
An important application for "punctured convolutional codes" are the Rate Compatible Punctured Convolutional Codes (or RCPC–Codes for short)proposed by "Joachim Hagenauer" in [Hag88]. Starting from a mother code $\mathcal{C}_0$ with rate $R_0 = 1/n$ other codes $\mathcal{C}_l$ with higher code rate $(R_l > R_0)$ are determined by different puncturing matrices $\mathbf{P}_l$ .
On the right are the puncturing matrices to be analyzed $\mathbf{P}_0, \hspace{0.05cm}\text{ ...} \hspace{0.05cm} , \ \mathbf{P}_4$ shown.
- If for the matrix $\mathbf{P}_l$ the matrix element $P_{ij} = 1$, the corresponding codebit is transmitted, while $P_{ij} = 0$ indicates puncturing.
- In the questionnaire, we also use the shorter notation $P_{ij}^{(l)}$ for the element $P_{ij}$ of the matrix $\mathbf{P}_l$ .
In the graph all the zeros in the matrix $\mathbf{P}_l$ that were still ones in the matrix $\mathbf{P}_{l–1}$ are marked in red. This measure increases the code rate $R_{l}$ compared to $R_{l-1}$ .
The RCPC–codes are well suited for the realization of
- unequal error protection for hybrid ARQ procedures,
- systems with incremental redundancy.
Incremental redundancy systems" means that after conventional convolutional coding, bits corresponding to the puncturing matrix $\mathbf{P}_l$ are omitted from the codeword $\underline{x}^{(0)}$ and the shortened codeword $\underline{x}^{(l)}$ is transmitted:
- If the punctured codeword cannot be correctly decoded in the receiver, the receiver requests further redundancy from the transmitter in the form of the previously punctured bits.
- This prevents the transmission of redundancy that is not required and adapts the throughput to the channel conditions.
Hints:
- This exercise refers to the section "Punctured convolutional codes" in the chapter "Code description with state and trellis diagram".
- The reference [Hag88] refers to the paper "Hagenauer, J.: Rate Compatible Punctured Convolutional Codes (RCPC codes) and their Applications. In: IEEE Transactions on Communications, vol COM-36, pp 389 - 400, 1988."
- Professor Joachim Hagenauer was head of the Department of Communications Engineering (LNT) at the Technical University of Munich from 1993 to 2006.
- The initiators of the learning tutorial you just used – Günter Söder and Klaus Eichin – thank their long-time boss for supporting and promoting our $\rm LNTwww$ project during the first six years.
Questions
Solution
- The number of rows of the puncturing matrices gives the parameter $n$ of the $(n, \ k = 1)$–RCPC mother code.
- From this, its rate is $R_0 = 1/3$. The column number is equal to the puncturing period $p$. For the class of codes under consideration, $p = 8$.
- In contrast, the puncturing matrices do not provide any information about the memory of the code ⇒
(2) For the rate of the code $\mathcal{C}_l = p/N_l$, where $N_l$ denotes the number of all ones in the puncturing matrix $\mathbf{P}_l$ and $p$ denotes the puncturing period. Starting from the rate $R_0 = 1/3$ of the mother code $\mathcal{C}_0$, we obtain:
- $R_1 = 8/20 = 2/5 = \underline{0.400}$,
- $R_2 = 8/16 = 1/2 = \underline{0.500}$,
- $R_3 = 8/12 = 2/3 = \underline{0.667}$,
- $R_4 = 8/9 = \underline{0.889}$.
(3) Correct are the solutions 1 and 4:
- All ones in the matrix $\mathbf{P}_4$ are also in the matrices $\mathbf{P}_3, \hspace{0.05cm}\text{ ...} above it. \hspace{0.05cm}, \ \mathbf{P}_0$.
- In the matrix $\mathbf{P}_3$ three ones are added compared to $\mathbf{P}_4$, in the matrix $\mathbf{P}_2$ compared to $\mathbf{P}_3$ again four, etc.