Difference between revisions of "Channel Coding/Algebraic and Polynomial Description"

From LNTwww
(Die Seite wurde neu angelegt: „ {{Header |Untermenü=Faltungscodierung und geeignete Decoder |Vorherige Seite=Grundlagen der Faltungscodierung |Nächste Seite=Codebeschreibung mit Zustands…“)
 
Line 5: Line 5:
 
|Nächste Seite=Codebeschreibung mit Zustands– und Trellisdiagramm
 
|Nächste Seite=Codebeschreibung mit Zustands– und Trellisdiagramm
 
}}
 
}}
 +
 +
== Definition und Interpretation der Teilmatrizen G0, ... , Gm ==
 +
<br>
 +
Entsprechend den Ausführungen in Kapitel 1.4 lässt sich das Codewort <u><i>x</i></u> eines linearen Blockcodes aus dem Informationswort <u><i>u</i></u> und der Generatormatrix <b>G</b> in einfacher Weise ermitteln:
 +
 +
:<math>\underline{x} = \underline{u} \cdot { \boldsymbol{\rm G}}  \hspace{0.05cm}.</math>
 +
 +
Dabei gilt:
 +
*Die Vektoren <u><i>u</i></u> und <u><i>x</i></u> haben die Länge <i>k</i> (Bitanzahl eines Informationswortes) bzw. <i>n</i>  (Bitanzahl eines Codewortes) und <b>G</b> besitzt die Dimension <i>k</i> &times; <i>n</i> (<i>k</i> Zeilen und <i>n</i> Spalten).<br>
 +
 +
*Bei Faltungscodierung bezeichnen dagegen <u><i>u</i></u> und <u><i>x</i></u> Sequenzen mit <i>k</i>' &#8594; &#8734; und <i>n</i>' &#8594; &#8734;. Deshalb wird auch die Generatormatrix <b>G</b> in beiden Richtungen unendlich weit ausgedehnt sein.<br><br>
 +
 +
Als Vorbereitung für die Einführung der Generatormatrix <b>G</b> auf der nächsten Seite definieren wir <i>m</i> + 1 Teilmatrizen, jeweils mit <i>k</i> Zeilen und <i>n</i> Spalten, die wir mit <b>G</b><sub><i>l</i></sub> bezeichnen, wobei 0 &#8804; <i>l</i> &#8804; <i>m</i> gilt.<br>
 +
 +
{{Definition}}''':''' Ist das Matrizenelement <b>G</b><sub><i>l</i></sub>(<i>&kappa;</i>, <i>j</i>) = 1, so sagt dies aus, dass das Codebit <i>x<sub>i</sub></i><sup>(<i>j</i>)</sup> durch das Informationsbit <i>u<sub>i</sub></i><sub>&ndash;</sub><sub><i>l</i></sub><sup>(<i>&kappa;</i>)</sup> beeinflusst wird. Andernfalls ist dieses Matrixelement gleich 0.{{end}}<br>
 +
 +
Diese Definition wird nun an einem Beispiel verdeutlicht.
 +
 +
{{Beispiel}}''':'''
 +
[[File:P ID2600 KC T 3 1 S4 v1.png|rechts|rahmenlos|Faltungscoder mit <i>k</i> = 2, <i>n</i> = 3 und <i>m</i> = 1]] Wir betrachten wiederum den Faltungscodierer gemäß nebenstehender Grafik mit den folgenden Codebits:
 +
 +
:<math>x_i^{(1)} \hspace{-0.15cm}  =  \hspace{-0.15cm} u_{i}^{(1)} + u_{i-1}^{(1)}+ u_{i-1}^{(2)} \hspace{0.05cm},</math>
 +
:<math>x_i^{(2)} \hspace{-0.15cm}  =  \hspace{-0.15cm} u_{i}^{(2)} + u_{i-1}^{(1)} \hspace{0.05cm},</math>
 +
:<math>x_i^{(3)} \hspace{-0.15cm}  =  \hspace{-0.15cm} u_{i}^{(1)} + u_{i}^{(2)}+ u_{i-1}^{(1)} \hspace{0.05cm}.</math>
 +
 +
Wegen der Gedächtnisordnung <i>m</i> = 1 wird dieser Codierer durch die beiden Teilmatrizen <b>G</b><sub>0</sub> und <b>G</b><sub>1</Sub> charakterisiert:
 +
 +
:<math>{ \boldsymbol{\rm G}}_0 =
 +
\begin{pmatrix}
 +
1 & 0 & 1\\
 +
0 & 1 & 1
 +
\end{pmatrix}  \hspace{0.05cm},  \hspace{0.5cm}
 +
{ \boldsymbol{\rm G}}_1 = \begin{pmatrix}
 +
1 & 1 & 1\\
 +
1 & 0 & 0
 +
\end{pmatrix}\hspace{0.05cm}.</math>
 +
 +
Diese Matrizen sind wie folgt zu interpretieren:
 +
*Erste Zeile von <b>G</b><sub>0</sub>, rote Pfeile:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>u<sub>i</sub></i><sup>(1)</sup> beeinflusst sowohl <i>x<sub>i</sub></i><sup>(1)</sup> als auch <i>x<sub>i</sub></i><sup>(3)</sup>, nicht jedoch <i>x<sub>i</sub></i><sup>(2)</sup>.<br>
 +
 +
*Zweite Zeile von <b>G</b><sub>0</sub>, blaue Pfeile:&nbsp;&nbsp; <i>u<sub>i</sub></i><sup>(2)</sup> beeinflusst <i>x<sub>i</sub></i><sup>(2)</sup> und <i>x<sub>i</sub></i><sup>(3)</sup>, aber nicht <i>x<sub>i</sub></i><sup>(1)</sup>.<br>
 +
 +
*Erste Zeile von <b>G</b><sub>1</sub>, grüne Pfeile:&nbsp;&nbsp;&nbsp;&nbsp; <i>u<sub>i</sub></i><sub>&ndash;1</sub><sup>(1)</sup> beeinflusst alle drei Coderausgänge.<br>
 +
 +
*Zweite Zeile von <b>G</b><sub>1</sub>, brauner Pfeil: <i>u<sub>i</sub></i><sub>&ndash;1</sub><sup>(2)</sup>  beeinflusst nur <i>x<sub>i</sub></i><sup>(1)</sup>.{{end}}<br>
 +
 +
== Generatormatrix eines Faltungscodierers mit Gedächtnis m ==
 +
<br>
 +
Mit den Teilmatrizen <b>G</b><sub>0</sub>, ... ,  <b>G</b><sub><i>m</i></sub> lassen sich die  <i>n</i> Codebits zum Zeitpunkt <i>i</i> wie folgt ausdrücken:
 +
 +
:<math>\underline{x}_i = \sum_{l = 0}^{m} \hspace{0.15cm}\underline{u}_{i-l} \cdot { \boldsymbol{\rm G}}_l =
 +
\underline{u}_{i} \cdot { \boldsymbol{\rm G}}_0 + \underline{u}_{i-1} \cdot { \boldsymbol{\rm G}}_1 + ... + \underline{u}_{i-m} \cdot { \boldsymbol{\rm G}}_m
 +
  \hspace{0.05cm}.</math>
 +
 +
Hierbei sind folgende vektorielle Größen zu berücksichtigen:
 +
 +
:<math>\underline{\it u}_i = \left ( u_i^{(1)}, u_i^{(2)}, \hspace{0.05cm}... \hspace{0.1cm}, u_i^{(k)}\right )\hspace{0.05cm},\hspace{0.5cm}
 +
\underline{\it x}_i = \left ( x_i^{(1)}, x_i^{(2)}, \hspace{0.05cm}... \hspace{0.1cm}, x_i^{(n)}\right )\hspace{0.05cm}.</math>
 +
 +
Betrachtet man die bei <i>i</i> = 1 beginnenden und sich zeitlich bis ins Unendliche erstreckenden Sequenzen
 +
 +
:<math>\underline{\it u} = \big( \underline{\it u}_1\hspace{0.05cm}, \underline{\it u}_2\hspace{0.05cm}, \hspace{0.05cm}... \hspace{0.1cm}, \underline{\it u}_i\hspace{0.05cm}, \hspace{0.05cm}... \hspace{0.1cm} \big)\hspace{0.05cm},\hspace{0.5cm}
 +
