Abramson/BCH-Code

Neue Frage »

Asna Auf diesen Beitrag antworten »
Abramson/BCH-Code
Hallo, ich sitze gerade an einem Problem bei dem ich einfach nicht weiterkomme :-(
Die einzige Lösung die ich im Internet finden konnte ist leider so unhandlich, dass ich mir nicht vorstellen kann, dass es die "einzig wahre Lösung ist" Augenzwinkern

Aufgabe:
Es wird ein Kodierer benutzt, der mit g(x) einen zykl. ABRAMSON-Code erzeugt:


Prüfen Sie folgende empfangene Binärfolgen, ob diese korrekt übertragen worden sind:
zb:

Die Vorgehensweise die ich im Netz finden konnte, ist:
(1)
(2) [fehlerfrei]
(2) [fehler]

Lösung:


Captain Kirk Auf diesen Beitrag antworten »

Hallo,

vorab: ich kenne Abramson-Codes nicht im Speziellen, aber das von dir angesprochene Verfahren funktioniert bei allen zyklischen Codes.

(1) ist die Bestimmung des Kontrollpolynoms h. (Definiert über )
Wie mit Generator/Kontrollmatrizen ist ein Vektor x ein Codewort (richtig codiert) falls Hx=0 (H Kontrollmatrix), analog hier:
(2)

Man kann das Ganze auch wieder in Matrizen übersetzen, aber in dieser Form gent's deutlich einfacher.

Zitat:
dass ich mir nicht vorstellen kann, dass es die "einzig wahre Lösung ist"

Es gibt sehr selten "einzig wahre Lösungen", sehe aber nicht wirllich vorstellen was hier so unhandlich ist. Die Multplikation der Vektoren (es ist eigentlich Polynommultiplikation) ist meines Erachtens einfacher als Matrizenmultiplikation, hier wäre g z.B. eine 15x10-Matrix. Damit zu rechnen fände ich wirklich unangenehm.

P.S. Im Körper mit zwei Elementen kann und sollte man immer + statt - schreiben.
Asna Auf diesen Beitrag antworten »

Hallo, Danke erstmal für die Antwort!

Das ist schon mal beruhigend zu hören, dass die Vorgehensweise so passt.
[Bisher hatte die Kontrollgleichung bisher nur als Kontrollmatrix gesehen.]
[ABRAMSON ist ja im Grunde nur ein Spezialfall von BCH- bzw zyklischen Kodes.]

Das "anstrengende" hier ist wie du schon vermutet hast:

Matrixmultiplikation mit so vielen Stellen und die PolyDivi, wobei ich die noch i.O. finde.
Gibt es einen Trick für die Matrixmultipl. im Körper GF2 den Taschenrechner (nichtprogrammierbar) zu Hilfe zu nehmen?

Bei 10100000000000000000011 * 1110110001 kommt halt dann eine gekürzte Variante ala raus, also kann man hierraus nur wenige Stellen lesen.
Captain Kirk Auf diesen Beitrag antworten »

Zitat:
10100000000000000000011 * 1110110001 kommt halt dann eine gekürzte Variante ala

-Keine Ahnung was du da eingetippt hast. Zehnerpotenzen haben hier aber gar nichts zu suchen.
-Der erste Vektor ist deutlich zu lang, da kann man jeden Vektor auf höchsten eine Länge von 15 kürzen.

Solange eine der beiden zu multiplizierenden Zahlen weniger als 10 Einser hat kann man einen normalen Taschenrechner der im standardmäßigen dekadischen System arbeitet missbrauchen:
Bsp. 101*111=11211
Unser Ergebnis (jede Ziffer mod 2): 11011

Warum geht das? Betrachte die 10 als X: 101=1*10²+1=X²+1
Wenn aber beide zu multiplizierende Zahlen mehr als 10 Ziffern hat kann es bei der Mult. vorkommen, dass ein Koeffizient 10 oder größer wird, was im dekadischen System zu Übertragen führt, nicht aber bei der Polynommult.
Ansonsten bleibt nur die aus der Grundschule bekannte schriftliche Multiplikation, nur in diesem fall deutlich einfacher.
Asna Auf diesen Beitrag antworten »

Also im normalen COMP Modus erhalte ich diese gekürzte Variante:


aber genauer bekomm ich das aus dem Rechner nicht heraus =(


Ich habe gerade noch einen BINÄREN Modus gefunden:
SETUP -> BASE_N -> grüne BIN Taste
Jedoch kann ich da nur Multiplikationen bis 1111111 x 111111 [7x6 Stelllen] rechnen.

*EDIT* Und ich sehe gerade, der rechnet was ganz anderes Augenzwinkern
-> Also wäre ich einfach nur happy wenn mir mein TR bei 11011001010*1110100101 sowas wie 12223313332003441044 oder ähnlich herausbringt, damit ich 2, 3, 4 mit 0, 1, 0 ersetzen kann.
Captain Kirk Auf diesen Beitrag antworten »

Bei weiterer Handhabung von TR steige ich aus (ich hab selber nur einen fast 20 Jahre alten)

Im Zweifelsfall: Schriftliches Multiplizieren.
 
 
Asna Auf diesen Beitrag antworten »

Danke, nachdem ich das ganze noch 3x durchgerechnet habe, habe ich den Fehler gefunden, hatte bei h(x) eine 0 mit 1 vertauscht :-( Ich freu mich scho auf die Klausur ;D


Danke Kirk für die Hilfe !!

*closed*
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »