From 240e1143007363a796ec6fdf6438186de778e002 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Mon, 12 Jul 2021 19:00:39 +0200 Subject: divisions created --- buch/papers/reedsolomon/dtf.tex | 40 +++++++++++++++++++++++++ buch/papers/reedsolomon/einleitung.tex | 15 ++++++++++ buch/papers/reedsolomon/idee.tex | 53 ++++++++++++++++++++++++++++++++ buch/papers/reedsolomon/main.tex | 6 ++-- buch/papers/reedsolomon/teil0.tex | 22 -------------- buch/papers/reedsolomon/teil1.tex | 55 ---------------------------------- buch/papers/reedsolomon/teil3.tex | 40 ------------------------- 7 files changed, 111 insertions(+), 120 deletions(-) create mode 100644 buch/papers/reedsolomon/dtf.tex create mode 100644 buch/papers/reedsolomon/einleitung.tex create mode 100644 buch/papers/reedsolomon/idee.tex delete mode 100644 buch/papers/reedsolomon/teil0.tex delete mode 100644 buch/papers/reedsolomon/teil1.tex delete mode 100644 buch/papers/reedsolomon/teil3.tex (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex new file mode 100644 index 0000000..00281fb --- /dev/null +++ b/buch/papers/reedsolomon/dtf.tex @@ -0,0 +1,40 @@ +% +% teil3.tex -- Beispiel-File für Teil 3 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Diskrete Fourien Transformation +\label{reedsolomon:section:dtf}} +\rhead{Umwandlung mit DTF} +Sed ut perspiciatis unde omnis iste natus error sit voluptatem +accusantium doloremque laudantium, totam rem aperiam, eaque ipsa +quae ab illo inventore veritatis et quasi architecto beatae vitae +dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit +aspernatur aut odit aut fugit, sed quia consequuntur magni dolores +eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam +est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci +velit, sed quia non numquam eius modi tempora incidunt ut labore +et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima +veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, +nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure +reprehenderit qui in ea voluptate velit esse quam nihil molestiae +consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla +pariatur? + +\subsection{De finibus bonorum et malorum +\label{reedsolomon:subsection:malorum}} +At vero eos et accusamus et iusto odio dignissimos ducimus qui +blanditiis praesentium voluptatum deleniti atque corrupti quos +dolores et quas molestias excepturi sint occaecati cupiditate non +provident, similique sunt in culpa qui officia deserunt mollitia +animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis +est et expedita distinctio. Nam libero tempore, cum soluta nobis +est eligendi optio cumque nihil impedit quo minus id quod maxime +placeat facere possimus, omnis voluptas assumenda est, omnis dolor +repellendus. Temporibus autem quibusdam et aut officiis debitis aut +rerum necessitatibus saepe eveniet ut et voluptates repudiandae +sint et molestiae non recusandae. Itaque earum rerum hic tenetur a +sapiente delectus, ut aut reiciendis voluptatibus maiores alias +consequatur aut perferendis doloribus asperiores repellat. + + diff --git a/buch/papers/reedsolomon/einleitung.tex b/buch/papers/reedsolomon/einleitung.tex new file mode 100644 index 0000000..809f58a --- /dev/null +++ b/buch/papers/reedsolomon/einleitung.tex @@ -0,0 +1,15 @@ +% +% einleitung.tex -- Beispiel-File für die Einleitung +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Einleitung +\label{reedsolomon:section:einleitung}} +\rhead{Einleitung} +Der Reed-Solomon-Code ist entstaden im ... vom .. um, +das Problem der Daten Übertragung zu lösen. +In deiesem Abschnitt wird möglichst verständlich die mathematische Abfolge, Funktion oder Algorithmus erklärt. +Es wird jedoch nicht auf die technische Umsetzung oder Implementierung eingegangen. + + + diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex new file mode 100644 index 0000000..497e2d5 --- /dev/null +++ b/buch/papers/reedsolomon/idee.tex @@ -0,0 +1,53 @@ +% +% teil1.tex -- Beispiel-File für das Paper +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Idee +\label{reedsolomon:section:idee}} +\rhead{Problemstellung} +Das Problem liegt darin Informationen, Zahlen, +zu Übertragen und Fehler zu erkennen. + +\rhead{Idee} +Eine +\begin{equation} +\int_a^b x^2\, dx += +\left[ \frac1312 x^3 \right]_a^b += +\frac{b^3-a^3}3. +\label{reedsolomon:equation1} +\end{equation} +Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, +consectetur, adipisci velit, sed quia non numquam eius modi tempora +incidunt ut labore et dolore magnam aliquam quaerat voluptatem. + +Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis +suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? +Quis autem vel eum iure reprehenderit qui in ea voluptate velit +esse quam nihil molestiae consequatur, vel illum qui dolorem eum +fugiat quo voluptas nulla pariatur? + +\subsection{De finibus bonorum et malorum +\label{reedsolomon:subsection:finibus}} +At vero eos et accusamus et iusto odio dignissimos ducimus qui +blanditiis praesentium voluptatum deleniti atque corrupti quos +dolores et quas molestias excepturi sint occaecati cupiditate non +provident, similique sunt in culpa qui officia deserunt mollitia +animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. + +Et harum quidem rerum facilis est et expedita distinctio +\ref{reedsolomon:section:loesung}. +Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil +impedit quo minus id quod maxime placeat facere possimus, omnis +voluptas assumenda est, omnis dolor repellendus +\ref{reedsolomon:section:folgerung}. +Temporibus autem quibusdam et aut officiis debitis aut rerum +necessitatibus saepe eveniet ut et voluptates repudiandae sint et +molestiae non recusandae. +Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis +voluptatibus maiores alias consequatur aut perferendis doloribus +asperiores repellat. + + diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index 4e2fd60..ec8fa22 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -28,10 +28,10 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \end{itemize} % Joshua -\input{papers/reedsolomon/teil0.tex} -\input{papers/reedsolomon/teil1.tex} +\input{papers/reedsolomon/einleitung.tex} +\input{papers/reedsolomon/idee.tex} \input{papers/reedsolomon/teil2.tex} -\input{papers/reedsolomon/teil3.tex} +\input{papers/reedsolomon/dtf.tex} % Michael \input{papers/reedsolomon/endlichekoerper} diff --git a/buch/papers/reedsolomon/teil0.tex b/buch/papers/reedsolomon/teil0.tex deleted file mode 100644 index b7ae971..0000000 --- a/buch/papers/reedsolomon/teil0.tex +++ /dev/null @@ -1,22 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{reedsolomon:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{reedsolomon:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - - diff --git a/buch/papers/reedsolomon/teil1.tex b/buch/papers/reedsolomon/teil1.tex deleted file mode 100644 index 0aa9b41..0000000 --- a/buch/papers/reedsolomon/teil1.tex +++ /dev/null @@ -1,55 +0,0 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{reedsolomon:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{reedsolomon:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{reedsolomon:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{reedsolomon:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - diff --git a/buch/papers/reedsolomon/teil3.tex b/buch/papers/reedsolomon/teil3.tex deleted file mode 100644 index 91a8d4e..0000000 --- a/buch/papers/reedsolomon/teil3.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{reedsolomon:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - -- cgit v1.2.1 From 60d4a3350dc813cbd17c8dd8cf0a4b50b0f84346 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Wed, 14 Jul 2021 17:01:21 +0200 Subject: various chapters updated, zusammenfassung filld with content --- buch/papers/reedsolomon/codebsp.tex | 26 ++++++++------- buch/papers/reedsolomon/decmitfehler.tex | 18 +++++----- buch/papers/reedsolomon/decohnefehler.tex | 17 ++++++---- buch/papers/reedsolomon/rekonstruktion.tex | 7 ++-- buch/papers/reedsolomon/zusammenfassung.tex | 52 +++++++++++++++++++++++++++-- 5 files changed, 87 insertions(+), 33 deletions(-) (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/codebsp.tex b/buch/papers/reedsolomon/codebsp.tex index 0339d9c..5661d26 100644 --- a/buch/papers/reedsolomon/codebsp.tex +++ b/buch/papers/reedsolomon/codebsp.tex @@ -7,11 +7,10 @@ \label{reedsolomon:section:codebsp}} \rhead{Codierung eines Beispiels} -Um die Funktionsweise eines Reed-Solomon-Codes besser zu verstehen werden wir die einzelnen Probleme und ihre Lösungen anhand eines Beispiels betrachten. -Da wir in endlichen Körpern rechnen, werden wir zuerst solch einen Körper festlegen. Dabei müssen wir die \textcolor{red}{Definition 4.6 (verweis auf eine Definition im Buch ohne label)} berücksichtigen, die besagt, dass nur Primzahlen für endliche Körper in Frage kommen. +Um die Funktionsweise eines Reed-Solomon-Codes besser zu verstehen, werden wir die einzelnen Probleme und ihre Lösungen anhand eines Beispiels betrachten. +Da wir in endlichen Körpern rechnen, werden wir zuerst solch einen Körper festlegen. Dabei müssen wir die Definition \ref{buch:endlichekoerper:def:galois-koerper} berücksichtigen, die besagt, dass nur Primzahlen für endliche Körper in Frage kommen. Wir legen für unser Beispiel den endlichen Körper $\mathbb{F}_{q}$ mit $q = 11$ fest. -Zur Hilfestellung können dazu die beiden Tabellen \ref{reedsolomon:subsection:adtab} und -\ref{reedsolomon:subsection:mptab} hinzugezogen werden. Diese Tabellen enthalten die Resultate der arithmetischen Operationen im Körper $\mathbb{F}_{11}$, die durchgeführt werden können. +Zur Hilfestellung zum Rechnen in $\mathbb{F}_{11}$ können die beiden Tabellen \ref{reedsolomon:subsection:adtab} und \ref{reedsolomon:subsection:mptab} hinzugezogen werden. Diese Tabellen enthalten die Resultate der arithmetischen Operationen im Körper $\mathbb{F}_{11}$, die durchgeführt werden können. Aus der Definition der endlichen Körper (ersichtlich auch in den Tabellen) folgt, dass uns nur die Zahlen \[\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\}\] zur Verfügung stehen und somit $11 = 0$ gelten muss. % OLD TEXT @@ -78,15 +77,16 @@ dar. \label{reedsolomon:subsection:diskFT}} In einem vorherigen Abschnitt \textcolor{red}{(???)} haben wir schon einmal die diskrete Fouriertransformation zum Codieren einer Nachricht verwendet. In den endlichen Körpern wird dies jedoch nicht gelingen, da die Eulerische Zahl $e$ in endlichen Körpern nicht existiert. -Wir wählen deshalb eine Zahl $a$, die die gleichen Aufgaben haben soll wie $e^{\frac{j}{2 \pi}}$ in der diskreten Fouriertransformation, nur mit dem Unterschied, dass $a$ in $\mathbb{F}_{11}$ ist. Dazu soll die Potenz von $a$ den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken, um +Wir wählen deshalb eine Zahl $a$, die die gleichen Aufgaben haben soll wie $e^{\frac{j}{2 \pi}}$ in der diskreten Fouriertransformation, nur mit dem Unterschied, dass $a$ in $\mathbb{F}_{11}$ ist. Dazu soll die Potenz von $a$ den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken. +Dazu ändern wir die Darstellung von \[ \mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\} \] -in +in die von $a$ abhängige Schreibweise \[ \mathbb{Z}_{11}\setminus\{0\} = \{a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9\}. \] -umzuschreiben. +%Jetzt brauchen wir nur noch eine geeignete Zahl für $a$ zu finden. % Old Text %Wir suchen also eine Zahl $a$, die in endlichen Körpern existiert und den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken kann. %Dazu schreiben wir @@ -116,7 +116,7 @@ umzuschreiben. \subsubsection{Die primitiven Einheitswurzeln \label{reedsolomon:subsection:primsqrt}} -Wenn wir jetzt sämtliche Zahlen von $\mathbb{F}_{11}$ in $a$ einsetzen +Wenn wir jetzt Zahlen von $\mathbb{F}_{11}$ an Stelle von $a$ einsetzen, erhalten wir \begin{center} \begin{tabular}{c c c c c c c} $a = 1$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 1, 1, 1, 1, 1, 1, 1, 1, 1\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ @@ -128,7 +128,7 @@ $a = 6$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 6, 3, 7, 9, 1 $a = 7$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 7, 5, 2, 3, 10, 4, 6, 9, 8\}$ & $ = $ & $\mathbb{F}_{11}\setminus\{0\}$ \\ $a = 8$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 8, 9, 6, 4, 10, 3, 2, 5, 7\}$ & $ = $ & $\mathbb{F}_{11}\setminus\{0\}$ \\ $a = 9$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 9, 4, 3, 5, 1, 9, 4, 3, 5\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ -$a = 10$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 10$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$. \\ \end{tabular} \end{center} %\begin{center} @@ -146,13 +146,15 @@ $a = 10$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 10, 1, 10, 1 %$a = 10 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ %\end{tabular} %\end{center} -so fällt uns auf, dass für $a$ die Zahlen $2,6,7,8$ erhalten, die tatsächlich den gesamten Zahlenraum von $\mathbb{F}_{11}$ abbilden. Solche Zahlen werden \em primitive Einheitswurzel \em genannt. +Es fällt auf, dass wir für $a$ die Zahlen $2,6,7,8$ Mengen erhalten, die tatsächlich den gesamten Zahlenraum von $\mathbb{F}_{11}$ abbilden. Solche Zahlen werden \em primitive Einheitswurzel \em genannt. Wenden wir diese Vorgehensweise auch für andere endliche Körper an, so werden wir sehen, dass wir immer mindestens zwei solcher Einheitswurzel finden werden. Somit ist es uns überlassen, eine dieser Einheitswurzel auszuwählen, mit der wir weiter rechnen wollen. Für das Beispiel wählen wir die Zahl $a = 8$. \subsubsection{Bildung einer Transformationsmatrix \label{reedsolomon:subsection:transMat}} -Mit der Wahl einer Einheitswurzel ist es uns jetzt möglich, unsere Nachricht zu Codieren. Daraus sollen wir dann einen Übertragungsvektor $v$ erhalten, den wir an den Empfänger schicken können. Für die Codierung müssen wir alle $a^i$ in das Polynom $m(X)$ einsetzen. Da wir $a^i = 8^i$ gewählt haben, ergibt sich daraus +Mit der Wahl einer Einheitswurzel ist es uns jetzt möglich, unsere Nachricht zu Codieren. Daraus sollen wir dann einen Übertragungsvektor $v$ erhalten, den wir an den Empfänger schicken können. +Für die Codierung setzen wir alle Zahlen in $\mathbb{F}_{11}\setminus\{0\}$ nacheinander in $m(X)$ ein. Da wir zuvor eine von $a$ abhängige Schreibweise gewählt haben setzen wir stattdessen $a^i$ ein mit $a = 8$ als die von uns gewählten primitiven Einheitswurzel. Daraus ergibt sich +%Für die Codierung müssen wir alle $a^i$ in das Polynom $m(X)$ einsetzen. Da wir $a^i = 8^i$ gewählt haben, ergibt sich daraus % %Damit wir unsere Nachricht codieren können, müssen wir $8^i$ in $m(X)$ einsetzen. % @@ -168,7 +170,7 @@ als unser Übertragungsvektor. \subsection{Allgemeine Codierung \label{reedsolomon:subsection:algCod}} -Um das Ganze noch ein wenig übersichtlicher zu gestalten können wir die Polynome zu einer Matrix zusammenfassen, die unsere Transformationsmatrix $A$ bildet. +Um das Ganze noch ein wenig übersichtlicher zu gestalten, können wir die Polynome zu einer Matrix zusammenfassen, die unsere Transformationsmatrix $A$ bildet. Für die allgemeine Codierung benötigen wir die Nachricht $m$, die codiert werden soll, sowie die Transformationsmatrix $A$. Daraus erhalten wir den Übertragungsvektor $v$. Setzen wir die Zahlen aus dem Beispiel ein erhalten wir folgende Darstellung: \[ diff --git a/buch/papers/reedsolomon/decmitfehler.tex b/buch/papers/reedsolomon/decmitfehler.tex index a46d7da..c7c86ad 100644 --- a/buch/papers/reedsolomon/decmitfehler.tex +++ b/buch/papers/reedsolomon/decmitfehler.tex @@ -16,7 +16,7 @@ Der Übertragungskanal im Beispiel weisst jetzt den Fehlervektor u = [0, 0, 0, 3, 0, 0, 0, 0, 2, 0] \] auf. -Senden wir jetzt unser Übertragungsvektor $v$ durch diesen Kanal addiert sich der Fehlervektor $u$ auf unsere Übertragung und wir erhalten +Senden wir jetzt unser Übertragungsvektor $v$ durch diesen Kanal, addiert sich der Fehlervektor $u$ auf unsere Übertragung und wir erhalten \begin{center} \begin{tabular}{c | c r } @@ -127,7 +127,7 @@ Setzen wir jetzt unsere Einheitswurzel aus dem Beispiel ein so erhalten wir \end{tabular} \end{center} und damit die Information, dass allen Stellen, die nicht Null sind, Fehler enthalten. -Aus der Tabelle lesen wir, das in unserem Beispiel die Fehler an der Stelle drei und acht zu finden sind. +Aus der Tabelle lesen wir ab, das in unserem Beispiel die Fehler an der Stelle drei und acht zu finden sind. Für das einfache Bestimmen von Hand mag dies ja noch ausreichen, jedoch können wir mit diesen Stellen nicht das Lokatorpolynom bestimmen, denn dafür bräuchten wir alle Nullstellen, an denen es Fehler gegeben hat (also sozusagen genau das umgekehrte). Um dies zu erreichen wenden wir eine andere Herangehensweise und nehmen uns den Satz von Fermat sowie den kleinsten gemeinsamen Teiler zur Hilfe. @@ -140,7 +140,7 @@ f(X) = X^{q-1} -1 = 0 \] gilt für jedes $X$. Setzen wir das $q$ von unserem Beispiel ein \[ -f(X) = X^{10}-1 = 0 \qquad \text{für } X = \{1,2,3,4,5,6,7,8,9,10\} +f(X) = X^{10}-1 = 0 \qquad \text{für } X \in \{1,2,3,4,5,6,7,8,9,10\} \] und stellen dies als Faktorisierung dar. So ergibt sich die Darstellung \[ @@ -173,7 +173,7 @@ Das kgV hat nämlich die Eigenschaft sämtliche Nullstellen zu finden, also nich ersichtlich ist. Aus dem vorherigen Abschnitt wissen wir auch, dass $d(X)$ alle korrekten Nullstellen beinhaltet. Teilen wir das kgV jetzt auf in \[ -\operatorname{kgV}(f(X),d(X)) = d(X) \cdot l(X) +\operatorname{kgV}(f(X),d(X)) = d(X) \cdot l(X), \] sollten wir für $l(X)$ eine Liste mit allen fehlerhaften Nullstellen erhalten. Somit ist @@ -192,14 +192,16 @@ In Abschnitt \ref{reedsolomon:section:decmitfehler} haben wir d(X) = r(X) - m(X) \] in Abhängigkeit von $m(X)$ berechnet. -Jedoch haben wir ausser acht gelassen, dass $m(X)$ auf der Empfängerseite nicht existiert und somit gänzlich unbekannt ist. +Jedoch haben wir ausser acht gelassen, dass $m(X)$ auf der Empfängerseite nicht verfügbar und somit gänzlich unbekannt ist. Es scheint so als würde dieser Lösungsansatz, den wir bisher verfolgt haben, nicht funktioniert. -Wir könnten uns höchstens noch fragen, ob wir tatsächlich nichts über den Nachrichtenvektor im Beispiel wissen. Wenn wir noch einmal den Vektor betrachten als +Wir könnten uns höchstens noch fragen, ob wir tatsächlich nichts über den Nachrichtenvektor im Beispiel wissen. + +Wenn wir noch einmal den Vektor betrachten als \[ m = [0,0,0,0,4,7,2,5,8,1] \] -fällt uns aber auf, dass wir doch etwas über diesen Vektor wissen, nämlich den Wert der ersten $2t$ (im Beispiel vier) stellen. -Im Normalfall sollen diese nämlich den Wert null betragen und somit sind nur die letzten $k$ stellen (im Beispiel sechs) für uns unbekannt, dargestellt als +fällt uns aber auf, dass wir doch etwas über diesen Vektor wissen, nämlich den Wert der ersten $2t$ (im Beispiel vier) Stellen. +Im Normalfall sollen diese nämlich den Wert $0$ haben und somit sind nur die letzten $k$ Stellen (im Beispiel sechs) für uns unbekannt, dargestellt als \[ m = [0,0,0,0,?,?,?,?,?,?]. \] diff --git a/buch/papers/reedsolomon/decohnefehler.tex b/buch/papers/reedsolomon/decohnefehler.tex index 0470db0..fd616d3 100644 --- a/buch/papers/reedsolomon/decohnefehler.tex +++ b/buch/papers/reedsolomon/decohnefehler.tex @@ -33,11 +33,12 @@ Definiert ist sie als \[ F(\omega) = \int_{-\infty}^{\infty} f(t) \mathrm{e}^{-j\omega t} dt \qquad \Rightarrow \qquad \mathfrak{F}^{-1}(F(\omega)) = f(t) = \frac{1}{2 \pi} \int_{-\infty}^{\infty} F(\omega) \mathrm{e}^{j \omega t} d\omega. \] -Damit beschäftigen wir uns im Abschnitt \ref{reedsolomon:subsection:sfaktor} weiter, konkret suchen wir momentan aber eine Inverse für unsere primitive Einheitswurzel $a$. +Im wesentlichen ändert sich bei der inversen diskreten Fouriertransformation $e^{j/2\pi}$ zu $e^{-j/2\pi}$. Zusätzlich benötigt die inverse noch einen Korrekturfaktor $1/n$. Wir erwarten daher, dass wir auch im endlichen Körper $A$ die Zahl $a$ durch $a^{-1}$ ersetzen können. Mit der primitiven Einheitswurzel ergibt das +%Damit beschäftigen wir uns im Abschnitt \ref{reedsolomon:subsection:sfaktor} weiter, konkret suchen wir momentan aber eine Inverse für unsere primitive Einheitswurzel $a$. \[ -8^1 \qquad \rightarrow \qquad 8^{-1} +8^1 \qquad \rightarrow \qquad 8^{-1}. \] -Mit einem solchen Problem haben wir uns bereits in Abschnitt \ref{buch:section:euklid} befasst und so den euklidischen Algorithmus kennengelernt, den wir auf unseren Fall anwenden können. +Mit einem solchen Problem haben wir uns bereits in Abschnitt \ref{buch:section:euklid} befasst und so den euklidischen Algorithmus kennengelernt, den wir auf diesen Fall anwenden können. % Old Text %Im Abschnitt \textcolor{red}{4.1} haben wir den euklidischen Algorithmus kennengelernt, den wir auf unseren Fall anwenden können. @@ -76,7 +77,9 @@ Daraus erhalten wir \end{tabular} \end{center} -als Inverse der primitiven Einheitswurzel. Die inverse Transformationsmatrix $A^{-1}$ bilden wir, indem wir jetzt die inverse primitive Einheitswurzel anstelle der primitiven Einheitswurzel in die Matrix einsetzen: +als Inverse der primitiven Einheitswurzel. +Alternativ können wir das Resultat auch aus der Tabelle \ref{reedsolomon:subsection:mptab} ablesen. +Die inverse Transformationsmatrix $A^{-1}$ bilden wir, indem wir jetzt die inverse primitive Einheitswurzel anstelle der primitiven Einheitswurzel in die Matrix einsetzen: \[ \begin{pmatrix} 8^0 & 8^0 & 8^0 & 8^0 & \dots & 8^0 \\ @@ -102,9 +105,9 @@ als Inverse der primitiven Einheitswurzel. Die inverse Transformationsmatrix $A^ \subsection{Der Faktor $s$ \label{reedsolomon:subsection:sfaktor}} Die diskrete Fouriertransformation benötigt für die Inverse einen Vorfaktor von $\frac{1}{2\pi}$. -Primitiv nehmen wir an, dass wir für die Inverse Transformationsmatrix ebenfalls einen benötigen. +Wir müssen also damit rechnen, dass wir für die Inverse Transformationsmatrix ebenfalls einen solchen Vorfaktor benötigen. Nur stellt sich jetzt die Frage, wie wir diesen Vorfaktor in unserem Fall ermitteln können. -Dafür betrachten wir eine Regel aus der Linearen Algebra, nämlich dass +Dafür betrachten wir eine Regel aus der linearen Algebra, nämlich dass \[ A \cdot A^{-1} = E @@ -148,7 +151,7 @@ Aus der letzten Matrix folgt, dass wir \[ s = \dfrac{1}{10} \] -als unseren Vorfaktor setzen müssen um die Gleichung \ref{reedsolomon:equation:sfaktor} zu erfüllen. Da wir in $\mathbb{F}_{11}$ nur mit ganzen Zahlen arbeiten schreiben wir $\frac{1}{10}$ in $10^{-1}$ um und bestimmen diese Inverse erneut mit dem euklidischen Algorithmus und erhalten für $10^{-1} = 10$ als unseren Vorfaktor in $\mathbb{F}_{11}$. +als unseren Vorfaktor setzen müssen um, die Gleichung \ref{reedsolomon:equation:sfaktor} zu erfüllen. Da wir in $\mathbb{F}_{11}$ nur mit ganzen Zahlen arbeiten, schreiben wir $\frac{1}{10}$ in $10^{-1}$ um und bestimmen diese Inverse erneut mit dem euklidischen Algorithmus. So erhalten wir $10^{-1} = 10$ als Vorfaktor in $\mathbb{F}_{11}$. % %erfüllt wird. Wir schreiben den Bruch um in $\frac{1}{10} = 10^{-1}$ und wenden darauf erneut den euklidischen Algorithmus an und erhalten somit den Vorfaktor $10^{-1} = 10 = s$ in $\mathbb{F}_{11}$. % diff --git a/buch/papers/reedsolomon/rekonstruktion.tex b/buch/papers/reedsolomon/rekonstruktion.tex index 04e748c..38d54a2 100644 --- a/buch/papers/reedsolomon/rekonstruktion.tex +++ b/buch/papers/reedsolomon/rekonstruktion.tex @@ -4,7 +4,7 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Nachricht Rekonstruieren +\section{Nachricht rekonstruieren \label{reedsolomon:section:rekonstruktion}} \rhead{Rekonstruktion der Nachricht} Im letzten Abschnitt haben wir eine Möglichkeit gefunden, wie wir die fehlerhaften Stellen lokalisieren können. @@ -49,7 +49,7 @@ Wir stellen also die Matrix auf und markieren gleichzeitig die Fehlerstellen: \end{pmatrix} . \] -Die rot markierten Stellen im Übertragungsvektor enthalten Fehler und bringt uns daher keinen weiterer Nutzen. +Die rot markierten Stellen im Übertragungsvektor enthalten Fehler und bringt uns daher keinen weiteren Nutzen. Aus diesem Grund werden diese Stellen aus dem Vektor entfernt, was wir hier ohne Probleme machen können, da dieser Code ja über Fehlerkorrekturstellen verfügt, deren Aufgabe es ist, eine bestimmte Anzahl an Fehler kompensieren zu können. Die dazugehörigen Zeilen in der Matrix werden ebenfalls entfernt, da die Matrix gleich viele Zeilen wie im Übertragungsvektor aufweisen muss, damit man ihn decodieren kann. @@ -78,6 +78,7 @@ Daraus resultiert Die Matrix ist jedoch nicht mehr quadratisch, was eine Rekonstruktion durch Inversion ausschliesst. Um die quadratische Form wieder herzustellen müssen wir zwei Spalten aus der Matrix entfernen. Wir kennen aber das Resultat aus den letzten vier Spalten, da wir wissen, das die Nachricht aus Nutzdatenteil und Fehlerkorrekturteil besteht, wobei der letzteres bekanntlich aus lauter Nullstellen besteht. +Wir nehmen die markierten Spalten in \[ \begin{pmatrix} 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ 7 \\ 4 \\ @@ -98,7 +99,7 @@ Wir kennen aber das Resultat aus den letzten vier Spalten, da wir wissen, das di m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ \textcolor{darkgreen}{m_6} \\ \textcolor{darkgreen}{m_7} \\ \textcolor{darkgreen}{m_8} \\ \textcolor{darkgreen}{m_9} \\ \end{pmatrix} \] -Wir nehmen die entsprechenden Spalten aus der Matrix heraus und erhalten so das Überbestimmte Gleichungssystem +aus der Matrix heraus und erhalten so das Überbestimmte Gleichungssystem \[ \begin{pmatrix} 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ \textcolor{red}{7} \\ \textcolor{red}{4} \\ diff --git a/buch/papers/reedsolomon/zusammenfassung.tex b/buch/papers/reedsolomon/zusammenfassung.tex index 568356f..b4050b8 100644 --- a/buch/papers/reedsolomon/zusammenfassung.tex +++ b/buch/papers/reedsolomon/zusammenfassung.tex @@ -3,13 +3,59 @@ \rhead{Zusammenfassung} Dieser Abschnitt beinhaltet eine Übersicht über die Funktionsweise eines Reed-Solomon-Codes für beliebige endliche Körper. -TODO: - \subsubsection{Schritt 1: primitives Element} +Zu Beginn soll entschieden werden, in welchem endlichen Körper $\mathbb{F}_{q}$ gerechnet werden soll. +Ausserdem muss im gewählten Körper eine primitive Einheitswurzel gefunden, bzw. bestimmt werden. \subsubsection{Schritt 2: Codierung} +Für die Codierung wird die Nachricht als Koeffizienten des Polynoms $m(X)$ geschrieben, anschliessend wird $a^i$ in $m(X)$ eingesetzt. +Daraus ergibt sich die Codierungsmatrix +\[ +A(a) = +\begin{pmatrix} +a^0 & a^0 & a^0 & \dots \\ +a^0 & a^1 & a^2 & \dots \\ +a^0 & a^2 & a^4 & \dots \\ +\vdots&\vdots&\vdots&\ddots +\end{pmatrix} +. +\] +Mit dieser Matrix können wir den Nachrichtenblock zum Übertragungsvektor codieren. \subsubsection{Schritt 3: Decodierung ohne Fehler} +Im ersten Schritt zur Decodierung muss geprüft werden, ob der Übertragungsvektor Fehler beinhaltet. +Ist dies nicht der Fall, so kann die Matrix $A(a)$ invertiert werden mit +\[ +A(a)^{-1} = \frac{1}{q-1} \cdot A(a^{-1}). +\] +Die Codierungsmatrix ändert sich somit zur Decodierungsmatrix +\[ +\begin{pmatrix} + a^0 & a^0 & a^0 & \dots \\ + a^0 & a^1 & a^2 & \dots \\ + a^0 & a^2 & a^4 & \dots \\ + \vdots&\vdots&\vdots &\ddots +\end{pmatrix} += +\frac{1}{q-1} +\cdot +\begin{pmatrix} + a^0 & a^0 & a^0 & \dots \\ + a^0 & a^{-1} & a^{-2} & \dots \\ + a^0 & a^{-2} & a^{-4} & \dots \\ + \vdots&\vdots&\vdots&\ddots +\end{pmatrix} +. +\] +Daraus lässt sich der Nachrichtenblock aus dem Übertragungsvektor rekonstruieren. \subsubsection{Schritt 4: Decodierung mit Fehler} - +Sollte der Übertragungsvektor fehlerhaft empfangen werden, so kann der Nachrichtenblock nicht durch invertieren der Matrix rekonstruiert werden. +Zur Lokalisierung der Fehlerstellen nehmen wir das Polynom $f(X)$ zur Hilfe, welches wir über den Satz von Fermat bestimmt haben. +Berechnen wir daraus das $\operatorname{kgV}$ von $f(X)$ und $d(X)$, so erhalten wir ein Lokatorpolynom. +Durch das bestimmen der Exponenten erhalten wir die Fehlerhaften Stellen im Übertragungsvektor. +Für die Rekonstruktion stellen wir ein Gleichungssystem auf und entfernen daraus die Fehlerhaften Zeilen. +Im Anschluss kann das verkleinerte Gleichungssystem gelöst werden. +Als Resultat erhalten wir die fehlerfreie Nachricht. +%Aus diesem Grund suchen wir nach einem Lokatorpolynom, welches uns die Fehlerhaften Stellen im Übertragungsvektor anzeigt. +%Dazu nehmen wir das Polynom $f(X)$, welches wir durch den Satz von Fermat erhalten, und berechnen so das $\operatorname{kgV}(f(X),d(X))$ und kommen so auf das Lokatorpolynom $l(X)$. Durch das bestimmen von den Exponenten erhalten wir die Fehlerstellen, welche wir aus dem Gleichungssystem entfernen müssen. Übrig bleibt das berechnen dieses Gleichungssystems. -- cgit v1.2.1 From 7f6814025b2f4ca6a2cc04488a92cd484444c4d7 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Wed, 14 Jul 2021 17:31:13 +0200 Subject: file description updated --- buch/papers/reedsolomon/codebsp.tex | 4 ++-- buch/papers/reedsolomon/decmitfehler.tex | 4 ++-- buch/papers/reedsolomon/decohnefehler.tex | 4 ++-- buch/papers/reedsolomon/endlichekoerper.tex | 4 ++-- buch/papers/reedsolomon/hilfstabellen.tex | 5 ++--- buch/papers/reedsolomon/main.tex | 2 +- buch/papers/reedsolomon/rekonstruktion.tex | 5 ++--- buch/papers/reedsolomon/restetabelle1.tex | 6 ++++-- buch/papers/reedsolomon/restetabelle2.tex | 6 ++++-- buch/papers/reedsolomon/zusammenfassung.tex | 5 +++++ 10 files changed, 26 insertions(+), 19 deletions(-) (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/codebsp.tex b/buch/papers/reedsolomon/codebsp.tex index 5661d26..8430ebd 100644 --- a/buch/papers/reedsolomon/codebsp.tex +++ b/buch/papers/reedsolomon/codebsp.tex @@ -1,7 +1,7 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% codebsp.tex -- Codierung eines Beispiels % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Codierung eines Beispiels \label{reedsolomon:section:codebsp}} diff --git a/buch/papers/reedsolomon/decmitfehler.tex b/buch/papers/reedsolomon/decmitfehler.tex index c7c86ad..598cf68 100644 --- a/buch/papers/reedsolomon/decmitfehler.tex +++ b/buch/papers/reedsolomon/decmitfehler.tex @@ -1,7 +1,7 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% decmitfehler.tex -- Decodierung mit Fehler % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Decodierung: Ansatz mit Fehlerkorrektur \label{reedsolomon:section:decmitfehler}} diff --git a/buch/papers/reedsolomon/decohnefehler.tex b/buch/papers/reedsolomon/decohnefehler.tex index fd616d3..50bd8d6 100644 --- a/buch/papers/reedsolomon/decohnefehler.tex +++ b/buch/papers/reedsolomon/decohnefehler.tex @@ -1,7 +1,7 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% decohnefehler.tex -- Decodierung ohne Fehler % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Decodierung: Ansatz ohne Fehler \label{reedsolomon:section:decohnefehler}} diff --git a/buch/papers/reedsolomon/endlichekoerper.tex b/buch/papers/reedsolomon/endlichekoerper.tex index 19e5dd4..1d196fd 100644 --- a/buch/papers/reedsolomon/endlichekoerper.tex +++ b/buch/papers/reedsolomon/endlichekoerper.tex @@ -1,7 +1,7 @@ % -% teil1.tex -- Beispiel-File für das Paper +% endlichekoerper.tex -- endliche Körper % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Reed-Solomon in Endlichen Körpern \label{reedsolomon:section:endlichekoerper}} diff --git a/buch/papers/reedsolomon/hilfstabellen.tex b/buch/papers/reedsolomon/hilfstabellen.tex index b006f21..24fabdf 100644 --- a/buch/papers/reedsolomon/hilfstabellen.tex +++ b/buch/papers/reedsolomon/hilfstabellen.tex @@ -1,8 +1,7 @@ % -% hilfstabellen.tex -% Autor: Michael Steiner +% hilfstabellen.tex -- Hilfstabellen % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Hilfstabellen für $\mathbb{F}_{11}$ \label{reedsolomon:section:hilfstabellen}} diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index 4e2fd60..6676670 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -40,7 +40,7 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \input{papers/reedsolomon/decmitfehler} \input{papers/reedsolomon/rekonstruktion} \input{papers/reedsolomon/zusammenfassung} -%\input{papers/reedsolomon/anwendungen} -> geplant +\input{papers/reedsolomon/anwendungen} \input{papers/reedsolomon/hilfstabellen} \nocite{reedsolomon:weitz} diff --git a/buch/papers/reedsolomon/rekonstruktion.tex b/buch/papers/reedsolomon/rekonstruktion.tex index 38d54a2..b099e68 100644 --- a/buch/papers/reedsolomon/rekonstruktion.tex +++ b/buch/papers/reedsolomon/rekonstruktion.tex @@ -1,8 +1,7 @@ % -% rekonstruktion.tex -% Autor: Michael Steiner +% rekonstruktion.tex -- Rekonstruktion % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Nachricht rekonstruieren \label{reedsolomon:section:rekonstruktion}} diff --git a/buch/papers/reedsolomon/restetabelle1.tex b/buch/papers/reedsolomon/restetabelle1.tex index 3969ef2..b9a0e59 100644 --- a/buch/papers/reedsolomon/restetabelle1.tex +++ b/buch/papers/reedsolomon/restetabelle1.tex @@ -1,6 +1,8 @@ -% created by Michael Steiner % -% Restetabelle von F_11: Addition +% restetabelle1.tex -- Restetabelle von F_11: Addition +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% % alternatives design %\begin{figure} diff --git a/buch/papers/reedsolomon/restetabelle2.tex b/buch/papers/reedsolomon/restetabelle2.tex index 1a9815c..3b13ea2 100644 --- a/buch/papers/reedsolomon/restetabelle2.tex +++ b/buch/papers/reedsolomon/restetabelle2.tex @@ -1,6 +1,8 @@ -% created by Michael Steiner % -% Restetabelle von F_11: Multiplikation +% restetabelle2.tex -- Restetabelle von F_11: Multiplikation +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% % alternatives design %\begin{figure} diff --git a/buch/papers/reedsolomon/zusammenfassung.tex b/buch/papers/reedsolomon/zusammenfassung.tex index 9b8ea1b..c24fcf3 100644 --- a/buch/papers/reedsolomon/zusammenfassung.tex +++ b/buch/papers/reedsolomon/zusammenfassung.tex @@ -1,3 +1,8 @@ +% +% zusammenfassung.tex -- Zusammenfassung +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% \section{Zusammenfassung \label{reedsolomon:section:zf}} \rhead{Zusammenfassung} -- cgit v1.2.1 From 2e3eb61f84ec6fda9d74e2b71bbb680b6a5640f8 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Wed, 14 Jul 2021 21:19:32 +0200 Subject: images folder created --- buch/papers/reedsolomon/anwendungen.tex | 93 +++++++++++++++++++++++ buch/papers/reedsolomon/images/Compact_Disc.png | Bin 0 -> 938930 bytes buch/papers/reedsolomon/images/Voyager_Sonde.png | Bin 0 -> 272068 bytes buch/papers/reedsolomon/images/qrcode_h.png | Bin 0 -> 840 bytes buch/papers/reedsolomon/images/qrcode_l.png | Bin 0 -> 608 bytes 5 files changed, 93 insertions(+) create mode 100644 buch/papers/reedsolomon/anwendungen.tex create mode 100644 buch/papers/reedsolomon/images/Compact_Disc.png create mode 100644 buch/papers/reedsolomon/images/Voyager_Sonde.png create mode 100644 buch/papers/reedsolomon/images/qrcode_h.png create mode 100644 buch/papers/reedsolomon/images/qrcode_l.png (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/anwendungen.tex b/buch/papers/reedsolomon/anwendungen.tex new file mode 100644 index 0000000..83e0f94 --- /dev/null +++ b/buch/papers/reedsolomon/anwendungen.tex @@ -0,0 +1,93 @@ +% +% anwendungen.tex -- Anwendungen des Reed-Solomon-Codes +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% +\section{Anwendungen des Reed-Solomon-Codes + \label{reedsolomon:section:anwendung}} +\rhead{Anwendungen} +\textcolor{red}{Platzierung der Bilder? Quellenangabe der Bilder?} + +In den vorherigen Abschnitten haben wir betrachtet, wie Reed-Solomon-Codes in der Theorie Funktionieren. +In diesem Abschnitt werden wir einige Anwendungen vorstellen, bei denen ein Reed-Solomon-Code zum Einsatz kommt. +Obwohl alle diese Codes nach dem gleichen Prinzip arbeiten gibt es starke Unterschiede in deren Funktionsweise. +Dies kommt vor allem daher, da die Codes nur Ressourcen zur Verfügung haben, die von der Hardware bereitstellt wird, auf denen die Codes implementiert wurden. +Diese Codes bedienen sich daher verschiedener Tricks und Optimierungen um möglichst effizient zu arbeiten. +% +%Dies kommt vor allem daher, da diese Codes an ihre Hardware gebunden sind, auf denen sie implementiert worden sind. +%Deshalb wurden diese Codes stark optimiert damit sie möglichst Effizient arbeiten können. +% +%Um diese Hardware möglichst effizient zu nutzen wurden gewisse mathematische tricks angewendet um den Code möglichst effizient zu nutzen. +% +% um mit maximaler Effizienz zu arbeiten. +%Es überrascht daher nicht, dass vor allem ältere Codes im binären Körper $\mathbb{F}_{2}$ arbeiten. +% +% um den Code mit maximaler Effizienz zu nutzen. +% +%Alle diese Anwendungen verfügen über eigene spezifizierten Eigenschaften. +% +%, wobei bei allen dieser Anwendungen jeweils eine unterschiedliche Version des Codes implementiert wurden. +% +%Dies kommt vor allem daher, da diese Codes immer an ihre dementsprechende Hardware gebunden sind, auf denen sie implementiert wurden um den Code mit maximaler Effizienz zu nutzen. +% +% eigene Version des Codes implementiert haben. +% +%Bei einer Technischen Umsetzung eines solchen Codes werden wir auf eine reihe neuer Probleme stossen wie Ressourceneffizienz, Laufzeitoptimierung, usw. +% +%Hinzu kommt, dass für verschiedene Anwendungen verschiedene Versionen des Reed-Solomon-Codes zur Anwendung kommen. +% +%Nachfolgend werden wir ein paar dieser Anwendungen Vorstellen, da sich herausstellt, dass Reed-Solomon-Code sehr +% +%Als letzte Frage stellt sich jetzt nur noch, wo diese Codes eingesetzt werden. +% +%Bisher haben wir +% +%In den letzten abschnitten haben wir uns ausführlich die Funktionsweise des Reed-Solomon-Codes angeschaut. In diesem Abschnitt möchten wir dem Leser ein paar bekannte beispiele vorstellen, in denen Reed-Solomon-Codes zum einsatz kommen. Es sei jedoch angemerkt, dass diese Anwendungen in der Umsetzung oft ein wenig anderst funktionieren als hier vorgestellt. Dies wurde vor allem wegen technischen optimierungen realisiert. (technische tricks und finessen), von der logik jedoch sehr stark an unserem Beispiel orientieren + +\subsection{Raumfahrt} +Obwohl Reed-Solomon-Codes bereits in den 1960er entwickelt wurden fanden sie erstmals Anwendung in der Voyager Raumsonde der NASA. Die Daten der zwei im Jahre 1977 gestarteten Sonden werden mit einem RS(255,233)-Code \textcolor{red}{benötigt das weitere erklärungen, wie z.b. 255: grösse nachrichtenblock, 233: anzahl der nutzbaren daten ?} zusammen mit einem konventionellen Faltungscode übertragen. + +% +% Die zwei im Jahre 1977 gestarteten Sonden senden Daten mit der Hilfe eines RS(255,233)-Code für die digitalen Bilder sowie einem konventionellen Faltungscode. +% +% +%mit der Erde mit einem RS(255,233)-Code für die digitalen Bilder sowie einem konventionellen Faltungscode. + +\begin{figure} + \centering + \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/Voyager_Sonde} + \caption{Voyager Raumsonde} + \label{fig:voyager} +\end{figure} + +\subsection{CD/DVD} +Compact discs verwenden sogar zwei ineinander verschachtelte Reed-Solomon-Codes, einen (32,28)-Code und einen (28,24)-Code. +Beide Codes sind in der Lage, Fehler aus dem jeweils anderen gelesenen Block zu korrigieren. Dieses spezielle zusammenspielen dieser beiden Codes werden auch Cross-interleaved Reed-Solomon-Codes (CIRC) genannt. +Diese Vorgehensweise erzielt eine hohe Robustheit gegenüber Produktionsfehler oder Verschmutzung auf der Disc. Bei CD's sind diese in der Lage bis zu 4000 fehlerhafte Bits am Stück (ca. $2.5mm$) zu erkennen und zu korrigieren. + +Die Digital Video Disc funktioniert nach dem selben Konzept mit grösseren Codeblöcken. Die DVD verwendet einen (208,192)-Code und einen (182,172)-Code. + +%Beide lesen +% wobei beide Codes auch Fehler aus dem jeweiligen anderen Block korrigieren + +\begin{figure} + \centering + \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/Compact_Disc} + \caption{Compact Disc} + \label{fig:cd} +\end{figure} + +\subsection{QR-Codes} +Quick Response Codes funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel, nur dass QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Je nach grösse der Codierung ist der QR-Code im Endeffekt robuster gegen Beschädigungen. Bei Low Level Codes können 7\% der Daten Wiederhergestellt werden, beim High Level Code sind das sogar 30\%. + +\begin{figure} + \centering + \subfigure[]{ + \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_h} + } + \subfigure[]{ + \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_l} + } + \caption{(a) High Level Code, (b) Low Level Code} + \label{fig:qr} +\end{figure} diff --git a/buch/papers/reedsolomon/images/Compact_Disc.png b/buch/papers/reedsolomon/images/Compact_Disc.png new file mode 100644 index 0000000..7e3f870 Binary files /dev/null and b/buch/papers/reedsolomon/images/Compact_Disc.png differ diff --git a/buch/papers/reedsolomon/images/Voyager_Sonde.png b/buch/papers/reedsolomon/images/Voyager_Sonde.png new file mode 100644 index 0000000..e4dc400 Binary files /dev/null and b/buch/papers/reedsolomon/images/Voyager_Sonde.png differ diff --git a/buch/papers/reedsolomon/images/qrcode_h.png b/buch/papers/reedsolomon/images/qrcode_h.png new file mode 100644 index 0000000..4dc5779 Binary files /dev/null and b/buch/papers/reedsolomon/images/qrcode_h.png differ diff --git a/buch/papers/reedsolomon/images/qrcode_l.png b/buch/papers/reedsolomon/images/qrcode_l.png new file mode 100644 index 0000000..69f807f Binary files /dev/null and b/buch/papers/reedsolomon/images/qrcode_l.png differ -- cgit v1.2.1 From aeb1ccab21bfcd1ff7a9a171485353c78cb94495 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Thu, 15 Jul 2021 12:32:38 +0200 Subject: short changes --- buch/papers/reedsolomon/einleitung.tex | 4 ++++ buch/papers/reedsolomon/idee.tex | 15 ++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/einleitung.tex b/buch/papers/reedsolomon/einleitung.tex index 809f58a..3d40db1 100644 --- a/buch/papers/reedsolomon/einleitung.tex +++ b/buch/papers/reedsolomon/einleitung.tex @@ -10,6 +10,10 @@ Der Reed-Solomon-Code ist entstaden im ... vom .. um, das Problem der Daten Übertragung zu lösen. In deiesem Abschnitt wird möglichst verständlich die mathematische Abfolge, Funktion oder Algorithmus erklärt. Es wird jedoch nicht auf die technische Umsetzung oder Implementierung eingegangen. +Um beim Daten Übertragen fehler zu erkennen könnte man die Daten jeweils doppelt senden, +und so jeweilige Fehler zu erkennen. +Doch dies braucht schnell unmengen an Daten, wenn man nach vielen Fehler absichern möchte. +Der Reed-Solomon-Code macht dies auf eine andere, clevere Weise. diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 497e2d5..7200425 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -8,9 +8,12 @@ \rhead{Problemstellung} Das Problem liegt darin Informationen, Zahlen, zu Übertragen und Fehler zu erkennen. +Beim Reed-Solomon-Code kann man nicht nur Fehler erkenen, +man kann sogar einige Fehler korrigieren. \rhead{Idee} -Eine +Eine Idee ist mit den Daten, wir nehmen hier die Zahlen .... +ein Polynom \begin{equation} \int_a^b x^2\, dx = @@ -19,15 +22,9 @@ Eine \frac{b^3-a^3}3. \label{reedsolomon:equation1} \end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. +zu bilden wie in der abbildung ... dargestellt. -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? +abbildung \subsection{De finibus bonorum et malorum \label{reedsolomon:subsection:finibus}} -- cgit v1.2.1 From 7e4e9082a566369ac00a27f3e3f6d36505907ba9 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Sat, 17 Jul 2021 10:26:02 +0200 Subject: start first rows --- buch/papers/reedsolomon/dtf.tex | 48 ++++++++++++----------------- buch/papers/reedsolomon/idee.tex | 66 ++++++++++++++++++++++------------------ 2 files changed, 56 insertions(+), 58 deletions(-) (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index 00281fb..025be3a 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -6,35 +6,25 @@ \section{Diskrete Fourien Transformation \label{reedsolomon:section:dtf}} \rhead{Umwandlung mit DTF} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? +Um die Polynominterpolation zu umgehen, gehen wir nun über in die Fourientransformation. +Dies wird weder eine erklärung der Forientransorfmation noch ein genauer gebrauch +für den Reed-Solomon-Code. Dieser Abschnitt zeigt nur wie die Fourientransformation auf Fehler reagiert. +wobei sie dann bei späteren Berchnungen ganz nütlich ist. -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. +\subsection{Übertragungsabfolge +\label{reedsolomon:subsection:Übertragungsabfolge}} +Das Signal.... sind die Daten, Zahlen welche übertragen werden sollen. +Das speziell ist das wir 100 Punkte übertragen und von 64 bis 100, +werden nur Null Punkte übertragen, dies weiss auch unser Empfänger. +Nun wird das Signal in Abbildung... codiert... +Somit wird die Information jedes Punktes auf das ganze spektrum von 0 bis 100 übertragen. +Kommen nuun drei Fehler... hinzu zu diesem codierten Signal sind diese nicht zu erkennen. +Nach dem Empfangen... und decodieren ... erkennt man die fehlerhafte information in den Punkten 64 bis 100. +Filtert man nur diese Punkte heraus und Transformiert sie mit Fourier erhält man die stellen an denen die Fehler sich eingeschlichen haben. + +\subsection{Diskrete Fourientransformation Zusamenhang +\label{reedsolomon:subsection:dtfzusamenhang}} +Die Diskrete Fourientransformation ist definiert als +.... diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 7200425..4a7716a 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -11,40 +11,48 @@ zu Übertragen und Fehler zu erkennen. Beim Reed-Solomon-Code kann man nicht nur Fehler erkenen, man kann sogar einige Fehler korrigieren. -\rhead{Idee} -Eine Idee ist mit den Daten, wir nehmen hier die Zahlen .... -ein Polynom +\rhead{Polynom-Ansatz} +Eine Idee ist die Daten, +ein Polynom zu bilden und dieses dann mit bestimmten Punkten überträgt. +Nehmen wir als beisbiel die Zahlen \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5}, +welche uns dann das Polynom \begin{equation} -\int_a^b x^2\, dx +p(x) = -\left[ \frac1312 x^3 \right]_a^b -= -\frac{b^3-a^3}3. +2x^2 + 1x + 5 \label{reedsolomon:equation1} \end{equation} -zu bilden wie in der abbildung ... dargestellt. - -abbildung +ergeben. +Übertragen werden nun die stellen 1, 2, 3\dots 7 dieses Polynomes. +Grafisch sieht man dies dann im Abbild //TODO +Wenn ein Fehler sich in die Übertragung eingeschlichen hatt, muss der Leser/Empfänger erkennen, welches das Richtige Polynom ist. +Der Leser/Empfänger weiss, mit welchem Grad das Polynom entwickelt wurde. +\subsection{Beispiel} +Für das Beispeil aus der Gleichung \ref{reedsolomon:equation1}, +ist ein Polynome zweiten Grades durch drei Punkte eindeutig bestimmbar. +Hat es Fehler in der Übertragunge gegeben, kann man diese erkennen, +da alle Punkte, die korrekt sind, auf dem Polynom liegen müssen. +Ab wie vielen Fehler ist das Polynom nicht mehr erkennbar beim Übertragen von 7 Punkten? +Bei 2 Fehlern kann man noch eindeutig bestimmen, dass das Polynom mit 4 Punkten, +gegenüber dem mit 5 Punkten falsch liegt. +Werden es mehr Fehler kann nur erkennt werden das das Polynom nicht stimmt. +Das Orginale Polynom kann aber nicht mehr gefunden werden. +Dabei sollten mehr Übertragungspunkte gegeben werden. -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. +\section{Fehlerbestimmung +\label{reedsolomon:section:Fehlerbestimmmung}} +So wird ein Muster indentifiziert, welches genau vorherbestimmen kann, +wie gross das Polynom sein muss und wie viele Übertragungspunkte gegeben werden müssen. +Durch ein klein wenig Überlegung ist klar das die anzahl Zahlen (Daten, ab hier verwenden wir das Wort Nutzlast), +die dan Entschlüsselt werden sollen den Grad des Polynoms minus 1 ergeben. +Für die Anzahl an Übertragungspunkte, muss bestimmt werden wieviel Fehler erkennt und korrigiert werden sollen. +Mit Hilfe der Tabelle.... sieht man das es bei $$t$$ Fehlern und $$k$$ Nutzlast, +für das Übertragen $$k+2t$$ Punkte gegben werden müssen. -Et harum quidem rerum facilis est et expedita distinctio -\ref{reedsolomon:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{reedsolomon:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. +Ein toller Nebeneffekt ist das dadurch auch $$2t$$ Fehler erkannt werden. +um zurück auf unser Beispiel zu kommen, +können von den 7 Übertragungspunkten bis zu $$2t = 2*2 = 4 $$ Punkten falsch liegen +und es wird kein eindeutiges Polynom 2ten Grades erkannt, und somit die Nutzlast Daten als fehlerhaft deklariert. +Ein Polynom durch Punkt mit Polynom Interpolation zu rekonstruieren ist schwierig und Fehleranfällig. -- cgit v1.2.1 From 47d7b23be51d7a8f362c65881be4a8dd0e100d06 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Sun, 18 Jul 2021 14:57:21 +0200 Subject: file updated --- buch/papers/reedsolomon/anwendungen.tex | 60 ++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 9 deletions(-) (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/anwendungen.tex b/buch/papers/reedsolomon/anwendungen.tex index 83e0f94..4b30ec9 100644 --- a/buch/papers/reedsolomon/anwendungen.tex +++ b/buch/papers/reedsolomon/anwendungen.tex @@ -6,14 +6,40 @@ \section{Anwendungen des Reed-Solomon-Codes \label{reedsolomon:section:anwendung}} \rhead{Anwendungen} -\textcolor{red}{Platzierung der Bilder? Quellenangabe der Bilder?} In den vorherigen Abschnitten haben wir betrachtet, wie Reed-Solomon-Codes in der Theorie Funktionieren. In diesem Abschnitt werden wir einige Anwendungen vorstellen, bei denen ein Reed-Solomon-Code zum Einsatz kommt. + +Dabei teilen all diese Anwendungen das gleiche Problem: Die Daten können nur durch einen (höchst Wahrscheinlichen) fehlerbehafteten Kanal empfangen werden. Es gibt keine andere Methode an diese Daten zu kommen als über diesen Kanal. + + +In der Netzwerktechnik zum Beispiel ist es üblich, dass bei Paketverluste oder beschädigt empfangene Datenpakete diese einfach noch einmal inert wenigen Millisekunden angefordert werden können. +In der Raumfahrt ist dies nicht möglich, da aufgrund der beschränkten Speichermöglichkeit die gesammelten Daten so rasch wie möglich zur Erde gesendet werden. +Diese Daten wiederum brauchen aufgrund der grossen Distanz Stunden bis die Daten beim Empfänger ankommen. +Fehlerhafte Daten kann also auf Grund der Zeitverzögerung nicht mehr angefordert werden. + +Bei CDs oder DVDs gibt es zwar kein Zeitliches Problem, jedoch erschweren Kratzer, Verschmutzungen oder Produktionsfehler das Lesen einer solchen Disk. +Da vor allem Produktionsfehler und Kratzer irreversibel sind und die Disk nicht nach jedem Kratzer ersetzt werden muss, so wird die korrekte Ausgabe der gespeicherten Information durch die Fehlerkorrektur sichergestellt. + +Ein ähnlicher Ansatz verfolgen QR-Codes, wobei die Information auch dann noch gelesen werden kann wenn der Code nicht mehr vollständig vorhanden ist. + +%Wie man sieht, eignen sich Reed-Solomon-Codes vor allem für Anwendungen, bei der die Informationen nicht auf einen Anderen Weg beschafft werden kann. +% +% +%, bei denen die Wahrscheinlichkeit hoch ist, dass während der Übertragung +% +%Es ist deshalb umso wichtiger die Daten Codiert zu lesen um so gleich die Lesefehler zu korrigieren. +% +% da aufgrund der grossen Distanz Stunden vergehen können bis gesendete Daten auf der Erde empfangen werden kann. +% + + Obwohl alle diese Codes nach dem gleichen Prinzip arbeiten gibt es starke Unterschiede in deren Funktionsweise. Dies kommt vor allem daher, da die Codes nur Ressourcen zur Verfügung haben, die von der Hardware bereitstellt wird, auf denen die Codes implementiert wurden. Diese Codes bedienen sich daher verschiedener Tricks und Optimierungen um möglichst effizient zu arbeiten. -% + +Um die Fähigkeit eines verwendeten Reed-Solomon-Codes zu beschreiben verwendet man die Notation ($n$,$k$), wobei $n$ die Grösse des Nachrichtenblocks angibt und $k$ die Anzahl der Stellen, die für Nutzdaten gebraucht werden können. + %Dies kommt vor allem daher, da diese Codes an ihre Hardware gebunden sind, auf denen sie implementiert worden sind. %Deshalb wurden diese Codes stark optimiert damit sie möglichst Effizient arbeiten können. % @@ -45,8 +71,17 @@ Diese Codes bedienen sich daher verschiedener Tricks und Optimierungen um mögli %In den letzten abschnitten haben wir uns ausführlich die Funktionsweise des Reed-Solomon-Codes angeschaut. In diesem Abschnitt möchten wir dem Leser ein paar bekannte beispiele vorstellen, in denen Reed-Solomon-Codes zum einsatz kommen. Es sei jedoch angemerkt, dass diese Anwendungen in der Umsetzung oft ein wenig anderst funktionieren als hier vorgestellt. Dies wurde vor allem wegen technischen optimierungen realisiert. (technische tricks und finessen), von der logik jedoch sehr stark an unserem Beispiel orientieren \subsection{Raumfahrt} -Obwohl Reed-Solomon-Codes bereits in den 1960er entwickelt wurden fanden sie erstmals Anwendung in der Voyager Raumsonde der NASA. Die Daten der zwei im Jahre 1977 gestarteten Sonden werden mit einem RS(255,233)-Code \textcolor{red}{benötigt das weitere erklärungen, wie z.b. 255: grösse nachrichtenblock, 233: anzahl der nutzbaren daten ?} zusammen mit einem konventionellen Faltungscode übertragen. - +Obwohl Reed-Solomon-Codes bereits in den 1960er entwickelt wurden fanden sie erstmals Anwendung in der Voyager Raumsonde der NASA. Die Daten der zwei im Jahre 1977 gestarteten Sonden (siehe Abbildung \ref{fig:voyager}) werden mit einem ($255$,$233$)-Code +Codiert. +Der Nachrichtenblock hat somit eine Länge von $255$ Zahlen, wovon $233$ als Nutzlast zur Verfügung stehen. +Damit ist es möglich bis zu $11$ Fehler im Nachrichtenblock zu korrigieren. +Der Codierte Nachrichtenblock wird in kleinere Blöcke aufgeteilt, mit einem Faltungscode erneut Codiert und anschliessend gesendet. Ein Faltungscode ist wie ein Reed-Solomon-Code in der Lage Fehler zu korrigieren, Funktioniert aber nach einem ganz anderen Prinzip. +Durch diese doppelte Codierung wird eine äusserst hohe Übertragungssicherheit garantiert. +% +%Dabei steht die Zahl 255 für grösse des Nachrichtenblocks, der die Anzahl 233 +% +% +% \textcolor{red}{benötigt das weitere Erklärungen, wie z.b. 255: grösse Nachrichtenblock, 233: anzahl der nutzbaren daten ?} zusammen mit einem konventionellen Faltungscode übertragen. Eine von der Sonde gesendete Nachricht hat eine Blockgrösse von 255 Zeichen, wovon 233 für die Nutzdaten gebraucht werden können. Dieser Code ist somit in der Lage 11 Fehler in einem Nachrichtenblock zu korrigieren. % % Die zwei im Jahre 1977 gestarteten Sonden senden Daten mit der Hilfe eines RS(255,233)-Code für die digitalen Bilder sowie einem konventionellen Faltungscode. % @@ -56,14 +91,14 @@ Obwohl Reed-Solomon-Codes bereits in den 1960er entwickelt wurden fanden sie ers \begin{figure} \centering \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/Voyager_Sonde} - \caption{Voyager Raumsonde} + \caption{Mit einer Entfernung von über 22.8 Milliarden Kilometer ist die Voyager 1 Raumsonde das am weitesten entfernte, von Menschen erschaffene Objekt. Obwohl ihre Schwestersonde Voyager 2 zuerst ins All gestartet wurde befindet Sie sich ``nur'' 19 Milliarden Kilometer weit weg von der Erde. Aufgrund abnehmender Batterieleistung werden die beiden Sonden ihre wissenschaftlichen Aktivitäten etwa 2025 einstellen, bleiben aber bis in die 2030er mit uns in Kontakt.} \label{fig:voyager} \end{figure} \subsection{CD/DVD} Compact discs verwenden sogar zwei ineinander verschachtelte Reed-Solomon-Codes, einen (32,28)-Code und einen (28,24)-Code. -Beide Codes sind in der Lage, Fehler aus dem jeweils anderen gelesenen Block zu korrigieren. Dieses spezielle zusammenspielen dieser beiden Codes werden auch Cross-interleaved Reed-Solomon-Codes (CIRC) genannt. -Diese Vorgehensweise erzielt eine hohe Robustheit gegenüber Produktionsfehler oder Verschmutzung auf der Disc. Bei CD's sind diese in der Lage bis zu 4000 fehlerhafte Bits am Stück (ca. $2.5mm$) zu erkennen und zu korrigieren. +Beide Codes sind in der Lage, Fehler aus dem jeweils anderen gelesenen Block zu korrigieren. Dieses spezielle Zusammenspielen dieser beiden Codes werden auch Cross-interleaved Reed-Solomon-Codes (CIRC) genannt. +Diese Vorgehensweise erzielt eine hohe Robustheit gegenüber Produktionsfehlern oder Verschmutzung auf der Disc. Bei CDs sind diese in der Lage, bis zu 4000 fehlerhafte Bits am Stück (ca. $2.5mm$) zu erkennen und zu korrigieren. Die Digital Video Disc funktioniert nach dem selben Konzept mit grösseren Codeblöcken. Die DVD verwendet einen (208,192)-Code und einen (182,172)-Code. @@ -73,12 +108,19 @@ Die Digital Video Disc funktioniert nach dem selben Konzept mit grösseren Codeb \begin{figure} \centering \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/Compact_Disc} - \caption{Compact Disc} + \caption{CDs kamen 1982 auf den Markt. Sie funktioniert durch das ``einbrennen'' von Punkten und Strichen, die die Daten repräsentieren. Gelesen werden diese wiederum durch die Reflektion eines Lasers an diesen Punkten und Strichen.} \label{fig:cd} \end{figure} \subsection{QR-Codes} -Quick Response Codes funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel, nur dass QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Je nach grösse der Codierung ist der QR-Code im Endeffekt robuster gegen Beschädigungen. Bei Low Level Codes können 7\% der Daten Wiederhergestellt werden, beim High Level Code sind das sogar 30\%. +Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel der Abschnitte \ref{reedsolomon:section:codebsp} - \ref{reedsolomon:section:rekonstruktion} nur das QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Die Physische Grösse eines Codes ist stark abhängig von der Grösse der Codierung sowie dem Fehlerkorrektur-Level. Es ist so auf dem ersten Blick nicht ersichtlich, wie viel Nutzinformationen ein Qr-Code enthält. Die QR-Codes in Abbildung \ref{fig:qr} zeigen jeweils die Gleiche Information mit unterschiedlichem Fehlerkorrektur-Level. Codes mit einem höheren Korrektur-Level können auch für Desingner-Codes Zweckentfremdet werden. Dabei wird z.B. das Firmenlogo oder einen Schriftzug über den Qr-Code gelegt, ohne das die Funktion des Codes beeinträchtigt wird. Ein Beispiel dazu ist ebenfalls unter Abbildung \ref{fig:qr} \textcolor{red}{(noch nicht erstellt + beschreibung anpassen)} zu finden. + +% + +%So kann auf den ersten Blick nicht +% +% +% funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel, nur dass QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Je nach grösse der Codierung ist der QR-Code im Endeffekt robuster gegen Beschädigungen. Bei Low Level Codes können 7\% der Daten Wiederhergestellt werden, beim High Level Code sind das sogar 30\%. \begin{figure} \centering -- cgit v1.2.1 From 88de7e8d421d3d7395840fdf916bbd015254d43c Mon Sep 17 00:00:00 2001 From: JODBaer Date: Mon, 19 Jul 2021 16:30:45 +0200 Subject: update --- buch/papers/reedsolomon/dtf.tex | 14 ++++---- buch/papers/reedsolomon/einleitung.tex | 10 +++--- buch/papers/reedsolomon/idee.tex | 60 +++++++++++++++++++++------------- 3 files changed, 50 insertions(+), 34 deletions(-) (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index 025be3a..d276760 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -3,13 +3,17 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Diskrete Fourien Transformation +\section{Diskrete Fourier Transformation \label{reedsolomon:section:dtf}} \rhead{Umwandlung mit DTF} Um die Polynominterpolation zu umgehen, gehen wir nun über in die Fourientransformation. Dies wird weder eine erklärung der Forientransorfmation noch ein genauer gebrauch für den Reed-Solomon-Code. Dieser Abschnitt zeigt nur wie die Fourientransformation auf Fehler reagiert. -wobei sie dann bei späteren Berchnungen ganz nütlich ist. +wobei sie dann bei späteren Berchnungen ganz nützlich ist. + +\subsection{Diskrete Fourientransformation Zusamenhang +\label{reedsolomon:subsection:dtfzusamenhang}} +Die Diskrete Fourientransformation ist definiert als \subsection{Übertragungsabfolge \label{reedsolomon:subsection:Übertragungsabfolge}} @@ -22,9 +26,7 @@ Kommen nuun drei Fehler... hinzu zu diesem codierten Signal sind diese nicht zu Nach dem Empfangen... und decodieren ... erkennt man die fehlerhafte information in den Punkten 64 bis 100. Filtert man nur diese Punkte heraus und Transformiert sie mit Fourier erhält man die stellen an denen die Fehler sich eingeschlichen haben. -\subsection{Diskrete Fourientransformation Zusamenhang -\label{reedsolomon:subsection:dtfzusamenhang}} -Die Diskrete Fourientransformation ist definiert als -.... + + diff --git a/buch/papers/reedsolomon/einleitung.tex b/buch/papers/reedsolomon/einleitung.tex index 3d40db1..2b1d878 100644 --- a/buch/papers/reedsolomon/einleitung.tex +++ b/buch/papers/reedsolomon/einleitung.tex @@ -6,13 +6,13 @@ \section{Einleitung \label{reedsolomon:section:einleitung}} \rhead{Einleitung} -Der Reed-Solomon-Code ist entstaden im ... vom .. um, -das Problem der Daten Übertragung zu lösen. -In deiesem Abschnitt wird möglichst verständlich die mathematische Abfolge, Funktion oder Algorithmus erklärt. +Der Reed-Solomon-Code ist entstanden um, +das Problem der Fehler, bei der Datenübertragung, zu lösen. +In diesem Abschnitt wird möglichst verständlich die mathematische Abfolge, Funktion oder Algorithmus erklärt. Es wird jedoch nicht auf die technische Umsetzung oder Implementierung eingegangen. -Um beim Daten Übertragen fehler zu erkennen könnte man die Daten jeweils doppelt senden, +Um beim Datenübertragen Fehler zu erkennen, könnte man die Daten jeweils doppelt senden, und so jeweilige Fehler zu erkennen. -Doch dies braucht schnell unmengen an Daten, wenn man nach vielen Fehler absichern möchte. +Doch nur schon um weinige Fehler zu erkennen werden überproportional viele Daten doppelt und dreifach gesendet. Der Reed-Solomon-Code macht dies auf eine andere, clevere Weise. diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 4a7716a..b0a772e 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -8,51 +8,65 @@ \rhead{Problemstellung} Das Problem liegt darin Informationen, Zahlen, zu Übertragen und Fehler zu erkennen. -Beim Reed-Solomon-Code kann man nicht nur Fehler erkenen, +Beim Reed-Solomon-Code kann man nicht nur Fehler erkennen, man kann sogar einige Fehler korrigieren. \rhead{Polynom-Ansatz} -Eine Idee ist die Daten, -ein Polynom zu bilden und dieses dann mit bestimmten Punkten überträgt. +Eine Idee ist aus den Daten +ein Polynom zu bilden. +Diese Polynomfunktion bei bestimmten Werten, ausrechnet und diese Punkte dann überträgt. Nehmen wir als beisbiel die Zahlen \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5}, welche uns dann das Polynom \begin{equation} p(x) = -2x^2 + 1x + 5 +\textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5} \label{reedsolomon:equation1} \end{equation} ergeben. -Übertragen werden nun die stellen 1, 2, 3\dots 7 dieses Polynomes. -Grafisch sieht man dies dann im Abbild //TODO -Wenn ein Fehler sich in die Übertragung eingeschlichen hatt, muss der Leser/Empfänger erkennen, welches das Richtige Polynom ist. -Der Leser/Empfänger weiss, mit welchem Grad das Polynom entwickelt wurde. +Übertragen werden nun die Werte an den stellen 1, 2, 3\dots 7 dieses Polynomes. +Grafisch sieht man dies dann in Abbildung % TODO +Wenn ein Fehler sich in die Übertragung eingeschlichen hatt, muss der Leser/Empfänger diesen erkennen und das Polynom rekonstruieren. +Der Leser/Empfänger weiss, den Grad des Polynoms und dessen Werte übermittelt wurden. \subsection{Beispiel} -Für das Beispeil aus der Gleichung \ref{reedsolomon:equation1}, +Für das Beispeil aus der Gleichung \eqref{reedsolomon:equation1}, ist ein Polynome zweiten Grades durch drei Punkte eindeutig bestimmbar. Hat es Fehler in der Übertragunge gegeben, kann man diese erkennen, da alle Punkte, die korrekt sind, auf dem Polynom liegen müssen. Ab wie vielen Fehler ist das Polynom nicht mehr erkennbar beim Übertragen von 7 Punkten? Bei 2 Fehlern kann man noch eindeutig bestimmen, dass das Polynom mit 4 Punkten, gegenüber dem mit 5 Punkten falsch liegt. -Werden es mehr Fehler kann nur erkennt werden das das Polynom nicht stimmt. -Das Orginale Polynom kann aber nicht mehr gefunden werden. -Dabei sollten mehr Übertragungspunkte gegeben werden. +Werden es mehr Fehler kann nur erkennt werden, dass das Polynom nicht stimmt. +Das orginale Polynom kann aber nicht mehr gefunden werden. +Dafür sind mehr übertragene Werte nötig. \section{Fehlerbestimmung \label{reedsolomon:section:Fehlerbestimmmung}} So wird ein Muster indentifiziert, welches genau vorherbestimmen kann, wie gross das Polynom sein muss und wie viele Übertragungspunkte gegeben werden müssen. -Durch ein klein wenig Überlegung ist klar das die anzahl Zahlen (Daten, ab hier verwenden wir das Wort Nutzlast), -die dan Entschlüsselt werden sollen den Grad des Polynoms minus 1 ergeben. +Um zu bestimmen wie viel Fehler erkennt und korriegiert werden können. +Die Anzahl Zahlen (Daten, ab hier verwenden wir das Wort Nutzlast), +die Entschlüsselt werden sollen, brauchen die gleiche Anzahl an Polynomgraden, beginnend bei Grad 0. ( \( k-1 \) ) Für die Anzahl an Übertragungspunkte, muss bestimmt werden wieviel Fehler erkennt und korrigiert werden sollen. -Mit Hilfe der Tabelle.... sieht man das es bei $$t$$ Fehlern und $$k$$ Nutzlast, -für das Übertragen $$k+2t$$ Punkte gegben werden müssen. - -Ein toller Nebeneffekt ist das dadurch auch $$2t$$ Fehler erkannt werden. -um zurück auf unser Beispiel zu kommen, -können von den 7 Übertragungspunkten bis zu $$2t = 2*2 = 4 $$ Punkten falsch liegen -und es wird kein eindeutiges Polynom 2ten Grades erkannt, und somit die Nutzlast Daten als fehlerhaft deklariert. - -Ein Polynom durch Punkt mit Polynom Interpolation zu rekonstruieren ist schwierig und Fehleranfällig. +Mit Hilfe der Tabelle, sieht man das es bei $t$ Fehlern und $k$ Nutzlast Zahlen, +$k+2t$ Punkte übertragen werden müssen. +\begin{center} + \begin{tabular}{ c c c } + \hline + Nutzlas & Fehler & Übertragen \\ + \hline + 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ + 4 & 2 & 8 Werte eines Polynoms vom Grad 3 \\ + 3 & 3 & 9 Werte eines Polynoms vom Grad 2 \\ + \hline + $k$ & $t$ & $k+2t$ Werte eines Polynoms vom Grad $k-1$ \\ + \hline + \end{tabular} +\end{center} +Ein toller Nebeneffekt ist das dadurch auch $2t$ Fehler erkannt werden. +Um zurück auf unser Beispiel zu kommen, +können von den 7 Übertragungspunkten bis zu $2t = 2\cdot2 = 4 $ Punkten falsch liegen +und es wird kein eindeutiges Polynom zweiten Grades erkannt, und somit die Nutzlast Daten als fehlerhaft deklariert. +Um aus den Übertragenen Zahlen wieder die Nutzlastzahlen zu bekommen könnte man eine Polynominterpolation anwenden, +doch die Punkte mit Polynominterpolation zu einem Polynom zu rekonstruieren ist schwierig und Fehleranfällig. -- cgit v1.2.1 From 997e5ae44bcb81c81fbbf0c4fa29269ffe93fc24 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Mon, 19 Jul 2021 16:55:45 +0200 Subject: try to add picture --- buch/papers/reedsolomon/idee.tex | 10 +++++- buch/papers/reedsolomon/images/polynom2.tex | 51 +++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 buch/papers/reedsolomon/images/polynom2.tex (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index b0a772e..28b65bd 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -25,9 +25,17 @@ p(x) \end{equation} ergeben. Übertragen werden nun die Werte an den stellen 1, 2, 3\dots 7 dieses Polynomes. -Grafisch sieht man dies dann in Abbildung % TODO +Grafisch sieht man dies dann in Abbildung Wenn ein Fehler sich in die Übertragung eingeschlichen hatt, muss der Leser/Empfänger diesen erkennen und das Polynom rekonstruieren. Der Leser/Empfänger weiss, den Grad des Polynoms und dessen Werte übermittelt wurden. + +\begin{figure} + \centering + \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/polynom2.pdf} + \caption{Polynom \eqref{reedsolomon:equation1}} + \label{fig:polynom} +\end{figure} + \subsection{Beispiel} Für das Beispeil aus der Gleichung \eqref{reedsolomon:equation1}, ist ein Polynome zweiten Grades durch drei Punkte eindeutig bestimmbar. diff --git a/buch/papers/reedsolomon/images/polynom2.tex b/buch/papers/reedsolomon/images/polynom2.tex new file mode 100644 index 0000000..be9a65e --- /dev/null +++ b/buch/papers/reedsolomon/images/polynom2.tex @@ -0,0 +1,51 @@ +% polynome2 +%------------------- +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math} +\newcommand{\teiler}{40} +\begin{document} +% Übertragen von den Zahlen +% \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5} +% als $ p(x) = \textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5} $.\newline +% Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, +% \textcolor{green}{15}, \textcolor{green}{26}, +% \textcolor{green}{ 41}, \textcolor{green}{60}, +% \textcolor{green}{83}, \textcolor{green}{110})$ + + + \begin{tikzpicture}[>=latex,thick] + \draw[color=blue, line width=1.4pt] + plot[domain=0:8, samples=100] + ({\x},{(2*\x^2+1*\x+5)/\teiler}); + \draw[->] (-0.2,0) -- (8,0) coordinate[label={$x$}]; + \draw[->] (0,-0.2) -- (0,150/\teiler) coordinate[label={right:$p(x)$}]; + \def\punkt#1{ + \fill[color=green] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + \punkt{(1,8/\teiler)} + %\punkt{(2,15/\teiler)} + %\punkt{(3,26/\teiler)} + \punkt{(4,41/\teiler)} + \punkt{(5,60/\teiler)} + \punkt{(6,83/\teiler)} + \punkt{(7,110/\teiler)} + \draw[color=gray,line width=1pt,dashed] + plot[domain=0.5:7, samples=100] + ({\x},{(0.1958*\x^2-1.2875*\x+3.0417)}); + \def\erpunkt#1{ + \fill[color=red] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + \erpunkt{(2,50/\teiler)} + \erpunkt{(3,0.9414)} + + \draw(0,100/\teiler) -- (-0.1,100/\teiler) coordinate[label={left:$100$}]; + \draw(1,0) -- (1,-0.1) coordinate[label={below:$1$}]; + \end{tikzpicture} +\end{document} -- cgit v1.2.1 From faf8fab3819a2b1eeb5529866716d545b52f6285 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Mon, 19 Jul 2021 17:36:11 +0200 Subject: another try --- buch/papers/reedsolomon/experiments/codiert.txt | 96 +++++++++++++++++++++++ buch/papers/reedsolomon/experiments/decodiert.txt | 96 +++++++++++++++++++++++ buch/papers/reedsolomon/experiments/empfangen.txt | 96 +++++++++++++++++++++++ buch/papers/reedsolomon/experiments/f.m | 22 ++++-- buch/papers/reedsolomon/experiments/fehler.txt | 96 +++++++++++++++++++++++ buch/papers/reedsolomon/experiments/locator.txt | 96 +++++++++++++++++++++++ buch/papers/reedsolomon/experiments/signal.txt | 96 +++++++++++++++++++++++ buch/papers/reedsolomon/experiments/syndrom.txt | 96 +++++++++++++++++++++++ buch/papers/reedsolomon/idee.tex | 7 +- buch/papers/reedsolomon/images/polynom2.tex | 32 ++++---- buch/papers/reedsolomon/packages.tex | 2 + 11 files changed, 712 insertions(+), 23 deletions(-) create mode 100644 buch/papers/reedsolomon/experiments/codiert.txt create mode 100644 buch/papers/reedsolomon/experiments/decodiert.txt create mode 100644 buch/papers/reedsolomon/experiments/empfangen.txt create mode 100644 buch/papers/reedsolomon/experiments/fehler.txt create mode 100644 buch/papers/reedsolomon/experiments/locator.txt create mode 100644 buch/papers/reedsolomon/experiments/signal.txt create mode 100644 buch/papers/reedsolomon/experiments/syndrom.txt (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/experiments/codiert.txt b/buch/papers/reedsolomon/experiments/codiert.txt new file mode 100644 index 0000000..a57fb3e --- /dev/null +++ b/buch/papers/reedsolomon/experiments/codiert.txt @@ -0,0 +1,96 @@ +305 +114.502535214877 +86.2532974498148 +10.2450106137816 +68.1373455525487 +12.2281691909479 +3.18633753309102 +20.0196562371296 +12.2767246322969 +11.7216140392957 +24.8752690882777 +16.2978466490127 +23.2518118214845 +16.5845482358975 +15.6140674930647 +33.396205039034 +20.7846096908265 +19.3528753492232 +16.3850575123207 +20.9502842499826 +17.064465004608 +11.7252100463969 +31.1005540675575 +29.4336965143315 +26.6270539113887 +18.0164813754079 +24.7444243500799 +7.51007272621331 +4.06984153366859 +27.215173252412 +17.2339815787965 +23.5539874432174 +22.2710574513201 +14.7961619823174 +25.5530773949688 +33.4185813747547 +11.5478676394508 +21.0691619228239 +28.7948800016184 +12.3795084046074 +17.0082930449459 +19.7473571196866 +18.4490385219626 +12.2195365467659 +7.58568158110485 +6.02300839250873 +14.565530706253 +3.78959213976527 +21 +3.78959213976527 +14.565530706253 +6.02300839250873 +7.58568158110485 +12.2195365467659 +18.4490385219626 +19.7473571196866 +17.0082930449459 +12.3795084046074 +28.7948800016184 +21.0691619228239 +11.5478676394508 +33.4185813747547 +25.5530773949688 +14.7961619823174 +22.2710574513201 +23.5539874432174 +17.2339815787965 +27.215173252412 +4.06984153366859 +7.51007272621331 +24.7444243500799 +18.0164813754079 +26.6270539113887 +29.4336965143315 +31.1005540675575 +11.7252100463969 +17.064465004608 +20.9502842499826 +16.3850575123207 +19.3528753492232 +20.7846096908265 +33.396205039034 +15.6140674930647 +16.5845482358975 +23.2518118214845 +16.2978466490127 +24.8752690882777 +11.7216140392957 +12.2767246322969 +20.0196562371296 +3.18633753309102 +12.2281691909479 +68.1373455525487 +10.2450106137816 +86.2532974498148 +114.502535214877 diff --git a/buch/papers/reedsolomon/experiments/decodiert.txt b/buch/papers/reedsolomon/experiments/decodiert.txt new file mode 100644 index 0000000..5295e2a --- /dev/null +++ b/buch/papers/reedsolomon/experiments/decodiert.txt @@ -0,0 +1,96 @@ +5.05208333333333 +4.02603841132848 +3.9866906905523 +2.98928833660435 +5.01944413899123 +5.01851886476838 +7.97795274966527 +7.9523893732277 +5.97396514457618 +4.00519657776884 +8.0006276895628 +4.97630831658918 +3.97918030102376 +9.01298821331865 +9.03553822210758 +6.02435577439403 +6.005269315244 +6.00739475784899 +2.02214193521707 +3.02175993431401 +5.00158984940366 +1.98176205240977 +7.97728830439693 +1.98491220960989 +1.98958333333333 +1.98491220960989 +1.97728880273589 +3.98152108172961 +3.00171929847136 +9.02175649397959 +4.02211963444795 +2.00740795901169 +9.00524899981178 +10.0243555198185 +4.03562322003676 +1.01362103081199 +2.97918487756672 +3.97630844288113 +6.00063199465927 +3.00522617023784 +5.97396514457618 +6.95239288504068 +1.97810392013073 +1.01862378300238 +3.0194483612015 +2.98928833660435 +3.9866906905523 +5.02603060999077 +1.05208333333333 +3.02605136876764 +7.9866590265379 +0.0177592928994289 +9.01944131204563 +7.01851125156932 +4.97798278395618 +5.95239757681758 +1.97397894668217 +5.00517880987882 +10.0006251063956 +4.97630831658918 +4.97917756274958 +2.01326692505463 +5.0355927170407 +6.02435577439403 +0.0275599094902566 +0.0115837187254189 +0.0258777610142382 +0.0224618032819705 +0.0441059468994403 +0.0474504002669344 +0.0227694695500614 +0.0271436638090525 +0.0104166666666661 +0.027143663809052 +0.0227694695500605 +0.0474504002669342 +0.04410594689944 +0.0224618032819704 +0.0258777610142386 +0.0115837187254188 +0.027559909490256 +0.0245124379481791 +0.0499782237195213 +0.0401432022864264 +0.023292374765623 +0.0237974288564093 +0.0143895905726623 +0.0271745729691686 +0.0275599094902561 +0.051550167218498 +0.0358255004834538 +0.0247005083663728 +0.0210194725405181 +0.0177592928994299 +0.0261327016093146 +0.0314909067039408 diff --git a/buch/papers/reedsolomon/experiments/empfangen.txt b/buch/papers/reedsolomon/experiments/empfangen.txt new file mode 100644 index 0000000..326dd83 --- /dev/null +++ b/buch/papers/reedsolomon/experiments/empfangen.txt @@ -0,0 +1,96 @@ +305 +114.502535214877 +86.2532974498148 +10.2450106137816 +68.1373455525487 +12.2281691909479 +4.75208293424194 +20.0196562371296 +12.2767246322969 +11.7216140392957 +24.8752690882777 +16.2978466490127 +23.2518118214845 +16.5845482358975 +15.6140674930647 +33.396205039034 +20.7846096908265 +19.3528753492232 +16.3850575123207 +20.9502842499826 +19.0535931901409 +11.7252100463969 +31.1005540675575 +29.4336965143315 +26.6270539113887 +18.0164813754079 +24.7444243500799 +7.51007272621331 +4.06984153366859 +27.215173252412 +17.2339815787965 +23.5539874432174 +22.2710574513201 +14.7961619823174 +25.5530773949688 +33.4185813747547 +11.5478676394508 +21.0691619228239 +28.7948800016184 +12.3795084046074 +17.0082930449459 +19.7473571196866 +18.4490385219626 +12.2195365467659 +7.58568158110485 +6.02300839250873 +14.565530706253 +3.78959213976527 +21 +3.78959213976527 +14.565530706253 +6.02300839250873 +7.58568158110485 +12.2195365467659 +18.4490385219626 +19.7473571196866 +17.0082930449459 +12.3795084046074 +28.7948800016184 +21.0691619228239 +11.5478676394508 +33.4185813747547 +25.5530773949688 +14.7961619823174 +22.2710574513201 +23.5539874432174 +17.2339815787965 +27.215173252412 +4.06984153366859 +7.51007272621331 +24.7444243500799 +18.0164813754079 +26.6270539113887 +29.4336965143315 +30.3915028428898 +11.7252100463969 +17.064465004608 +20.9502842499826 +16.3850575123207 +19.3528753492232 +20.7846096908265 +33.396205039034 +15.6140674930647 +16.5845482358975 +23.2518118214845 +16.2978466490127 +24.8752690882777 +11.7216140392957 +12.2767246322969 +20.0196562371296 +3.18633753309102 +12.2281691909479 +68.1373455525487 +10.2450106137816 +86.2532974498148 +114.502535214877 diff --git a/buch/papers/reedsolomon/experiments/f.m b/buch/papers/reedsolomon/experiments/f.m index 6bdc741..5e4da85 100644 --- a/buch/papers/reedsolomon/experiments/f.m +++ b/buch/papers/reedsolomon/experiments/f.m @@ -1,8 +1,8 @@ -# -# f.m -- Reed-Solomon-Visualisierung mit FFT -# -# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule -# +% +% f.m -- Reed-Solomon-Visualisierung mit FFT +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + N = 64; b = 32; l = N + b; @@ -59,3 +59,15 @@ plot(locator); xlim([1, l]); title("Locator"); pause() + +writematrix(abs(signal), 'signal.txt') +writematrix(abs(codiert), 'codiert.txt') +writematrix(fehler, 'fehler.txt') +writematrix(abs(empfangen), 'empfangen.txt') +writematrix(abs(decodiert), 'decodiert.txt') +writematrix(abs(syndrom), 'syndrom.txt') +writematrix(locator, 'locator.txt') + + + + diff --git a/buch/papers/reedsolomon/experiments/fehler.txt b/buch/papers/reedsolomon/experiments/fehler.txt new file mode 100644 index 0000000..b8f9afb --- /dev/null +++ b/buch/papers/reedsolomon/experiments/fehler.txt @@ -0,0 +1,96 @@ +0 +0 +0 +0 +0 +0 +2 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +2 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/buch/papers/reedsolomon/experiments/locator.txt b/buch/papers/reedsolomon/experiments/locator.txt new file mode 100644 index 0000000..421d36e --- /dev/null +++ b/buch/papers/reedsolomon/experiments/locator.txt @@ -0,0 +1,96 @@ +0.0301224340566959 +0.141653026854878 +0.138226631799375 +0.0339903276086926 +0.310585462557496 +0.551427312631386 +0.628514858396816 +0.511023862515591 +0.275861355940448 +0.0502396354182231 +0.0901855025475772 +0.110759344849757 +0.0684618905062958 +0.0362855426992255 +0.0697096919781522 +0.109288539370249 +0.0923187999496619 +0.0512198536768151 +0.274192386987786 +0.513496149536541 +0.633154426602464 +0.553283743533939 +0.307840573214511 +0.0341664350328389 +0.140270857956999 +0.138527177682829 +0.0296375477361526 +0.0816962563186064 +0.0944383203811072 +0.0263932110686224 +0.058588134840207 +0.0737117341600011 +0.0239973937701886 +0.0464215468420024 +0.0616218854220982 +0.0221963086695035 +0.0390764778127614 +0.0537637218396927 +0.0208333333333355 +0.0343107696069015 +0.0483441215964522 +0.0198077862118787 +0.0311207395968709 +0.0444955089373439 +0.0190533549944134 +0.0290049795038704 +0.0417536642697542 +0.0185261550443044 +0.0277059929762204 +0.0398606084144781 +0.0181978813094801 +0.0271098219177536 +0.0386836665079658 +0.018051861104682 +0.0272138992557153 +0.0381891287148298 +0.0180809085252426 +0.0281418959420076 +0.0384596362516644 +0.0182864418432244 +0.0302250788423177 +0.0397874837986374 +0.0186786556701704 +0.0342489348284176 +0.0429932815348636 +0.0192777878591794 +0.0422808966932026 +0.0506815964680558 +0.0201167847752232 +0.0615048274405276 +0.074495389450843 +0.0212460545964937 +0.142602265816219 +0.273502052865438 +0.325309673287598 +0.272705389655347 +0.149074257381343 +0.0247199397628717 +0.0680137859566989 +0.0753882708734869 +0.0273637831604916 +0.0407867704453288 +0.0632964886441987 +0.0309749128751131 +0.0315202035072016 +0.0627625211892194 +0.0360843918243526 +0.0279492055149482 +0.0677921493367224 +0.0437167157553051 +0.0270640150996341 +0.0783380025231665 +0.0561293738314322 +0.0278742033265804 +0.0981443889498686 +0.0794543457386637 diff --git a/buch/papers/reedsolomon/experiments/signal.txt b/buch/papers/reedsolomon/experiments/signal.txt new file mode 100644 index 0000000..202dd02 --- /dev/null +++ b/buch/papers/reedsolomon/experiments/signal.txt @@ -0,0 +1,96 @@ +5 +4 +4 +3 +5 +5 +8 +8 +6 +4 +8 +5 +4 +9 +9 +6 +6 +6 +2 +3 +5 +2 +8 +2 +2 +2 +2 +4 +3 +9 +4 +2 +9 +10 +4 +1 +3 +4 +6 +3 +6 +7 +2 +1 +3 +3 +4 +5 +1 +3 +8 +0 +9 +7 +5 +6 +2 +5 +10 +5 +5 +2 +5 +6 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/buch/papers/reedsolomon/experiments/syndrom.txt b/buch/papers/reedsolomon/experiments/syndrom.txt new file mode 100644 index 0000000..59b9dc4 --- /dev/null +++ b/buch/papers/reedsolomon/experiments/syndrom.txt @@ -0,0 +1,96 @@ +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0.0275599094902566 +0.0115837187254189 +0.0258777610142382 +0.0224618032819705 +0.0441059468994403 +0.0474504002669344 +0.0227694695500614 +0.0271436638090525 +0.0104166666666661 +0.027143663809052 +0.0227694695500605 +0.0474504002669342 +0.04410594689944 +0.0224618032819704 +0.0258777610142386 +0.0115837187254188 +0.027559909490256 +0.0245124379481791 +0.0499782237195213 +0.0401432022864264 +0.023292374765623 +0.0237974288564093 +0.0143895905726623 +0.0271745729691686 +0.0275599094902561 +0.051550167218498 +0.0358255004834538 +0.0247005083663728 +0.0210194725405181 +0.0177592928994299 +0.0261327016093146 +0.0314909067039408 diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 28b65bd..5e91559 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -31,7 +31,8 @@ Der Leser/Empfänger weiss, den Grad des Polynoms und dessen Werte übermittelt \begin{figure} \centering - \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/polynom2.pdf} + %\includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/polynom2} + %\input{papers/reedsolomon/images/polynom2.tex} \caption{Polynom \eqref{reedsolomon:equation1}} \label{fig:polynom} \end{figure} @@ -43,7 +44,7 @@ Hat es Fehler in der Übertragunge gegeben, kann man diese erkennen, da alle Punkte, die korrekt sind, auf dem Polynom liegen müssen. Ab wie vielen Fehler ist das Polynom nicht mehr erkennbar beim Übertragen von 7 Punkten? Bei 2 Fehlern kann man noch eindeutig bestimmen, dass das Polynom mit 4 Punkten, -gegenüber dem mit 5 Punkten falsch liegt. +gegenüber dem mit 5 Punkten falsch liegt.\ref{fig:polynom} Werden es mehr Fehler kann nur erkennt werden, dass das Polynom nicht stimmt. Das orginale Polynom kann aber nicht mehr gefunden werden. Dafür sind mehr übertragene Werte nötig. @@ -58,6 +59,7 @@ die Entschlüsselt werden sollen, brauchen die gleiche Anzahl an Polynomgraden, Für die Anzahl an Übertragungspunkte, muss bestimmt werden wieviel Fehler erkennt und korrigiert werden sollen. Mit Hilfe der Tabelle, sieht man das es bei $t$ Fehlern und $k$ Nutzlast Zahlen, $k+2t$ Punkte übertragen werden müssen. + \begin{center} \begin{tabular}{ c c c } \hline @@ -71,6 +73,7 @@ $k+2t$ Punkte übertragen werden müssen. \hline \end{tabular} \end{center} + Ein toller Nebeneffekt ist das dadurch auch $2t$ Fehler erkannt werden. Um zurück auf unser Beispiel zu kommen, können von den 7 Übertragungspunkten bis zu $2t = 2\cdot2 = 4 $ Punkten falsch liegen diff --git a/buch/papers/reedsolomon/images/polynom2.tex b/buch/papers/reedsolomon/images/polynom2.tex index be9a65e..4fdfc81 100644 --- a/buch/papers/reedsolomon/images/polynom2.tex +++ b/buch/papers/reedsolomon/images/polynom2.tex @@ -1,21 +1,21 @@ % polynome2 %------------------- -\documentclass[tikz]{standalone} -\usepackage{amsmath} -\usepackage{times} -\usepackage{txfonts} -\usepackage{pgfplots} -\usepackage{csvsimple} -\usetikzlibrary{arrows,intersections,math} +%\documentclass[tikz]{standalone} +%\usepackage{amsmath} +%\usepackage{times} +%\usepackage{txfonts} +%\usepackage{pgfplots} +%\usepackage{csvsimple} +%\usetikzlibrary{arrows,intersections,math} \newcommand{\teiler}{40} -\begin{document} -% Übertragen von den Zahlen -% \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5} -% als $ p(x) = \textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5} $.\newline -% Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, -% \textcolor{green}{15}, \textcolor{green}{26}, -% \textcolor{green}{ 41}, \textcolor{green}{60}, -% \textcolor{green}{83}, \textcolor{green}{110})$ +%\begin{document} + Übertragen von den Zahlen + \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5} + als $ p(x) = \textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5} $.\newline + Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, + \textcolor{green}{15}, \textcolor{green}{26}, + \textcolor{green}{ 41}, \textcolor{green}{60}, + \textcolor{green}{83}, \textcolor{green}{110})$ \begin{tikzpicture}[>=latex,thick] @@ -48,4 +48,4 @@ \draw(0,100/\teiler) -- (-0.1,100/\teiler) coordinate[label={left:$100$}]; \draw(1,0) -- (1,-0.1) coordinate[label={below:$1$}]; \end{tikzpicture} -\end{document} +%\end{document} diff --git a/buch/papers/reedsolomon/packages.tex b/buch/papers/reedsolomon/packages.tex index 3643731..4b1ee68 100644 --- a/buch/papers/reedsolomon/packages.tex +++ b/buch/papers/reedsolomon/packages.tex @@ -8,3 +8,5 @@ % following example %\usepackage{packagename} +\usepackage{pgfplots} + -- cgit v1.2.1 From 1a539e1764591e3daf7a254a038f956209e7f942 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Mon, 19 Jul 2021 17:46:05 +0200 Subject: minor changes --- buch/papers/reedsolomon/idee.tex | 2 +- buch/papers/reedsolomon/main.tex | 2 +- buch/papers/reedsolomon/teil2.tex | 40 --------------------------------------- 3 files changed, 2 insertions(+), 42 deletions(-) delete mode 100644 buch/papers/reedsolomon/teil2.tex (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 5e91559..08864cf 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -33,7 +33,7 @@ Der Leser/Empfänger weiss, den Grad des Polynoms und dessen Werte übermittelt \centering %\includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/polynom2} %\input{papers/reedsolomon/images/polynom2.tex} - \caption{Polynom \eqref{reedsolomon:equation1}} + \caption{Polynom } \label{fig:polynom} \end{figure} diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index 6bd04f2..18994dc 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -30,7 +30,7 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren % Joshua \input{papers/reedsolomon/einleitung.tex} \input{papers/reedsolomon/idee.tex} -\input{papers/reedsolomon/teil2.tex} +%\input{papers/reedsolomon/teil2.tex} \input{papers/reedsolomon/dtf.tex} % Michael diff --git a/buch/papers/reedsolomon/teil2.tex b/buch/papers/reedsolomon/teil2.tex deleted file mode 100644 index b2adc9f..0000000 --- a/buch/papers/reedsolomon/teil2.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil2.tex -- Beispiel-File für teil2 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 2 -\label{reedsolomon:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - -- cgit v1.2.1 From bb1a2ba9187459d0304e2fa073306c333ae5f236 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Mon, 19 Jul 2021 20:47:33 +0200 Subject: final pictures added, sources updated --- buch/papers/reedsolomon/anwendungen.tex | 28 ++++++++++- buch/papers/reedsolomon/images/designer_qrcode.png | Bin 0 -> 163253 bytes .../images/designer_qrcode_ohnelogo.png | Bin 0 -> 133792 bytes buch/papers/reedsolomon/main.tex | 6 +++ buch/papers/reedsolomon/references.bib | 53 +++++++++++++++++++++ 5 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 buch/papers/reedsolomon/images/designer_qrcode.png create mode 100644 buch/papers/reedsolomon/images/designer_qrcode_ohnelogo.png (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/anwendungen.tex b/buch/papers/reedsolomon/anwendungen.tex index 4b30ec9..c03b1a4 100644 --- a/buch/papers/reedsolomon/anwendungen.tex +++ b/buch/papers/reedsolomon/anwendungen.tex @@ -113,7 +113,7 @@ Die Digital Video Disc funktioniert nach dem selben Konzept mit grösseren Codeb \end{figure} \subsection{QR-Codes} -Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel der Abschnitte \ref{reedsolomon:section:codebsp} - \ref{reedsolomon:section:rekonstruktion} nur das QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Die Physische Grösse eines Codes ist stark abhängig von der Grösse der Codierung sowie dem Fehlerkorrektur-Level. Es ist so auf dem ersten Blick nicht ersichtlich, wie viel Nutzinformationen ein Qr-Code enthält. Die QR-Codes in Abbildung \ref{fig:qr} zeigen jeweils die Gleiche Information mit unterschiedlichem Fehlerkorrektur-Level. Codes mit einem höheren Korrektur-Level können auch für Desingner-Codes Zweckentfremdet werden. Dabei wird z.B. das Firmenlogo oder einen Schriftzug über den Qr-Code gelegt, ohne das die Funktion des Codes beeinträchtigt wird. Ein Beispiel dazu ist ebenfalls unter Abbildung \ref{fig:qr} \textcolor{red}{(noch nicht erstellt + beschreibung anpassen)} zu finden. +Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel der Abschnitte \ref{reedsolomon:section:codebsp} - \ref{reedsolomon:section:rekonstruktion} nur das QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Die Physische Grösse eines Codes ist stark abhängig von der Grösse der Codierung sowie dem Fehlerkorrektur-Level. Es ist so auf dem ersten Blick nicht ersichtlich, wie viel Nutzinformationen ein Qr-Code enthält. Die QR-Codes in Abbildung \ref{fig:qr} zeigen jeweils die Gleiche Information mit unterschiedlichem Fehlerkorrektur-Level. Codes mit einem höheren Korrektur-Level können auch für Designer-Codes Zweckentfremdet werden. Dabei wird z.B. das Firmenlogo oder einen Schriftzug über den Qr-Code gelegt, ohne das die Funktion des Codes beeinträchtigt wird. Ein Beispiel dazu ist unter Abbildung \ref{fig:designqr} zu finden. % @@ -130,6 +130,30 @@ Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen \subfigure[]{ \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_l} } - \caption{(a) High Level Code, (b) Low Level Code} +% \subfigure[]{ +% \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/designer_qrcode_ohnelogo} +% } +% \subfigure[]{ +% \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/designer_qrcode} +% } + \caption{Anhand der grösse würde man darauf schliessen, dass bei (a) mehr Informationen Codiert sind als bei (b). Tatsächlich aber beinhalten beide Codes die gleiche Information. Das liegt daran, da die Fehlerkorrekturfähigkeit von QR-Codes sich in insgesamt vier Levels aufteilen lassen. Der höchste Fehlerkorrektur-Level, der bei (a) angewendet wurde, ist in der Lage, bis zu 30\% der Daten wiederherzustellen. Der kleinste Level schafft etwa 7\%, der in (b) veranschaulicht wird. Da die Grösse also nichts über die Menge an Daten aussagt, könnte es sich bei (a) auch um einen Code mit viel Nutzdaten und kleinem Fehlerkorrektur-Level handeln. Der Unterschied ist von Auge nicht sichtbar.} \label{fig:qr} \end{figure} + +\begin{figure} + \centering +% \subfigure[]{ +% \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_h} +% } +% \subfigure[]{ +% \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_l} +% } + \subfigure[]{ + \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/designer_qrcode_ohnelogo} + } + \subfigure[]{ + \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/designer_qrcode} + } + \caption{Während (a) noch ein unveränderter QR-Code repräsentiert, handelt es sich bei (b) nun um einen Designer-QR-Code. Beide Codes verfügen über einen mittleren Fehlerkorrektur-Level von theoretisch 15\%. Da bei (b) jetzt einen Teil des Codes durch ein Logo verdeckt wird, schränkt sich dadurch die Fehlerkorrekturfähigkeit je nach grösse des verdeckten Teils mehr oder weniger stark ein. Unser Designer-Code in (b) ist nur noch in der Lage etwa 9\% des Codes zu rekonstruieren.} + \label{fig:designqr} +\end{figure} \ No newline at end of file diff --git a/buch/papers/reedsolomon/images/designer_qrcode.png b/buch/papers/reedsolomon/images/designer_qrcode.png new file mode 100644 index 0000000..a9e0505 Binary files /dev/null and b/buch/papers/reedsolomon/images/designer_qrcode.png differ diff --git a/buch/papers/reedsolomon/images/designer_qrcode_ohnelogo.png b/buch/papers/reedsolomon/images/designer_qrcode_ohnelogo.png new file mode 100644 index 0000000..fe4251d Binary files /dev/null and b/buch/papers/reedsolomon/images/designer_qrcode_ohnelogo.png differ diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index 6bd04f2..a400508 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -45,6 +45,12 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \nocite{reedsolomon:weitz} \nocite{reedsolomon:informationkommunikation} +\nocite{reedsolomon:voyager_programm} +\nocite{reedsolomon:voyager} +\nocite{reedsolomon:cd_wiki} +\nocite{reedsolomon:cd} +\nocite{reedsolomon:qr_wiki} +\nocite{reedsolomon:qr} %\nocite{reedsolomon:mendezmueller} \printbibliography[heading=subbibliography] diff --git a/buch/papers/reedsolomon/references.bib b/buch/papers/reedsolomon/references.bib index 731bd35..e0a75a8 100644 --- a/buch/papers/reedsolomon/references.bib +++ b/buch/papers/reedsolomon/references.bib @@ -23,3 +23,56 @@ volume = {1} } +@online{reedsolomon:voyager_programm, + title = {Information über das Voyager Programm}, + url = {https://de.wikipedia.org/wiki/Voyager-Programm}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} + +@online{reedsolomon:voyager, + title = {Bild der Voyager Raumsonde}, + url = {https://en.wikipedia.org/wiki/Voyager_1}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} + +@online{reedsolomon:cd_wiki, + title = {Alles über die CD}, + url = {https://de.wikipedia.org/wiki/Compact_Disc}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} + +@online{reedsolomon:cd, + title = {Funktionsweise des QR-Codes}, + url = {https://www.stickpng.com/img/electronics/compact-discs/stack-compact-disc}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} + +@online{reedsolomon:qr_wiki, + title = {Funktionsweise des QR-Codes}, + url = {https://de.wikipedia.org/wiki/QR-Code}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} + +@online{reedsolomon:qr, + title = {Tool zum erstellen von QR-Codes}, + url = {https://www.qrcode-generator.ch}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} \ No newline at end of file -- cgit v1.2.1 From c8ac17e1f78eca79d8a2a62d0567f5ee02f4575c Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 21 Jul 2021 15:17:21 +0200 Subject: update --- .../RS presentation/images/polynom1 - Kopie.tex | 33 ++++ buch/papers/reedsolomon/dtf.tex | 10 +- buch/papers/reedsolomon/experiments/codiert.txt | 192 ++++++++++----------- buch/papers/reedsolomon/experiments/decodiert.txt | 192 ++++++++++----------- buch/papers/reedsolomon/experiments/empfangen.txt | 192 ++++++++++----------- buch/papers/reedsolomon/experiments/f.m | 17 +- buch/papers/reedsolomon/experiments/fehler.txt | 192 ++++++++++----------- buch/papers/reedsolomon/experiments/locator.txt | 192 ++++++++++----------- buch/papers/reedsolomon/experiments/plot.tex | 91 ++++++++++ buch/papers/reedsolomon/experiments/signal.txt | 192 ++++++++++----------- buch/papers/reedsolomon/experiments/syndrom.txt | 192 ++++++++++----------- buch/papers/reedsolomon/idee.tex | 27 +-- buch/papers/reedsolomon/images/plotfft.tex | 77 +++++++++ buch/papers/reedsolomon/images/polynom2.tex | 88 +++++----- 14 files changed, 946 insertions(+), 741 deletions(-) create mode 100644 buch/papers/reedsolomon/RS presentation/images/polynom1 - Kopie.tex create mode 100644 buch/papers/reedsolomon/experiments/plot.tex create mode 100644 buch/papers/reedsolomon/images/plotfft.tex (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/RS presentation/images/polynom1 - Kopie.tex b/buch/papers/reedsolomon/RS presentation/images/polynom1 - Kopie.tex new file mode 100644 index 0000000..038e93e --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/polynom1 - Kopie.tex @@ -0,0 +1,33 @@ +% polynome1 +%------------------- +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math} +\newcommand{\teiler}{40} +\begin{document} + + +\begin{tikzpicture}[>=latex,thick] + + \begin{axis}[ + axis lines = left, + xlabel = \(x\), + ylabel = {\(f(x)\)}, + ] + %Below the red parabola is defined + \addplot[ + color=blue, + ] + coordinates { + (0,23.1)(10,27.5)(20,32)(30,37.8)(40,44.6)(60,61.8)(80,83.8)(100,114) + }; + %Here the blue parabola is defined + + \end{axis} +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index d276760..f011ac3 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -26,7 +26,9 @@ Kommen nuun drei Fehler... hinzu zu diesem codierten Signal sind diese nicht zu Nach dem Empfangen... und decodieren ... erkennt man die fehlerhafte information in den Punkten 64 bis 100. Filtert man nur diese Punkte heraus und Transformiert sie mit Fourier erhält man die stellen an denen die Fehler sich eingeschlichen haben. - - - - +\begin{figure} + \centering + \input{papers/reedsolomon/images/plotfft.tex} + \caption{Übertragungsabfolge \ref{reedsolomon:subsection:Übertragungsabfolge}} + \label{fig:sendorder} +\end{figure} \ No newline at end of file diff --git a/buch/papers/reedsolomon/experiments/codiert.txt b/buch/papers/reedsolomon/experiments/codiert.txt index a57fb3e..4a481d8 100644 --- a/buch/papers/reedsolomon/experiments/codiert.txt +++ b/buch/papers/reedsolomon/experiments/codiert.txt @@ -1,96 +1,96 @@ -305 -114.502535214877 -86.2532974498148 -10.2450106137816 -68.1373455525487 -12.2281691909479 -3.18633753309102 -20.0196562371296 -12.2767246322969 -11.7216140392957 -24.8752690882777 -16.2978466490127 -23.2518118214845 -16.5845482358975 -15.6140674930647 -33.396205039034 -20.7846096908265 -19.3528753492232 -16.3850575123207 -20.9502842499826 -17.064465004608 -11.7252100463969 -31.1005540675575 -29.4336965143315 -26.6270539113887 -18.0164813754079 -24.7444243500799 -7.51007272621331 -4.06984153366859 -27.215173252412 -17.2339815787965 -23.5539874432174 -22.2710574513201 -14.7961619823174 -25.5530773949688 -33.4185813747547 -11.5478676394508 -21.0691619228239 -28.7948800016184 -12.3795084046074 -17.0082930449459 -19.7473571196866 -18.4490385219626 -12.2195365467659 -7.58568158110485 -6.02300839250873 -14.565530706253 -3.78959213976527 -21 -3.78959213976527 -14.565530706253 -6.02300839250873 -7.58568158110485 -12.2195365467659 -18.4490385219626 -19.7473571196866 -17.0082930449459 -12.3795084046074 -28.7948800016184 -21.0691619228239 -11.5478676394508 -33.4185813747547 -25.5530773949688 -14.7961619823174 -22.2710574513201 -23.5539874432174 -17.2339815787965 -27.215173252412 -4.06984153366859 -7.51007272621331 -24.7444243500799 -18.0164813754079 -26.6270539113887 -29.4336965143315 -31.1005540675575 -11.7252100463969 -17.064465004608 -20.9502842499826 -16.3850575123207 -19.3528753492232 -20.7846096908265 -33.396205039034 -15.6140674930647 -16.5845482358975 -23.2518118214845 -16.2978466490127 -24.8752690882777 -11.7216140392957 -12.2767246322969 -20.0196562371296 -3.18633753309102 -12.2281691909479 -68.1373455525487 -10.2450106137816 -86.2532974498148 -114.502535214877 +0,284 +1,131.570790435043 +2,41.9840308053375 +3,12.1189172092243 +4,23.8408857476069 +5,69.1793197789512 +6,24.0186013379153 +7,37.3066577242559 +8,18.2010889773887 +9,12.3214904922455 +10,15.6627133315015 +11,24.5237955316204 +12,32.1114345314062 +13,44.9845039238714 +14,13.5324640263625 +15,10.1736266929292 +16,4.58257569495584 +17,23.217268502288 +18,16.5769107917917 +19,6.89948680823017 +20,4.84567134895776 +21,10.4219666223433 +22,43.6179140616243 +23,35.9073375743642 +24,15.0332963783729 +25,21.7594021268945 +26,23.2496572716993 +27,17.9815599423852 +28,11.3577742151117 +29,38.467599433197 +30,28.3035029562577 +31,9.54321919833388 +32,21.377558326432 +33,17.6292439561917 +34,12.6951848921471 +35,20.0667752354841 +36,22.9097309529208 +37,8.78894645948548 +38,13.360682005498 +39,25.1757616314718 +40,38.0357773686457 +41,18.4633287776253 +42,19.0584505869806 +43,10.8631093309173 +44,12.6147770818983 +45,12.5398140021274 +46,34.901983501949 +47,22.3480442021702 +48,6 +49,22.3480442021702 +50,34.901983501949 +51,12.5398140021274 +52,12.6147770818983 +53,10.8631093309173 +54,19.0584505869806 +55,18.4633287776253 +56,38.0357773686457 +57,25.1757616314718 +58,13.360682005498 +59,8.78894645948548 +60,22.9097309529208 +61,20.0667752354841 +62,12.6951848921471 +63,17.6292439561917 +64,21.377558326432 +65,9.54321919833388 +66,28.3035029562577 +67,38.467599433197 +68,11.3577742151117 +69,17.9815599423852 +70,23.2496572716993 +71,21.7594021268945 +72,15.0332963783729 +73,35.9073375743642 +74,43.6179140616243 +75,10.4219666223433 +76,4.84567134895776 +77,6.89948680823017 +78,16.5769107917917 +79,23.217268502288 +80,4.58257569495584 +81,10.1736266929292 +82,13.5324640263625 +83,44.9845039238714 +84,32.1114345314062 +85,24.5237955316204 +86,15.6627133315015 +87,12.3214904922455 +88,18.2010889773887 +89,37.3066577242559 +90,24.0186013379153 +91,69.1793197789512 +92,23.8408857476069 +93,12.1189172092243 +94,41.9840308053375 +95,131.570790435043 diff --git a/buch/papers/reedsolomon/experiments/decodiert.txt b/buch/papers/reedsolomon/experiments/decodiert.txt index 5295e2a..f6221e6 100644 --- a/buch/papers/reedsolomon/experiments/decodiert.txt +++ b/buch/papers/reedsolomon/experiments/decodiert.txt @@ -1,96 +1,96 @@ -5.05208333333333 -4.02603841132848 -3.9866906905523 -2.98928833660435 -5.01944413899123 -5.01851886476838 -7.97795274966527 -7.9523893732277 -5.97396514457618 -4.00519657776884 -8.0006276895628 -4.97630831658918 -3.97918030102376 -9.01298821331865 -9.03553822210758 -6.02435577439403 -6.005269315244 -6.00739475784899 -2.02214193521707 -3.02175993431401 -5.00158984940366 -1.98176205240977 -7.97728830439693 -1.98491220960989 -1.98958333333333 -1.98491220960989 -1.97728880273589 -3.98152108172961 -3.00171929847136 -9.02175649397959 -4.02211963444795 -2.00740795901169 -9.00524899981178 -10.0243555198185 -4.03562322003676 -1.01362103081199 -2.97918487756672 -3.97630844288113 -6.00063199465927 -3.00522617023784 -5.97396514457618 -6.95239288504068 -1.97810392013073 -1.01862378300238 -3.0194483612015 -2.98928833660435 -3.9866906905523 -5.02603060999077 -1.05208333333333 -3.02605136876764 -7.9866590265379 -0.0177592928994289 -9.01944131204563 -7.01851125156932 -4.97798278395618 -5.95239757681758 -1.97397894668217 -5.00517880987882 -10.0006251063956 -4.97630831658918 -4.97917756274958 -2.01326692505463 -5.0355927170407 -6.02435577439403 -0.0275599094902566 -0.0115837187254189 -0.0258777610142382 -0.0224618032819705 -0.0441059468994403 -0.0474504002669344 -0.0227694695500614 -0.0271436638090525 -0.0104166666666661 -0.027143663809052 -0.0227694695500605 -0.0474504002669342 -0.04410594689944 -0.0224618032819704 -0.0258777610142386 -0.0115837187254188 -0.027559909490256 -0.0245124379481791 -0.0499782237195213 -0.0401432022864264 -0.023292374765623 -0.0237974288564093 -0.0143895905726623 -0.0271745729691686 -0.0275599094902561 -0.051550167218498 -0.0358255004834538 -0.0247005083663728 -0.0210194725405181 -0.0177592928994299 -0.0261327016093146 -0.0314909067039408 +0,6.05208333333333 +1,6.02602539785853 +2,0.0261327016093151 +3,5.98927158561317 +4,4.019445724874 +5,0.0247005083663722 +6,4.97798278395618 +7,1.95246440445439 +8,0.974000110512201 +9,2.00528527696027 +10,1.00071804528155 +11,1.97630907888264 +12,0.0232923747656228 +13,6.01302820392331 +14,3.03567381915226 +15,5.02435590137329 +16,7.00526061008995 +17,5.00739608089369 +18,5.02211514480064 +19,4.02175864806658 +20,1.00236543833726 +21,4.98147315261261 +22,8.97728828610336 +23,8.98481304394618 +24,2.98958333333333 +25,1.98491220960989 +26,5.97728835934715 +27,5.98144124907561 +28,4.00163839998525 +29,2.02176249296313 +30,9.02210713874162 +31,1.00742763919872 +32,1.00557258081044 +33,1.02435888848794 +34,2.03577412756745 +35,6.01302820392331 +36,5.97917574041123 +37,0.976310374034338 +38,9.00062625447998 +39,7.00515849238528 +40,6.97396416790894 +41,0.95256880864368 +42,8.97794719866783 +43,9.01850701506487 +44,10.0194409579917 +45,8.98926601525997 +46,7.9866590265379 +47,5.02603060999077 +48,2.05208333333333 +49,4.02603841132848 +50,0.986882897867895 +51,0.0177592928994285 +52,9.01944131204563 +53,3.0185365665612 +54,2.97803642439316 +55,2.95243072164649 +56,4.97396651395488 +57,6.00516695947321 +58,0.0143895905726619 +59,7.97630812771393 +60,5.97917574041123 +61,9.01298821331865 +62,3.03567381915226 +63,4.02435609145793 +64,0.0275599094902563 +65,0.0115837187254191 +66,0.025877761014238 +67,0.0224618032819697 +68,0.04410594689944 +69,0.0474504002669341 +70,0.0227694695500626 +71,0.0271436638090525 +72,0.0104166666666667 +73,0.0271436638090523 +74,0.0227694695500608 +75,0.0474504002669343 +76,0.0441059468994397 +77,0.0224618032819701 +78,0.0258777610142379 +79,0.0115837187254183 +80,0.027559909490256 +81,0.0245124379481793 +82,0.0499782237195209 +83,0.0401432022864265 +84,0.0232923747656228 +85,0.0237974288564099 +86,0.0143895905726624 +87,0.0271745729691685 +88,0.0275599094902567 +89,0.0515501672184983 +90,0.0358255004834542 +91,0.024700508366373 +92,0.0210194725405171 +93,0.0177592928994296 +94,0.0261327016093158 +95,0.0314909067039411 diff --git a/buch/papers/reedsolomon/experiments/empfangen.txt b/buch/papers/reedsolomon/experiments/empfangen.txt index 326dd83..38c13b0 100644 --- a/buch/papers/reedsolomon/experiments/empfangen.txt +++ b/buch/papers/reedsolomon/experiments/empfangen.txt @@ -1,96 +1,96 @@ -305 -114.502535214877 -86.2532974498148 -10.2450106137816 -68.1373455525487 -12.2281691909479 -4.75208293424194 -20.0196562371296 -12.2767246322969 -11.7216140392957 -24.8752690882777 -16.2978466490127 -23.2518118214845 -16.5845482358975 -15.6140674930647 -33.396205039034 -20.7846096908265 -19.3528753492232 -16.3850575123207 -20.9502842499826 -19.0535931901409 -11.7252100463969 -31.1005540675575 -29.4336965143315 -26.6270539113887 -18.0164813754079 -24.7444243500799 -7.51007272621331 -4.06984153366859 -27.215173252412 -17.2339815787965 -23.5539874432174 -22.2710574513201 -14.7961619823174 -25.5530773949688 -33.4185813747547 -11.5478676394508 -21.0691619228239 -28.7948800016184 -12.3795084046074 -17.0082930449459 -19.7473571196866 -18.4490385219626 -12.2195365467659 -7.58568158110485 -6.02300839250873 -14.565530706253 -3.78959213976527 -21 -3.78959213976527 -14.565530706253 -6.02300839250873 -7.58568158110485 -12.2195365467659 -18.4490385219626 -19.7473571196866 -17.0082930449459 -12.3795084046074 -28.7948800016184 -21.0691619228239 -11.5478676394508 -33.4185813747547 -25.5530773949688 -14.7961619823174 -22.2710574513201 -23.5539874432174 -17.2339815787965 -27.215173252412 -4.06984153366859 -7.51007272621331 -24.7444243500799 -18.0164813754079 -26.6270539113887 -29.4336965143315 -30.3915028428898 -11.7252100463969 -17.064465004608 -20.9502842499826 -16.3850575123207 -19.3528753492232 -20.7846096908265 -33.396205039034 -15.6140674930647 -16.5845482358975 -23.2518118214845 -16.2978466490127 -24.8752690882777 -11.7216140392957 -12.2767246322969 -20.0196562371296 -3.18633753309102 -12.2281691909479 -68.1373455525487 -10.2450106137816 -86.2532974498148 -114.502535214877 +0,284 +1,131.570790435043 +2,41.9840308053375 +3,12.1189172092243 +4,23.8408857476069 +5,69.1793197789512 +6,23.6290258699579 +7,37.3066577242559 +8,18.2010889773887 +9,12.3214904922455 +10,15.6627133315015 +11,24.5237955316204 +12,32.1114345314062 +13,44.9845039238714 +14,13.5324640263625 +15,10.1736266929292 +16,4.58257569495584 +17,23.217268502288 +18,16.5769107917917 +19,6.89948680823017 +20,5.55320238736303 +21,10.4219666223433 +22,43.6179140616243 +23,35.9073375743642 +24,15.0332963783729 +25,21.7594021268945 +26,23.2496572716993 +27,17.9815599423852 +28,11.3577742151117 +29,38.467599433197 +30,28.3035029562577 +31,9.54321919833388 +32,21.377558326432 +33,17.6292439561917 +34,12.6951848921471 +35,20.0667752354841 +36,22.9097309529208 +37,8.78894645948548 +38,13.360682005498 +39,25.1757616314718 +40,38.0357773686457 +41,18.4633287776253 +42,19.0584505869806 +43,10.8631093309173 +44,12.6147770818983 +45,12.5398140021274 +46,34.901983501949 +47,22.3480442021702 +48,6 +49,22.3480442021702 +50,34.901983501949 +51,12.5398140021274 +52,12.6147770818983 +53,10.8631093309173 +54,19.0584505869806 +55,18.4633287776253 +56,38.0357773686457 +57,25.1757616314718 +58,13.360682005498 +59,8.78894645948548 +60,22.9097309529208 +61,20.0667752354841 +62,12.6951848921471 +63,17.6292439561917 +64,21.377558326432 +65,9.54321919833388 +66,28.3035029562577 +67,38.467599433197 +68,11.3577742151117 +69,17.9815599423852 +70,23.2496572716993 +71,21.7594021268945 +72,15.0332963783729 +73,35.9073375743642 +74,44.6135417384784 +75,10.4219666223433 +76,4.84567134895776 +77,6.89948680823017 +78,16.5769107917917 +79,23.217268502288 +80,4.58257569495584 +81,10.1736266929292 +82,13.5324640263625 +83,44.9845039238714 +84,32.1114345314062 +85,24.5237955316204 +86,15.6627133315015 +87,12.3214904922455 +88,18.2010889773887 +89,37.3066577242559 +90,24.0186013379153 +91,69.1793197789512 +92,23.8408857476069 +93,12.1189172092243 +94,41.9840308053375 +95,131.570790435043 diff --git a/buch/papers/reedsolomon/experiments/f.m b/buch/papers/reedsolomon/experiments/f.m index 5e4da85..bf2587c 100644 --- a/buch/papers/reedsolomon/experiments/f.m +++ b/buch/papers/reedsolomon/experiments/f.m @@ -51,6 +51,7 @@ syndrom(1:N,1) = zeros(N,1) plot(abs(syndrom)); xlim([1, l]); title("Syndrom"); + pause() locator = abs(fft(syndrom)) @@ -60,14 +61,12 @@ xlim([1, l]); title("Locator"); pause() -writematrix(abs(signal), 'signal.txt') -writematrix(abs(codiert), 'codiert.txt') -writematrix(fehler, 'fehler.txt') -writematrix(abs(empfangen), 'empfangen.txt') -writematrix(abs(decodiert), 'decodiert.txt') -writematrix(abs(syndrom), 'syndrom.txt') -writematrix(locator, 'locator.txt') - - +writematrix([transpose(counter), abs(signal)], 'signal.txt') +writematrix([transpose(counter), abs(codiert)], 'codiert.txt') +writematrix([transpose(counter), fehler], 'fehler.txt') +writematrix([transpose(counter), abs(empfangen)], 'empfangen.txt') +writematrix([transpose(counter), abs(decodiert)], 'decodiert.txt') +writematrix([transpose(counter), abs(syndrom)], 'syndrom.txt') +writematrix([transpose(counter), locator], 'locator.txt') diff --git a/buch/papers/reedsolomon/experiments/fehler.txt b/buch/papers/reedsolomon/experiments/fehler.txt index b8f9afb..23f1a83 100644 --- a/buch/papers/reedsolomon/experiments/fehler.txt +++ b/buch/papers/reedsolomon/experiments/fehler.txt @@ -1,96 +1,96 @@ -0 -0 -0 -0 -0 -0 -2 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -2 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,2 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,2 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,1 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 diff --git a/buch/papers/reedsolomon/experiments/locator.txt b/buch/papers/reedsolomon/experiments/locator.txt index 421d36e..b28988c 100644 --- a/buch/papers/reedsolomon/experiments/locator.txt +++ b/buch/papers/reedsolomon/experiments/locator.txt @@ -1,96 +1,96 @@ -0.0301224340566959 -0.141653026854878 -0.138226631799375 -0.0339903276086926 -0.310585462557496 -0.551427312631386 -0.628514858396816 -0.511023862515591 -0.275861355940448 -0.0502396354182231 -0.0901855025475772 -0.110759344849757 -0.0684618905062958 -0.0362855426992255 -0.0697096919781522 -0.109288539370249 -0.0923187999496619 -0.0512198536768151 -0.274192386987786 -0.513496149536541 -0.633154426602464 -0.553283743533939 -0.307840573214511 -0.0341664350328389 -0.140270857956999 -0.138527177682829 -0.0296375477361526 -0.0816962563186064 -0.0944383203811072 -0.0263932110686224 -0.058588134840207 -0.0737117341600011 -0.0239973937701886 -0.0464215468420024 -0.0616218854220982 -0.0221963086695035 -0.0390764778127614 -0.0537637218396927 -0.0208333333333355 -0.0343107696069015 -0.0483441215964522 -0.0198077862118787 -0.0311207395968709 -0.0444955089373439 -0.0190533549944134 -0.0290049795038704 -0.0417536642697542 -0.0185261550443044 -0.0277059929762204 -0.0398606084144781 -0.0181978813094801 -0.0271098219177536 -0.0386836665079658 -0.018051861104682 -0.0272138992557153 -0.0381891287148298 -0.0180809085252426 -0.0281418959420076 -0.0384596362516644 -0.0182864418432244 -0.0302250788423177 -0.0397874837986374 -0.0186786556701704 -0.0342489348284176 -0.0429932815348636 -0.0192777878591794 -0.0422808966932026 -0.0506815964680558 -0.0201167847752232 -0.0615048274405276 -0.074495389450843 -0.0212460545964937 -0.142602265816219 -0.273502052865438 -0.325309673287598 -0.272705389655347 -0.149074257381343 -0.0247199397628717 -0.0680137859566989 -0.0753882708734869 -0.0273637831604916 -0.0407867704453288 -0.0632964886441987 -0.0309749128751131 -0.0315202035072016 -0.0627625211892194 -0.0360843918243526 -0.0279492055149482 -0.0677921493367224 -0.0437167157553051 -0.0270640150996341 -0.0783380025231665 -0.0561293738314322 -0.0278742033265804 -0.0981443889498686 -0.0794543457386637 +0,0.0301224340567056 +1,0.141653026854885 +2,0.138226631799377 +3,0.0339903276086929 +4,0.310585462557496 +5,0.551427312631385 +6,0.628514858396814 +7,0.51102386251559 +8,0.275861355940449 +9,0.0502396354182268 +10,0.090185502547573 +11,0.110759344849756 +12,0.0684618905063001 +13,0.0362855426992259 +14,0.0697096919781468 +15,0.109288539370248 +16,0.0923187999496653 +17,0.0512198536768088 +18,0.274192386987782 +19,0.51349614953654 +20,0.633154426602466 +21,0.553283743533942 +22,0.307840573214514 +23,0.0341664350328392 +24,0.140270857957 +25,0.138527177682831 +26,0.029637547736156 +27,0.0816962563186052 +28,0.0944383203811073 +29,0.0263932110686261 +30,0.0585881348402056 +31,0.0737117341599984 +32,0.0239973937701886 +33,0.0464215468420038 +34,0.0616218854220964 +35,0.0221963086695009 +36,0.0390764778127646 +37,0.0537637218396934 +38,0.0208333333333332 +39,0.0343107696069045 +40,0.0483441215964552 +41,0.0198077862118806 +42,0.0311207395968725 +43,0.0444955089373458 +44,0.0190533549944159 +45,0.0290049795038723 +46,0.0417536642697558 +47,0.0185261550443084 +48,0.0277059929762261 +49,0.0398606084144816 +50,0.0181978813094817 +51,0.0271098219177584 +52,0.0386836665079729 +53,0.0180518611046889 +54,0.0272138992557141 +55,0.0381891287148314 +56,0.0180809085252469 +57,0.0281418959420061 +58,0.0384596362516637 +59,0.0182864418432272 +60,0.0302250788423173 +61,0.0397874837986351 +62,0.0186786556701694 +63,0.0342489348284216 +64,0.0429932815348666 +65,0.0192777878591759 +66,0.0422808966931999 +67,0.0506815964680563 +68,0.0201167847752226 +69,0.0615048274405271 +70,0.0744953894508454 +71,0.021246054596492 +72,0.142602265816215 +73,0.273502052865436 +74,0.325309673287599 +75,0.272705389655349 +76,0.149074257381345 +77,0.0247199397628712 +78,0.0680137859566976 +79,0.075388270873485 +80,0.0273637831604903 +81,0.0407867704453274 +82,0.0632964886441949 +83,0.0309749128751093 +84,0.0315202035072035 +85,0.0627625211892184 +86,0.0360843918243497 +87,0.02794920551495 +88,0.0677921493367236 +89,0.0437167157553067 +90,0.0270640150996317 +91,0.0783380025231622 +92,0.0561293738314281 +93,0.0278742033265809 +94,0.0981443889498639 +95,0.0794543457386548 diff --git a/buch/papers/reedsolomon/experiments/plot.tex b/buch/papers/reedsolomon/experiments/plot.tex new file mode 100644 index 0000000..bf9aadc --- /dev/null +++ b/buch/papers/reedsolomon/experiments/plot.tex @@ -0,0 +1,91 @@ +% polynome1 +%------------------- +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usepackage{pgfplotstable} +\usepackage{filecontents} +\usetikzlibrary{arrows,intersections,math} +\newcommand{\x}{10} +\newcommand{\y}{-8} +\begin{document} + +\tikzset{ + node/.style={rectangle, draw=black!100, thick, on grid}, % on grid added + dangling node/.style={node, fill=black!30} +} +\begin{tikzpicture}[] + +\filldraw[red] (0,0) circle (5mm); + %Knote +\matrix[draw = none, column sep=20mm, row sep=20mm]{ + \node(signal) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Signal}}] + \addplot[] table[col sep=comma] {signal.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(codiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Codiert}}] + \addplot[] table[col sep=comma] {codiert.txt}; + \end{axis} + \end{tikzpicture}}; \\ + + &\node(fehler) [] { + \begin{tikzpicture} + \begin{axis}[scale=0.6, title = {\Large {Fehler}}] + \addplot[] table[col sep=comma] {fehler.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(decodiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Decodiert}}] + \addplot[] table[col sep=comma] {decodiert.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(empfangen) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Empfangen}}] + \addplot[] table[col sep=comma] {empfangen.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(syndrom) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Syndrom}}] + \addplot[] table[col sep=comma] {syndrom.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(locator) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Locator}}] + \addplot[] table[col sep=comma] {locator.txt}; + \end{axis} + \end{tikzpicture}};\\ +}; + %FFT & IFFT deskription + + \draw[thin,gray,dashed] (0,15) to (0,-15); + \node(FFT) [ scale=0.7] at (0,15.3) {FFT IFFT}; + + %Arrows + \draw[ultra thick, ->] (signal.east) to (codiert.west); + \draw[ultra thick, ->] (codiert.south) to (fehler.north); + \draw[ultra thick, ->] (fehler.south) to (empfangen.north); + \draw[ultra thick, ->] (empfangen.west) to (decodiert.east); + \draw[ultra thick, ->] (syndrom.east) to (locator.west); + \draw(decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; + \draw[ultra thick, ->] (zoom) to[out=180, in=90] (syndrom.north); + + + \end{tikzpicture} +\end{document} + diff --git a/buch/papers/reedsolomon/experiments/signal.txt b/buch/papers/reedsolomon/experiments/signal.txt index 202dd02..c4fa5f8 100644 --- a/buch/papers/reedsolomon/experiments/signal.txt +++ b/buch/papers/reedsolomon/experiments/signal.txt @@ -1,96 +1,96 @@ -5 -4 -4 -3 -5 -5 -8 -8 -6 -4 -8 -5 -4 -9 -9 -6 -6 -6 -2 -3 -5 -2 -8 -2 -2 -2 -2 -4 -3 -9 -4 -2 -9 -10 -4 -1 -3 -4 -6 -3 -6 -7 -2 -1 -3 -3 -4 -5 -1 -3 -8 -0 -9 -7 -5 -6 -2 -5 -10 -5 -5 -2 -5 -6 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 +0,6 +1,6 +2,0 +3,6 +4,4 +5,0 +6,5 +7,2 +8,1 +9,2 +10,1 +11,2 +12,0 +13,6 +14,3 +15,5 +16,7 +17,5 +18,5 +19,4 +20,1 +21,5 +22,9 +23,9 +24,3 +25,2 +26,6 +27,6 +28,4 +29,2 +30,9 +31,1 +32,1 +33,1 +34,2 +35,6 +36,6 +37,1 +38,9 +39,7 +40,7 +41,1 +42,9 +43,9 +44,10 +45,9 +46,8 +47,5 +48,2 +49,4 +50,1 +51,0 +52,9 +53,3 +54,3 +55,3 +56,5 +57,6 +58,0 +59,8 +60,6 +61,9 +62,3 +63,4 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,0 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 diff --git a/buch/papers/reedsolomon/experiments/syndrom.txt b/buch/papers/reedsolomon/experiments/syndrom.txt index 59b9dc4..8ca9eed 100644 --- a/buch/papers/reedsolomon/experiments/syndrom.txt +++ b/buch/papers/reedsolomon/experiments/syndrom.txt @@ -1,96 +1,96 @@ -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0.0275599094902566 -0.0115837187254189 -0.0258777610142382 -0.0224618032819705 -0.0441059468994403 -0.0474504002669344 -0.0227694695500614 -0.0271436638090525 -0.0104166666666661 -0.027143663809052 -0.0227694695500605 -0.0474504002669342 -0.04410594689944 -0.0224618032819704 -0.0258777610142386 -0.0115837187254188 -0.027559909490256 -0.0245124379481791 -0.0499782237195213 -0.0401432022864264 -0.023292374765623 -0.0237974288564093 -0.0143895905726623 -0.0271745729691686 -0.0275599094902561 -0.051550167218498 -0.0358255004834538 -0.0247005083663728 -0.0210194725405181 -0.0177592928994299 -0.0261327016093146 -0.0314909067039408 +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,0 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,0 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0.0275599094902563 +65,0.0115837187254191 +66,0.025877761014238 +67,0.0224618032819697 +68,0.04410594689944 +69,0.0474504002669341 +70,0.0227694695500626 +71,0.0271436638090525 +72,0.0104166666666667 +73,0.0271436638090523 +74,0.0227694695500608 +75,0.0474504002669343 +76,0.0441059468994397 +77,0.0224618032819701 +78,0.0258777610142379 +79,0.0115837187254183 +80,0.027559909490256 +81,0.0245124379481793 +82,0.0499782237195209 +83,0.0401432022864265 +84,0.0232923747656228 +85,0.0237974288564099 +86,0.0143895905726624 +87,0.0271745729691685 +88,0.0275599094902567 +89,0.0515501672184983 +90,0.0358255004834542 +91,0.024700508366373 +92,0.0210194725405171 +93,0.0177592928994296 +94,0.0261327016093158 +95,0.0314909067039411 diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 08864cf..39adbbf 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -25,23 +25,20 @@ p(x) \end{equation} ergeben. Übertragen werden nun die Werte an den stellen 1, 2, 3\dots 7 dieses Polynomes. -Grafisch sieht man dies dann in Abbildung +Grafisch sieht man dies dann in Abbildung \ref{fig:polynom}, +mit den Punkten, $p(1),p(2),...,p(7) = (\textcolor{green}{8}, +\textcolor{green}{15}, \textcolor{green}{26}, +\textcolor{green}{41}, \textcolor{green}{60}, +\textcolor{green}{83}, \textcolor{green}{110})$ Wenn ein Fehler sich in die Übertragung eingeschlichen hatt, muss der Leser/Empfänger diesen erkennen und das Polynom rekonstruieren. Der Leser/Empfänger weiss, den Grad des Polynoms und dessen Werte übermittelt wurden. -\begin{figure} - \centering - %\includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/polynom2} - %\input{papers/reedsolomon/images/polynom2.tex} - \caption{Polynom } - \label{fig:polynom} -\end{figure} - \subsection{Beispiel} Für das Beispeil aus der Gleichung \eqref{reedsolomon:equation1}, ist ein Polynome zweiten Grades durch drei Punkte eindeutig bestimmbar. -Hat es Fehler in der Übertragunge gegeben, kann man diese erkennen, -da alle Punkte, die korrekt sind, auf dem Polynom liegen müssen. +Hat es Fehler in der Übertragunge gegeben,(Bei Abbildung \ref{fig:polynom}\textcolor{red}{roten Punkte}) kann man diese erkennen, +da alle Punkte, die korrekt sind, auf dem Polynom liegen müssen. +(Bei Abbildung \ref{fig:polynom}\textcolor{green}{grünen Punkte}) Ab wie vielen Fehler ist das Polynom nicht mehr erkennbar beim Übertragen von 7 Punkten? Bei 2 Fehlern kann man noch eindeutig bestimmen, dass das Polynom mit 4 Punkten, gegenüber dem mit 5 Punkten falsch liegt.\ref{fig:polynom} @@ -49,6 +46,14 @@ Werden es mehr Fehler kann nur erkennt werden, dass das Polynom nicht stimmt. Das orginale Polynom kann aber nicht mehr gefunden werden. Dafür sind mehr übertragene Werte nötig. +\begin{figure} + \centering + %\includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/polynom2} + \input{papers/reedsolomon/images/polynom2.tex} + \caption{Polynom $p(x)$ \eqref{reedsolomon:equation1}} + \label{fig:polynom} +\end{figure} + \section{Fehlerbestimmung \label{reedsolomon:section:Fehlerbestimmmung}} So wird ein Muster indentifiziert, welches genau vorherbestimmen kann, diff --git a/buch/papers/reedsolomon/images/plotfft.tex b/buch/papers/reedsolomon/images/plotfft.tex new file mode 100644 index 0000000..e6d3b47 --- /dev/null +++ b/buch/papers/reedsolomon/images/plotfft.tex @@ -0,0 +1,77 @@ +% +% Plot der èbertrangungsabfolge ins FFT und zurück mit IFFT +% +\tikzset{ + node/.style={rectangle, draw=black!100, thick, on grid}, % on grid added + dangling node/.style={node, fill=black!30} +} +\begin{tikzpicture}[] + +%--------------------------------------------------------------- + %Knote +\matrix[draw = none, column sep=20mm, row sep=20mm]{ + \node(signal) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Signal}}] + \addplot[] table[col sep=comma] {signal.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(codiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Codiert}}] + \addplot[] table[col sep=comma] {codiert.txt}; + \end{axis} + \end{tikzpicture}}; \\ + + &\node(fehler) [] { + \begin{tikzpicture} + \begin{axis}[scale=0.6, title = {\Large {Fehler}}] + \addplot[] table[col sep=comma] {fehler.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(decodiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Decodiert}}] + \addplot[] table[col sep=comma] {decodiert.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(empfangen) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Empfangen}}] + \addplot[] table[col sep=comma] {empfangen.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(syndrom) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Syndrom}}] + \addplot[] table[col sep=comma] {syndrom.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(locator) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Locator}}] + \addplot[] table[col sep=comma] {locator.txt}; + \end{axis} + \end{tikzpicture}};\\ +}; +%------------------------------------------------------------- + %FFT & IFFT deskription + + \draw[thin,gray,dashed] (0,15) to (0,-15); + \node(FFT) [ scale=0.7] at (0,15.3) {FFT IFFT}; + + %Arrows + \draw[ultra thick, ->] (signal.east) to (codiert.west); + \draw[ultra thick, ->] (codiert.south) to (fehler.north); + \draw[ultra thick, ->] (fehler.south) to (empfangen.north); + \draw[ultra thick, ->] (empfangen.west) to (decodiert.east); + \draw[ultra thick, ->] (syndrom.east) to (locator.west); + \draw(decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; + \draw[ultra thick, ->] (zoom) to[out=180, in=90] (syndrom.north); + + \end{tikzpicture} \ No newline at end of file diff --git a/buch/papers/reedsolomon/images/polynom2.tex b/buch/papers/reedsolomon/images/polynom2.tex index 4fdfc81..288b51c 100644 --- a/buch/papers/reedsolomon/images/polynom2.tex +++ b/buch/papers/reedsolomon/images/polynom2.tex @@ -1,51 +1,49 @@ -% polynome2 +% polynome %------------------- -%\documentclass[tikz]{standalone} -%\usepackage{amsmath} -%\usepackage{times} -%\usepackage{txfonts} -%\usepackage{pgfplots} -%\usepackage{csvsimple} -%\usetikzlibrary{arrows,intersections,math} +% Teiler für das Skalieren der Grafik /40 \newcommand{\teiler}{40} -%\begin{document} - Übertragen von den Zahlen - \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5} - als $ p(x) = \textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5} $.\newline - Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, - \textcolor{green}{15}, \textcolor{green}{26}, - \textcolor{green}{ 41}, \textcolor{green}{60}, - \textcolor{green}{83}, \textcolor{green}{110})$ + + +%////////////////////////////////////// + +\begin{tikzpicture}[>=latex,thick] + \draw[color=blue, line width=1.4pt] + plot[domain=0:8, samples=100] + ({\x},{(2*\x^2+1*\x+5)/\teiler}); + + \draw[->] (-0.2,0) -- (8,0) coordinate[label={$x$}]; + \draw[->] (0,-0.2) -- (0,150/\teiler) coordinate[label={right:$p(x)$}]; + + \def\punkt#1{ + \fill[color=green] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + + \def\hellpunkt#1{ + \fill[color=lightgray] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + + \punkt{(1,8/\teiler)} + \hellpunkt{(2,15/\teiler)} + \hellpunkt{(3,26/\teiler)} + \punkt{(4,41/\teiler)} + \punkt{(5,60/\teiler)} + \punkt{(6,83/\teiler)} + \punkt{(7,110/\teiler)} + \draw[color=gray,line width=1pt,dashed] + plot[domain=0.5:7, samples=100] + ({\x},{(7.832*\x^2-51.5*\x+121.668)/\teiler}); - \begin{tikzpicture}[>=latex,thick] - \draw[color=blue, line width=1.4pt] - plot[domain=0:8, samples=100] - ({\x},{(2*\x^2+1*\x+5)/\teiler}); - \draw[->] (-0.2,0) -- (8,0) coordinate[label={$x$}]; - \draw[->] (0,-0.2) -- (0,150/\teiler) coordinate[label={right:$p(x)$}]; - \def\punkt#1{ - \fill[color=green] #1 circle[radius=0.08]; - \draw #1 circle[radius=0.07]; - } - \punkt{(1,8/\teiler)} - %\punkt{(2,15/\teiler)} - %\punkt{(3,26/\teiler)} - \punkt{(4,41/\teiler)} - \punkt{(5,60/\teiler)} - \punkt{(6,83/\teiler)} - \punkt{(7,110/\teiler)} - \draw[color=gray,line width=1pt,dashed] - plot[domain=0.5:7, samples=100] - ({\x},{(0.1958*\x^2-1.2875*\x+3.0417)}); - \def\erpunkt#1{ - \fill[color=red] #1 circle[radius=0.08]; - \draw #1 circle[radius=0.07]; - } - \erpunkt{(2,50/\teiler)} - \erpunkt{(3,0.9414)} + \def\erpunkt#1{ + \fill[color=red] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + \erpunkt{(2,50/\teiler)} + \erpunkt{(3,37.66/\teiler)} - \draw(0,100/\teiler) -- (-0.1,100/\teiler) coordinate[label={left:$100$}]; - \draw(1,0) -- (1,-0.1) coordinate[label={below:$1$}]; - \end{tikzpicture} + \draw(0,100/\teiler) -- (-0.1,100/\teiler) coordinate[label={left:$100$}]; + \draw(1,0) -- (1,-0.1) coordinate[label={below:$1$}]; +\end{tikzpicture} %\end{document} -- cgit v1.2.1 From 3e112e15ffe65ede9c2a13077e358e9efe565d03 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 21 Jul 2021 15:26:35 +0200 Subject: txt files to images ordner --- buch/papers/reedsolomon/images/codiert.txt | 96 ++++++++++++++++++++++++++++ buch/papers/reedsolomon/images/decodiert.txt | 96 ++++++++++++++++++++++++++++ buch/papers/reedsolomon/images/empfangen.txt | 96 ++++++++++++++++++++++++++++ buch/papers/reedsolomon/images/fehler.txt | 96 ++++++++++++++++++++++++++++ buch/papers/reedsolomon/images/locator.txt | 96 ++++++++++++++++++++++++++++ buch/papers/reedsolomon/images/signal.txt | 96 ++++++++++++++++++++++++++++ buch/papers/reedsolomon/images/syndrom.txt | 96 ++++++++++++++++++++++++++++ 7 files changed, 672 insertions(+) create mode 100644 buch/papers/reedsolomon/images/codiert.txt create mode 100644 buch/papers/reedsolomon/images/decodiert.txt create mode 100644 buch/papers/reedsolomon/images/empfangen.txt create mode 100644 buch/papers/reedsolomon/images/fehler.txt create mode 100644 buch/papers/reedsolomon/images/locator.txt create mode 100644 buch/papers/reedsolomon/images/signal.txt create mode 100644 buch/papers/reedsolomon/images/syndrom.txt (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/images/codiert.txt b/buch/papers/reedsolomon/images/codiert.txt new file mode 100644 index 0000000..4a481d8 --- /dev/null +++ b/buch/papers/reedsolomon/images/codiert.txt @@ -0,0 +1,96 @@ +0,284 +1,131.570790435043 +2,41.9840308053375 +3,12.1189172092243 +4,23.8408857476069 +5,69.1793197789512 +6,24.0186013379153 +7,37.3066577242559 +8,18.2010889773887 +9,12.3214904922455 +10,15.6627133315015 +11,24.5237955316204 +12,32.1114345314062 +13,44.9845039238714 +14,13.5324640263625 +15,10.1736266929292 +16,4.58257569495584 +17,23.217268502288 +18,16.5769107917917 +19,6.89948680823017 +20,4.84567134895776 +21,10.4219666223433 +22,43.6179140616243 +23,35.9073375743642 +24,15.0332963783729 +25,21.7594021268945 +26,23.2496572716993 +27,17.9815599423852 +28,11.3577742151117 +29,38.467599433197 +30,28.3035029562577 +31,9.54321919833388 +32,21.377558326432 +33,17.6292439561917 +34,12.6951848921471 +35,20.0667752354841 +36,22.9097309529208 +37,8.78894645948548 +38,13.360682005498 +39,25.1757616314718 +40,38.0357773686457 +41,18.4633287776253 +42,19.0584505869806 +43,10.8631093309173 +44,12.6147770818983 +45,12.5398140021274 +46,34.901983501949 +47,22.3480442021702 +48,6 +49,22.3480442021702 +50,34.901983501949 +51,12.5398140021274 +52,12.6147770818983 +53,10.8631093309173 +54,19.0584505869806 +55,18.4633287776253 +56,38.0357773686457 +57,25.1757616314718 +58,13.360682005498 +59,8.78894645948548 +60,22.9097309529208 +61,20.0667752354841 +62,12.6951848921471 +63,17.6292439561917 +64,21.377558326432 +65,9.54321919833388 +66,28.3035029562577 +67,38.467599433197 +68,11.3577742151117 +69,17.9815599423852 +70,23.2496572716993 +71,21.7594021268945 +72,15.0332963783729 +73,35.9073375743642 +74,43.6179140616243 +75,10.4219666223433 +76,4.84567134895776 +77,6.89948680823017 +78,16.5769107917917 +79,23.217268502288 +80,4.58257569495584 +81,10.1736266929292 +82,13.5324640263625 +83,44.9845039238714 +84,32.1114345314062 +85,24.5237955316204 +86,15.6627133315015 +87,12.3214904922455 +88,18.2010889773887 +89,37.3066577242559 +90,24.0186013379153 +91,69.1793197789512 +92,23.8408857476069 +93,12.1189172092243 +94,41.9840308053375 +95,131.570790435043 diff --git a/buch/papers/reedsolomon/images/decodiert.txt b/buch/papers/reedsolomon/images/decodiert.txt new file mode 100644 index 0000000..f6221e6 --- /dev/null +++ b/buch/papers/reedsolomon/images/decodiert.txt @@ -0,0 +1,96 @@ +0,6.05208333333333 +1,6.02602539785853 +2,0.0261327016093151 +3,5.98927158561317 +4,4.019445724874 +5,0.0247005083663722 +6,4.97798278395618 +7,1.95246440445439 +8,0.974000110512201 +9,2.00528527696027 +10,1.00071804528155 +11,1.97630907888264 +12,0.0232923747656228 +13,6.01302820392331 +14,3.03567381915226 +15,5.02435590137329 +16,7.00526061008995 +17,5.00739608089369 +18,5.02211514480064 +19,4.02175864806658 +20,1.00236543833726 +21,4.98147315261261 +22,8.97728828610336 +23,8.98481304394618 +24,2.98958333333333 +25,1.98491220960989 +26,5.97728835934715 +27,5.98144124907561 +28,4.00163839998525 +29,2.02176249296313 +30,9.02210713874162 +31,1.00742763919872 +32,1.00557258081044 +33,1.02435888848794 +34,2.03577412756745 +35,6.01302820392331 +36,5.97917574041123 +37,0.976310374034338 +38,9.00062625447998 +39,7.00515849238528 +40,6.97396416790894 +41,0.95256880864368 +42,8.97794719866783 +43,9.01850701506487 +44,10.0194409579917 +45,8.98926601525997 +46,7.9866590265379 +47,5.02603060999077 +48,2.05208333333333 +49,4.02603841132848 +50,0.986882897867895 +51,0.0177592928994285 +52,9.01944131204563 +53,3.0185365665612 +54,2.97803642439316 +55,2.95243072164649 +56,4.97396651395488 +57,6.00516695947321 +58,0.0143895905726619 +59,7.97630812771393 +60,5.97917574041123 +61,9.01298821331865 +62,3.03567381915226 +63,4.02435609145793 +64,0.0275599094902563 +65,0.0115837187254191 +66,0.025877761014238 +67,0.0224618032819697 +68,0.04410594689944 +69,0.0474504002669341 +70,0.0227694695500626 +71,0.0271436638090525 +72,0.0104166666666667 +73,0.0271436638090523 +74,0.0227694695500608 +75,0.0474504002669343 +76,0.0441059468994397 +77,0.0224618032819701 +78,0.0258777610142379 +79,0.0115837187254183 +80,0.027559909490256 +81,0.0245124379481793 +82,0.0499782237195209 +83,0.0401432022864265 +84,0.0232923747656228 +85,0.0237974288564099 +86,0.0143895905726624 +87,0.0271745729691685 +88,0.0275599094902567 +89,0.0515501672184983 +90,0.0358255004834542 +91,0.024700508366373 +92,0.0210194725405171 +93,0.0177592928994296 +94,0.0261327016093158 +95,0.0314909067039411 diff --git a/buch/papers/reedsolomon/images/empfangen.txt b/buch/papers/reedsolomon/images/empfangen.txt new file mode 100644 index 0000000..38c13b0 --- /dev/null +++ b/buch/papers/reedsolomon/images/empfangen.txt @@ -0,0 +1,96 @@ +0,284 +1,131.570790435043 +2,41.9840308053375 +3,12.1189172092243 +4,23.8408857476069 +5,69.1793197789512 +6,23.6290258699579 +7,37.3066577242559 +8,18.2010889773887 +9,12.3214904922455 +10,15.6627133315015 +11,24.5237955316204 +12,32.1114345314062 +13,44.9845039238714 +14,13.5324640263625 +15,10.1736266929292 +16,4.58257569495584 +17,23.217268502288 +18,16.5769107917917 +19,6.89948680823017 +20,5.55320238736303 +21,10.4219666223433 +22,43.6179140616243 +23,35.9073375743642 +24,15.0332963783729 +25,21.7594021268945 +26,23.2496572716993 +27,17.9815599423852 +28,11.3577742151117 +29,38.467599433197 +30,28.3035029562577 +31,9.54321919833388 +32,21.377558326432 +33,17.6292439561917 +34,12.6951848921471 +35,20.0667752354841 +36,22.9097309529208 +37,8.78894645948548 +38,13.360682005498 +39,25.1757616314718 +40,38.0357773686457 +41,18.4633287776253 +42,19.0584505869806 +43,10.8631093309173 +44,12.6147770818983 +45,12.5398140021274 +46,34.901983501949 +47,22.3480442021702 +48,6 +49,22.3480442021702 +50,34.901983501949 +51,12.5398140021274 +52,12.6147770818983 +53,10.8631093309173 +54,19.0584505869806 +55,18.4633287776253 +56,38.0357773686457 +57,25.1757616314718 +58,13.360682005498 +59,8.78894645948548 +60,22.9097309529208 +61,20.0667752354841 +62,12.6951848921471 +63,17.6292439561917 +64,21.377558326432 +65,9.54321919833388 +66,28.3035029562577 +67,38.467599433197 +68,11.3577742151117 +69,17.9815599423852 +70,23.2496572716993 +71,21.7594021268945 +72,15.0332963783729 +73,35.9073375743642 +74,44.6135417384784 +75,10.4219666223433 +76,4.84567134895776 +77,6.89948680823017 +78,16.5769107917917 +79,23.217268502288 +80,4.58257569495584 +81,10.1736266929292 +82,13.5324640263625 +83,44.9845039238714 +84,32.1114345314062 +85,24.5237955316204 +86,15.6627133315015 +87,12.3214904922455 +88,18.2010889773887 +89,37.3066577242559 +90,24.0186013379153 +91,69.1793197789512 +92,23.8408857476069 +93,12.1189172092243 +94,41.9840308053375 +95,131.570790435043 diff --git a/buch/papers/reedsolomon/images/fehler.txt b/buch/papers/reedsolomon/images/fehler.txt new file mode 100644 index 0000000..23f1a83 --- /dev/null +++ b/buch/papers/reedsolomon/images/fehler.txt @@ -0,0 +1,96 @@ +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,2 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,2 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,1 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 diff --git a/buch/papers/reedsolomon/images/locator.txt b/buch/papers/reedsolomon/images/locator.txt new file mode 100644 index 0000000..b28988c --- /dev/null +++ b/buch/papers/reedsolomon/images/locator.txt @@ -0,0 +1,96 @@ +0,0.0301224340567056 +1,0.141653026854885 +2,0.138226631799377 +3,0.0339903276086929 +4,0.310585462557496 +5,0.551427312631385 +6,0.628514858396814 +7,0.51102386251559 +8,0.275861355940449 +9,0.0502396354182268 +10,0.090185502547573 +11,0.110759344849756 +12,0.0684618905063001 +13,0.0362855426992259 +14,0.0697096919781468 +15,0.109288539370248 +16,0.0923187999496653 +17,0.0512198536768088 +18,0.274192386987782 +19,0.51349614953654 +20,0.633154426602466 +21,0.553283743533942 +22,0.307840573214514 +23,0.0341664350328392 +24,0.140270857957 +25,0.138527177682831 +26,0.029637547736156 +27,0.0816962563186052 +28,0.0944383203811073 +29,0.0263932110686261 +30,0.0585881348402056 +31,0.0737117341599984 +32,0.0239973937701886 +33,0.0464215468420038 +34,0.0616218854220964 +35,0.0221963086695009 +36,0.0390764778127646 +37,0.0537637218396934 +38,0.0208333333333332 +39,0.0343107696069045 +40,0.0483441215964552 +41,0.0198077862118806 +42,0.0311207395968725 +43,0.0444955089373458 +44,0.0190533549944159 +45,0.0290049795038723 +46,0.0417536642697558 +47,0.0185261550443084 +48,0.0277059929762261 +49,0.0398606084144816 +50,0.0181978813094817 +51,0.0271098219177584 +52,0.0386836665079729 +53,0.0180518611046889 +54,0.0272138992557141 +55,0.0381891287148314 +56,0.0180809085252469 +57,0.0281418959420061 +58,0.0384596362516637 +59,0.0182864418432272 +60,0.0302250788423173 +61,0.0397874837986351 +62,0.0186786556701694 +63,0.0342489348284216 +64,0.0429932815348666 +65,0.0192777878591759 +66,0.0422808966931999 +67,0.0506815964680563 +68,0.0201167847752226 +69,0.0615048274405271 +70,0.0744953894508454 +71,0.021246054596492 +72,0.142602265816215 +73,0.273502052865436 +74,0.325309673287599 +75,0.272705389655349 +76,0.149074257381345 +77,0.0247199397628712 +78,0.0680137859566976 +79,0.075388270873485 +80,0.0273637831604903 +81,0.0407867704453274 +82,0.0632964886441949 +83,0.0309749128751093 +84,0.0315202035072035 +85,0.0627625211892184 +86,0.0360843918243497 +87,0.02794920551495 +88,0.0677921493367236 +89,0.0437167157553067 +90,0.0270640150996317 +91,0.0783380025231622 +92,0.0561293738314281 +93,0.0278742033265809 +94,0.0981443889498639 +95,0.0794543457386548 diff --git a/buch/papers/reedsolomon/images/signal.txt b/buch/papers/reedsolomon/images/signal.txt new file mode 100644 index 0000000..c4fa5f8 --- /dev/null +++ b/buch/papers/reedsolomon/images/signal.txt @@ -0,0 +1,96 @@ +0,6 +1,6 +2,0 +3,6 +4,4 +5,0 +6,5 +7,2 +8,1 +9,2 +10,1 +11,2 +12,0 +13,6 +14,3 +15,5 +16,7 +17,5 +18,5 +19,4 +20,1 +21,5 +22,9 +23,9 +24,3 +25,2 +26,6 +27,6 +28,4 +29,2 +30,9 +31,1 +32,1 +33,1 +34,2 +35,6 +36,6 +37,1 +38,9 +39,7 +40,7 +41,1 +42,9 +43,9 +44,10 +45,9 +46,8 +47,5 +48,2 +49,4 +50,1 +51,0 +52,9 +53,3 +54,3 +55,3 +56,5 +57,6 +58,0 +59,8 +60,6 +61,9 +62,3 +63,4 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,0 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 diff --git a/buch/papers/reedsolomon/images/syndrom.txt b/buch/papers/reedsolomon/images/syndrom.txt new file mode 100644 index 0000000..8ca9eed --- /dev/null +++ b/buch/papers/reedsolomon/images/syndrom.txt @@ -0,0 +1,96 @@ +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,0 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,0 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0.0275599094902563 +65,0.0115837187254191 +66,0.025877761014238 +67,0.0224618032819697 +68,0.04410594689944 +69,0.0474504002669341 +70,0.0227694695500626 +71,0.0271436638090525 +72,0.0104166666666667 +73,0.0271436638090523 +74,0.0227694695500608 +75,0.0474504002669343 +76,0.0441059468994397 +77,0.0224618032819701 +78,0.0258777610142379 +79,0.0115837187254183 +80,0.027559909490256 +81,0.0245124379481793 +82,0.0499782237195209 +83,0.0401432022864265 +84,0.0232923747656228 +85,0.0237974288564099 +86,0.0143895905726624 +87,0.0271745729691685 +88,0.0275599094902567 +89,0.0515501672184983 +90,0.0358255004834542 +91,0.024700508366373 +92,0.0210194725405171 +93,0.0177592928994296 +94,0.0261327016093158 +95,0.0314909067039411 -- cgit v1.2.1 From 93db2b408895beda3ec4d06ff3f81180ca3c7377 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 21 Jul 2021 15:47:40 +0200 Subject: to fix --- buch/papers/reedsolomon/dtf.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index f011ac3..27c6150 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -28,7 +28,7 @@ Filtert man nur diese Punkte heraus und Transformiert sie mit Fourier erhält ma \begin{figure} \centering - \input{papers/reedsolomon/images/plotfft.tex} + %\input{papers/reedsolomon/images/plotfft.tex} \caption{Übertragungsabfolge \ref{reedsolomon:subsection:Übertragungsabfolge}} \label{fig:sendorder} \end{figure} \ No newline at end of file -- cgit v1.2.1 From 5397a77e20a23338279ffe4faa59453104be5b95 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 21 Jul 2021 21:18:31 +0200 Subject: update --- buch/papers/reedsolomon/dtf.tex | 41 ++++++--- buch/papers/reedsolomon/experiments/plot.tex | 130 +++++++++++++++------------ buch/papers/reedsolomon/images/plotfft.tex | 68 ++++++++------ buch/papers/reedsolomon/packages.tex | 2 +- 4 files changed, 143 insertions(+), 98 deletions(-) (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index 27c6150..a111527 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -14,21 +14,42 @@ wobei sie dann bei späteren Berchnungen ganz nützlich ist. \subsection{Diskrete Fourientransformation Zusamenhang \label{reedsolomon:subsection:dtfzusamenhang}} Die Diskrete Fourientransformation ist definiert als - + \[ + \label{ft_discrete} + \hat{c}_{k} + = \frac{1}{N} \sum_{n=0}^{N-1} + {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn} + \] +, wenn man nun + \[ + w = e^{-\frac{2\pi j}{N} k} + \] +ersetzte, und $N$ konstantbleibt, erhält man + \[ + \hat{c}_{k}=\frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) + \] +was überaust ähnlich zu unserem Polynomidee ist. \subsection{Übertragungsabfolge \label{reedsolomon:subsection:Übertragungsabfolge}} -Das Signal.... sind die Daten, Zahlen welche übertragen werden sollen. -Das speziell ist das wir 100 Punkte übertragen und von 64 bis 100, -werden nur Null Punkte übertragen, dies weiss auch unser Empfänger. -Nun wird das Signal in Abbildung... codiert... -Somit wird die Information jedes Punktes auf das ganze spektrum von 0 bis 100 übertragen. -Kommen nuun drei Fehler... hinzu zu diesem codierten Signal sind diese nicht zu erkennen. -Nach dem Empfangen... und decodieren ... erkennt man die fehlerhafte information in den Punkten 64 bis 100. -Filtert man nur diese Punkte heraus und Transformiert sie mit Fourier erhält man die stellen an denen die Fehler sich eingeschlichen haben. + +\begin{enumerate}[1)] +\item Das Signal hat 64 die Daten, Zahlen welche übertragen werden sollen. +Dabei zusätzlich nach 16 Fehler abgesichert, macht insgesamt 96 Übertragungszahlen. +\item Nun wurde mittels der schnellen diskreten Fourientransformation diese 96 codiert. +Das heisst alle information ist in alle Zahlenvorhanden. +\item Nun kommen drei Fehler dazu an den Übertragungsstellen 7, 21 und 75. +\item Dieses wird nun Empfangen und mittels inversen diskreten Fourientransormation, wieder rücktransformiert. +\item Nun sieht man den Fehler im Decodieren in den Übertragungsstellen 64 bis 96. +\item Nimmt man nun nur diese Stellen 64 bis 96, auch Syndrom genannt, und Transformiert diese. +\item Bekommt man die Fehlerstellen im Locator wieder, zwar nichtso genau, dennoch erkkent man wo die Fehler stattgefunden haben. +\end{enumerate} \begin{figure} \centering - %\input{papers/reedsolomon/images/plotfft.tex} + \resizebox{0.9\textwidth}{!}{ + %\includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/plot.pdf} + \input{papers/reedsolomon/images/plotfft.tex} + } \caption{Übertragungsabfolge \ref{reedsolomon:subsection:Übertragungsabfolge}} \label{fig:sendorder} \end{figure} \ No newline at end of file diff --git a/buch/papers/reedsolomon/experiments/plot.tex b/buch/papers/reedsolomon/experiments/plot.tex index bf9aadc..2196c82 100644 --- a/buch/papers/reedsolomon/experiments/plot.tex +++ b/buch/papers/reedsolomon/experiments/plot.tex @@ -13,69 +13,73 @@ \newcommand{\y}{-8} \begin{document} -\tikzset{ - node/.style={rectangle, draw=black!100, thick, on grid}, % on grid added - dangling node/.style={node, fill=black!30} -} \begin{tikzpicture}[] - -\filldraw[red] (0,0) circle (5mm); - %Knote -\matrix[draw = none, column sep=20mm, row sep=20mm]{ - \node(signal) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Signal}}] - \addplot[] table[col sep=comma] {signal.txt}; - \end{axis} - \end{tikzpicture}}; & - \node(codiert) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Codiert}}] - \addplot[] table[col sep=comma] {codiert.txt}; - \end{axis} - \end{tikzpicture}}; \\ + %--------------------------------------------------------------- + %Knote + \matrix[draw = none, column sep=20mm, row sep=4mm]{ + \node(signal) [] { + \begin{tikzpicture} + \begin{axis}[ + title = {\Large {Signal}}, + xlabel={Anzahl Übertragene Zahlen}, + xtick={0,20,40,64,80,98},] + \addplot[blue] table[col sep=comma] {signal.txt}; + \end{axis} + \end{tikzpicture}}; & - &\node(fehler) [] { - \begin{tikzpicture} - \begin{axis}[scale=0.6, title = {\Large {Fehler}}] - \addplot[] table[col sep=comma] {fehler.txt}; - \end{axis} - \end{tikzpicture}};\\ - - \node(decodiert) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Decodiert}}] - \addplot[] table[col sep=comma] {decodiert.txt}; - \end{axis} - \end{tikzpicture}}; & - - \node(empfangen) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Empfangen}}] - \addplot[] table[col sep=comma] {empfangen.txt}; - \end{axis} - \end{tikzpicture}};\\ - - \node(syndrom) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Syndrom}}] - \addplot[] table[col sep=comma] {syndrom.txt}; - \end{axis} - \end{tikzpicture}}; & - - \node(locator) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Locator}}] - \addplot[] table[col sep=comma] {locator.txt}; - \end{axis} - \end{tikzpicture}};\\ -}; + \node(codiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Codiert}}] + \addplot[] table[col sep=comma] {codiert.txt}; + \end{axis} + \end{tikzpicture}}; \\ + + &\node(fehler) [] { + \begin{tikzpicture} + \begin{axis}[scale=0.6, title = {\Large {Fehler}}] + \addplot[red] table[col sep=comma] {fehler.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(decodiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Decodiert}}] + \addplot[blue] table[col sep=comma] {decodiert.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(empfangen) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Empfangen}}] + \addplot[] table[col sep=comma] {empfangen.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(syndrom) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Syndrom}}] + \addplot[blue] table[col sep=comma] {syndrom.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(locator) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Locator}}] + \addplot[] table[col sep=comma] {locator.txt}; + \end{axis} + \end{tikzpicture}};\\ + }; + %------------------------------------------------------------- %FFT & IFFT deskription - - \draw[thin,gray,dashed] (0,15) to (0,-15); - \node(FFT) [ scale=0.7] at (0,15.3) {FFT IFFT}; + \draw[thin,gray,dashed] (0,12) to (0,-12); + \node(IFFT) [scale=0.7] at (0,12.3) {IFFT}; + \draw[<-](IFFT.south west)--(IFFT.south east); + \node(FFT) [scale=0.7, above of=IFFT] {FFT}; + \draw[->](FFT.north west)--(FFT.north east); + + \draw[thick, ->,] (fehler.west)++(-1,0) +(0.05,0.5) -- +(-0.1,-0.1) -- +(0.1,0.1) -- +(0,-0.5); %Arrows \draw[ultra thick, ->] (signal.east) to (codiert.west); \draw[ultra thick, ->] (codiert.south) to (fehler.north); @@ -85,7 +89,15 @@ \draw(decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; \draw[ultra thick, ->] (zoom) to[out=180, in=90] (syndrom.north); + %item + \node[circle, draw, fill =lightgray] at (signal.north west)+(1,0) {1}; + \node[circle, draw, fill =lightgray] at (codiert.north west) {2}; + \node[circle, draw, fill =lightgray] at (fehler.north west) {3}; + \node[circle, draw, fill =lightgray] at (empfangen.north west) {4}; + \node[circle, draw, fill =lightgray] at (decodiert.north west) {5}; + \node[circle, draw, fill =lightgray] at (syndrom.north west) {6}; + \node[circle, draw, fill =lightgray] at (locator.north west) {7}; - \end{tikzpicture} +\end{tikzpicture} \end{document} diff --git a/buch/papers/reedsolomon/images/plotfft.tex b/buch/papers/reedsolomon/images/plotfft.tex index e6d3b47..83a89eb 100644 --- a/buch/papers/reedsolomon/images/plotfft.tex +++ b/buch/papers/reedsolomon/images/plotfft.tex @@ -1,77 +1,89 @@ % -% Plot der èbertrangungsabfolge ins FFT und zurück mit IFFT +% Plot der Übertrangungsabfolge ins FFT und zurück mit IFFT % -\tikzset{ - node/.style={rectangle, draw=black!100, thick, on grid}, % on grid added - dangling node/.style={node, fill=black!30} -} \begin{tikzpicture}[] %--------------------------------------------------------------- %Knote -\matrix[draw = none, column sep=20mm, row sep=20mm]{ +\matrix[draw = none, column sep=25mm, row sep=2mm]{ \node(signal) [] { \begin{tikzpicture} - \begin{axis}[title = {\Large {Signal}}] - \addplot[] table[col sep=comma] {signal.txt}; + \begin{axis} + [title = {\Large {Signal}}, + xlabel={Anzahl Übertragene Zahlen}, + xtick={0,20,40,64,80,98},] + \addplot[blue] table[col sep=comma] {papers/reedsolomon/images/signal.txt}; \end{axis} \end{tikzpicture}}; & \node(codiert) [] { \begin{tikzpicture} \begin{axis}[title = {\Large {Codiert}}] - \addplot[] table[col sep=comma] {codiert.txt}; + \addplot[] table[col sep=comma] {papers/reedsolomon/images/codiert.txt}; \end{axis} \end{tikzpicture}}; \\ &\node(fehler) [] { \begin{tikzpicture} - \begin{axis}[scale=0.6, title = {\Large {Fehler}}] - \addplot[] table[col sep=comma] {fehler.txt}; + \begin{axis}[scale=0.6, title = {\Large {Fehler}}, + xtick={7,21,75}] + \addplot[red] table[col sep=comma] {papers/reedsolomon/images/fehler.txt}; \end{axis} \end{tikzpicture}};\\ \node(decodiert) [] { \begin{tikzpicture} \begin{axis}[title = {\Large {Decodiert}}] - \addplot[] table[col sep=comma] {decodiert.txt}; + \addplot[blue] table[col sep=comma] {papers/reedsolomon/images/decodiert.txt}; \end{axis} \end{tikzpicture}}; & \node(empfangen) [] { \begin{tikzpicture} \begin{axis}[title = {\Large {Empfangen}}] - \addplot[] table[col sep=comma] {empfangen.txt}; + \addplot[] table[col sep=comma] {papers/reedsolomon/images/empfangen.txt}; \end{axis} \end{tikzpicture}};\\ \node(syndrom) [] { \begin{tikzpicture} \begin{axis}[title = {\Large {Syndrom}}] - \addplot[] table[col sep=comma] {syndrom.txt}; + \addplot[blue] table[col sep=comma] {papers/reedsolomon/images/syndrom.txt}; \end{axis} \end{tikzpicture}}; & \node(locator) [] { \begin{tikzpicture} \begin{axis}[title = {\Large {Locator}}] - \addplot[] table[col sep=comma] {locator.txt}; + \addplot[] table[col sep=comma] {papers/reedsolomon/images/locator.txt}; \end{axis} \end{tikzpicture}};\\ }; %------------------------------------------------------------- %FFT & IFFT deskription - \draw[thin,gray,dashed] (0,15) to (0,-15); - \node(FFT) [ scale=0.7] at (0,15.3) {FFT IFFT}; - - %Arrows - \draw[ultra thick, ->] (signal.east) to (codiert.west); - \draw[ultra thick, ->] (codiert.south) to (fehler.north); - \draw[ultra thick, ->] (fehler.south) to (empfangen.north); - \draw[ultra thick, ->] (empfangen.west) to (decodiert.east); - \draw[ultra thick, ->] (syndrom.east) to (locator.west); - \draw(decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; - \draw[ultra thick, ->] (zoom) to[out=180, in=90] (syndrom.north); - - \end{tikzpicture} \ No newline at end of file +\draw[thin,gray,dashed] (0,12) to (0,-12); +\node(IFFT) [scale=0.7] at (0,12.3) {IFFT}; +\draw[<-](IFFT.south west)--(IFFT.south east); +\node(FFT) [scale=0.7, above of=IFFT] {FFT}; +\draw[->](FFT.north west)--(FFT.north east); + +\draw[thick, ->,] (fehler.west)++(-1,0) +(0.05,0.5) -- +(-0.1,-0.1) -- +(0.1,0.1) -- +(0,-0.5); +%Arrows +\draw[ultra thick, ->] (signal.east) to (codiert.west); +\draw[ultra thick, ->] (codiert.south) to (fehler.north); +\draw[ultra thick, ->] (fehler.south) to (empfangen.north); +\draw[ultra thick, ->] (empfangen.west) to (decodiert.east); +\draw[ultra thick, ->] (syndrom.east) to (locator.west); +\draw(decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; +\draw[ultra thick, ->] (zoom) to[out=180, in=90] (syndrom.north); + +%item +\node[circle, draw, fill =lightgray] at (signal.north west) {1}; +\node[circle, draw, fill =lightgray] at (codiert.north west) {2}; +\node[circle, draw, fill =lightgray] at (fehler.north west) {3}; +\node[circle, draw, fill =lightgray] at (empfangen.north west) {4}; +\node[circle, draw, fill =lightgray] at (decodiert.north west) {5}; +\node[circle, draw, fill =lightgray] at (syndrom.north west) {6}; +\node[circle, draw, fill =lightgray] at (locator.north west) {7}; +\end{tikzpicture} \ No newline at end of file diff --git a/buch/papers/reedsolomon/packages.tex b/buch/papers/reedsolomon/packages.tex index 4b1ee68..b84e228 100644 --- a/buch/papers/reedsolomon/packages.tex +++ b/buch/papers/reedsolomon/packages.tex @@ -9,4 +9,4 @@ %\usepackage{packagename} \usepackage{pgfplots} - +\usepackage{filecontents} -- cgit v1.2.1 From cccb51c61e5423ab8bc42ff327bc577dfc5aca24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Thu, 22 Jul 2021 10:35:04 +0200 Subject: typo --- buch/papers/reedsolomon/Makefile.inc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'buch/papers/reedsolomon') diff --git a/buch/papers/reedsolomon/Makefile.inc b/buch/papers/reedsolomon/Makefile.inc index 6a676f8..ea51f7a 100644 --- a/buch/papers/reedsolomon/Makefile.inc +++ b/buch/papers/reedsolomon/Makefile.inc @@ -6,9 +6,17 @@ dependencies-reedsolomon = \ papers/reedsolomon/packages.tex \ papers/reedsolomon/main.tex \ - papers/reedsolomon/references.bib \ - papers/reedsolomon/teil0.tex \ - papers/reedsolomon/teil1.tex \ - papers/reedsolomon/teil2.tex \ - papers/reedsolomon/teil3.tex + papers/reedsolomon/einleitung.tex \ + papers/reedsolomon/idee.tex \ + papers/reedsolomon/dtf.tex \ + papers/reedsolomon/endlichekoerper.tex \ + papers/reedsolomon/codebsp.tex \ + papers/reedsolomon/decohnefehler.tex \ + papers/reedsolomon/decmitfehler.tex \ + papers/reedsolomon/rekonstruktion.tex \ + papers/reedsolomon/zusammenfassung.tex \ + papers/reedsolomon/anwendungen.tex \ + papers/reedsolomon/hilfstabellen.tex \ + papers/reedsolomon/references.bib + -- cgit v1.2.1