<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Reed-Solomon-Code</id>
	<title>Reed-Solomon-Code - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Reed-Solomon-Code"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Reed-Solomon-Code&amp;action=history"/>
	<updated>2026-05-21T13:52:56Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Reed-Solomon-Code&amp;diff=151817&amp;oldid=prev</id>
		<title>imported&gt;HICUM: Änderungen von \cdot in +. Leicht nachvollziehbar, da vorher die Anzahl der Summanden nicht gestimmt hatte.</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Reed-Solomon-Code&amp;diff=151817&amp;oldid=prev"/>
		<updated>2026-03-18T11:52:00Z</updated>

		<summary type="html">&lt;p&gt;Änderungen von \cdot in +. Leicht nachvollziehbar, da vorher die Anzahl der Summanden nicht gestimmt hatte.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Reed-Solomon-Codes&amp;#039;&amp;#039;&amp;#039; (kurz &amp;#039;&amp;#039;&amp;#039;RS-Codes&amp;#039;&amp;#039;&amp;#039;) sind eine Klasse [[Zyklischer Code|zyklischer]] [[Blockcode]]s. Sie werden im Rahmen der [[Kanalkodierung]] zum Erkennen und Korrigieren von Übertragungs- oder Speicherfehlern als Teil einer [[Vorwärtsfehlerkorrektur]] eingesetzt. Sie bilden eine Unterklasse der allgemeinen Klasse der [[BCH-Code]]s. RS-Codes sind [[MDS-Code]]s, womit sie im Rahmen der [[Kodierungstheorie]] als [[Optimaler Code|optimale Codes]] gelten.&lt;br /&gt;
&lt;br /&gt;
Reed-Solomon-Codes wurden um 1960 von [[Irving S. Reed]] und [[Gustave Solomon]] am [[Lincoln Laboratory]], einer Forschungseinrichtung des [[Verteidigungsministerium der Vereinigten Staaten|Verteidigungsministeriums der Vereinigten Staaten]] entwickelt.&amp;lt;ref name=&amp;quot;irvi1&amp;quot; /&amp;gt; Zu dieser Zeit war die praktische Verwendbarkeit dieser Codes allerdings eingeschränkt, da keine [[Effizienz (Informatik)|effiziente]] Methode zur Decodierung bekannt war. Einen effizienten Decodieralgorithmus stellten 1969  [[Elwyn Berlekamp]] und [[James Massey]] in Form des auch für BCH-Codes verwendbaren [[Berlekamp-Massey-Algorithmus]] vor.&lt;br /&gt;
&lt;br /&gt;
Erstmals angewandt wurden Reed-Solomon-Codes im [[Voyager-Programm]] der [[NASA]] im Jahr 1977. Erste kommerzielle Anwendung fanden sie 1982 bei der Fehlerkorrektur von [[Compact Disk]]s. Heutige Anwendungen erstrecken sich über einen großen Bereich wie den [[Digital Video Broadcasting|DVB]]-Standard zur Aussendung digitaler Fernsehsignale, verschiedene [[Mobilfunk]]standards, [[Digital Audio Broadcasting|Digital Audio Broadcasting (DAB)]], [[RAID#RAID_6:_Block-Level_Striping_mit_doppelt_verteilter_Paritätsinformation|RAID-6]]-Systeme und Dateiformate wie [[PAR2]] zur Datenspeicherung. Weitere Anwendungsbeispiele sind [[2D-Code|zweidimensionale Barcodes]]; so setzen z.&amp;amp;nbsp;B. der [[QR-Code]], [[DataMatrix]], [[Aztec-Code]] und der [[PDF417]] Reed-Solomon zur Fehlerkorrektur von Lesefehlern ein. In neueren Anwendungsbereichen werden RS-Codes zunehmend durch leistungsfähigere Codes wie die [[Low-Density-Parity-Check-Code]]s (LDPC) oder [[Turbo-Code]]s (TPC) abgelöst. Dies ist beispielsweise im Fernsehstandard [[DVB-S2]] der Fall, der LDPC zur Vorwärtsfehlerkorrektur einsetzt.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Jede Nachricht, zum Beispiel ein Textfragment, kann als Folge aus &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Zahlen kodiert und übertragen werden. Ein typisches Beispiel für die Kodierung von Texten ist der [[American Standard Code for Information Interchange|ASCII-Standard]]. Wird eine kodierte Nachricht von einem Sender zu einem Empfänger übertragen, besteht die Gefahr, dass es zu [[Bitfehler|Übertragungsfehlern]] kommt. Das bedeutet, dass einige Zahlen der Nachricht ausgelöscht oder verfälscht werden. Der Empfänger der Nachricht hat keine Möglichkeit, den Übertragungsfehler zu bemerken, da man einer Zahl &amp;#039;&amp;#039;per se&amp;#039;&amp;#039; nicht ansehen kann, ob sie richtig oder falsch ist. Einem Übertragungsfehler kann aber auf Sender-Seite entgegengewirkt werden, indem zusätzlich zur Nachricht redundante Informationen übertragen werden. Der Empfänger kann dann durch den Vergleich der erhaltenen Nachricht mit den redundant übertragenen Informationen nicht nur die Integrität der übertragenen Nachricht verifizieren, sondern zusätzlich erkannte Fehler in der Nachricht korrigieren.&lt;br /&gt;
&lt;br /&gt;
Um Redundanz zur Nachricht hinzuzufügen, werden die Zahlen der Nachricht als Werte eines Polynoms an &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; fest vereinbarten [[Stützstelle]]n interpretiert. Ein [[Polynom]] des Grades &amp;lt;math&amp;gt;k-1&amp;lt;/math&amp;gt; oder kleiner kann als Summe von &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; [[Monom]]en dargestellt werden. Die [[Koeffizient]]en dieser Monome ergeben sich als Lösung eines [[Lineares Gleichungssystem|linearen Gleichungssystems]]. Aufgrund der speziellen Form dieses Systems gibt es eine Lösungsformel, die Lagrange-[[Polynominterpolation|Interpolation]]. Das so erhaltene Polynom wird auf weitere Stützstellen [[extrapoliert]], sodass die kodierte Nachricht insgesamt aus &amp;lt;math&amp;gt;n&amp;gt;k&amp;lt;/math&amp;gt; Zahlen besteht.&lt;br /&gt;
&lt;br /&gt;
Werden bei der Übertragung nun einige wenige Zahlen ausgelöscht, sodass immer noch mehr als &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; der Zahlen erhalten bleiben, kann das [[Polynom]] wiederum durch Interpolation aus den korrekt übertragenen Zahlen rekonstruiert werden, und damit auch die ursprüngliche Nachricht durch Auswerten in den ersten &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Stützstellen. Bei einer fehlerbehafteten Übertragung mit Fehlern an nur wenigen Stellen kann mit einem etwas komplizierteren Ansatz immer noch die ursprüngliche Nachricht sicher rekonstruiert werden. Je mehr [[Redundanz (Informationstheorie)|Redundanz]] gewählt wurde, desto mehr Fehler können korrigiert werden. Es können doppelt so viele Auslöschungen (nämlich &amp;lt;math&amp;gt;n-k&amp;lt;/math&amp;gt;) korrigiert werden wie Verfälschungen &amp;lt;math&amp;gt;(n-k)/2&amp;lt;/math&amp;gt;, daher führen Lesesysteme, die Auslöschungen beim Empfang der Nachricht erkennen und mit den [[Nutzdaten]] ausgeben, in der Regel zu einer verbesserten Korrekturfähigkeit.&lt;br /&gt;
&lt;br /&gt;
Die in der [[Interpolation (Mathematik)|Interpolation]] auftretenden Ausdrücke enthalten Divisionen, müssen also über einem [[Körper (Algebra)|Körper]] durchgeführt werden. Werden die Zahlen – oder Symbole – der Nachricht aus den [[Ganze Zahl|ganzen Zahlen]] gewählt, so finden die Rechnungen also in den [[Rationale Zahl|rationalen Zahlen]] statt. Außerdem können die [[Extrapolation|extrapolierten]] Werte sehr groß werden, was eventuell im vorliegenden Übertragungskanal nicht übermittelt werden kann. Um diese Nachteile zu beheben, führt man die Rechnungen in einem [[Endlicher Körper|endlichen Körper]] durch. Dieser hat eine endliche Anzahl von Elementen, die durchnummeriert werden können, um sie mit den Symbolen der Nachricht zu verknüpfen. Die Division – außer durch Null – ist uneingeschränkt durchführbar, und somit auch die Interpolation.&lt;br /&gt;
&lt;br /&gt;
Reed-Solomon-Codes sind zur Korrektur von [[Burstfehler]]n bei der Datenübertragung geeignet. Bei Burstfehlern erscheinen fehlerhafte („gekippte“) Bits häufig als eine zusammenhängende Kette von Fehlern im [[Datenstrom]]. Beispielsweise werden durch &amp;#039;&amp;#039;einen&amp;#039;&amp;#039; Kratzer auf einer CD mit jeder Umdrehung viele aufeinanderfolgende Bits nicht richtig gelesen. Bei der CD werden die Daten allerdings noch [[Cross-interleaved Reed-Solomon Code|verschränkt]], damit die Korrekturfähigkeit auch bei Burstfehlern möglichst hoch bleibt.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
Sei &amp;lt;math&amp;gt;\mathbb F_p&amp;lt;/math&amp;gt; ein [[endlicher Körper]] mit &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; Elementen (&amp;lt;math&amp;gt;p=q^m&amp;lt;/math&amp;gt; ist dann notwendigerweise eine [[Primzahl]]potenz, &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; prim). Es werden nun &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; [[paarweise verschieden]]e Elemente &amp;lt;math&amp;gt;u_1,\dots,u_n\in\mathbb F_p&amp;lt;/math&amp;gt; ausgewählt und fixiert.&lt;br /&gt;
&lt;br /&gt;
Die Menge der Kodewörter eines Reed-Solomon-Codes &amp;lt;math&amp;gt;\text{RS}(p,k,n)&amp;lt;/math&amp;gt; der Länge &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; für Nachrichten der Länge &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; über &amp;lt;math&amp;gt;\mathbb F_p&amp;lt;/math&amp;gt; ergibt sich nun durch die Wertetupel aller [[Polynom]]e aus &amp;lt;math&amp;gt;\mathbb F_p[x]&amp;lt;/math&amp;gt; mit Grad kleiner &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; an den gewählten Stützstellen:&lt;br /&gt;
:&amp;lt;math&amp;gt;C=\left\{&lt;br /&gt;
  a=(a_1,\dots,a_n)\in\mathbb F_p{}^n&lt;br /&gt;
  \;\Big|\;&lt;br /&gt;
  a_j=f(u_j),\;j=1,\dots,n&lt;br /&gt;
\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
wobei &amp;lt;math&amp;gt;f \in \mathbb F_p[x]&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;\deg(f) &amp;lt; k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Stützstellenmengen ===&lt;br /&gt;
RS-Codes zu verschiedenen zulässigen Stützstellenmengen sind linear isomorph. Die [[Bijektive Funktion|bijektive]] [[lineare Abbildung]], die die Isomorphie vermittelt, ergibt sich durch [[Lagrange-Interpolation]] bezüglich der ersten Stützstellenmenge und Auswertung in der zweiten Stützstellenmenge. Dabei werden im ersten Schritt Kodewörter in Polynome kleiner &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;-ten Grades umgewandelt, so dass der zweite Schritt wieder ein Kodewort ergibt.&lt;br /&gt;
&lt;br /&gt;
Ist &amp;lt;math&amp;gt;\alpha\in \mathbb F_p&amp;lt;/math&amp;gt; ein Element der Ordnung &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; oder größer, so kann zum Beispiel&lt;br /&gt;
:&amp;lt;math&amp;gt;u_1=1,\,u_2=\alpha,\,\dots,u_j=\alpha^{j-1},\dots,u_n=\alpha^{n-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
gewählt werden. Jeder endliche Körper enthält ein [[Erzeuger einer Gruppe|erzeugendes]] oder [[Primitivwurzel|primitives Element]] der multiplikativen Gruppe &amp;lt;math&amp;gt;\mathbb F_p{}^*=\mathbb F_p\setminus\{0\}&amp;lt;/math&amp;gt;, das heißt ein Element der Ordnung &amp;lt;math&amp;gt;p-1&amp;lt;/math&amp;gt;. Daher ist diese spezielle Wahl für &amp;lt;math&amp;gt;n=p-1&amp;lt;/math&amp;gt; immer möglich.&lt;br /&gt;
&lt;br /&gt;
Sind die Stützstellen genau die Potenzen &amp;lt;math&amp;gt;u_1=1,\;u_j=\alpha^{j-1}\ne 1,\;j=2,\dots,n,&amp;lt;/math&amp;gt; eines Elementes &amp;lt;math&amp;gt;\alpha\in\mathbb F_p&amp;lt;/math&amp;gt; der Ordnung &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\alpha^n=1&amp;lt;/math&amp;gt;, so ist der RS-Kode ein [[zyklischer Code]]. Denn das Kodewort zum [[Polynom]] &amp;lt;math&amp;gt;f_j(x)=f(\alpha^jx)&amp;lt;/math&amp;gt; ergibt sich durch Rotation des Kodewortes zu &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; um &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; Stellen nach links. Wegen der einfacheren Implementierbarkeit zyklischer Codes wird diese Variante im Allgemeinen bevorzugt.&lt;br /&gt;
&lt;br /&gt;
=== Kodieren von Nachrichten ===&lt;br /&gt;
Man kann eine Nachricht &amp;lt;math&amp;gt;(a_1,a_2,\dots,a_k)\in\mathbb F_p{}^k&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Symbolen direkt in ein Kodewort verwandeln, indem man die Komponenten als Koeffizienten eines [[Polynom]]s&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x)=a_1 + a_2\,x + a_3\,x^2 + \dots + a_k\,x^{k-1} = \sum_{i=1}^k a_i\,x^{i-1} \in\mathbb F_p[x]&amp;lt;/math&amp;gt;&lt;br /&gt;
einsetzt und dieses an den Stützstellen &amp;lt;math&amp;gt;u_1,u_2,\dots,u_n \in \{0, 1, ..., p-1\}&amp;lt;/math&amp;gt; auswertet. Es ergibt sich damit ein Kodewort&lt;br /&gt;
:&amp;lt;math&amp;gt;c=(c_1,c_2,\dots,c_n)=\Big(f(u_1),f(u_2),\dots,f(u_n)\Big)\in\mathbb F_p{}^n&amp;lt;/math&amp;gt;&lt;br /&gt;
der Länge &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Für die Anzahl &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; der Symbole der Nachricht und die geforderte Minimaldistanz &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; gilt &amp;lt;math&amp;gt;k \leq n - d + 1&amp;lt;/math&amp;gt;. Weil ein beliebiges [[Polynom]] &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; vom Grad kleiner oder gleich &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; maximal &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; [[Nullstelle]]n haben kann, ist gewährleistet, dass jedes gültige Kodewort mindestens &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; Symbole enthält, die ungleich 0 sind. Daher hat der gebildete Code die Minimaldistanz &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; und ist in der Lage, maximal &amp;lt;math&amp;gt;t = \frac{d - 1}{2}&amp;lt;/math&amp;gt; Fehler zu korrigieren.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;Eduard Jorswieck, Anne Wolf, Technische Universität Dresden: [https://tu-dresden.de/ing/elektrotechnik/ifn/itml/ressourcen/dateien/lehre/vl/codth/A2_RSC.pdf?lang=de Reed-Solomon-Coder und -Decoder]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Statt die Nachricht &amp;lt;math&amp;gt;(a_1,\dots,a_k)&amp;lt;/math&amp;gt; als Polynomkoeffizienten zu kodieren, kann man sie alternativ auch in die ersten &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Stützstellen des Polynoms kodieren. Dadurch erhält man eine &amp;#039;&amp;#039;systematische Kodierung&amp;#039;&amp;#039;. Das zum Kodewort führende [[Polynom]] &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; ergibt sich dabei als [[Polynominterpolation#Lagrangesche Interpolationsformel|Lagrange-Polynom]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f(x)=\sum_{i=1}^k \left( a_i \cdot \prod_{j\ne i}^k\frac{x-u_j}{u_i-u_j} \right) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
der Paare &amp;lt;math&amp;gt;\Big((u_1,a_1),\,(u_2,a_2),\,\ldots,\,(u_k,a_k)\Big)&amp;lt;/math&amp;gt;. Wegen &amp;lt;math&amp;gt;f(u_i)=a_i&amp;lt;/math&amp;gt; für &amp;lt;math&amp;gt;i=1,\dots,k&amp;lt;/math&amp;gt; ergibt sich aus &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; das Kodewort&lt;br /&gt;
:&amp;lt;math&amp;gt;c=(c_1,c_2,\dots,c_n)=\Big(a_1,a_2,\ldots,a_k,f(u_{k+1}),\dots,f(u_n)\Big)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mit der Nachricht in den ersten &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Stellen des Kodeworts im „Klartext“.&lt;br /&gt;
&lt;br /&gt;
Beide Varianten benutzen dieselbe Menge von Kodewörtern und haben damit dieselben Fehlerkorrektureigenschaften.&lt;br /&gt;
&lt;br /&gt;
Aus den Koeffizienten des [[Polynom]]s &amp;lt;math&amp;gt;f(x) = a_1 + a_2\,x + a_3\,x^2 + \dots + a_k\,x^{k - 1}&amp;lt;/math&amp;gt; erhält man die Erzeugendenmatrix für den Reed-Solomon-Code:&amp;lt;ref&amp;gt;Benjamin Klopsch: [https://www.math.uni-duesseldorf.de/~klopsch/mathematics/Manuskripte/cd_rscode.pdf Audio CDs und Reed-Solomon Codes]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;G =&lt;br /&gt;
\begin{pmatrix}&lt;br /&gt;
a_1     &amp;amp; a_2       &amp;amp; \ldots    &amp;amp; a_k       &amp;amp; 1         &amp;amp; 0         &amp;amp; \ldots    &amp;amp; 0 \\&lt;br /&gt;
0       &amp;amp; a_1       &amp;amp; a_2       &amp;amp; \ldots    &amp;amp; a_k       &amp;amp; 1         &amp;amp; \ddots    &amp;amp; \vdots \\&lt;br /&gt;
\vdots  &amp;amp; \ddots    &amp;amp; \ddots    &amp;amp; \ddots    &amp;amp; \ddots    &amp;amp; \ddots    &amp;amp; \ddots    &amp;amp; 0 \\&lt;br /&gt;
0       &amp;amp; \ldots    &amp;amp; 0         &amp;amp; a_1       &amp;amp; a_2       &amp;amp; \ldots    &amp;amp; a_k       &amp;amp; 1 \\&lt;br /&gt;
\end{pmatrix}&lt;br /&gt;
\in M(k \times n, \mathbb F_p)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eigenschaften ==&lt;br /&gt;
Durch die Definition ergeben sich sofort folgende Eigenschaften:&lt;br /&gt;
* Codewortlänge: &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;&lt;br /&gt;
* [[Dimension (Mathematik)|Dimension]] des Codes: &amp;lt;math&amp;gt;|C|=|f|=q^k&amp;lt;/math&amp;gt;&lt;br /&gt;
* Coderate: &amp;lt;math&amp;gt;R_c=k/n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Mindestdistanz beträgt &amp;lt;math&amp;gt;d_\text{min}=n-k+1&amp;lt;/math&amp;gt; und erfüllt damit die [[Singleton-Schranke]]. Codes mit dieser Eigenschaft werden auch [[MDS-Code]]s genannt.&lt;br /&gt;
&lt;br /&gt;
;Erklärung:&lt;br /&gt;
&lt;br /&gt;
:Da &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; maximal &amp;lt;math&amp;gt;k-1&amp;lt;/math&amp;gt; [[Nullstelle]]n besitzen kann (durch den Grad des [[Polynom]]s beschränkt), tauchen im korrespondierenden Codewort maximal &amp;lt;math&amp;gt;k-1&amp;lt;/math&amp;gt; Stellen auf, die zu 0 werden. Damit ist das [[Hamming-Gewicht]] &amp;lt;math&amp;gt;wt(C) \geqq n-k+1&amp;lt;/math&amp;gt; und somit wegen der [[Linearität (Mathematik)|Linearität]] auch die Minimaldistanz.&lt;br /&gt;
:Zusammen mit der [[Singleton-Schranke]] &amp;lt;math&amp;gt;d_\text{min} \leqq n-k+1&amp;lt;/math&amp;gt; ergibt sich die Gleichheit.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
Gegeben ist die Nachricht &amp;lt;math&amp;gt;(a_1, a_2, a_3, a_4, a_5, a_6) = (2, 6, 8, 12, 15, 13, 1) &amp;lt;/math&amp;gt; über &amp;lt;math&amp;gt;\mathbb F_{2^4}&amp;lt;/math&amp;gt;. Daraus erhält man das [[Polynom]] &amp;lt;math&amp;gt;f(x) = 2 + 6 \cdot x + 8 \cdot x^2 + 12 \cdot x^3 + 15 \cdot x^4 + 13 \cdot x^5 + x^6&amp;lt;/math&amp;gt;. Die Elemente von &amp;lt;math&amp;gt;\mathbb F_{2^4} &amp;lt;/math&amp;gt;werden als Potenzen des [[Primitivwurzel|primitiven Elements]] &amp;lt;math&amp;gt;\alpha &amp;lt;/math&amp;gt; berechnet:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Exponentendarstellung&lt;br /&gt;
!Komponentendarstellung&lt;br /&gt;
!binäre Darstellung&lt;br /&gt;
!dezimale Darstellung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^0 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\quad \quad \quad \quad \quad \quad \alpha^0 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;[0001]_2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^1 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\quad \quad \quad \quad \alpha^1 \quad \quad &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;[0010]_2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\quad \quad \alpha^2 \quad \quad \quad \quad &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;[0100]_2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^3 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^3 \quad \quad \quad \quad \quad \quad &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;[1000]_2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^4 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^3 \quad \quad \quad \quad + \alpha^0 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;[1001]_2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|9&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^5 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^3 \quad \quad + \alpha^1 + \alpha^0 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;[1011]_2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|11&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^6 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^3 + \alpha^2 + \alpha^1 + \alpha^0 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;[1111]_2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|15&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^7 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\quad \quad \alpha^2 + \alpha^1 + \alpha^0 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;[0111]_2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^8 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^3 + \alpha^2 + \alpha^1 \quad \quad &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;[1110]_2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|14&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\quad \quad \alpha^2 \quad \quad + \alpha^0 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;[0101]_2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^{10} &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^3 \quad \quad + \alpha^1 \quad \quad &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;[1010]_2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^{11} &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^3 + \alpha^2 \quad \quad + \alpha^0 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;[1101]_2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|13&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^{12} &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\quad \quad \quad \quad \alpha^1 + \alpha^0 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;[0011]_2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^{13} &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\quad \quad \alpha^2 + \alpha^1 \quad \quad &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;[0110]_2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^{14} &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\alpha^3 + \alpha^2 \quad \quad \quad \quad &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;[1100]_2 &amp;lt;/math&amp;gt;&lt;br /&gt;
|12&lt;br /&gt;
|}&lt;br /&gt;
Daraus ergeben sich die Werte über &amp;lt;math&amp;gt;\mathbb F_{2^4} &amp;lt;/math&amp;gt; für die Symbole&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
c_1 = f(\alpha^0) &amp;amp;= 2 \cdot \alpha^0 + 6 \cdot \alpha^0 + 8 \cdot \alpha^0 + 12 \cdot \alpha^0 + 15 \cdot \alpha^0 + 13 \cdot \alpha^0 + \alpha^0&lt;br /&gt;
\\ &amp;amp;= 2 + 6 + 8 + 12 + 15 + 13 + 1&lt;br /&gt;
\\ &amp;amp;= [0010]_2 + [0110]_2 + [1000]_2 + [1100]_2 + [1111]_2 + [1101]_2 + [0001]_2&lt;br /&gt;
\\ &amp;amp;= [0011]_2 = 3&lt;br /&gt;
\\ c_2 = f(\alpha^1) &amp;amp;= 2 \cdot \alpha^0 + 6 \cdot \alpha^1 + 8 \cdot \alpha^2 + 12 \cdot \alpha^3 + 15 \cdot \alpha^4 + 13 \cdot \alpha^5 + \alpha^6&lt;br /&gt;
\\ &amp;amp;= \alpha^1 \cdot \alpha^0 + \alpha^{13} \cdot \alpha^1 + \alpha^3 \cdot \alpha^2 + \alpha^{14} \cdot \alpha^3 + \alpha^6 \cdot \alpha^4 + \alpha^{11} \cdot \alpha^5 + \alpha^0 \cdot \alpha^6&lt;br /&gt;
\\ &amp;amp;= \alpha^1 + \alpha^{14} + \alpha^5 + \alpha^2 + \alpha^{10} + \alpha^1 + \alpha^6&lt;br /&gt;
\\ &amp;amp;= 2 + 12 + 11 + 4 + 10 + 2 + 15&lt;br /&gt;
\\ &amp;amp;= [0010]_2 + [1100]_2 + [1011]_2 + [0100]_2 + [1010]_2 + [0010]_2 + [1111]_2&lt;br /&gt;
\\ &amp;amp;= [0110]_2 = 6&lt;br /&gt;
\\ &amp;amp; \cdots&lt;br /&gt;
\\ c_{15} = f(\alpha^{14}) &amp;amp;= 2 \cdot \alpha^0 + 6 \cdot \alpha^{14} + 8 \cdot \alpha^{28} + 12 \cdot \alpha^{42} + 15 \cdot \alpha^{56} + 13 \cdot \alpha^{70} + \alpha^{84}&lt;br /&gt;
\\ &amp;amp;= \alpha^1 \cdot \alpha^0 + \alpha^{13} \cdot \alpha^{14} + \alpha^3 \cdot \alpha^{13} + \alpha^{14} \cdot \alpha^{12} + \alpha^6 \cdot \alpha^{11} + \alpha^{11} \cdot \alpha^{10} + \alpha^0 \cdot \alpha^9&lt;br /&gt;
\\ &amp;amp;= \alpha^1 + \alpha^{12} + \alpha^1 + \alpha^{11} + \alpha^2 + \alpha^6 + \alpha^9&lt;br /&gt;
\\ &amp;amp;= 2 + 3 + 2 + 13 + 4 + 15 + 5&lt;br /&gt;
\\ &amp;amp;= [0010]_2 + [0011]_2 + [0010]_2 + [1101]_2 + [0100]_2 + [1111]_2 + [0101]_2&lt;br /&gt;
\\ &amp;amp;= [0000]_2 = 0&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und das Kodewort &amp;lt;math&amp;gt;c = (c_1, c_2, \ldots, c_{15}) = \Big(f(\alpha^0), f(\alpha^1), \ldots, f(\alpha^{14})\Big) = (3, 6, 15, 6, 6, 3, 13, 14, 3, 12, 15, 2, 11, 1, 0)&amp;lt;/math&amp;gt;.&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Stephen B. Wicker, Vijay K. Bhargava&lt;br /&gt;
   |Titel=Reed Solomon Codes Applications&lt;br /&gt;
   |Verlag=Wiley&lt;br /&gt;
   |Datum=1999&lt;br /&gt;
   |ISBN=0-7803-5391-9&lt;br /&gt;
   |Online=[http://ieeexplore.ieee.org/xpl/bkabstractplus.jsp?bkn=5264570 ieeexplore.ieee.org]}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.eccpage.com/ Kodier- und Dekodieralgorithmen für Reed-Solomon- und andere Kodes in C (Robert Morelos-Zaragoza)] (en)&lt;br /&gt;
* James S. Plank: [http://www.cs.utk.edu/~plank/plank/papers/SPE-9-97.html &amp;#039;&amp;#039;A Tutorial on Reed-Solomon Coding for Fault-Tolerance in RAID-like Systems&amp;#039;&amp;#039;], Software – Practice &amp;amp; Experience, 27(9), September, 1997, S. 995–1012&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;irvi1&amp;quot;&amp;gt;&lt;br /&gt;
{{Literatur&lt;br /&gt;
 |Autor=Irving S. Reed, Gustave Solomon&lt;br /&gt;
 |Titel=Polynomial codes over certain finite fields&lt;br /&gt;
 |Sammelwerk=Journal of the Society for Industrial and Applied Mathematics, SIAM J.&lt;br /&gt;
 |Band=8&lt;br /&gt;
 |Datum=1960&lt;br /&gt;
 |ISSN=0036-1399&lt;br /&gt;
 |Seiten=300–304}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Kodierungstheorie]]&lt;/div&gt;</summary>
		<author><name>imported&gt;HICUM</name></author>
	</entry>
</feed>