\underline{\it x} = \big( \underline{\it x}_1\hspace{0.05cm}, \underline{\it x}_2\hspace{0.05cm}, \hspace{0.05cm}... \hspace{0.1cm}, \underline{\it x}_i\hspace{0.05cm}, \hspace{0.05cm}... \hspace{0.1cm} \big)\hspace{0.05cm},</math>
 +
 +
so kann dieser Zusammenhang durch die Matrixgleichung <u><i>x</i></u> = <u><i>u</i></u> &middot; <b>G</b> ausgedrückt werden. Hierbei ist für die Generatormatrix <b>G</b> zu setzen:
 +
 +
:<math>{ \boldsymbol{\rm G}}=\begin{pmatrix}
 +
{ \boldsymbol{\rm G}}_0 & { \boldsymbol{\rm G}}_1 & { \boldsymbol{\rm G}}_2 & \cdots  & { \boldsymbol{\rm G}}_m & & & \\
 +
& { \boldsymbol{\rm G}}_0 & { \boldsymbol{\rm G}}_1 & { \boldsymbol{\rm G}}_2 & \cdots & { \boldsymbol{\rm G}}_m & &\\
 +
&          & { \boldsymbol{\rm G}}_0 & { \boldsymbol{\rm G}}_1 & { \boldsymbol{\rm G}}_2 & \cdots & { \boldsymbol{\rm G}}_m &\\
 +
&          &          & \cdots  & \cdots & & & \cdots
 +
\end{pmatrix}\hspace{0.05cm}.</math>
 +
 +
Aus der Gleichung erkennt man sofort das Gedächtnis <i>m</i> des Faltungscodes. Die Parameter <i>k</i> und <i>n</i> sind direkt nicht ablesbar. Sie sind aber durch die Zeilen&ndash; und Spaltenzahl der Teilmatrizen <b>G</b><sub><i>l</i></sub> festgelegt.<br>
 +
 +
{{Beispiel}}''':'''
 +
[[File:P ID2601 KC T 3 2 S2 v1.png|rahmenlos|rechts|Generatormatrix eines Faltungscodes]] Mit den zwei Matrizen <b>G</b><sub>0</sub> und <b>G</b><sub>1</sub> &ndash; siehe letztes Beispiel &ndash; erhält man die rechts skizzierte Matrix <b>G</b>.<br><br><br><br><br><br><br>
 +
 +
Anzumerken ist:
 +
*Die Generatormatrix  <b>G</b> erstreckt sich nach unten und nach rechts eigentlich bis ins Unendliche. Explizit dargestellt sind aber nur 8 Zeilen und 12 Spalten.
 +
 +
*Für die zeitlich begrenzte Informationssequenz <u><i>u</i></u> = (0, 1, 1, 0, 0, 0, 1, 1) ist der gezeichnete Matrixteil ausreichend. Die Codesequenz lautet dann: &nbsp; <u><i>x</i></u>&nbsp;=&nbsp;(0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0).
 +
 +
*Anhand der Beschriftungsfarben lassen sich die <i>n</i> = 3 Codewortstränge ablesen. Das gleiche Ergebnis haben wir (auf anderem Wege) im Beispiel am Ende von Kapitel 3.1 erhalten.
 +
 +
::<math>\underline{\it x}^{(1)} = (0\hspace{0.05cm}, 0\hspace{0.05cm}, 1\hspace{0.05cm}, 1) \hspace{0.05cm},\hspace{0.5cm} \underline{\it x}^{(2)} = (1\hspace{0.05cm}, 0\hspace{0.05cm},1\hspace{0.05cm}, 1) \hspace{0.05cm},\hspace{0.5cm}
 +
\underline{\it x}^{(3)} = (1\hspace{0.05cm}, 1\hspace{0.05cm}, 1\hspace{0.05cm}, 0) \hspace{0.05cm}.</math>{{end}}<br>
 +
 +
  
  

