Difference between revisions of "Aufgaben:Exercise 3.8: Rate Compatible Punctured Convolutional Codes"

From LNTwww
Line 1: Line 1:
{{quiz-Header|Buchseite=Kanalcodierung/Codebeschreibung mit Zustands– und Trellisdiagramm}}
+
{{quiz-Header|Buchseite=Channel_Coding/Code_Description_with_State_and_Trellis_Diagram}}
  
[[File:P_ID2708__KC_A_3_8.png|right|frame|RCPC–Punktierungsmatrizen]]
+
[[File:P_ID2708__KC_A_3_8.png|right|frame|RCPC Puncturing Matrices]]
Eine wichtige Anwendung für&nbsp; [[Channel_Coding/Codebeschreibung_mit_Zustands%E2%80%93_und_Trellisdiagramm#Punktierte_Faltungscodes| punktierte Faltungscodes]]&nbsp; sind die&nbsp; <i>Rate Compatible Punctured Convolutional Codes</i>&nbsp; (oder kurz '''RCPC&ndash;Codes'''), die von&nbsp; [[Biographies_and_Bibliographies/Lehrstuhlinhaber_des_LNT#Prof._Dr.-Ing._Dr.-Ing._E.h._Joachim_Hagenauer_.281993-2006.29|Joachim Hagenauer]]&nbsp; in [Hag88] vorgeschlagen wurden. Ausgehend von einem Muttercode&nbsp; $\mathcal{C}_0$&nbsp; mit der Rate&nbsp; $R_0 = 1/n$&nbsp; werden durch verschiedene Punktierungsmatrizen&nbsp; $\mathbf{P}_l$&nbsp; andere Codes&nbsp; $\mathcal{C}_l$&nbsp; mit höherer Coderate&nbsp; $(R_l > R_0)$ festgelegt.
+
An important application for&nbsp; [[Channel_Coding/Code_Description_with_State_and_Trellis_Diagram#Punctured_convolutional_codes|"punctured convolutional codes"]]&nbsp; are the&nbsp; <i>Rate Compatible Punctured Convolutional Codes</i>&nbsp; (or '''RCPC&ndash;Codes''' for short)proposed by&nbsp; [[Biographies_and_Bibliographies/Chair_of_LNT#Prof._Dr.-. Ing._Dr.-Ing._E.h._Joachim_Hagenauer_.281993-2006.29|"Joachim Hagenauer"]]&nbsp; in [Hag88]. Starting from a mother code&nbsp; $\mathcal{C}_0$&nbsp; with rate&nbsp; $R_0 = 1/n$&nbsp; other codes&nbsp; $\mathcal{C}_l$&nbsp; with higher code rate&nbsp; $(R_l > R_0)$ are determined by different puncturing matrices&nbsp; $\mathbf{P}_l$&nbsp;.
  
Rechts sind die zu analysierenden Punktierungsmatrizen&nbsp; $\mathbf{P}_0, \hspace{0.05cm}\text{ ...} \hspace{0.05cm} , \ \mathbf{P}_4$&nbsp; dargestellt.  
+
On the right are the puncturing matrices to be analyzed&nbsp; $\mathbf{P}_0, \hspace{0.05cm}\text{ ...} \hspace{0.05cm} , \ \mathbf{P}_4$&nbsp; shown.  
*Ist bei der Matrix&nbsp; $\mathbf{P}_l$&nbsp; das Matrixelement&nbsp; $P_{ij} = 1$, so wird das entsprechende Codebit übertragen, während&nbsp; $P_{ij} = 0$&nbsp; auf eine Punktierung hinweist.  
+
*If for the matrix&nbsp; $\mathbf{P}_l$&nbsp; the matrix element&nbsp; $P_{ij} = 1$, the corresponding codebit is transmitted, while&nbsp; $P_{ij} = 0$&nbsp; indicates puncturing.  
*Im Fragebogen verwenden wir für das Element&nbsp; $P_{ij}$&nbsp; der Matrix&nbsp; $\mathbf{P}_l$&nbsp; auch die kürzere Schreibweise&nbsp; $P_{ij}^{(l)}$.
+
*In the questionnaire, we also use the shorter notation&nbsp; $P_{ij}^{(l)}$ for the element&nbsp; $P_{ij}$&nbsp; of the matrix&nbsp; $\mathbf{P}_l$&nbsp;.
  
  
In der Grafik sind alle die Nullen in der Matrix&nbsp; $\mathbf{P}_l$&nbsp; rot markiert, die in der Matrix&nbsp; $\mathbf{P}_{l&ndash;1}$&nbsp; noch Einsen waren. Durch diese Maßnahme wird die Coderate&nbsp; $R_{l}$&nbsp; gegenüber&nbsp; $R_{l-1}$&nbsp; vergrößert.
+
In the graph all the zeros in the matrix&nbsp; $\mathbf{P}_l$&nbsp; that were still ones in the matrix&nbsp; $\mathbf{P}_{l&ndash;1}$&nbsp; are marked in red. This measure increases the code rate&nbsp; $R_{l}$&nbsp; compared to&nbsp; $R_{l-1}$&nbsp;.
  
Die RCPC&ndash;Codes eignen sich gut zur Realisierung von
+
The RCPC&ndash;codes are well suited for the realization of
* <i>ungleichem Fehlerschutz</i>&nbsp; für hybride ARQ&ndash;Verfahren,
+
* <i>unequal error protection</i>&nbsp; for hybrid ARQ procedures,
* Systemen mit&nbsp; <i>inkrementeller Redundanz</i>.
+
* systems with&nbsp; <i>incremental redundancy</i>.
  
  
Unter "Systemen mit inkrementeller Redundanz" versteht man, dass nach der herkömmlichen Faltungscodierung aus dem Codewort&nbsp; $\underline{x}^{(0)}$&nbsp; Bits entsprechend der Punktierungsmatrix&nbsp; $\mathbf{P}_l$&nbsp; weggelassen werden und das verkürzte Codewort&nbsp; $\underline{x}^{(l)}$&nbsp; übertragen wird:  
+
Incremental redundancy systems" means that after conventional convolutional coding, bits corresponding to the puncturing matrix&nbsp; $\mathbf{P}_l$&nbsp; are omitted from the codeword&nbsp; $\underline{x}^{(0)}$&nbsp; and the shortened codeword&nbsp; $\underline{x}^{(l)}$&nbsp; is transmitted:  
*Kann das punktierte Codewort im Empfänger nicht korrekt decodiert werden, fordert der Empfänger vom Sender weitere Redundanz in Form der zuvor auspunktierten Bits an.  
+
*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.  
*Somit wird die Übertragung von nicht benötigter Redundanz verhindert und der Durchsatz an die Kanalgegebenheiten angepasst.
+
*This prevents the transmission of redundancy that is not required and adapts the throughput to the channel conditions.
  
  
Line 30: Line 30:
  
  
''Hinweise:''
+
Hints:
* Die Aufgabe bezieht sich auf den Abschnitt&nbsp; [[Channel_Coding/Codebeschreibung_mit_Zustands%E2%80%93_und_Trellisdiagramm#Punktierte_Faltungscodes|Punktierte Faltungscodes]]&nbsp; im Kapitel "Codebeschreibung mit Zustands&ndash; und Trellisdiagramm".
+
* This exercise refers to the section&nbsp; [[Channel_Coding/Code_Description_with_State_and_Trellis_Diagram#Punctured_convolutional_codes|"Punctured convolutional codes"]]&nbsp; in the chapter "Code description with state and trellis diagram".
 
   
 
   
*Die Literaturstelle [Hag88] verweist auf das Paper "Hagenauer, J.: ''Rate Compatible Punctured Convolutional Codes (RCPC codes) and their Applications''. In: IEEE Transactions on Communications, vol COM-36, S. 389 - 400, 1988".
+
*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&nbsp; [[Biographies_and_Bibliographies/Lehrstuhlinhaber_des_LNT#Prof._Dr.-Ing._Dr.-Ing._E.h._Joachim_Hagenauer_.281993-2006.29| Joachim Hagenauer]]&nbsp; war von 1993 bis 2006 Leiter des Lehrstuhls für Nachrichtentechnik (LNT) der Technischen Universität München.  
+
*Professor&nbsp; [[Biographies_and_Bibliographies/Chair_of_LNT#Prof._Dr.-Ing._E.h._Joachim_Hagenauer_.281993-2006.29| Joachim Hagenauer]]&nbsp; was head of the Department of Communications Engineering (LNT) at the Technical University of Munich from 1993 to 2006.  
*Die Initiatoren des von Ihnen gerade genutzten Lerntutorials &ndash; Günter Söder und Klaus Eichin &ndash; danken ihrem langjährigen Chef für die Unterstützung und Förderung unseres&nbsp; $\rm LNTwww$&ndash;Projekts während der ersten sechs Jahre.
+
*The initiators of the learning tutorial you just used &ndash; Günter Söder and Klaus Eichin &ndash; thank their long-time boss for supporting and promoting our&nbsp; $\rm LNTwww$ project during the first six years.
  
  
Line 42: Line 42:
  
  
===Fragebogen===
+
===Questions===
 
<quiz display=simple>
 
<quiz display=simple>
{Welche Aussagen liefern die vorgegeben Punktierungsmatrizen?
+
{What statements do the given puncturing matrices provide?
 
|type="[]"}
 
|type="[]"}
+ Die Rate des RCPC&ndash;Muttercodes ist&nbsp; $R_0 = 1/3$.
+
+ The rate of the RCPC mother code is&nbsp; $R_0 = 1/3$.
+ Die Punktierungsperiode ist&nbsp; $p = 8$.
+
+ The puncturing period is&nbsp; $p = 8$.
- Das Gedächtnis der RCPC&ndash;Codeklasse ist&nbsp; $M = 4$.
+
- The memory of the RCPC code class is&nbsp; $M = 4$.
  
{Welche Coderaten weisen die Codes&nbsp; $\mathcal{C}_1$, ... , $\mathcal{C}_4$&nbsp; auf?
+
{Which code rates do the codes&nbsp; $\mathcal{C}_1$, ... , $\mathcal{C}_4$&nbsp; 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% }  
  
{Welche Aussagen gelten für die Matrixelemente $P_{ij}^{(l)}$?
+
{Which statements are valid for the matrix elements $P_{ij}^{(l)}$?
 
|type="[]"}
 
|type="[]"}
+ Aus&nbsp; $P_{ij}^{(l)} = 1$&nbsp; folgt&nbsp; $P_{ij}^{(\lambda)} = 1$&nbsp; für alle&nbsp; $\lambda < l$.
+
+ From&nbsp; $P_{ij}^{(l)} = 1$&nbsp; follows&nbsp; $P_{ij}^{(\lambda)} = 1$&nbsp; for all&nbsp; $\lambda < l$.
- Aus&nbsp; $P_{ij}^{(l)} = 1$&nbsp; folgt&nbsp; $P_{ij}^{(\lambda)} = 1$&nbsp; für alle&nbsp; $\lambda > l$.
+
- From&nbsp; $P_{ij}^{(l)} = 1$&nbsp; follows&nbsp; $P_{ij}^{(\lambda)} = 1$&nbsp; for all&nbsp; $\lambda > l$.
- Aus&nbsp; $P_{ij}^{(l)} = 0$&nbsp; folgt&nbsp; $P_{ij}^{(\lambda)} = 0$&nbsp; für alle&nbsp; $\lambda < l$.
+
- From&nbsp; $P_{ij}^{(l)} = 0$&nbsp; follows&nbsp; $P_{ij}^{(\lambda)} = 0$&nbsp; for all&nbsp; $\lambda < l$.
+ Aus&nbsp; $P_{ij}^{(l)} = 0$&nbsp; folgt&nbsp; $P_{ij}^{(\lambda)} = 0$&nbsp; für alle&nbsp; $\lambda > l$.
+
+ From&nbsp; $P_{ij}^{(l)} = 0$&nbsp; follows&nbsp; $P_{ij}^{(\lambda)} = 0$&nbsp; for all&nbsp; $\lambda > l$.
 
</quiz>
 
</quiz>
  
===Musterlösung===
+
===Solution===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
'''(1)'''&nbsp; Richtig sind die <u>Lösungsvorschläge 1 und 2</u>:
+
'''(1)'''&nbsp; Correct are <u>solutions 1 and 2</u>:
*Die Zeilenzahl der Punktierungsmatrizen gibt den Parameter $n$ des $(n, \ k = 1)$&ndash;RCPC&ndash;Muttercodes an.  
+
*The number of rows of the puncturing matrices gives the parameter $n$ of the $(n, \ k = 1)$&ndash;RCPC mother code.  
*Daraus ergibt sich dessen Rate zu $R_0 = 1/3$. Die Spaltenzahl ist gleich der Punktierungsperiode $p$. Bei der betrachteten Codeklasse gilt $p = 8$.
+
*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$.
* Dagegen liefern die Punktierungsmatrizen keine Aussagen über das Gedächtnis des Codes &nbsp;&#8658;&nbsp;  
+
* In contrast, the puncturing matrices do not provide any information about the memory of the code &nbsp;&#8658;&nbsp;  
  
  
'''(2)'''&nbsp; Für die Rate des Codes $\mathcal{C}_l = p/N_l$, wobei $N_l$ die Anzahl aller Einsen in der Punktierungsmatrix $\mathbf{P}_l$ und $p$ die Punktierungsperiode bezeichnet. Ausgehend von der Rate $R_0 = 1/3$ des Muttercodes $\mathcal{C}_0$ erhält man:
+
'''(2)'''&nbsp; 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)'''&nbsp; Richtig sind die <u>Lösungsvorschläge 1 und 4</u>:
+
'''(3)'''&nbsp; Correct are the <u>solutions 1 and 4</u>:
*Alle Einsen in der Matrix $\mathbf{P}_4$ sind auch in den darüber liegenden Matrizen $\mathbf{P}_3, \hspace{0.05cm}\text{ ...} \hspace{0.05cm}, \ \mathbf{P}_0$ enthalten.  
+
*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 der Matrix $\mathbf{P}_3$ kommen gegenüber $\mathbf{P}_4$ drei Einsen hinzu, in der Matrix $\mathbf{P}_2$ gegenüber $\mathbf{P}_3$ nochmals vier, usw.   
+
*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 17:01, 3 October 2022

RCPC Puncturing Matrices

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.



Joachim Hagenauer




Hints:

  • 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

1

What statements do the given puncturing matrices provide?

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$.

2

Which code rates do the codes  $\mathcal{C}_1$, ... , $\mathcal{C}_4$  have?

${\rm Matrix \ P_1} \Rightarrow {\rm Code \ \mathcal{C}_1} \text{:} \hspace{0.4cm} R_1 \ = \ $

${\rm Matrix \ P_2} \Rightarrow {\rm Code \ \mathcal{C}_2} \text{:} \hspace{0.4cm}R_2 \ = \ $

${\rm Matrix \ P_3} \Rightarrow {\rm Code \ \mathcal{C}_3} \text{:} \hspace{0.4cm} R_3 \ = \ $

${\rm Matrix \ P_4} \Rightarrow {\rm Code \ \mathcal{C}_4} \text{:} \hspace{0.4cm} R_4 \ = \ $

3

Which statements are valid for the matrix elements $P_{ij}^{(l)}$?

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$.


Solution

(1)  Correct are solutions 1 and 2:

  • 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.