Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

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

From LNTwww
 
(21 intermediate revisions by 5 users not shown)
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 [[Kanalcodierung/Codebeschreibung_mit_Zustands%E2%80%93_und_Trellisdiagramm#Punktierte_Faltungscodes| punktierte Faltungscodes]] sind die <i>Rate Compatible Punctured Convolutional Codes</i> (oder kurz RCPC&ndash;Codes), die von [[Biografien_und_Bibliografien/Lehrstuhlinhaber_des_LNT#Prof._Dr.-Ing._Dr.-Ing._E.h._Joachim_Hagenauer_.281993-2006.29|Joachim Hagenauer]]  in [Hag88] vorgeschlagen wurden. Ausgehend von einem Muttercode C0 mit der Rate R0=1/n werden durch verschiedene Punktierungsmatrizen Pl andere Codes Cl mit höherer Coderate Rl>R0 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; "Rate Compatible Punctured Convolutional Codes"&nbsp; $($for short:&nbsp; '''RCPC&ndash;Codes'''$)$&nbsp; proposed by Joachim Hagenauer in&nbsp; '''[Hag88]'''.
  
Rechts sind die zu analysierenden Punktierungsmatrizen $\mathbf{P}_0, \hspace{0.05cm}\text{ ...} \hspace{0.05cm} , \ \mathbf{P}_4$ dargestellt.
+
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)$&nbsp; are determined by different puncturing matrices&nbsp; Pl.
*Ist bei der Matrix $\mathbf{P}_ldasMatrixelementP_{ij} = 1$, so wird das entsprechende Codebit übertragen, während $P_{ij} = 0$ auf eine Punktierung hinweist.
 
*Im Fragebogen verwenden wir für das Element $P_{ij}$ der Matrix $\mathbf{P}_l auch die kürzere Schreibweise P_{ij}^{(l)}$.
 
  
 +
The puncturing matrices &nbsp; \mathbf{P}_0, \hspace{0.05cm}\text{ ...} \hspace{0.05cm} , \ \mathbf{P}_4 &nbsp;to be analyzed are shown on the right.
 +
*If for the matrix&nbsp; \mathbf{P}_l&nbsp; the matrix element&nbsp; P_{ij} = 1,&nbsp; the corresponding code bit is transmitted,&nbsp; while&nbsp; P_{ij} = 0&nbsp; indicates puncturing.
 +
 +
*In the questionnaire,&nbsp; we also use the shorter notation&nbsp; P_{ij}^{(l)}&nbsp; for the element&nbsp; P_{ij}&nbsp; of the matrix&nbsp; \mathbf{P}_l.
  
In derGrafik sind alle die Nullen in der Matrix \mathbf{P}_l rot markiert, die in der Matrix \mathbf{P}_{l&ndash;1} noch Einsen waren. Durch diese Maßnahme wird die Coderate $R_{l&ndash;1}$ gegenüber R_l vergrößert.
+
*In the graph:&nbsp; 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.&nbsp; This measure increases the code rate&nbsp; $R_{l}$&nbsp; compared to&nbsp; $R_{l-1}$.
  
Die RCPC&ndash;Codes eignen sich gut zur Realisierung von
 
* <i>ungleichem Fehlerschutz</i> für hybride ARQ&ndash;Verfahren,
 
* Systemen mit <i>inkrementeller Redundanz</i>.
 
  
 +
The RCPC&ndash;codes are well suited for the realization of
 +
* "unequal error protection"&nbsp; for hybrid ARQ procedures,
  
Unter &bdquo;Systemen mit inkrementeller Redundanz&rdquo; versteht man, dass nach der herkömmlichen Faltungscodierung aus dem Codewort \underline{x}^{(0)} Bits entsprechend der Punktierungsmatrix \mathbf{P}_l weggelassen werden und das verkürzte Codewort \underline{x}^{(l)} übertragen wird:  
+
* systems with&nbsp; "incremental redundancy".&nbsp; This means that after conventional convolutional coding,&nbsp; bits corresponding to the puncturing matrix&nbsp; \mathbf{P}_l&nbsp; are omitted from the code word&nbsp; \underline{x}^{(0)}&nbsp; and the shortened code word&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 code word cannot be correctly decoded in the receiver,&nbsp; 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.
  
 +
 +
 +
 +
[[File:P_ID2709__hagenauer_kleiner.jpg|left|frame|Joachim Hagenauer]]
  
  
Line 25: Line 30:
  
  
[[File:P_ID2709__hagenauer_kleiner.jpg|left|frame|Joachim Hagenauer]]
+
 
''Hinweise:''
+
Hints:
* Die Aufgabe bezieht sich auf den Abschnitt  [[Kanalcodierung/Codebeschreibung_mit_Zustands%E2%80%93_und_Trellisdiagramm#Punktierte_Faltungscodes|Punktierte Faltungscodes]] im Kapitel &bdquo;Codebeschreibung mit Zustands&ndash; und Trellisdiagramm&rdquo;.
+
* 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&nbsp; "Code description with state and trellis diagram".
* Sollte die Eingabe des Zahlenwertes &bdquo;0&rdquo; erforderlich sein, so geben Sie bitte &bdquo;0.&rdquo; ein.
+
*Die Literaturstelle [Hag88] verweist auf das Paper &bdquo;Hagenauer, J.: ''Rate Compatible Punctured Convolutional Codes (RCPC codes) and their Applications''. In: IEEE Transactions on Communications, vol COM-36, S. 389 - 400, 1988&rdquo;.
+
*The reference&nbsp; '''[Hag88]''' refers to the paper&nbsp; "Hagenauer, J.:&nbsp; Rate Compatible Punctured Convolutional Codes (RCPC codes) and their Applications. In:&nbsp; IEEE Transactions on Communications,&nbsp; vol COM-36, pp 389 - 400, 1988."
* Professor [[Biografien_und_Bibliografien/Lehrstuhlinhaber_des_LNT#Prof._Dr.-Ing._Dr.-Ing._E.h._Joachim_Hagenauer_.281993-2006.29| Joachim Hagenauer]] war von 1993 bis 2006 Leiter des Lehrstuhls für Nachrichtentechnik (LNT) der Technischen Universität München.  
+
 
*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 \rm LNTwww&ndash;Projekts während der ersten Jahre.
+
*Professor&nbsp; [https://www.ce.cit.tum.de/en/lnt/people/professors/hagenauer/ $\text{Joachim Hagenauer}$]&nbsp; was head of the Institute of Communications Engineering&nbsp; $\rm(LNT)$&nbsp; at the Technical University of Munich from 1993 to 2006.&nbsp; The initiators of the learning tutorial&nbsp; (Günter Söder and Klaus Eichin)&nbsp; thank their long-time boss for supporting and promoting our&nbsp; \rm LNTwww&nbsp; project during the first six years.
  
  
Line 38: Line 43:
  
  
===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 R_0 = 1/3.
+
+ The rate of the RCPC mother code is&nbsp; R_0 = 1/3.
+ Die Punktierungsperiode ist p = 8.
+
+ The puncturing period is&nbsp; p = 8.
- Das Gedächtnis der RCPC&ndash;Codeklasse ist M = 4.
+
- The memory of the RCPC code class is&nbsp; M = 4.
  
{Welche Coderaten weisen die Codes \mathcal{C}_1, ... , \mathcal{C}_4 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% }  
${\rm Matrix \ P_2} \Rightarrow {\rm Code \ \mathcal{C}_2} \text{:} \hspace{0.4cm}R_2 \ = \ ${ 0.5 3% }  
+
${\rm matrix \ P_2} \ \Rightarrow       ß {\rm code \ \mathcal{C}_2} \text{:} \hspace{0.4cm}R_2 \ = \ ${ 0.5 3% }  
${\rm Matrix \ P_3} \Rightarrow {\rm Code \ \mathcal{C}_3} \text{:} \hspace{0.4cm} R_3 \ = \ ${ 0.667 3% }  
+
${\rm matrix \ P_3} \ \Rightarrow \ {\rm code \ \mathcal{C}_3} \text{:} \hspace{0.4cm} R_3 \ = \ ${ 0.667 3% }  
${\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&nbsp; P_{ij}^{(l)}?
 
|type="[]"}
 
|type="[]"}
+ Aus P_{ij}^{(l)} = 1 folgt P_{ij}^{(\lambda)} = 1 für alle \lambda < l.
+
+ From&nbsp; P_{ij}^{(l)} = 1&nbsp; follows&nbsp; P_{ij}^{(\lambda)} = 1&nbsp; for all&nbsp; \lambda < l.
- Aus P_{ij}^{(l)} = 1 folgt P_{ij}^{(\lambda)} = 1 für alle \lambda > l.
+
- From&nbsp; P_{ij}^{(l)} = 1&nbsp; follows&nbsp; P_{ij}^{(\lambda)} = 1&nbsp; for all&nbsp; \lambda > l.
- Aus P_{ij}^{(l)} = 0 folgt P_{ij}^{(\lambda)} = 0 für alle \lambda < l.
+
- From&nbsp; P_{ij}^{(l)} = 0&nbsp; follows&nbsp; P_{ij}^{(\lambda)} = 0&nbsp; for all&nbsp; \lambda < l.
+ Aus P_{ij}^{(l)} = 0 folgt P_{ij}^{(\lambda)} = 0 für alle \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 the&nbsp; <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&nbsp; n&nbsp; of the&nbsp; (n, \ k = 1)&nbsp; 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.
+
* Dagegen liefern die Punktierungsmatrizen keine Aussagen über das Gedächtnis des Codes &nbsp;&#8658;&nbsp;
+
*From this,&nbsp; its rate is&nbsp; R_0 = 1/3.&nbsp; The column number is equal to the puncturing period&nbsp; p.&nbsp; For the class of codes under consideration:&nbsp; p = 8.
  
 +
* In contrast,&nbsp; the puncturing matrices do not provide any information about the memory of the code.
  
'''(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 code&nbsp; \mathcal{C}_l = p/N_l,&nbsp; where&nbsp; N_l&nbsp; denotes the number of all ones in the puncturing matrix&nbsp; \mathbf{P}_l&nbsp; and&nbsp; p&nbsp; denotes the puncturing period.  
 +
 
 +
Starting from the rate&nbsp; R_0 = 1/3&nbsp; of the mother code&nbsp; \mathcal{C}_0,&nbsp; 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 76: Line 85:
  
  
'''(3)'''&nbsp; Richtig sind die <u>Lösungsvorschläge 1 und 4</u>:
+
'''(3)'''&nbsp; Correct are the&nbsp; <u>solutions 1 and&nbsp; 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&nbsp; \mathbf{P}_4&nbsp; are also in the matrices&nbsp; $\mathbf{P}_3, \hspace{0.05cm}\text{ ...} \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&nbsp; \mathbf{P}_3&nbsp; three ones are added compared to&nbsp; \mathbf{P}_4,&nbsp; in the matrix \mathbf{P}_2&nbsp; compared to \mathbf{P}_3 again four, etc.   
 
{{ML-Fuß}}
 
{{ML-Fuß}}
  
 
+
[[Category:Channel Coding: Exercises|^3.3 State and Trellis Diagram^]]
 
 
[[Category:Aufgaben zu  Kanalcodierung|^3.3 Zustands– und Trellisdiagramm^]]
 

Latest revision as of 15:39, 19 November 2022

RCPC puncturing matrices

An important application for  \text{punctured convolutional codes}  are the  "Rate Compatible Punctured Convolutional Codes"  (for short:  RCPC–Codes)  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.

The puncturing matrices   \mathbf{P}_0, \hspace{0.05cm}\text{ ...} \hspace{0.05cm} , \ \mathbf{P}_4  to be analyzed are shown on the right.

  • If for the matrix  \mathbf{P}_l  the matrix element  P_{ij} = 1,  the corresponding code bit 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".  This means that after conventional convolutional coding,  bits corresponding to the puncturing matrix  \mathbf{P}_l  are omitted from the code word  \underline{x}^{(0)}  and the shortened code word  \underline{x}^{(l)}  is transmitted:
  • If the punctured code word 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  \text{Joachim Hagenauer}  was head of the Institute of Communications Engineering  \rm(LNT)  at the Technical University of Munich from 1993 to 2006.  The initiators of the learning tutorial  (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 the  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 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{ ...} \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.