Revision as of 15:32, 15 January 2017

Definition und Interpretation der Teilmatrizen G0, ... , Gm


Entsprechend den Ausführungen in Kapitel 1.4 lässt sich das Codewort x eines linearen Blockcodes aus dem Informationswort u und der Generatormatrix G in einfacher Weise ermitteln:

\[\underline{x} = \underline{u} \cdot { \boldsymbol{\rm G}} \hspace{0.05cm}.\]

Dabei gilt:

  • Die Vektoren u und x haben die Länge k (Bitanzahl eines Informationswortes) bzw. n (Bitanzahl eines Codewortes) und G besitzt die Dimension k × n (k Zeilen und n Spalten).
  • Bei Faltungscodierung bezeichnen dagegen u und x Sequenzen mit k' → ∞ und n' → ∞. Deshalb wird auch die Generatormatrix G in beiden Richtungen unendlich weit ausgedehnt sein.

Als Vorbereitung für die Einführung der Generatormatrix G auf der nächsten Seite definieren wir m + 1 Teilmatrizen, jeweils mit k Zeilen und n Spalten, die wir mit Gl bezeichnen, wobei 0 ≤ lm gilt.

: Ist das Matrizenelement Gl(κ, j) = 1, so sagt dies aus, dass das Codebit xi(j) durch das Informationsbit uil(κ) beeinflusst wird. Andernfalls ist dieses Matrixelement gleich 0.


Diese Definition wird nun an einem Beispiel verdeutlicht.

:

Faltungscoder mit k = 2, n = 3 und m = 1 Wir betrachten wiederum den Faltungscodierer gemäß nebenstehender Grafik mit den folgenden Codebits:

\[x_i^{(1)} \hspace{-0.15cm} = \hspace{-0.15cm} u_{i}^{(1)} + u_{i-1}^{(1)}+ u_{i-1}^{(2)} \hspace{0.05cm},\] \[x_i^{(2)} \hspace{-0.15cm} = \hspace{-0.15cm} u_{i}^{(2)} + u_{i-1}^{(1)} \hspace{0.05cm},\] \[x_i^{(3)} \hspace{-0.15cm} = \hspace{-0.15cm} u_{i}^{(1)} + u_{i}^{(2)}+ u_{i-1}^{(1)} \hspace{0.05cm}.\]

Wegen der Gedächtnisordnung m = 1 wird dieser Codierer durch die beiden Teilmatrizen G0 und G1 charakterisiert:

\[{ \boldsymbol{\rm G}}_0 = \begin{pmatrix} 1 & 0 & 1\\ 0 & 1 & 1 \end{pmatrix} \hspace{0.05cm}, \hspace{0.5cm} { \boldsymbol{\rm G}}_1 = \begin{pmatrix} 1 & 1 & 1\\ 1 & 0 & 0 \end{pmatrix}\hspace{0.05cm}.\]

Diese Matrizen sind wie folgt zu interpretieren:

  • Erste Zeile von G0, rote Pfeile:       ui(1) beeinflusst sowohl xi(1) als auch xi(3), nicht jedoch xi(2).
  • Zweite Zeile von G0, blaue Pfeile:   ui(2) beeinflusst xi(2) und xi(3), aber nicht xi(1).
  • Erste Zeile von G1, grüne Pfeile:     ui–1(1) beeinflusst alle drei Coderausgänge.
  • Zweite Zeile von G1, brauner Pfeil: ui–1(2) beeinflusst nur xi(1).


Generatormatrix eines Faltungscodierers mit Gedächtnis m


Mit den Teilmatrizen G0, ... , Gm lassen sich die n Codebits zum Zeitpunkt i wie folgt ausdrücken:

\[\underline{x}_i = \sum_{l = 0}^{m} \hspace{0.15cm}\underline{u}_{i-l} \cdot { \boldsymbol{\rm G}}_l = \underline{u}_{i} \cdot { \boldsymbol{\rm G}}_0 + \underline{u}_{i-1} \cdot { \boldsymbol{\rm G}}_1 + ... + \underline{u}_{i-m} \cdot { \boldsymbol{\rm G}}_m \hspace{0.05cm}.\]

