diff options
Diffstat (limited to 'buch/papers/reedsolomon')
33 files changed, 505 insertions, 903 deletions
diff --git a/buch/papers/reedsolomon/Makefile b/buch/papers/reedsolomon/Makefile index 9c96e88..25fd98b 100644 --- a/buch/papers/reedsolomon/Makefile +++ b/buch/papers/reedsolomon/Makefile @@ -4,6 +4,52 @@ # (c) 2020 Prof Dr Andreas Mueller # -images: - @echo "no images to be created in reedsolomon" +SOURCES := \ + anwendungen.tex \ + codebsp.tex \ + decmitfehler.tex \ + decohnefehler.tex \ + dtf.tex \ + einleitung.tex \ + endlichekoerper.tex \ + hilfstabellen.tex \ + idee.tex \ + main.tex \ + packages.tex \ + rekonstruktion.tex \ + restetabelle1.tex \ + restetabelle2.tex \ + standalone.tex \ + zusammenfassung.tex + +TIKZFIGURES := \ + tikz/polynom2.tex \ + tikz/plotfft.tex + +FIGURES := $(patsubst tikz/%.tex, figures/%.pdf, $(TIKZFIGURES)) + + +all: images standalone + + +.PHONY: images +images: $(FIGURES) + +figures/%.pdf: tikz/%.tex + mkdir -p figures + pdflatex --output-directory=figures $< + +.PHONY: standalone +standalone: standalone.tex $(SOURCES) $(FIGURES) + mkdir -p standalone + cd ../..; \ + pdflatex \ + --halt-on-error \ + --shell-escape \ + --output-directory=papers/reedsolomon/standalone \ + papers/reedsolomon/standalone.tex; + cd standalone; \ + bibtex standalone; \ + makeindex standalone; + diff --git a/buch/papers/reedsolomon/anwendungen.tex b/buch/papers/reedsolomon/anwendungen.tex index c03b1a4..b9b1d69 100644 --- a/buch/papers/reedsolomon/anwendungen.tex +++ b/buch/papers/reedsolomon/anwendungen.tex @@ -7,21 +7,20 @@ \label{reedsolomon:section:anwendung}} \rhead{Anwendungen} -In den vorherigen Abschnitten haben wir betrachtet, wie Reed-Solomon-Codes in der Theorie Funktionieren. +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. +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 Netzwerktechnik zum Beispiel ist es üblich, dass bei Paketverluste oder beschädigt empfangene Datenpaketen diese einfach noch einmal innert 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. +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. +Einen ähnlichen 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. % @@ -33,7 +32,6 @@ Ein ähnlicher Ansatz verfolgen QR-Codes, wobei die Information auch dann noch g % 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. @@ -75,8 +73,14 @@ Obwohl Reed-Solomon-Codes bereits in den 1960er entwickelt wurden fanden sie ers 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. +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, +Codiert seine Information aber auf eine andere weise. Aus jedem unterteilten Block wird vor dem Versenden ein Paritätsbit erzeugt und dem Block angehängt. Anhand diesem Paritätsbit überprüft der Empfänger, ob bei der Übertragung der Block beschädigt wurde. Ist dies der Fall, wird der Block bei der Decodierung nicht beachtet. Diese so entstandenen ``Lücken'' im Datenstrom werden wiederum vom Reed-Solomon-Code korrigiert. Dieses Zusammenspiel beider Codes garantiert so eine hohe Robustheit gegenüber Übertragungsfeher. + +% +% 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 % @@ -107,13 +111,18 @@ 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{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.} + \subfigure[]{ + \includegraphics[width=0.45\textwidth]{papers/reedsolomon/images/Compact_Disc} + } + \subfigure[]{ + \includegraphics[width=0.45\textwidth]{papers/reedsolomon/images/Compact_Disc_zoomed_in} + } + \caption{CDs kamen 1982 auf den Markt. Sie funktioniert durch das Einpressen oder 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 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. +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 Menge an codierten Daten sowie dem verwendeten 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. % @@ -154,6 +163,6 @@ Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen \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.} + \caption{Während (a) noch einen unveränderten 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 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/dtf.tex b/buch/papers/reedsolomon/dtf.tex index a111527..4552bed 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -1,55 +1,85 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% dtf.tex -- Idee mit DFT % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Diskrete Fourier Transformation +\section{Übertragung mit Hilfe der Diskrten Fourientransformation \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ützlich ist. +Um die Polynominterpolation zu umgehen, gehen wir nun über in die Fourietransformation. +Dies wird weder eine Erklärung der Forientransorfmation, noch ein genauer gebrauch für den Reed-Solomon-Code. +Dieser Abschnitt zeigt nur wie die Fourietransformation auf Fehler reagiert. +Das ganze zeigen wir mit einem Beispiel einer Übertragung von Zahlen mit Hilfe der Fourietransformation. -\subsection{Diskrete Fourientransformation Zusamenhang +\subsection{Diskrete Fourietransformation 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}} +Mit hilfe der Fourietransformation werden die \textcolor{blue}{blauen Datenpunkte} transformiert, +zu den \textcolor{darkgreen}{grünen Übertragungspunkten}. +Durch eine Rücktransformation könnnen die \textcolor{blue}{blauen Datenpunkte} wieder rekonstruiert werden. -\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} +\subsubsection{Beispiel einer Übertragung +\label{reedsolomon:subsection:Übertragungsabfolge}} +Der Auftrag ist nun 64 Daten zu übertragen und nach 32 Fehler abzusicheren, +16 Fehler erkennen und rekonstruieren. +Dieser Auftrag soll mittels Fouriertransformation bewerkstelligt werden. +In der Abbildung \ref{reedsolomon:subsection:Übertragungsabfolge} sieht man dies Schritt für Schritt, +und hier werden die einzelne Schritte erklärt: +\begin{enumerate}[(1)] + \item Das Signal hat 64 die Daten $k$, hier zufällige Zahlen, welche übertragen werden sollen. + Zusätzlich soll nach 16 Fehler $t$, die rekonstruierbar sind abgesichert werden. + Das macht dann insgesamt $k + 2t = + 64 +2 \cdot 16= 96$ Übertragungszahlen. + (siehe Abschnitt \externaldocument{papers/reedsolomon/idee}\ref{reedsolomon:section:Fehlerkorrekturstellen}) + Die 32 Fehlerkorrekturstellen werden als Nullzahlen Übertragen. + \item Nun werden mittels der diskreten Fourietransformation diese 96 codiert, transformiert. + Das heisst alle Informationen ist in alle Zahlenvorhanden, auch die Fehlerkorrekturstellen Nullzahlen. + \item Nun kommen drei Fehler dazu an den Übertragungsstellen 7, 21 und 75. + Die Fehler können auf den ganzen 96 Übertragungswerten liegen, wie die 75 zeigt. +Zu Beachten ist auch noch, dass der Fehler um das 20- bis 150-Fache kleiner ist.Die Fehlerskala ist rechts. + \item Dieses wird nun Empfangen, man kann keine Fehler erkennen, da diese soviel kleiner sind. + Für das Decodieren wird die Inverse Fourietransformation angewendet, und alle Fehler werden mittransformiert. + \item Nun sieht man die Fehler im decodierten Signal in den Übertragungszahlen. + Von den Übertragungsstellen 64 bis 96 erkennt man, das diese nicht mehr Null sind. + \item Diese Fehlerkorrekturstellen 64 bis 96, dies definieren wir als Syndrom. + In diesem Syndrom ist die Fehlerinformation gespeichert und muss nur noch transformiert werden. + \item Hier sieht man genau wo die Fehler stattgefunden haben. + Leider nicht mehr mit der Qualtiätt der Ursprünglichen Fehler, sie sind nur noch 0.6 oder 0.4 gross. + Obwohl der Fehler um das 20Fache kleiner ist erkennt man im Locator die Fehlerstellen wieder. + \end{enumerate} + Nun haben wir mit Hilfe der Fourietransformation die 3 Fehlerstellen durch das Syndrom lokalisiert, + jetzt gilt es nur noch diese zu korrigieren und wir haben unser originales Signal wieder. \begin{figure} \centering - \resizebox{0.9\textwidth}{!}{ - %\includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/plot.pdf} - \input{papers/reedsolomon/images/plotfft.tex} + \resizebox{1.1\textwidth}{!}{ + \includegraphics[width=\textwidth]{papers/reedsolomon/figures/plotfft} + %\input{papers/reedsolomon/tikz/plotfftraw.tex} } \caption{Übertragungsabfolge \ref{reedsolomon:subsection:Übertragungsabfolge}} \label{fig:sendorder} -\end{figure}
\ No newline at end of file +\end{figure} + +Nun zur Definition der Diskrete Fourietransformation, diese ist definiert als + \begin{equation} + \hat{c}_{k} + = \frac{1}{N} \sum_{n=0}^{N-1} + {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn}. + ,\label{reedsolomon:DFT} + \end{equation} + Wenn man nun + \begin{equation} + w = + e^{-\frac{2\pi j}{N} k} + \label{reedsolomon:DFT_summand} + \end{equation} + ersetzte, und $N$ konstantbleibt, erhält man + \begin{equation} + \hat{c}_{k}= + \frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) + \label{reedsolomon:DFT_polynom} + \end{equation} + was überaust ähnlich zu unserem Polynomidee ist. +Die Polynominterpolation und die Fourietransformation rechnen beide mit reelen Zahlen. +Wenn die Fehlerabweichung sehr sehr klein ist, erkennt man diese irgendwann nicht mehr. +Zusätzlich muss mann immer Grenzen bestimmen auf wieviel Stellen gerechnet wird und wie die Fehler erkannt werden im Locator. +Deshalb haben Mathematiker einen neuen Körper gesucht und ihn in der Endlichkeit gefunden, +dies wird nun im nächsten Abschnitt genauer erklärt. + diff --git a/buch/papers/reedsolomon/einleitung.tex b/buch/papers/reedsolomon/einleitung.tex index 2b1d878..074df05 100644 --- a/buch/papers/reedsolomon/einleitung.tex +++ b/buch/papers/reedsolomon/einleitung.tex @@ -7,13 +7,11 @@ \label{reedsolomon:section:einleitung}} \rhead{Einleitung} 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. +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 des Reed-Solomon-Code 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 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/experiments/plot.tex b/buch/papers/reedsolomon/experiments/plot.tex index 2196c82..4b156bb 100644 --- a/buch/papers/reedsolomon/experiments/plot.tex +++ b/buch/papers/reedsolomon/experiments/plot.tex @@ -90,7 +90,7 @@ \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 (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}; diff --git a/buch/papers/reedsolomon/figures/plotfft.pdf b/buch/papers/reedsolomon/figures/plotfft.pdf Binary files differnew file mode 100644 index 0000000..80d17d2 --- /dev/null +++ b/buch/papers/reedsolomon/figures/plotfft.pdf diff --git a/buch/papers/reedsolomon/figures/polynom2.pdf b/buch/papers/reedsolomon/figures/polynom2.pdf Binary files differnew file mode 100644 index 0000000..55a50ac --- /dev/null +++ b/buch/papers/reedsolomon/figures/polynom2.pdf diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 39adbbf..41e0d4c 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -1,21 +1,30 @@ % -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% idee.tex -- Polynom Idee % \section{Idee \label{reedsolomon:section:idee}} \rhead{Problemstellung} +Um beim Datenübertragen Fehler zu erkennen, könnte man die Daten jeweils doppelt senden, +und so jeweilige Fehler zu erkennen. +Doch nur schon um Fehler zu erkennen werden überproportional viele Daten doppelt und dreifach gesendet. +Der Reed-Solomon-Code macht dies auf eine andere, clevere Weise. Das Problem liegt darin Informationen, Zahlen, zu Übertragen und Fehler zu erkennen. -Beim Reed-Solomon-Code kann man nicht nur Fehler erkennen, +Speziell beim Reed-Solomon-Code kann man nicht nur Fehler erkennen, man kann sogar einige Fehler korrigieren. +Der Unterschied des Fehler erkennen und korrigiren, ist das beim Erkennen nur die Frage beantwortet wird: Ist die Übertragung fehlerhaft oder nicht? +Beim Korrigieren werden Fehler erkannt und dann zusätzlich noch den original Wert rekonstruieren. +Auch eine Variante wäre die Daten nach einer Fehlerhaften sendung, nochmals zum senden auffordern(auch hier wird doppelt und dreifach gesendung), +was bei Reed-Solomon-Code-Anwendungen nicht immer sinnvoll ist. +Anwendungen finden sind im Abchnitt \externaldocument{papers/reedsolomon/anwendungen} +\ref{reedsolomon:section:anwendung} beschrieben. +\subsection{Polynom-Ansatz +\label{reedsolomon:section:polynomansatz}} \rhead{Polynom-Ansatz} -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}, +Eine Idee ist, aus den Daten ein Polynom zu bilden. +Diese Polynomfunktion bei bestimmten Werten errechnet und diese Punkte dann überträgt. +\begin{beispiel} Nehmen wir die Zahlen \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5}, welche uns dann das Polynom \begin{equation} p(x) @@ -24,49 +33,64 @@ p(x) \label{reedsolomon:equation1} \end{equation} ergeben. -Übertragen werden nun die Werte an den stellen 1, 2, 3\dots 7 dieses Polynomes. +Übertragen werden nun die \textcolor{darkgreen}{grünen Werte} +dieses \textcolor{blue}{blauen Polynomes} an den Stellen 1, 2, 3\dots 7 dieses Polynomes. 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. +mit den Punkten, $p(1),p(2),...,p(7) = (\textcolor{darkgreen}{8}, +\textcolor{darkgreen}{15}, \textcolor{darkgreen}{26}, +\textcolor{darkgreen}{41}, \textcolor{darkgreen}{60}, +\textcolor{darkgreen}{83}, \textcolor{darkgreen}{110})$ +Wenn ein Fehler sich in die Übertragung eingeschlichen hat, muss der Leser/Empfänger diesen erkennen und das Polynom rekonstruieren. +Der Leser/Empfänger weiss, den Grad des Polynoms und dessen \textcolor{darkgreen}{Werte} übermittelt wurden. +Die Farbe blau brauchen wir für die \textcolor{blue}{Daten} welche wir mit der Farbe grün \textcolor{darkgreen}{Übermitteln}. +\end{beispiel} -\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,(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}) +\begin{beispiel} +Ein Polynome zweiten Grades ist durch drei Punkte eindeutig bestimmbar. +Hat es Fehler in der Übertragunge gegeben,in der Abbilbung \ref{fig:polynom} die \textcolor{red}{roten Punkte}). +Erkennt man diese Fehler, da alle korrekten Punkte auf der Parabel liegen müssen. +Die \textcolor{darkgreen}{grünen Punkte} bestimmen die Parabel, und die Fehler können zu den +\textcolor{gray}{Orginalpunkte} rekonstruiert werden. 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} -Werden es mehr Fehler kann nur erkennt werden, dass das Polynom nicht stimmt. +gegenüber dem mit 5 Punkten falsch liegt. \ref{fig:polynom} +Werden es mehr Fehler kann nur erkannt werden, dass das Polynom nicht stimmt. Das orginale Polynom kann aber nicht mehr gefunden werden. -Dafür sind mehr übertragene Werte nötig. +Da andere Polynome oder das Konkurrenzpolynom, grau gestrichelt in Abbildung \ref{fig:polynom}, das orginal fehlleitet. +Um das Konkurrenzpolynom auszuschliessen, währen mehr \textcolor{darkgreen}{Übertragungspunkte} nötig. +\end{beispiel} -\begin{figure} +\begin{figure}%[!ht] \centering - %\includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/polynom2} - \input{papers/reedsolomon/images/polynom2.tex} - \caption{Polynom $p(x)$ \eqref{reedsolomon:equation1}} + %\includegraphics[width=\textwidth]{papers/reedsolomon/figures/polynom2} + \input{papers/reedsolomon/tikz/polynomraw.tex} + \caption{Polynom $p(x)$ von der Gleichung\eqref{reedsolomon:equation1}} \label{fig:polynom} \end{figure} -\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. -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 Zahlen, -$k+2t$ Punkte übertragen werden müssen. +\section{Fehlerkorekturstellen bestimmen +\label{reedsolomon:section:Fehlerkorrekturstellen}} +Um zu bestimmen wieviel zusätzliche \textcolor{darkgreen}{Übertragungspunkte} notwendig sind, um die Fehler zu korrigieren, +muss man zuerst wissen, wieviel \textcolor{blue}{Daten} gesendet und wieviel \textcolor{red}{Fehler} erkennt werden sollen. +Die Anzahl \textcolor{blue}{Daten} (ab hier verwenden wir das Wort Nutzlast), die als Polynomkoeffizente $k$ übergeben werden, +brauchen die gleiche Anzahl an Polynomkoeffizententräger, beginnend bei Grad 0 somit ergibt sich der Polynomgrad mit $k-1$. +Für die Anzahl der Fehler $t$, welche korrigiert werden können, gehen wir zum Beispiel. +\begin{beispiel} von den Polynom \ref{reedsolomon:equation1} in, welchem wir \textcolor{darkgreen}{7 Übertragungspunkte} senden. +Durch 3 Punkte wird das Polyom eindeutig bestimmt, nun haben wir mehrere Konkurrenzpolynome, doch mit maximal 2 Fehler liegen auf einem Konkurrenzpolynom, +maximal 4 Punkte und auf unserem orginal 5 Punkte. Ansonsten hatt es mehr Fehler oder unser Konkurrenzpolynom ist das gleiche wie das Original. +Somit können wir nun bestimmen, dass von den \textcolor{darkgreen}{7 Übertragungspunkten$u$} bis zu 2 Fehler korrigiert werden können und 4 Übertragungspunkte zusätzlich gesendet werden müssen. +\end{beispiel} +Man könnte auch dies in der Tabelle \ref{tab:fehlerkorrekturstellen} erkennen, doch mit dieser Gleichung +\begin{equation} + \frac{\textcolor{darkgreen}{u}-\textcolor{blue}{k}}{\textcolor{red}{t}} + =2 + \label{reedsolomon:equation2} +\end{equation} +zeigt sich, dass es $k+2t$ Übertragungspunkte braucht. -\begin{center} - \begin{tabular}{ c c c } +\begin{table} + \centering + \begin{tabular}{ c c | c} \hline Nutzlas & Fehler & Übertragen \\ \hline @@ -77,12 +101,11 @@ $k+2t$ Punkte übertragen werden müssen. $k$ & $t$ & $k+2t$ Werte eines Polynoms vom Grad $k-1$ \\ \hline \end{tabular} -\end{center} + \caption{ Fehlerkorrekturstellen Bestimmung.} + \label{tab:fehlerkorrekturstellen} +\end{table} -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. +Ein Nebeneffekt ist, dass dadurch auch $2t$ Fehler erkannt werden können, nicht aber korrigiert. +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. diff --git a/buch/papers/reedsolomon/images/Compact_Disc_zoomed_in.png b/buch/papers/reedsolomon/images/Compact_Disc_zoomed_in.png Binary files differnew file mode 100644 index 0000000..69556d0 --- /dev/null +++ b/buch/papers/reedsolomon/images/Compact_Disc_zoomed_in.png diff --git a/buch/papers/reedsolomon/images/codiert.txt b/buch/papers/reedsolomon/images/codiert.txt deleted file mode 100644 index 4a481d8..0000000 --- a/buch/papers/reedsolomon/images/codiert.txt +++ /dev/null @@ -1,96 +0,0 @@ -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 deleted file mode 100644 index f6221e6..0000000 --- a/buch/papers/reedsolomon/images/decodiert.txt +++ /dev/null @@ -1,96 +0,0 @@ -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 deleted file mode 100644 index 38c13b0..0000000 --- a/buch/papers/reedsolomon/images/empfangen.txt +++ /dev/null @@ -1,96 +0,0 @@ -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 deleted file mode 100644 index 23f1a83..0000000 --- a/buch/papers/reedsolomon/images/fehler.txt +++ /dev/null @@ -1,96 +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/images/locator.txt b/buch/papers/reedsolomon/images/locator.txt deleted file mode 100644 index b28988c..0000000 --- a/buch/papers/reedsolomon/images/locator.txt +++ /dev/null @@ -1,96 +0,0 @@ -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/plotfft.tex b/buch/papers/reedsolomon/images/plotfft.tex deleted file mode 100644 index 83a89eb..0000000 --- a/buch/papers/reedsolomon/images/plotfft.tex +++ /dev/null @@ -1,89 +0,0 @@ -% -% Plot der Übertrangungsabfolge ins FFT und zurück mit IFFT -% -\begin{tikzpicture}[] - -%--------------------------------------------------------------- - %Knote -\matrix[draw = none, column sep=25mm, row sep=2mm]{ - \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] {papers/reedsolomon/images/signal.txt}; - \end{axis} - \end{tikzpicture}}; & - - \node(codiert) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Codiert}}] - \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}}, - 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[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] {papers/reedsolomon/images/empfangen.txt}; - \end{axis} - \end{tikzpicture}};\\ - - \node(syndrom) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Syndrom}}] - \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] {papers/reedsolomon/images/locator.txt}; - \end{axis} - \end{tikzpicture}};\\ -}; -%------------------------------------------------------------- - %FFT & IFFT deskription - -\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/images/signal.txt b/buch/papers/reedsolomon/images/signal.txt deleted file mode 100644 index c4fa5f8..0000000 --- a/buch/papers/reedsolomon/images/signal.txt +++ /dev/null @@ -1,96 +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/images/syndrom.txt b/buch/papers/reedsolomon/images/syndrom.txt deleted file mode 100644 index 8ca9eed..0000000 --- a/buch/papers/reedsolomon/images/syndrom.txt +++ /dev/null @@ -1,96 +0,0 @@ -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/main.tex b/buch/papers/reedsolomon/main.tex index e68b947..017fe94 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -8,29 +8,9 @@ \begin{refsection} \chapterauthor{Joshua Bär und Michael Steiner} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} - % Joshua \input{papers/reedsolomon/einleitung.tex} \input{papers/reedsolomon/idee.tex} -%\input{papers/reedsolomon/teil2.tex} \input{papers/reedsolomon/dtf.tex} % Michael @@ -49,6 +29,7 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \nocite{reedsolomon:voyager} \nocite{reedsolomon:cd_wiki} \nocite{reedsolomon:cd} +\nocite{reedsolomon:strichepunkte} \nocite{reedsolomon:qr_wiki} \nocite{reedsolomon:qr} %\nocite{reedsolomon:mendezmueller} diff --git a/buch/papers/reedsolomon/packages.tex b/buch/papers/reedsolomon/packages.tex index b84e228..40c6ea3 100644 --- a/buch/papers/reedsolomon/packages.tex +++ b/buch/papers/reedsolomon/packages.tex @@ -10,3 +10,5 @@ \usepackage{pgfplots} \usepackage{filecontents} +\usepackage{xr} + diff --git a/buch/papers/reedsolomon/references.bib b/buch/papers/reedsolomon/references.bib index e0a75a8..b84b5a4 100644 --- a/buch/papers/reedsolomon/references.bib +++ b/buch/papers/reedsolomon/references.bib @@ -51,7 +51,7 @@ } @online{reedsolomon:cd, - title = {Funktionsweise des QR-Codes}, + title = {Abbildung einer CD}, url = {https://www.stickpng.com/img/electronics/compact-discs/stack-compact-disc}, date = {2021-07-19}, year = {2021}, @@ -59,6 +59,15 @@ day = {19} } +@online{reedsolomon:strichepunkte, + title = {Abbildung der Striche und Punkte einer CD}, + url = {https://www.researchgate.net/figure/The-readable-area-of-a-CD-is-magnified-in-order- to-see-the-pit-and-land-sizing-The_fig7_303401629}, + date = {2021-07-26}, + year = {2021}, + month = {7}, + day = {26} +} + @online{reedsolomon:qr_wiki, title = {Funktionsweise des QR-Codes}, url = {https://de.wikipedia.org/wiki/QR-Code}, diff --git a/buch/papers/reedsolomon/standalone.tex b/buch/papers/reedsolomon/standalone.tex new file mode 100644 index 0000000..c850d1f --- /dev/null +++ b/buch/papers/reedsolomon/standalone.tex @@ -0,0 +1,30 @@ +\documentclass{book} + +\input{common/packages.tex} + +% additional packages used by the individual papers, add a line for +% each paper +\input{papers/common/addpackages.tex} + +% workaround for biblatex bug +\makeatletter +\def\blx@maxline{77} +\makeatother +\addbibresource{chapters/references.bib} + +% Bibresources for each article +\input{papers/common/addbibresources.tex} + +% make sure the last index starts on an odd page +\AtEndDocument{\clearpage\ifodd\value{page}\else\null\clearpage\fi} +\makeindex + +%\pgfplotsset{compat=1.12} +\setlength{\headheight}{15pt} % fix headheight warning +\DeclareGraphicsRule{*}{mps}{*}{} + +\begin{document} + \input{common/macros.tex} + \def\chapterauthor#1{{\large #1}\bigskip\bigskip} + \input{papers/reedsolomon/main.tex} +\end{document} diff --git a/buch/papers/reedsolomon/standalone/standalone.pdf b/buch/papers/reedsolomon/standalone/standalone.pdf Binary files differnew file mode 100644 index 0000000..4a44333 --- /dev/null +++ b/buch/papers/reedsolomon/standalone/standalone.pdf diff --git a/buch/papers/reedsolomon/experiments/codiert.txt b/buch/papers/reedsolomon/tikz/codiert.txt index 4a481d8..4a481d8 100644 --- a/buch/papers/reedsolomon/experiments/codiert.txt +++ b/buch/papers/reedsolomon/tikz/codiert.txt diff --git a/buch/papers/reedsolomon/experiments/decodiert.txt b/buch/papers/reedsolomon/tikz/decodiert.txt index f6221e6..f6221e6 100644 --- a/buch/papers/reedsolomon/experiments/decodiert.txt +++ b/buch/papers/reedsolomon/tikz/decodiert.txt diff --git a/buch/papers/reedsolomon/experiments/empfangen.txt b/buch/papers/reedsolomon/tikz/empfangen.txt index 38c13b0..38c13b0 100644 --- a/buch/papers/reedsolomon/experiments/empfangen.txt +++ b/buch/papers/reedsolomon/tikz/empfangen.txt diff --git a/buch/papers/reedsolomon/experiments/fehler.txt b/buch/papers/reedsolomon/tikz/fehler.txt index 23f1a83..23f1a83 100644 --- a/buch/papers/reedsolomon/experiments/fehler.txt +++ b/buch/papers/reedsolomon/tikz/fehler.txt diff --git a/buch/papers/reedsolomon/experiments/locator.txt b/buch/papers/reedsolomon/tikz/locator.txt index b28988c..b28988c 100644 --- a/buch/papers/reedsolomon/experiments/locator.txt +++ b/buch/papers/reedsolomon/tikz/locator.txt diff --git a/buch/papers/reedsolomon/tikz/plotfft.tex b/buch/papers/reedsolomon/tikz/plotfft.tex new file mode 100644 index 0000000..bb74dfb --- /dev/null +++ b/buch/papers/reedsolomon/tikz/plotfft.tex @@ -0,0 +1,94 @@ +% +% Plot der Übertrangungsabfolge ins FFT und zurück mit IFFT +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{pgfplots} +\usepackage{pgfplotstable} +\usepackage{csvsimple} +\usepackage{filecontents} + + +\begin{document} +\begin{tikzpicture}[] + + %--------------------------------------------------------------- + %Knote + \matrix(m) [draw = none, column sep=25mm, row sep=2mm]{ + + \node(signal) [] { + \begin{tikzpicture} + \begin{axis} + [title = {\Large {Signal}}, + xtick={0,20,40,64,80,98}] + \addplot[blue] table[col sep=comma] {tikz/signal.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(codiert) [] { + \begin{tikzpicture}[] + \begin{axis}[ title = {\Large {Codiert \space + \space Fehler}}, + xtick={0,40,60,100}, axis y line*=left] + \addplot[green] table[col sep=comma] {tikz/codiert.txt}; + \end{axis} + \begin{axis}[xtick={7,21,75}, axis y line*=right] + \addplot[red] table[col sep=comma] {tikz/fehler.txt}; + \end{axis} + \end{tikzpicture}}; \\ + + \node(decodiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Decodiert}}] + \addplot[blue] table[col sep=comma] {tikz/decodiert.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(empfangen) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Empfangen}}] + \addplot[green] table[col sep=comma] {tikz/empfangen.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(syndrom) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Syndrom}}] + \addplot[black] table[col sep=comma] {tikz/syndrom.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(locator) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Locator}}] + \addplot[gray] table[col sep=comma] {tikz/locator.txt}; + \end{axis} + \end{tikzpicture}};\\ + }; + %------------------------------------------------------------- + %FFT & IFFT deskription + + \draw[thin,gray,dashed] (0,9) to (0,-9); + \node(IFFT) [scale=0.9] at (0,9.3) {IFFT}; + \draw[stealth-](IFFT.south west)--(IFFT.south east); + \node(FFT) [scale=0.9, above of=IFFT] {FFT}; + \draw[-stealth](FFT.north west)--(FFT.north east); + + \draw[thick, ->,] (codiert)++(-1,0) +(0.05,0.5) -- +(-0.1,-0.1) -- +(0.1,0.1) -- +(0,-0.5); + %Arrows + \draw[thick, ->] (signal.east) to (codiert.west); + \draw[thick, ->] (codiert.south) to (empfangen.north); + \draw[thick, ->] (empfangen.west) to (decodiert.east); + \draw[thick, ->] (syndrom.east) to (locator.west); + \draw[thick](decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; + \draw[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+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{document}
\ No newline at end of file diff --git a/buch/papers/reedsolomon/tikz/plotfftraw.tex b/buch/papers/reedsolomon/tikz/plotfftraw.tex new file mode 100644 index 0000000..141d2ce --- /dev/null +++ b/buch/papers/reedsolomon/tikz/plotfftraw.tex @@ -0,0 +1,80 @@ +\begin{tikzpicture}[] + + %--------------------------------------------------------------- + %Knote + \matrix(m) [draw = none, column sep=25mm, row sep=2mm]{ + + \node(signal) [] { + \begin{tikzpicture} + \begin{axis} + [title = {\Large {Signal}}, + xtick={0,20,40,64,80,98}] + \addplot[blue] table[col sep=comma] {tikz/signal.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(codiert) [] { + \begin{tikzpicture}[] + \begin{axis}[ title = {\Large {Codiert \space + \space Fehler}}, + xtick={0,40,60,100}, axis y line*=left] + \addplot[green] table[col sep=comma] {tikz/codiert.txt}; + \end{axis} + \begin{axis}[xtick={7,21,75}, axis y line*=right] + \addplot[red] table[col sep=comma] {tikz/fehler.txt}; + \end{axis} + \end{tikzpicture}}; \\ + + \node(decodiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Decodiert}}] + \addplot[blue] table[col sep=comma] {tikz/decodiert.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(empfangen) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Empfangen}}] + \addplot[green] table[col sep=comma] {tikz/empfangen.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(syndrom) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Syndrom}}] + \addplot[black] table[col sep=comma] {tikz/syndrom.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(locator) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Locator}}] + \addplot[gray] table[col sep=comma] {tikz/locator.txt}; + \end{axis} + \end{tikzpicture}};\\ + }; + %------------------------------------------------------------- + %FFT & IFFT deskription + + \draw[thin,gray,dashed] (0,9) to (0,-9); + \node(IFFT) [scale=0.9] at (0,9.3) {IFFT}; + \draw[stealth-](IFFT.south west)--(IFFT.south east); + \node(FFT) [scale=0.9, above of=IFFT] {FFT}; + \draw[-stealth](FFT.north west)--(FFT.north east); + + \draw[thick, ->,] (codiert)++(-1,0) +(0.05,0.5) -- +(-0.1,-0.1) -- +(0.1,0.1) -- +(0,-0.5); + %Arrows + \draw[thick, ->] (signal.east) to (codiert.west); + \draw[thick, ->] (codiert.south) to (empfangen.north); + \draw[thick, ->] (empfangen.west) to (decodiert.east); + \draw[thick, ->] (syndrom.east) to (locator.west); + \draw[thick](decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; + \draw[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+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/tikz/polynom2.tex b/buch/papers/reedsolomon/tikz/polynom2.tex new file mode 100644 index 0000000..80557fb --- /dev/null +++ b/buch/papers/reedsolomon/tikz/polynom2.tex @@ -0,0 +1,60 @@ +% polynome +%------------------- + +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{pgfplots} + + +\begin{document} +% Teiler für das Skalieren der Grafik /40 +\newcommand{\teiler}{40} + + +%////////////////////////////////////// + +\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[gray] #1 circle[ radius=0.07]; + } + + \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}); + + + \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)} + + + + \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} +\end{document} diff --git a/buch/papers/reedsolomon/images/polynom2.tex b/buch/papers/reedsolomon/tikz/polynomraw.tex index 288b51c..02968fd 100644 --- a/buch/papers/reedsolomon/images/polynom2.tex +++ b/buch/papers/reedsolomon/tikz/polynomraw.tex @@ -1,12 +1,11 @@ -% polynome -%------------------- -% Teiler für das Skalieren der Grafik /40 +% polynomraw + \newcommand{\teiler}{40} %////////////////////////////////////// -\begin{tikzpicture}[>=latex,thick] +\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}); @@ -21,9 +20,14 @@ \def\hellpunkt#1{ \fill[color=lightgray] #1 circle[radius=0.08]; - \draw #1 circle[radius=0.07]; + \draw[gray] #1 circle[ radius=0.07]; } + \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}); + + \punkt{(1,8/\teiler)} \hellpunkt{(2,15/\teiler)} \hellpunkt{(3,26/\teiler)} @@ -32,9 +36,7 @@ \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}); + \def\erpunkt#1{ \fill[color=red] #1 circle[radius=0.08]; @@ -45,5 +47,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{tikzpicture}
\ No newline at end of file diff --git a/buch/papers/reedsolomon/experiments/signal.txt b/buch/papers/reedsolomon/tikz/signal.txt index c4fa5f8..c4fa5f8 100644 --- a/buch/papers/reedsolomon/experiments/signal.txt +++ b/buch/papers/reedsolomon/tikz/signal.txt diff --git a/buch/papers/reedsolomon/experiments/syndrom.txt b/buch/papers/reedsolomon/tikz/syndrom.txt index 8ca9eed..8ca9eed 100644 --- a/buch/papers/reedsolomon/experiments/syndrom.txt +++ b/buch/papers/reedsolomon/tikz/syndrom.txt |