ebook img

Lineare Codes: Theorie und Praxis mit AVR- und dsPIC-Mikrocontrollern (German Edition) PDF

450 Pages·2016·5.212 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Lineare Codes: Theorie und Praxis mit AVR- und dsPIC-Mikrocontrollern (German Edition)

Herrad Schmidt Manfred Schwabl-Schmidt Lineare Codes Theorie und Praxis mit AVR- und dsPIC-Mikrocontrollern Lineare Codes Lizenz zum Wissen. Sichern Sie sich umfassendes Technikwissen mit Sofortzugriff auf tausende Fachbücher und Fachzeitschriften aus den Bereichen: Automobiltechnik, Maschinenbau, Energie + Umwelt, E-Technik, Informatik + IT und Bauwesen. Exklusiv für Leser von Springer-Fachbüchern: Testen Sie Springer für Professionals 30 Tage unverbindlich. Nutzen Sie dazu im Bestellverlauf Ihren persönlichen Aktionscode C0005406 auf www.springerprofessional.de/buchaktion/ Jetzt 30 Tage testen! Springer für Professionals. Digitale Fachbibliothek. Themen-Scout. Knowledge-Manager. Zugriff auf tausende von Fachbüchern und Fachzeitschriften Selektion, Komprimierung und Verknüpfung relevanter Themen durch Fachredaktionen Tools zur persönlichen Wissensorganisation und Vernetzung www.entschieden-intelligenter.de Springer für Professionals Herrad Schmidt • Manfred Schwabl-Schmidt Lineare Codes Theorie und Praxis mit AVR- und dsPIC-Mikrocontrollern Herrad Schmidt Manfred Schwabl-Schmidt Institut für Wirtschaftsinformatik Boppard, Deutschland Universität Siegen Siegen, Deutschland ISBN 978-3-658-13469-3 ISBN 978-3-658-13470-9 (eBook) DOI 10.1007/978-3-658-13470-9 Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. Springer Vieweg © Springer Fachmedien Wiesbaden 2016 Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung, die nicht ausdrücklich vom Urheberrechtsgesetz zugelassen ist, bedarf der vorherigen Zustimmung des Verlags. Das gilt insbesondere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz- Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Der Verlag, die Autoren und die Herausgeber gehen davon aus, dass die Angaben und Informationen in diesem Werk zum Zeitpunkt der Veröffentlichung vollständig und korrekt sind. Weder der Verlag noch die Autoren oder die Herausgeber übernehmen, ausdrücklich oder implizit, Gewähr für den Inhalt des Werkes, etwaige Fehler oder Äußerungen. Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier Springer Vieweg ist Teil von Springer Nature Die eingetragene Gesellschaft ist Springer Fachmedien Wiesbaden GmbH Vorwort Wer sich daran begibt, einen ersten U¨berblick u¨ber Theorie und Techniken linearer Co- des zu erhalten, ist bald davon u¨berzeugt, daß vor der Implementierung solcher Codes die Arithmetik von Polynomen mit Koeffizienten in einem endlichen K¨orper K realisiert q werden muss. Dabei ist q eine Primzahlpotenz, was im praktischen Einsatz u¨berwiegend q = 2 bedeutet. Weil diese Arithmetik, so hat es den Anschein, zumindest in der Codie- rungsphaseeinzusetzenist,solltesieinProgrammcodegroßerEffizienzumgesetztwerden. Genauso ist es auch geschehen, das Ergebnis wird in Abschnitt5.1 vorgestellt. DarstellungenderTheorielinearerCodeserreichenihrenH¨ohepunktgew¨ohnlichmitden zyklischenCodes,welchedieNullstelleneinesGeneratorpolynomszurErkennungundKor- rekturvonU¨bertragungsfehlernnutzen.MangewinntsodenEindruck,daßdieImplemen- tierung eines solchen Codes erstrebenswert ist. Allerdings ist hier erst eine weitere Hu¨rde zu nehmen,denndieFehlererkennungundFehlerkorrekturwird im Zerf¨allungsk¨orper des Generatorpolynoms vorgenommen, etwa in Kqm. Das bedeutet also, daß vorab die Arith- metik von Kqm zu implementieren ist. An dieser Stelle war es nicht m¨oglich, vorauszusagen, ob ein AVR-Mikrocontroller der Reihe ATmegaXXX genug Rechenleistung erbringen kann, um die Arithmetik von Kqm programmatisch umsetzen zu k¨onnen.Es wurdedaherzweigleisig verfahren, d.h.dieUm- setzung erfolgte sowohl fu¨r einen Mikrocontroller ATmegaXXX als auch fu¨r einen dsPIC- Mikrocontroller mit einer 16-Bit-CPU und einem potenten Befehlssatz. Um die Ange- legenheit etwas interessanter zu gestalten wurden die Arithmetiken zweier K¨orper mit verschiedenen Verfahren implementiert. Mit dem dsPIC wurde die Arithmetik von K132 mit einem Verfahren realisiert, das aus der Darstellungstheorie stammt, das also mit Matrizen arbeitet. Das Verfahren ist in Abschnitt2.2 beschrieben, das Programm in Abschnitt2.3. Ein ATmegaXXX wurde dazu benutzt, die Arithmetik von K28 in ein Programm um- zusetzen. Hier wurde von einem primitiven Element des K¨orpers Gebrauch gemacht, um zu einer effizienten Multiplikation zu gelangen. Abschnitt 2.4 enth¨alt die Darstellung der Methode und Abschnitt2.5 das realisierende Programm. Glu¨cklicherweiseerwiessichderATmegaXXXalsseinerAufgabev¨olliggewachsen,d.h. diePolynomarithmetikmusstenichtaufdenATmegaXXXumgeschriebenwerden.Dasist auch deshalb erfreulich, weil fu¨r den praktischen Teil des Buches ein leicht erreichbarer undeinfach zu programmierender Mikrocontroller Verwendungfindensollte. Die Arithmetik von K28 zur Fehlererkennung und Fehlerbeseitigung stand nun zur Verfu¨gung. Die Fehlerbehandlung besteht zum Teil daraus, den Rang von mindestens einer Matrix mit Koeffizienten in K28 zu bestimmen und die L¨osung eines linearen Glei- chungssystemmitKoeffizienten inK28 zufinden.Auchhierschienesbesser,dasProblem vorab zul¨osen, um dieschließliche Realisierung eineslinearen Codes ohneUnterbrechung durchfu¨hren zu k¨onnen. Abschnitt 5.2 enth¨alt das zu diesem Zweck geschriebene Pro- gramm. Auch hier war große Effizienz anzustreben, sollte das Programm doch zur Feh- lerbehandlungbei Ausfu¨hrundeines Codes eingesetzt werden. Das bedeutet konkret,daß imProgramm aufdieMatrixelementenichtu¨berihreIndizes,sondernu¨berihreAdressen zugegriffen wird. Dieses Vorgehen wird vom defizit¨aren Befehlssatz des Prozessors prak- tisch erzwungen. Auf diese Weise wird aus einem noch recht einfachen Algorithmus zur Transformation einer Matrix in eine Dreiecksmatrix allerdings ein komplexes Programm. Dann war da noch das Problem, wie ein zyklischer Code u¨berhaupt gefunden werden k¨onnte.DieTheoriesagthierzu:MannehmealsGeneratorpolynomeinenechtenTeilerdes Polynoms Xn−1 aus dem Polynomring K [X] fu¨r ein passendes n. Aberdas ist leichter q gesagt als getan, die Bestimmung der irreduziblen Faktoren eines Polynoms ist kein ganz V einfaches Unterfangen. DiewohlbekanntesteMethodeistdasVerfahrenvonBerlekamp,esistinAbschnitt3.3 ausfu¨hrlich dargestellt. Leider ist es nur sehr aufwendig zu implementieren. Auch sind in seinem Verlauf Entscheidungen zu treffen, die einer Person, welche das Verfahren mit Papier und Bleistift anwendet, nicht allzuschwer fallen sollten, die aber programmatisch schwer umzusetzen sind. Es gibt aber noch ein viel einfacheres Verfahren, das in Abschnitt 6.10.1 vorgestellt wird. Es beruht im Wesentlichen darauf, daß das Polynom Xqn −X das Produkt aller normiertenirreduziblenPolynomemitKoeffizientenausK ist,derenGradeinTeilervon q n ist. Der auf den ersten Blick absurd hohe Polynomgrad qn, z.B. 16777216 bei q = 28 undn=3 ist zur Umsetzungdes Verfahrensnicht wirklich ein Hindernis. Leider wurde erst jetzt nach all diesen aufwendigen und teils recht komplizierten Vor- arbeiten die Theorie der linearen Codes in allen Einzelheiten entwickelt und dargestellt. Dabei stellte sich n¨amlich heraus, daß die eben geschildertem Vorarbeiten fu¨r die Umset- zung von linearen Codes in Programmcode vollkommen u¨berflu¨ssig sind. Gewiss, es ist sehr sch¨on, wenn bei den zyklischen Codes ein Bezug zur Idealtheorie hergestellt werden kann,aberdiesesundetwaauchdieVerfahrenzurZerlegungeinesPolynomsinseineirre- duziblen Faktoren sind, was den praktischen Einsatz von linearen Codes angeht, unnu¨tze theoretische Sandkastenspiele. DennzyklischeCodeswerdennichtwirklichben¨otigt.Tats¨achlichsinddieVerfahrenzur Fehlererkennungund Fehlerbeseitigung, die beizyklischen Codes eingesetzt werden, auch bei nicht-zyklischen Codes anwendbar. In Abschnitt 4.4.3 wird eine Methode, welche die NullstelleneinesErzeugerpolynomsverwendet,entwickelt,derLeserkannsichselbstdavon u¨berzeugen,daßindemAbschnittnirgendwodieEigenschafteinesCodes,zyklischzusein, eingesetzt wird. Tats¨achlich werden zyklische Codes erst in einem folgenden Abschnitt eingefu¨hrt. Einen Vorteil scheinen zyklische Codes allerdings zu besitzen: Sie geben eine untere Schrankefu¨rdieAnzahldererkennbarenundkorrigierbarenFehler.Esistjedochsehrsehr leicht, mit Hilfe der Fehlermetrik von Abschnitt 4.3 Generatorpolynome zu bestimmen, die zu Codes mit vorgegebener Anzahl erkennbarer Fehler fu¨hren. Abschnitt 4.6 enth¨alt Tabellen solcher Polynome fu¨r Codes mit vier und Abschnitt 4.7 Tabellen fu¨r Codes mit acht Informationsbits. WennaberaufzyklischeCodesverzichtetwerdenkann,dannkannauchaufdieFehler- erkennung der Art verzichtet werden, wie sie in Abschnitt 4.4.3 entwickelt wird. Das ist gut so, denn wie die Beispiele am Ende des Abschnitts zeigen, ist diese Fehlererkennung zu aufwendig, um in effizienten Programmcode umgesetzt zu werden. Zu dem Verfahren undzugeh¨origen Programm in Abschnitt4.4.2 war es dann nurnoch ein kleiner Schritt. Zum theoretischen Anhang ist noch zu sagen, daß das Buch in sich abgeschlossen sein sollte. Ohne diesen Anhang h¨atte der Leser die zum Verst¨andnis notwendigen Wissens- gebiete wie die Theorie Endlicher K¨orper, spezielle Teile der Linearen Algebra etc. diver- sen Publikationen entnehmen mu¨ssen, sehrwahrscheinlich mit nichtzusammenpassenden Symbolismen. Und um den Anhang etwas lesbarer zu gestalten wurde in ihn mehr Stoff aufgenommen als unbedingt n¨otig gewesen w¨are. Herrad Schmidt Boppard, im Januar 2016 Manfred Schwabl-Schmidt VI Inhaltsverzeichnis 1. Einleitung 1 2. Darstellung und Arithmetik endlicher K¨orper 3 2.1. Faktorringe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2. Matrizen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3. Implementierung der Arithmetik von K132 fu¨r den Prozessor dsPIC33 . . . . . . . 11 2.4. Primitive Elemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.5. Implementierung der Arithmetik von K28 fu¨r AVR . . . . . . . . . . . . . . . . . . 24 3. Bestimmung irreduzibler Faktoren von Polynomen ¨uber endlichen K¨orpern 29 3.1. Die einfachste Methode: Division mit allen m¨oglichen Teilern . . . . . . . . . . . . 29 3.2. Ein Verfahren basierend auf den Teilern von Xqn −X . . . . . . . . . . . . . . . . 30 3.3. Das Verfahren von Berlekamp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4. Lineare Codes 43 4.1. Lineare Codes als Exakte Sequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.2. Einfache lineare Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.3. Die Fehlermetrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.4. Lineare Codes auf Polynombasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.1. Lineare Codes mit Generator- und Parit¨atspru¨fungspolynom . . . . . . . . 55 4.4.2. Implementierung eines bin¨aren Codes fu¨r AVR . . . . . . . . . . . . . . . . 61 4.4.3. Lineare Codes mit Nullstellen des Erzeugerpolynoms . . . . . . . . . . . . . 70 4.5. Zyklische Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.6. Generatorpolynome fu¨r vier Informationsbit . . . . . . . . . . . . . . . . . . . . . . 87 4.7. Generatorpolynome fu¨r acht Informationsbit. . . . . . . . . . . . . . . . . . . . . . 91 5. Polynomarithmetik und lineare Gleichungssysteme mit AVR 95 5.1. Arithmetik in K [X] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 2 5.1.1. Addition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 5.1.2. Multiplikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 5.1.3. Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.1.4. Der gr¨oßte gemeinsame Teiler . . . . . . . . . . . . . . . . . . . . . . . . . . 169 5.2. L¨osung linearer Gleichungssysteme mit Koeffizienten in K28 . . . . . . . . . . . . . 173 6. Algebraische Grundlagen 191 6.1. Kongruenzrelationenund Teilbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . 192 6.2. Primzahlen I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 6.3. Ringe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 6.3.1. Die Ringaxiome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 6.3.2. Teilringe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 VII Inhaltsverzeichnis 6.3.3. Ringhomomorphismen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 6.3.4. Konstruktion von Ringen mit der Teilerrestfunktion . . . . . . . . . . . . . 238 6.4. Primzahlen II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 6.5. Integrit¨atsbereiche und K¨orper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 6.6. Teilbarkeit in Ringen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 6.7. Polynome I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 6.8. Euklidische Ringe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 6.9. Polynome II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 6.10.Vektorr¨aume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 6.10.1. Untervektorr¨aume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 6.10.2. Freie und erzeugende Vektorfamilien . . . . . . . . . . . . . . . . . . . . . . 311 6.10.3. K¨orperwechsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 6.10.4. Vektorraumhomomophismen . . . . . . . . . . . . . . . . . . . . . . . . . . 321 6.10.5. Der Faktorraum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 6.10.6. Exakte Sequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 6.10.7. Dualer Vektorraum und dualer Homomorphismus . . . . . . . . . . . . . . . 335 6.10.8. Lineare Abbildungen und Matrizen . . . . . . . . . . . . . . . . . . . . . . . 339 6.10.9. Lineare Gleichungssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 6.10.10.Die Matrix von VANDERMONDE . . . . . . . . . . . . . . . . . . . . . . . 356 6.11.Blockmatrizen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 6.12.Konstruktion von Ringen und K¨orpern mit Polynomkongruenzen . . . . . . . . . . 361 6.13.Primitive Elemente endlicher K¨orper . . . . . . . . . . . . . . . . . . . . . . . . . . 384 6.14.Klassifizierung endlicher K¨orper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 6.15.Polynome III . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 6.16.A¨quivalenzrelationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 6.17.Ideale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 A. Anhang 423 A.1. Die Bestimmung der Minimalpolynome u¨ber Kq von Elementen aus Kqm . . . . . . 423 A.2. Der K¨orper K24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 A.3. Der K¨orper K28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 A.4. Fehlerlokalisierungspolynome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 A.5. Bin¨are modulare Potenzierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432 A.6. AVR-Nomenklatur und AVR-Makros . . . . . . . . . . . . . . . . . . . . . . . . . . 433 Literaturverzeichnis 437 Index 439 VIII 1. Einleitung Inder Kodierungstheoriespielenzwei Matrizeneine besondere Rolle. Es sinddie Generator-und die Parit¨atspru¨fungsmatrix. Sie sind durch eine Orthogonalit¨atsrelation miteinander verbunden. Fu¨r einen Einsteiger in die Theorie wirkt der Einsatz dieser Matrizen allerdings oft willku¨rlich, was auch fu¨r andere Objekte und Vorgehensweisen der Theorie gilt. Woran es hier fehlt ist ein allgemeiner Begriff, ein mathematisches Objekt, aus dem sich so zwangloswiem¨oglichdieeinzelnenAspektederTheorieableitenlassen.SolcheinObjektexistiert bereits seit vielen Jahren, es ist die kurze exakte Sequenz: {0} −−−0−→ U −−−Γ−→ V −−−Σ−→ W −−−0−→ {0} (cid:2) (cid:2) (cid:2) In diesem Graphen bestehen die Knoten aus Vektorr¨aumen u¨ber einem bestimmten endlichen K¨orper K, seine Kanten werden von Vektorraumhomomorphismen(linearen Abbildungen) gebil- det (siehe Abschnitt 6.10.6). Das Wesentliche dieser kurzen exakten Sequenz ist die Gu¨ltigkeit von Bild(Γ)=Kern(Σ) EinesolcheSequenzwirdnunalseinKodierschemainterpretiert,mitΓ alsseinGeneratorund Σ als sein Syndrom. Das Wort Syndrom bedeutet eigentlich Krankheitsbild, eine sehr passend gew¨ahlte Bezeichnung, denn mit Σ wird insbesondere die Anzahl der Fehler festgestellt, die ein Codewort bei einer Datenu¨bertragung erf¨ahrt. Der Vektorraum U ist der Raum der Informationselemente (in der Praxis zumeist Bits), die mitdemGeneratorcodiertwerden.Aus demInformationselementu∈UwirdalsodasCodewort c=Γ(u), d.h. der eigentliche Code C ist gegeben durch C=Bild(Γ) Andererseits gilt aber wegen der Haupteigenschaft der kurzen exakten Sequenz auch C=Kern(Σ) das bedeutet also, daß mit dem Syndrom festgestellt werden kann, ob ein v ∈ V ein Codewort ist, denn dazu muß Σ(v)=0 gelten. Man kann also sagen (wenn auch etwas plakativ) MitderlinkenSeitederkurzenexaktenSequenzwirdcodiert,mitihrerrechten Seitewird dagegen decodiert. Zu vorgegebenemCode, d.h. vorgegebenemGeneratorΓ, kann es verschiedene Syndrome geben, undzwarnichtnurverschiedeneAbbildungenΣ,sondernauchverschiedeneVektorr¨aumeW.An dieser Stelle kann die Theorie etwas verwickelt werden (sie wird es allerdings nicht nur an dieser Stelle!).BeispielsweisewirdineinemKodierschemaalsWeinbestimmterVektorraumu¨bereinem Erweiterungsk¨orpervon K gew¨ahlt. Hier muß allerdings angemerkt werden: Je komplizierter das Syndrom ist und je schwieriger es zu berechnen ist, desto weniger ist das Kodierschema zur Implementierung auf einem Mikrocontroller geeignet. © Springer Fachmedien Wiesbaden 2016 H. Schmidt, M. Schwabl-Schmidt, Lineare Codes, DOI 10.1007/978-3-658-13470-9_1 1

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.