Hierbei sind folgende vektorielle Größen zu berücksichtigen:

\[\underline{\it u}_i = \left ( u_i^{(1)}, u_i^{(2)}, \hspace{0.05cm}... \hspace{0.1cm}, u_i^{(k)}\right )\hspace{0.05cm},\hspace{0.5cm} \underline{\it x}_i = \left ( x_i^{(1)}, x_i^{(2)}, \hspace{0.05cm}... \hspace{0.1cm}, x_i^{(n)}\right )\hspace{0.05cm}.\]

Betrachtet man die bei i = 1 beginnenden und sich zeitlich bis ins Unendliche erstreckenden Sequenzen

\[\underline{\it u} = \big( \underline{\it u}_1\hspace{0.05cm}, \underline{\it u}_2\hspace{0.05cm}, \hspace{0.05cm}... \hspace{0.1cm}, \underline{\it u}_i\hspace{0.05cm}, \hspace{0.05cm}... \hspace{0.1cm} \big)\hspace{0.05cm},\hspace{0.5cm} \underline{\it x} = \big( \underline{\it x}_1\hspace{0.05cm}, \underline{\it x}_2\hspace{0.05cm}, \hspace{0.05cm}... \hspace{0.1cm}, \underline{\it x}_i\hspace{0.05cm}, \hspace{0.05cm}... \hspace{0.1cm} \big)\hspace{0.05cm},\]

so kann dieser Zusammenhang durch die Matrixgleichung x = u · G ausgedrückt werden. Hierbei ist für die Generatormatrix G zu setzen:

\[{ \boldsymbol{\rm G}}=\begin{pmatrix} { \boldsymbol{\rm G}}_0 & { \boldsymbol{\rm G}}_1 & { \boldsymbol{\rm G}}_2 & \cdots & { \boldsymbol{\rm G}}_m & & & \\ & { \boldsymbol{\rm G}}_0 & { \boldsymbol{\rm G}}_1 & { \boldsymbol{\rm G}}_2 & \cdots & { \boldsymbol{\rm G}}_m & &\\ & & { \boldsymbol{\rm G}}_0 & { \boldsymbol{\rm G}}_1 & { \boldsymbol{\rm G}}_2 & \cdots & { \boldsymbol{\rm G}}_m &\\ & & & \cdots & \cdots & & & \cdots \end{pmatrix}\hspace{0.05cm}.\]

Aus der Gleichung erkennt man sofort das Gedächtnis m des Faltungscodes. Die Parameter k und n sind direkt nicht ablesbar. Sie sind aber durch die Zeilen– und Spaltenzahl der Teilmatrizen Gl festgelegt.

:

Generatormatrix eines Faltungscodes Mit den zwei Matrizen G0 und G1 – siehe letztes Beispiel – erhält man die rechts skizzierte Matrix G.






Anzumerken ist:

  • Die Generatormatrix G erstreckt sich nach unten und nach rechts eigentlich bis ins Unendliche. Explizit dargestellt sind aber nur 8 Zeilen und 12 Spalten.
  • Für die zeitlich begrenzte Informationssequenz u = (0, 1, 1, 0, 0, 0, 1, 1) ist der gezeichnete Matrixteil ausreichend. Die Codesequenz lautet dann:   x = (0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0).
  • Anhand der Beschriftungsfarben lassen sich die n = 3 Codewortstränge ablesen. Das gleiche Ergebnis haben wir (auf anderem Wege) im Beispiel am Ende von Kapitel 3.1 erhalten.
\[\underline{\it x}^{(1)} = (0\hspace{0.05cm}, 0\hspace{0.05cm}, 1\hspace{0.05cm}, 1) \hspace{0.05cm},\hspace{0.5cm} \underline{\it x}^{(2)} = (1\hspace{0.05cm}, 0\hspace{0.05cm},1\hspace{0.05cm}, 1) \hspace{0.05cm},\hspace{0.5cm} \underline{\it x}^{(3)} = (1\hspace{0.05cm}, 1\hspace{0.05cm}, 1\hspace{0.05cm}, 0) \hspace{0.05cm}.\]