Begleitmaterial zum Unterricht M104 «Codesysteme»

Binäre-, Alphanumerische- und Barcodes

1.0 Studium der Grundlagen zu Codes

Erarbeiten sie die Theorie zu folgenden Themen:

  • Codesysteme (BCD, Aiken, 2-aus-5, Graycode, Exess-3)
  • Alphanumerische Codes ASCII und Unicode
  • Selbstkorrigierende Codes (Hamming)
  • Barcode (EAN-8, EAN-13, QR)

und erstellen sie eine Zusammenfassung in der Grössenordnung von 1..2 Seiten. Etwa so, wie wenn sie einen Spickzettel für eine Prüfung zusammenstellen würden. Sie finden z.B. auf dieser Webseite entsprechende Fachbeiträge.

1.1 Aufgaben zu Codes

  • Erstellen Sie die Codetabelle für einen Aiken-Code (Bild Aufgabe 1), nennen sie seine Eigenschaften, Einsatzgebiet und machen sie eine Aussage über eine allfällig vorhandene Redundanz. Hinweis: Der Aiken-Code ist eindeutig definiert, obwohl seine 2-4-2-1-Wertigkeit mehrere Lösungen zulassen würde. Der Aiken-Code ist nämlich symmetrisch, was soviel bedeutet, dass nur die ersten fünf und letzten fünf Kombinationen genutzt werden.
  • Der BCD-Code (Bild Aufgabe 2) hat die Wertigkeit 8-4-2-1. Exakt die gleiche Wertigkeit wie der Dual-Code. BCD bedeutet Binary Coded Decimal. Das heisst, vier Bit entsprechen einer Dezimalzahl 0..9. Was wird nun wohl der Unterschied zwischen den beiden Codes sein? (Tipp: Pseudotetraden und Redundanz)
  • Erstellen Sie die Codetabelle für einen 2-aus-5-Code (Bild Aufgabe 3) für die Dezimalzahlen 0..9. Dieser Code hat keine Wertigkeit. 2-aus-5 bedeutet: Jeweils 2 Bit sind binär «1», die restlichen drei Bit sind binär «0». Was sind die Eigenschaften dieses Codes?
  • Der Gray-Code (Bild Aufgabe 4) wird z.B. für die Winkelcodierung verwendet. Es handelt es sich um einen einschrittigen Code. Erstellen sie die Codetabelle und machen sie eine Aussage zur Stellen-Wertigkeit dieses Codes. Warum könnte ein solcher Code Vorteile haben bei der Winkelmessung auf Rotoren?
  • Sie erhalten folgenden 11-bittigen Hammingcode, der ein ASCII-Zeichen repräsentieren soll: «1 1 1 0 0 1 0 1 1 0 0». Welcher Buchstabe wurde ihnen übermittelt? (Maximale Fehleranzahl ist ≤ 1)
  • Sie erhalten folgende 7-stellige Zahl: «3 1 7 7 2 4 6». Erstellen Sie einen EAN-8-Barcode. Verwenden Sie das vorgegebene Raster (Bild Aufgabe 5) und vergessen Sie das Prüfzeichen nicht.

1.2 Aufgaben zum Alphanumerischen Code «Unicode»

Sie benötigen für diese Aufgaben Musterdateien, die sie hier herunterladen können: UnicodeSamples.zip

  • Untersuchen sie mit einem Hexeditor und einem Texteditor ihrer Wahl die Dateien:
    Sample1_ascii (Enthält 7-bit ASCII-Zeichen)
    Sample2_utf8 (Enthält 7-Bit ASCII-Zeichen)
    Sample3_ascii (Enthält 8-Bit ASCII-Zeichen)
    Sample4_utf8 (Enthält 8-Bit ASCII-Zeichen)
    Sample5_utf8 (Enthält 4 chinesische Zeichen)
  • Was stellen sie fest bezüglich der Länge und Codierung der UTF-8 Zeichen gegenüber den ASCII-Zeichen?
  • Was will uns Sample5_utf8 sagen?
  • Erstellen sie ein Word-File mit Schriftzeichen, die ihre PC-Tastatur nicht zur Verfügung stellt. Z.B. das Euro-Zeichen. Benutzen sie die im Theorieteil vorgestellten UTF-8 Eingabemethoden

