Ein Symbol in Läufen
AFB I–IIDie Abbildung zeigt ein Schwarz-Weiß-Symbol aus 6 Zeilen zu je 8 Pixeln (S = schwarz, W = weiß). Es wird zeilenweise mit Anzahl-Wert-Paaren codiert. Für die Anzahl werden 3 Bit, für den Wert 1 Bit gespeichert.
- Stellen Sie die Lauflängencodierung aller sechs Zeilen dar.
- Berechnen Sie die Länge der Codierung in Bit und vergleichen Sie sie mit dem Original.
- Geben Sie die Pixelzeile an, die zum Code 1S 6W 1S gehört.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Zeile 1 und 6: 2W 4S 2W · Zeile 2 und 5: 1W 2S 2W 2S 1W · Zeile 3 und 4: 8S.
Erwartungshorizont zu Aufgabe b)
Mit 3 Bit ist die Anzahl höchstens 7 — der 8er-Lauf in Zeile 3 und 4 muss geteilt werden (7S 1S). Läufe: 3 + 5 + 2 + 2 + 5 + 3 = 20 Paare → \(20\cdot4=80\) Bit. Original: \(6\cdot8=48\) Bit. Der Code ist länger (167 %).
Erwartungshorizont zu Aufgabe c)
SWWWWWWS
Messwerte eines Temperatursensors
AFB II–IIIEin Sensor liefert jede Minute eine Temperatur als ganze Zahl von 0 bis 255 (8 Bit). Eine Stunde ergibt eine Liste mit 60 Werten, die sich oft lange nicht ändern. Die Werte werden als Paare (Anzahl, Wert) gespeichert: Anzahl mit 4 Bit, Wert mit 8 Bit.
Die ersten 20 Werte: 21 21 21 21 21 21 22 22 22 22 22 22 22 22 22 22 22 22 22 22
- Wenden Sie die Lauflängencodierung auf die 20 Werte an und bestimmen Sie die Länge in Bit.
- Schätzen Sie ab, wie lang die Codierung einer Stunde im ungünstigsten und im günstigsten Fall wird.
- Implementieren Sie eine Python-Funktion
lauflaenge(werte), die zu einer Liste von Werten die Liste der Paare liefert (Anzahl höchstens 15). - Beurteilen Sie den Vorschlag, die Temperaturen vor dem Codieren auf ganze 2 Grad zu runden.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Hinweis zu Aufgabe d)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
6-mal 21, dann 14-mal 22: Paare (6, 21), (14, 22) → \(2\cdot12=24\) Bit statt \(20\cdot8=160\) Bit.
Erwartungshorizont zu Aufgabe b)
Ungünstig: 60 Paare → 720 Bit statt 480 Bit (150 %). Günstig: 60 = 15 + 15 + 15 + 15 → 4 Paare → 48 Bit (10 %).
Erwartungshorizont zu Aufgabe c)
def lauflaenge(werte): paare = [] i = 0 while i < len(werte): anzahl = 1 while (i + anzahl < len(werte) and werte[i + anzahl] == werte[i] and anzahl < 15): anzahl = anzahl + 1 paare.append((anzahl, werte[i])) i = i + anzahl return paare
Erwartungshorizont zu Aufgabe d)
Gerundete Werte ändern sich seltener → längere Läufe, kürzerer Code. Dafür ist das Verfahren insgesamt verlustbehaftet: Die genaue Temperatur ist nicht mehr rekonstruierbar. Sinnvoll, wenn eine Genauigkeit von 2 Grad genügt (z. B. Raumklima-Anzeige), nicht für wissenschaftliche Messreihen.
