Difference between revisions of "Aufgaben:Exercise 3.7: Comparison of Two Convolutional Encoders"

From LNTwww
 
(12 intermediate revisions by 3 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_ID2672__KC_A_3_7.png|right|frame|Zwei Faltungscodierer mit $n = 2, \ k = 1, \ m = 2$]]
+
[[File:EN_KC_A_3_7_neu_v2.png|right|frame|Two convolutional encoders with parameters  $n = 2, \ k = 1, \ m = 2$]]
Die Grafik zeigt zwei Rate–1/2–Faltungscodierer, jeweils mit dem Gedächtnis $m = 2$:
+
The graph shows two rate  $1/2$  convolutional encoders,  each with memory  $m = 2$:
* Der <b>Coder A</b> weist die Übertragungsfunktionsmatrix $\mathbf{G}(D) = (1 + D^2, \ 1 + D + D^2)$ auf.
+
* The encoder &nbsp;$\rm A$&nbsp; has the transfer function matrix $\mathbf{G}(D) = (1 + D^2, \ 1 + D + D^2)$.
* Beim <b>Coder B</b> sind die beiden Filter (oben und unten) vertauscht, und es gilt : $\mathbf{G}(D) = (1 + D + D^2, \ 1 + D^2)$.
 
  
 +
* In encoder &nbsp;$\rm B$&nbsp; the two filters&nbsp; $($top and bottom$)$&nbsp; are interchanged,&nbsp; and it holds:
 +
:$$\mathbf{G}(D) = (1 + D + D^2, \ 1 + D^2).$$
  
Der untere '''Coder B''' wurde im Theorieteil schon ausführlich behandelt. In der vorliegenden Aufgabe sollen Sie zunächst das Zustandsübergangsdiagramm für '''Coder A''' ermitteln und anschließend die Unterschiede und die Gemeinsamkeiten zwischen den beiden Zustandsdiagrammen herausarbeiten.
 
  
 +
The lower encoder &nbsp;$\rm B$&nbsp; has already been treated in detail in the theory part.
  
 +
In the present exercise,&nbsp;
 +
*you are first to determine the state transition diagram for encoder &nbsp;$\rm A$,&nbsp;
  
 +
*and then work out the differences and the similarities between the two state diagrams.
  
''Hinweis:''
 
* Die Aufgabe bezieht sich auf die ersten Seiten des Kapitels [[Kanalcodierung/Codebeschreibung_mit_Zustands%E2%80%93_und_Trellisdiagramm| Codebeschreibung mit Zustands&ndash; und Trellisdiagramm]].
 
  
  
===Fragebogen===
+
 
 +
 
 +
<u>Hints:</u>
 +
*This exercise belongs to the chapter&nbsp; [[Channel_Coding/Code_Description_with_State_and_Trellis_Diagram| "Code description with state and trellis diagram"]].
 +
 
 +
*Reference is made in particular to the sections
 +