1.3 Aufgabe Dateiformat «MP3» analysieren

Bei dieser Aufgabe werden wir uns mit einem Dateiformat, nämlich dem «MP3» oder eigentlich «MPEG-1 Audio Layer III» bzw. «MPEG-2 Audio Layer III» (was alles dasselbe bedeutet) beschäftigen.  Sie sollen dabei mit einem Hex-Editor den Dateiinhalt untersuchen. Sie erhalten das zu analysierende MP3-File hier: Hula-Hoop.mp3. (Übrigens ein Soundschnipsel aus dem Animationsfilm Madagascar-2

Analysieren sie das MP3-File mit einem Hex-Editor ihrer Wahl. (Hinweise zu Hex-Editoren liefert die englischsprachige Wikipedia unter "Comparison of hex editors"). Beachten sie dabei folgendes: Ein MP3-File besteht abwechselnd aus MP3-Headern und MP3-Daten. Ein MP3-File kann von einem ID3-Tag umschlossen sein. Ebenfalls kann das File ganz am Anfang XMP-Metadaten besitzen!. Der MP3-Header ist aber eindeutig mit einleitend 11+1 gesetzten Bits gekennzeichnet, also FFF.
(Das MP3-Fileformat wird sowohl auf der deutschen, wie auch der englischen Wikipedia exakt beschrieben)

  • Spielen sie das Audiofile ab
  • Welche Zusatzinformatinen können sie mit dem Hex-Editor aus den ID3-Tag's herauslesen?
  • Analysieren sie den MP3-Header und nennen sie die darin gespeicherten Audioparameter (Codec, Samplingrate, Sampling-Frequen etc.)

Und hier noch ein Hinweis, wo sie im Hexdump suchen sollten:

Lösungen zu 1.1 Codes

  • Erstellen Sie die Codetabelle für einen Aiken-Code (Bild Aufgabe 1), nennen sie seine Eigenschaften, Einsatzgebiet und machen sie eine Aussage über eine allfällig vorhandene Redundanz. Hinweis: Der Aiken-Code ist eindeutig definiert, obwohl seine 2-4-2-1-Wertigkeit mehrere Lösungen zulassen würde. Der Aiken-Code ist nämlich symmetrisch, was soviel bedeutet, dass nur die ersten fünf und letzten fünf Kombinationen genutzt werden. = Siehe Lösung Aufgabe 1. Eigenschaften: Symmetrischer Code mit Vorteil bei Komplementbildung. Zahlen ab- oder aufrunden anhand der ersten Stelle (<5 ab/>=5 auf). Gerade/Ungerade Zahl anhand der letzten Stelle beurteilbar. Einsatz: Rechenmaschinen. Redundanz: 6 Bitkombinationen (in der Mitte der Tabelle) werden nicht verwendet. Sogenannte Pseudotetraden (PT)
  • Der BCD-Code (Bild Aufgabe 2) hat die Wertigkeit 8-4-2-1. Exakt die gleiche Wertigkeit wie der Dual-Code. BCD bedeutet Binary Coded Decimal. Das heisst, vier Bit entsprechen einer Dezimalzahl 0..9. Was wird nun wohl der Unterschied zwischen den beiden Codes sein? (Tipp: Pseudotetraden und Redundanz) = Siehe Lösung Aufgabe 2. Beim Dualcode werden alle 16 Bitkombinatinen verwendet. Beim BCD nur deren 10. Vorteil des BCD-Codes: 4 Bit entsprechen einer Dezimalstelle. Nachteil des BCD-Codes: Redundanz. (Pseudotetraden (PT). D.h.: 6 Bitkombinationen werden nicht verwendet. Möglicher Einsatz: Dezimalanzeige mit z.B. anschliessender Decodierung für 7-Segment-Anzeige.
  • Erstellen Sie die Codetabelle für einen 2-aus-5-Code (Bild Aufgabe 3) für die Dezimalzahlen 0..9. Dieser Code hat keine Wertigkeit. 2-aus-5 bedeutet: Jeweils 2 Bit sind binär «1», die restlichen drei Bit sind binär «0». Was sind die Eigenschaften dieses Codes? = Siehe Lösung Aufgabe 3. Dies ist eine Möglichkeit für einen 2-aus-5-Code. Es sind pro Dezimalwert nur immer zwei Bit's auf logisch "1". Somit kann mit einer Quersumme (=2) eine fehlerhafte Bitübertragung festgestellt werden. Allerdings auch nicht ganz zuverlässig. Sollten sich z.B. ein 0-Bit und ein 1-Bit "gedreht" haben, merkt man das später selbstverständlich nicht, weil die Summe ja immer noch 2 ist. Hier bieten Hamming-Codes mehr Sicherheit.
  • Der Gray-Code (Bild Aufgabe 4) wird z.B. für die Winkelcodierung verwendet. Es handelt es sich um einen einschrittigen Code. Erstellen sie die Codetabelle und machen sie eine Aussage zur Stellen-Wertigkeit dieses Codes. Warum könnte ein solcher Code Vorteile haben bei der Winkelmessung auf Rotoren? = Siehe Lösung Aufgabe 4. Zwischen zwei Dezimalwerten wechselt jeweils nur ein Bit. Übertragungsfehler bei sich kontinuierlich ändernden digitalen Signalen auf mehradrigen Leitungen werden so verringert, da sich unterschiedliche Laufzeiten nicht auswirken können.
  • Sie erhalten folgenden 11-bittigen Hammingcode, der ein ASCII-Zeichen repräsentieren soll: «1 1 1 0 0 1 0 1 1 0 0». Welcher Buchstabe wurde ihnen übermittelt? (Maximale Fehleranzahl ist ≤ 1) = «1 1 1 0 0 1 0 1 1 0 0»  ergibt für alle Stellen wo Bit=1: 1011/1010/1001/0110/0100/0011 und somit 1001. Das bedeutet, dass die 9. Stelle falsch ist. Die Korrektur würde folgendes ergeben: 11000101100 ergibt ohne die vier Hamming-Bits an der Stelle 1-2-4-8 den Wert: 110'0101 = 65Hex = «e» (Es wird ein 7-bittiger ASCII-Code verwendet)
  • Sie erhalten folgende 7-stellige Zahl: «3 1 7 7 2 4 6». Erstellen Sie einen EAN-8-Barcode. Verwenden Sie das vorgegebene Raster (Bild Aufgabe 5) und vergessen Sie das Prüfzeichen nicht. = Siehe Lösung Aufgabe 5. EAN-8-Prüffzifferberechnung für 3177246: 3*3 + 1*1 + 7*3 + 7*1 + 2*3 + 4*1 + 6*3 = 66. Differenz der Summe zum vollen Zehner = 4

Lösungen zu 1.2 Alphanumerischen Code «Unicode»

Sie benötigen für diese Aufgaben Musterdateien, die sie hier herunterladen können: UnicodeSamples.zip

  • Untersuchen sie mit einem Hexeditor und einem Texteditor ihrer Wahl die Dateien:
    Sample1_ascii (Enthält 7-bit ASCII-Zeichen) = Inhalt von Sample1_ascii: BERN
    Sample2_utf8 (Enthält 7-Bit ASCII-Zeichen) =  Inhalt von Sample2_utf8:  BERN (Identisch wie Sample1, da 7Bit ASCII-Zeichen)
    Sample3_ascii (Enthält 8-Bit ASCII-Zeichen) = Inhalt von Sample3_ascii: Züri (Erweiterter 8Bit ASCII Zeichensatz)
    Sample4_utf8 (Enthält 8-Bit ASCII-Zeichen) = Inhalt von Sample4_utf8:  Züri (Das "ü" benötigt nun 2 Byte als utf8)
    Sample5_utf8 (Enthält 4 chinesische Zeichen) = Inhalt von Sample5_utf8:  4 chinesische Zeichen zu je 24 Bit pro Zeichen. Bedeutung der chinesischen Zeichen ist in etwa Berufsschule
  • Erstellen sie ein Word-File mit Schriftzeichen, die ihre PC-Tastatur nicht zur Verfügung stellt. Z.B. das Euro-Zeichen. Benutzen sie die im Theorieteil vorgestellten UTF-8 Eingabemethoden = Siehe Hinweis in entsprechendem Fachartikel zu Unicode

Lösung zu 1.3 Dateiformat «MP3» analysieren