:*&nbsp; [[Channel_Coding/Code_Description_with_State_and_Trellis_Diagram#State_definition_for_a_memory_register|"State definition for a memory register"]]&nbsp; and.
 +
:*&nbsp; [[Channel_Coding/Code_Description_with_State_and_Trellis_Diagram#Representation_in_the_state_transition_diagram|"Representation in the state transition diagram"]].
 +
 
 +
 
 +
===Questions===
 
<quiz display=simple>
 
<quiz display=simple>
{Es gelte $\underline{u} = (0, \, 1, \, 1, \, 1, \, 0, \, 1, \, 0, \, 0, \, ...)$. Welche Sequenzen erzeugt Coder A?
+
{&nbsp; $\underline{u} = (0, \, 1, \, 1, \, 1, \, 0, \, 1, \, 0, \, 0, \, \text{...}\hspace{0.05cm})$&nbsp; holds.&nbsp; Which sequences does encoder &nbsp;$\rm A$ generate?
 
|type="[]"}
 
|type="[]"}
+ $\underline{x}^{(1)} = (0, \, 1, \, 1, \, 0, \, 1, \, 0, \, 0, \, 1, \, ...)$,
+
+ $\underline{x}^{(1)} = (0, \, 1, \, 1, \, 0, \, 1, \, 0, \, 0, \, 1, \, \text{...}\hspace{0.05cm})$,
- $\underline{x}^{(1)} = (0, \, 1, \, 0, \, 1, \, 0, \, 0, \, 1, \, 1, \, ...)$,
+
- $\underline{x}^{(1)} = (0, \, 1, \, 0, \, 1, \, 0, \, 0, \, 1, \, 1, \, \text{...}\hspace{0.05cm})$,
- $\underline{x}^{(2)} = (0, \, 1, \, 1, \, 0, \, 1, \, 0, \, 0, \, 1, \, ...)$,
+
- $\underline{x}^{(2)} = (0, \, 1, \, 1, \, 0, \, 1, \, 0, \, 0, \, 1, \, \text{...}\hspace{0.05cm})$,
+ $\underline{x}^{(2)} = (0, \, 1, \, 0, \, 1, \, 0, \, 0, \, 1, \, 1, \, ...)$.
+
+ $\underline{x}^{(2)} = (0, \, 1, \, 0, \, 1, \, 0, \, 0, \, 1, \, 1, \, \text{...}\hspace{0.05cm})$.
  
{Welche der genannten Zustandsübergänge gibt es bei Coder A?
+
{Which of the above state transitions exist in encoder &nbsp;$\rm A$?
 
|type="[]"}
 
|type="[]"}
 
+ $s_i = S_0, \ u_i = 0 \ &#8658; \ s_{i+1} = S_0; \hspace{1cm} s_i = S_0, \ u_i = 1 \ &#8658; \ s_{i+1} = S_1$.
 
+ $s_i = S_0, \ u_i = 0 \ &#8658; \ s_{i+1} = S_0; \hspace{1cm} s_i = S_0, \ u_i = 1 \ &#8658; \ s_{i+1} = S_1$.
Line 32: Line 44:
 
+ $s_i = S_3, \ u_i = 0 \ &#8658; \ s_{i+1} = S_2; \hspace{1cm} s_i = S_3, \ u_i = 1 \ &#8658; \ s_{i+1} = S_3$.
 
+ $s_i = S_3, \ u_i = 0 \ &#8658; \ s_{i+1} = S_2; \hspace{1cm} s_i = S_3, \ u_i = 1 \ &#8658; \ s_{i+1} = S_3$.
  
{Wie unterscheiden sich die beiden Zustandsübergangsdiagramme?
+
{How do the two state transition diagrams differ?
 
|type="[]"}
 
|type="[]"}
- Es sind andere Zustandsübergänge möglich.
+
- Other state transitions are possible.
- Bei allen acht Übergängen stehen andere Codesequenzen.
+
- All eight transitions have different code sequences.
+ Unterschiede gibt es nur für die Codesequenzen $(01)$ und $(10)$.
+
+ Differences exist only for the code sequences&nbsp; "$(01)$"&nbsp; and&nbsp; "$(10)$".
 
</quiz>
 
</quiz>
  
===Musterlösung===
+
===Solution===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
'''(1)'''&nbsp; [[File:P_ID2673__KC_A_3_7a_neu.png|right|frame|Berechnung der Codesequenz]] Die Berechnung basiert auf den Gleichungen
+
[[File:P_ID2673__KC_A_3_7a_neu.png|right|frame|Calculation of the code sequence]]  
* $x_i^{(1)} = u_i + u_{i&ndash;2}$,
+
'''(1)'''&nbsp; The calculation is based on the equations
* $x_i^{(2)} = u_i + u_{i&ndash;1} + u_{i&ndash;2}$.
+
:$$x_i^{(1)} = u_i + u_{i&ndash;2},$$
 
+
:$$x_i^{(2)} = u_i + u_{i&ndash;1} + u_{i&ndash;2}.$$
 
+
*Initially,&nbsp; the two memories&nbsp; $(u_{i&ndash;1}$&nbsp; and&nbsp; $u_{i&ndash;2})$&nbsp; are preallocated with zeros &nbsp; &#8658; &nbsp; $s_1 = S_0$.
Zu Beginn sind die beiden Speicher ($u_{i&ndash;1}$ und $u_{i&ndash;2}$) mit Nullen vorbelegt &nbsp;&#8658;&nbsp; $s_1 = S_0$. Mit $u_1 = 0$ ergibt sich $\underline{x}_1 = (00)$ und $s_2 = S_0$. Mit $u_2 = 1$ erhält man die Ausgabe $\underline{x}_2 = (11)$ und den neuen Zustand $s_3 = S_3$.
+
 +
*With&nbsp; $u_1 = 0$,&nbsp; we get&nbsp; $\underline{x}_1 = (00)$&nbsp; and&nbsp; $s_2 = S_0$.  
  
Aus nebenstehendem Berechnungsschema erkennt man die Richtigkeit der <u>Lösungsvorschläge 1 und 4</u>.
+
*With&nbsp; $u_2 = 1$,&nbsp; one obtains the output&nbsp; $\underline{x}_2 = (11)$&nbsp; and the new state&nbsp; $s_3 = S_3$.
  
  
'''(2)'''&nbsp; Durch Auswertung der Tabelle von Teilaufgabe (1) erkennt man, dass <u>alle Aussagen</u> richtig sind. Die Ergebnisse sind in der folgenden Grafik dargestellt.
+
From the adjacent calculation scheme one recognizes the correctness of the&nbsp; <u>proposed solutions 1 and 4</u>.
  
[[File:P_ID2674__KC_A_3_7b.png|center|frame|Zustandsübergangsdiagramm für Coder A]]
 
  
 +
[[File:P_ID2674__KC_A_3_7b.png|right|frame|State transition diagram of encoder &nbsp;$\rm A$]]
 +
'''(2)'''&nbsp; <u>All proposed solutions</u>&nbsp; are correct:
 +
*This can be seen by evaluating the table at subtask&nbsp; '''(1)'''.
 +
 +
*The results are shown in the adjacent graph.
 +
<br clear=all>
 +
[[File:P_ID2675__KC_A_3_7c.png|right|frame|State transition diagram of encoder &nbsp;$\rm B$]]
 +
'''(3)'''&nbsp; Correct is only&nbsp; <u>statement 3</u>:
 +
*The state transition diagram of encoder &nbsp;$\rm B$&nbsp; is sketched on the right.&nbsp; For derivation and interpretation,&nbsp; see section [[Channel_Coding/Code_Description_with_State_and_Trellis_Diagram#Representation_in_the_state_transition_diagram|"Representation in the state transition diagram"]].
  
'''(3)'''&nbsp; Nachfolgend sehen Sie das Zustandsübergangsdiagramm von Coder B, das bereits im Theorieteil auf [[Kanalcodierung/Codebeschreibung_mit_Zustands%E2%80%93_und_Trellisdiagramm#Darstellung_im_Zustands.C3.BCbergangsdiagramm| Seite 2]] hergeleitet und interpretiert wurde.
+
*If we swap the two output bits&nbsp; $x_i^{(1)}$&nbsp; and&nbsp; $x_i^{(2)}$,&nbsp; we get from the convolutional encoder &nbsp;$\rm A$&nbsp; to the convolutional encoder&nbsp; $\rm B$&nbsp; $($and vice versa$)$.
  
[[File:P_ID2675__KC_A_3_7c.png|Zustandsübergangsdiagramm für Coder B]]
 
  
Richtig ist nur die <u>Aussage 3</u>. Vertauscht man die beiden Ausgabebits $x_i^{(1)}$ und $x_i^{(2)}$, so kommt man vom Faltungscodierer A zum Faltungscodierer B (und umgekehrt).
 
 
{{ML-Fuß}}
 
{{ML-Fuß}}
  
  
  
[[Category:Aufgaben zu  Kanalcodierung|^3.3 Zustands– und Trellisdiagramm^]]
+
[[Category:Channel Coding: Exercises|^3.3 State and Trellis Diagram^]]

Latest revision as of 18:09, 16 November 2022

Two convolutional encoders with parameters  $n = 2, \ k = 1, \ m = 2$

The graph shows two rate  $1/2$  convolutional encoders,  each with memory  $m = 2$:

  • The encoder  $\rm A$  has the transfer function matrix $\mathbf{G}(D) = (1 + D^2, \ 1 + D + D^2)$.
  • In encoder  $\rm B$  the two filters  $($top and bottom$)$  are interchanged,  and it holds:
$$\mathbf{G}(D) = (1 + D + D^2, \ 1 + D^2).$$


The lower encoder  $\rm B$  has already been treated in detail in the theory part.

In the present exercise, 

  • you are first to determine the state transition diagram for encoder  $\rm A$, 
  • and then work out the differences and the similarities between the two state diagrams.



Hints:

  • Reference is made in particular to the sections


Questions

1

  $\underline{u} = (0, \, 1, \, 1, \, 1, \, 0, \, 1, \, 0, \, 0, \, \text{...}\hspace{0.05cm})$  holds.  Which sequences does encoder  $\rm A$ generate?

$\underline{x}^{(1)} = (0, \, 1, \, 1, \, 0, \, 1, \, 0, \, 0, \, 1, \, \text{...}\hspace{0.05cm})$,
$\underline{x}^{(1)} = (0, \, 1, \, 0, \, 1, \, 0, \, 0, \, 1, \, 1, \, \text{...}\hspace{0.05cm})$,
$\underline{x}^{(2)} = (0, \, 1, \, 1, \, 0, \, 1, \, 0, \, 0, \, 1, \, \text{...}\hspace{0.05cm})$,
$\underline{x}^{(2)} = (0, \, 1, \, 0, \, 1, \, 0, \, 0, \, 1, \, 1, \, \text{...}\hspace{0.05cm})$.

2

Which of the above state transitions exist in encoder  $\rm A$?

$s_i = S_0, \ u_i = 0 \ ⇒ \ s_{i+1} = S_0; \hspace{1cm} s_i = S_0, \ u_i = 1 \ ⇒ \ s_{i+1} = S_1$.
$s_i = S_1, \ u_i = 0 \ ⇒ \ s_{i+1} = S_2; \hspace{1cm} s_i = S_1, \ u_i = 1 \ ⇒ \ s_{i+1} = S_3$.
$s_i = S_2, \ u_i = 0 \ ⇒ \ s_{i+1} = S_0; \hspace{1cm} s_i = S_2, \ u_i = 1 \ ⇒ \ s_{i+1} = S_1$.
$s_i = S_3, \ u_i = 0 \ ⇒ \ s_{i+1} = S_2; \hspace{1cm} s_i = S_3, \ u_i = 1 \ ⇒ \ s_{i+1} = S_3$.

3

How do the two state transition diagrams differ?

Other state transitions are possible.
All eight transitions have different code sequences.
Differences exist only for the code sequences  "$(01)$"  and  "$(10)$".


Solution

Calculation of the code sequence

(1)  The calculation is based on the equations

$$x_i^{(1)} = u_i + u_{i–2},$$
$$x_i^{(2)} = u_i + u_{i–1} + u_{i–2}.$$
  • Initially,  the two memories  $(u_{i–1}$  and  $u_{i–2})$  are preallocated with zeros   ⇒   $s_1 = S_0$.
  • With  $u_1 = 0$,  we get  $\underline{x}_1 = (00)$  and  $s_2 = S_0$.
  • With  $u_2 = 1$,  one obtains the output  $\underline{x}_2 = (11)$  and the new state  $s_3 = S_3$.


From the adjacent calculation scheme one recognizes the correctness of the  proposed solutions 1 and 4.


State transition diagram of encoder  $\rm A$

(2)  All proposed solutions  are correct:

  • This can be seen by evaluating the table at subtask  (1).
  • The results are shown in the adjacent graph.


State transition diagram of encoder  $\rm B$

(3)  Correct is only  statement 3:

  • If we swap the two output bits  $x_i^{(1)}$  and  $x_i^{(2)}$,  we get from the convolutional encoder  $\rm A$  to the convolutional encoder  $\rm B$  $($and vice versa$)$.