denken kann, um das jetzt einmal möglichst gut auszutarieren.
Funktioniert dieses Verfahren natürlich, umso besser, je größer die Ahlenzahl der Urwörter ist.
Und umso gleichmäßiger die Unterteilungen sind. Das heißt,
wenn ich also hier ein Zeichen habe,
was mit einer Wahrscheinlichkeit von 0,9 vorkommt und dann 50 Zeichen mit sehr klein Wahrscheinlichkeiten,
dann kriege ich jetzt natürlich in dem Sinne keinen optimalen Code hin,
weil dann dieses eine Zeichen,
ja also im Prinzip dann schon von der Kodierung eigentlich deutlich weniger als ein Bit bräuchte,
damit man das dann optimal hinbekommt.
Eine Frage
Zwei Mal. Nein, eben nicht. Die generierten Codewörter
werden unterschiedlich lang. Es ist aber aufgrund dieses Konstruktionsverfahrens
eindeutig gegeben, dass sich eigentlich immer die Phano-Bedingungen erhalte.
Das heißt, ihr Gruppe füge ich dann ja immer nur,
wenn ich das immer noch weiter unterteile, zusätzliche Bitte beziehungsweise Codierungszeichen hinzu.
Kommen wir jetzt gleich noch Beispiele. Ich denke mir,
dann wird das vielleicht klarer. Wenn es heißt,
vielleicht hole ich da eine einzelne Stelle gesetzt,
wenn man das wieder aufteilt. Theoretisch kann es leider so sein,
dass man als Menge in der Kurve oder trotzdem eine Menge hat,
die Anzahl der Elemente, dann spricht man dann zwei Jahre Prozent.
Da muss man das dann fragen. Bei eins vielleicht
ein Stück Wort. Also die Code-Ratter können,
also wenn das jetzt eine Zweierpotenz ist und die beispielsweise jetzt alle gleiche Wahrscheinlichkeit haben,
würde das Verfahren so enden,
dass alle Code-Wörter live lang wären und ich dann letztendlich einen Block-Code rausbekomme.
Aber auch ein Block-Code erfüllt die Fahnebedingungen,
das heißt,
er ist briefixfrei
Also das stimmt schon. Wann sonst noch Fragen? Ansonsten
kommt jetzt also gleich nochmal ein Beispiel. Denkt man,
dann wird das etwas abstrakte Vorgehen, was ich jetzt,
also hier versucht habe, irgendwie so ein bisschen anschaulich zu formulieren.
Klarer. Also wir haben jetzt hier vier Symbole,
A, B, C, D,
mit Wahrscheinlichkeiten von 0,45 für A, 0,1 für B,
0,154C und 0,34D. Nicht der erste Schritt wäre jetzt,
dass ich die Symbole anhand ihrer Wahrscheinlichkeiten in absteigender Reihenfolge sortiere,
wäre dann eben A, D, C, B,
also 0,450,3 und so weiter.
Nicht dann wird das Ganze jetzt eben so unterteilt,
dass ich zwei möglichst gleich große Gruppen bilde. Das heißt,
die eine Gruppe besteht eben nur aus dem Symbol A,
mit der Wahrscheinlichkeit 0,45 und die andere Gruppe aus diesen drei Symbolen,
mit logischerweise zusammengerechneter 0,55.
So, das A wird mit Null kodiert,
alle anderen beginnen mit einer Eins und dann muss das Verfahren
natürlich noch entsprechend weiter angewandt werden. Das heißt,
ich nehme jetzt hier diesen Rest und unterteile das wieder,
erhalte dann eben einmal D und einmal C und
Im dritten Schritt wird das unterteilt und insgesamt ergeben sich dann eben als Code-Worte,
dass A mit einer Null, die mit 1-0, 10 mit 1-1-0 und B mit 1-1 kodiert wird. So,
und wenn man sich jetzt für diesen Code ansieht,
die mittlere Codewortlänge, die ich jetzt also einfach erstmal dadurch berechne,
dass ich quasi sage,
wie viele Bits brauche ich jetzt hier für jedes Codewort und wie groß ist die Wahrscheinlichkeit der Codeworte und dass eben entsprechend Multiplizierung aufsummiere,
sage ich also, 0,45 mal eins,
weil A ist mit einem Bit kodiert, plus 0,3,
das wäre also jetzt hier quasi die Wahrscheinlichkeit von dem D,
mal den Zwei Bit, plus 0,15 mal drei,
plus 0,1 mal drei,
erhalte ich dann insgesamt als Nummer 1,8,
nicht im Vergleich,
wenn ich sage,
ich habe einen Blockcode für vier Zeichen mit zwei Bit,
hätte ich dann jemals
mittlere Codewortlänge zwei
Gut, das kann man natürlich jetzt eben auch für entsprechend größere Beispiele machen.
Nicht also als Beispiel wäre jetzt hier sowas wie Deutsche Großbuchstaben,
also Leerzeichen und jetzt eben hier irgendwie einen ganzen Satz von Großbuchstaben und Umlauten,
mit jetzt irgendwelchen Wahrscheinlichkeiten, die sich dann also irgendeinen Linguist mal zusammengesammelt hatte.
Und da sieht man dann eben,
dass dann eben sehr das Ganzverfahren dann überhaupt erstmal einen richtig großen Baum erzeugt,
nicht wo ich dann eben für die am häufigsten vorkommenden Zeichen,
nämlich Leerzeichen, E und ein N,
der nieweils Dreiwitz benötige und das Ganze dann eben entsprechend unterteilt wird bis zu zwölf Bit,
mit denen ich, also die vergleichsweise seltenen Buchstaben,
Kuh und exkodieren würde.
Das zweite Verfahren, wo ich jetzt quasi eine Quellenkodierung aufgrund
der Symbolhäufigkeiten vornehme, wäre dann die Kodierung nach Huffman.
Auch da gleiche Voraussetzung, eine Menge von Wörtern
mit zugehörigen Wahrscheinlichkeiten
Diesmal bären die Wörter quasi ein umgekehrterer,
also ein aufsteigender Reihenfolge der Wahrscheinlichkeiten sortiert. Und das,
was man dann bei diesem Verfahren eine Halfman machen würde,
ist, dass man letztendlich in jedem Schritt,
die zwei Wörter mit der geringsten Wahrscheinlichkeit, das heißt,
die beiden haben links weitesten links stehenden Wörter,
zusammenfasst durch ein neues ersetzt,
dieses neue Wort erhält dann logischerweise auch die Summe der Wahrscheinlichkeiten
Das Ganze wird dann quasi wieder passend einsortiert. Und ich gucke dann eben wieder,
welches sind jetzt die am weitesten links stehenden Wörter.
Dieses Verfahren wird dann eben auch entsprechend wiederholt,
bis ich eben eine Menge mit nur noch zwei Wörtern erhalte.
Und aufgrund dieser paar weisen Zusammenfassung baut man damit dann
quasi rekursiv sowas wie einen gesamten Baum auf.
Und Beispiel dazu kommt jetzt also auch
rein nochmal
Dieses Verfahren von Halfman hat halt eben noch als besondere Eigenschaft,
dass es jetzt eben mathematisch gesehen, die kleinstmöglichere, mittlere Codewortlänge erzeugt.
Kurzer Beweis, oder zumindest ein angedeuteter Beweis.
Kommt dann also auch gleich noch ein paar Folien später.
Letztendlich sind allerdings die Abweichungen jetzt zwischen einer Halfman und
einer Fahne Codierung relativ gering. Das heißt also,
beides sind eigentlich Verfahren, die da also vergleichsweise gut funktionieren.
Die Solvement-Verfahren wird also bei vielen Ich sag mal, standardmäßig eingesetzten,
Kompressionsalgorithmen, also JPEG zum Beispiel, ist das mit drin.
Impact im Prinzip natürlich dann implizit dadurch auch,
aber auch noch bei einigen anderen Kompressionsverfahren.
Angewandt jetzt also auf dies sehr kleine Beispiel mit diesen vier Buchstaben,
erhalte ich dann eben entsprechend der Sortierung der Wahrscheinlichkeiten,
also diese Reihenfolge wie CDA, nicht die am weitesten links stehenden,
also B&C werden zusammengefasst,
ergeben quasi ein neues Wort
Hier mal jetzt mit E bezeichnet. Das hat dann eben
als Summe der Wahrscheinlichkeiten 0,25. Wird demzufolge dann so einsortiert,
dass ich dann quasi hinterher als Sortierung erhalte, e,
die A. Nicht dann wird dem zuvor gasen und wieder
D und E im nächsten Schritt zusammengefasst als neues Wort.
Mit der Wahrscheinlichkeit 0,55 und ich habe dann eben nur noch
dieses neue Wort F und A. Und wenn ich das dann entsprechend aufteile,
erhält man dann eben diese vier Codewörter,
vorbei sich damals, also hinsichtlich der Länge der Codewörter,
also jetzt für dich mit dem Farno-Beispiel, da also nichts geändert hat.
Bei etwas größeren oder anderen Beispielen,
also hier nochmal ein Alphabet jetzt mit sieben Zeichen,
hier schon absteigend sortierter Reihenfolge, entsprechend der, nee, gar nicht sortiert.
Also ein Siebenzeichen hier mit den relativen Häufigkeiten, also jetzt statt Wahrscheinlichkeiten,
das wird dann also entsprechend der Häufigkeiten sortiert, entsprechende Kotbaum aufgebaut.
Etwas anschaulicher wird das dann hier. Wo ich jetzt eben sage,
ich habe jetzt hier in aufsteigender Reihenfolge meine Kotwörter oder meine Symbole,
fasse dann die am weitesten Linksstehenden zusammen,
also in diesem Fall D und R,
erhalte dann für dieses neue Symbol als relative Häufigkeit 6. Demzufolge wird das dann also auch an entsprechender Stelle,
sprich hier einsortiert,
habe dann also als Reihenfolge im nächsten Schritt LN,
dann eben dieses neue Symbol S-I-E.
Das ist genau dieses hier. Auch hier werden wieder
die am weitesten linksstehenden zusammengefasst. Entsprechend neu einsortiert und man
verfährt dann eben so lange mit dem Verfahren weiter,
bis sich das dann eben komplett aufgelöst habe und dann letztendlich einen kompletten Baum erhalte.
Und wenn ich den dann wieder rückwärts aufdröseln,
beziehungsweise hier dann mal komplett gezeichnet hätte,
würde das Ganze dann eben so aussehen,
wo ich dann hier jetzt für dies Beispiel dann auch die entsprechenden Codewörter erzeugt habe.
Denn wenn man jetzt eine Folge irgendwie übermittelt bekommt,
dann ist es eben aufgrund der Prefixfreiheit eigentlich immer möglich,
auch ohne irgendwelche Trendzeichen, das Ganze,
also in diesem Fall jetzt hier das Wort,
Riese zu dekodieren
Nicht auch hier nun mal als Beispiel das Ganze jetzt
von etwas entsprechen oder eine deutlich größere Datenmenge,
also jetzt hier eben auch wieder deutsche Großbuchstaben.
Sonderzeichen beziehungsweise ein Ausschnitt davon, wo dann also hier entsprechend
die verschiedenen Codewörter mit drauf sind.
Und auch hier sieht man es also hinsichtlich der Codewortlängen,
keinen sehr großen Unterschied zu dem Verfahren nach Fahren und nicht.
Das heißt also auch hier habe ich für das Leerzeichen
EU und N jeweils drei Bit benutzt
Ich bin dann eben bei den entsprechend seltenen Buchstaben,
Q und X dann also hier auch mit einer Länge von zwölf Bit jeweils dabei.
Nicht als kompletter Baum würde das Ganze dann eben entsprechend so aussehen. Und wenn ich das jetzt also entsprechend dieser Häufigkeiten ausrechne und sage,
wie viele Bit pro Zeichen ich letztendlich jetzt durchschnittlich übertrage,
also diese mittlere Codewortlänge,
das was ich also hier in Diesem mal ein Beispiel hier mal berechnet habe,
wo ich dann eben sage,
Wahrscheinlichkeit mal Kotwortlänge und das dann dementsprechend multipliziere und das dann über sämtliche Kotworte aufsummiere,
da hält man dann eben hier in diesem Beispiel,
dass ich dann eben ungefähr viereinhalb Bit pro Zeichen benötige.
Gut, also hier ist jetzt also als Vergleich angemerkt,
1,7 mal besser als Aski, na gut,
also mit Aski kann ich auch noch ein paar mehr Zeichen darstellen,
aber nichtsdestotrotz sieht man,
dass man dann also hier doch schon besser komprimiert,
als wenn man jetzt also eben einen rein sieben oder sechs Bit-Code verwenden würde.
Gut, hier ist jetzt nochmal angedeutet der Beweis,
wonach ich jetzt eben quasi sage,
dass ich also bei so einer Hafenkodierung,
also letztendlich die minimale Kotwortlänge erreiche,
die Grundidee bei diesem Beweis ist eigentlich analog zu dem Konstruktionsverfahren oder andersrum,
also eigentlich rückwärts zu dem Konstruktionsverfahren aufgebaut.
Und zwar, dass ich jetzt eben sage,
als Voraussetzung, ich habe also einen Huffman-Code mit durchschnittlicher Codelänge
L. Ich habe einen anderen Briefix-Code mit einer Codelänge M.
Wobei jetzt eben dieses M kleiner als L sein soll.
Jetzt kann man also zu beiden kurz die entsprechenden Dekodierbäume erzeugen.
Und das, was man jetzt macht, ist,
dass man jetzt von diesen Dekodierbäumen in der größten Tiefe quasi die Endknoten
der Symbole entfernt und die Gewichte dann eben dem Vorgängerknoten zuordnet.
Das heißt, das ist eigentlich genau das,
was ich also bei diesem Konstruktionsprinzip von dem Hafen im Baum auch letztendlich mache,
dass ich zwei Symbole immer zusammenfasse und dann eben dem Zufolger auch ihre Gewichte zusammenfasse.
Die Knoten werden dann eben gestrichen. Wenn ich das jetzt
eben für alle Knoten dieser Tiefe mache,
reduziert sich dem zufolge dann natürlich auch die Kotwortlänge
Ja, und wenn man das dann eben entsprechend fortsetzt,
führt das dann eben dazu, dass also quasi der Huffman-Code
auf einen Baum mit der durchschnittlichen Länge 1 reduziert wird.
Und angenommen, ich hätte jetzt eben einen CoD mit einer Kotlänge kleiner Ämtern,
hätte der eben eine Länge kleiner eins, was nun nicht möglich ist.
Und damit ist dann quasi indirekt hergeleitet, dass eben dieser Huffman-Code,
also das heißt, dieser Damai erzeugte Baum optimal ist. Ich hatte ja eben schon angedeutet,
diese ganzen Verfahren funktionieren natürlich immer ganz gut,
wenn ich jetzt also möglichst viele Symbole habe und die ja sagen wir jetzt auch möglichst kleine Häufigkeiten habe,
wenn jetzt aber Symbole mit Häufigkeiten größer als 0,5 dabei sind,
dann müsste das eben nach dieser hafenden Kodierung letztendlich ja weniger als ein Bit zuordnen,
kann ich nicht machen.
In diesem Fall kann man dann eben wirklich nur feststellen,
also sowohl Huffman als auch Farnokodierung oder jemand anderen Verfahren sind da dann natürlich ineffizient,
weil wenn ich jetzt eben sage, ich habe beispielsweise ein Symbol,
was wirklich in 80 Prozent der Fälle vorkommt.
Nicht, also auch dafür muss sie dann immer noch
ein Bitch spendieren, um das jetzt entsprechend zu kodieren.
Dafür gibt es dann andere Kodierungsverfahren, die ich jetzt also hier nicht weiter vorstellen werde. Ich aber nur mal zur Motivation,
also beispielsweise, wenn ich jetzt sowas habe,
wie irgendwelche Informationen aus der Signalverarbeitung, beziehungsweise wenn ich jetzt eben irgendwie sowas habe,
wie jetzt also zum Beispiel ein Bild mit einheitlicher Hintergrundfarbe,
das möchte ich jetzt also möglichst effizient kodieren und also angenommen,
ich würde das jetzt hier für die Folien machen,
da kommt halt eben erstmal überwiegend Weiß drin vor.
Und da sind dann im Prinzip jetzt andere Verfahren sinnvoller,
wie zum Beispiel sowas wie Lauflängenkodierung,
wo ich im Prinzip sage, Ich habe jetzt am Stück,
wenn ich das Beispiel irgendwie jetzt sortiert bekomme und dann irgendwie meinetwegen jetzt zahlenweise durchgehe,
ich habe jetzt am Stück also erst mal 750 weiße Pixel,
da muss ich nur diese Information 750 mal und weißes Pixel letztendlich kodieren,
aber nicht jedes Pixel einzeln irgendwie über den Kot aufzählen.
Das ist im Prinzip das, was ich Lauflenkodierung nennt,
wird zum Beispiel dann benutzt bei der Übertragung von Faxgeräten Aber auch in Bildkompressionsalgorithmen,
also in GIF bzw. PNG ist dann sowas im Prinzip mit unter anderem mit drin.
Andere Verfahren wären also im Prinzip Transformation der Bildinformation in andere Betrachtungsräume,
also sowas wie Fuyetransformation oder Cosinus-Transformation, also beispielsweise JPEG-Verfahren basiert,
also auch auf so einer Cosinus-Transformation,
wo ich das Bild oder die Informationen dann quasi sukzessive in immer kleiner werdende Gruppen zerlege.
Und wenn ich jetzt eben viel gleichartige Informationen habe,
jetzt eben hier meinetwegen so einen gesamten weißen Bereich,
dann kann es eben sein,
dass dann eben bei einer bestimmten Gruppengröße dann eben wirklich gesagt werden kann,
das ist alles eine einheitliche Farbe und dann muss ich dann eben nur sagen,
in dieser Gruppengröße an der Stelle ist eben alles wahr ist
Gut, eine andere Eigenschaft, die dann da also auch noch mit reinkommt,
bei Kodierungsverfahren, ist jetzt, was würde ich machen,
wenn die Symbolhäufigkeiten nicht Apriori bekannt sind.
Also sowohl Farno als auch Huffman-Verfahren basieren ja darauf, dass ich sage,
ich habe also die und die Symbole mit den und den Häufigkeiten,
sortiere ich der Reihe nach und zerlege das eben entweder so oder so.
Wenn ich jetzt also irgendwelche Daten oder irgendwelche Informationen bekomme,
wo das im Prinzip erstmal nicht vorab bekannt ist,
beziehungsweise wo sich vielleicht auch während der Übertragung die Symbolhäufigkeiten ändern können.
Auch da gibt es Verfahren, die dann eben versuchen,
so was wie so ein Half-Man-Encoding zu machen.
Also ein Verfahren oder das Prominenteste hat also Donald Knoten 1985 entwickelt und er nennt sich dann Dynamic Halfman-Coding,
wo man im Prinzip sowohl auf der Encoder als auch auf der Dekodier-Seite letztendlich den gleichen Algorithmus verwendet,
wo ich eben sage,
auf der Encoda-Seite werden die Symbole da rein nach quasi in Tabellen irgendwo erst aufgesammelt.
Es wird eben geguckt, jeweils, wenn ich die Symbole empfangen habe,
wie groß sind deren Häufigkeiten, anhand der Häufigkeiten wird dann eben so ein Kodierbaum erzeugt,
das Ganze demzufolge kodiert und übertragen.
Und wenn man jetzt deutlich andere Symbole oder andere Symbolhäufigkeiten erhält
nach einer bestimmten Zeit oder nach einer bestimmten Folge von Symbolen,
dann wird eben dieser Kodierbaum, der dann eben nicht statisch ist,
vielleicht auch wieder umgebaut, um jetzt eben den anderen Häufigkeiten entsprechend Rechnung zu tragen.
Und genau das Gleiche passiert dann eben auch auf der Encoda-Seite,
wo dann eben auch die kodierten Symbole bzw. dann eben deren ersten Häufigkeiten quasi übertragen werden,
anschließend dann aber auch neue Kodierungen,
entsprechend aus dem Datenstrom heraus generiert werden können und das Ganze sich dann eben auch entsprechend anpassen kann.
Gut, anschließend noch eine Bemerkung zu der Farno-Bedingungen bzw. zu dieser Prefix-Freiheit,
um die jetzt bei etwas größeren Codes zu beweisen,
dass die gilt, gibt es also nach dem Mathematiker,
der das Saison rausgefunden hat, Leon, geh Kraft,
eine Unleichung, die an Kraft und Leichung heißt,
die letztendlich zeigt,
dass ein bestimmter Code eindeutig dekodier oder über ein bestimmter Code überhaupt erst eindeutig dekodierbar sein kann,
beziehungsweise wenn der Code eben diese Unleichung nicht erfüllt,
kann er gar nicht eindeutig dekodierbar sein
Sieht letztendlich so aus, dass ich sage, ich habe also einen SL-Lemändigen QC,
jetzt mit unterschiedlichen Codlingen von 1 bis insgesamt. Kotlänge,
maximal Kotlänge S, das Ganze über einem Zeichenvorrat aus Kuth-Zeichen,
also in unserem Fall werden das also immer 2 sein,
wenn wir jetzt da so rein, binär arbeiten,
aber hier ist es erstmal allgemein,
als Kunieres Alphabet beschrieben und Kraftungleichnung besagt eben,
dass die Summe Von E-Life 1 bis S. Eins durch Kuhhoch,
L.E.-Liner gleich 1 sein muss.
Letztendlich kann man das immer so interpretieren,
dass man sagt, Kuh ist jetzt die Anzahl der Zeichen.
Das sind jetzt die Codeling. Das heißt, Kuh hoch
den Codeling. Wären dann also quasi die unterschiedlichen Möglichkeiten oder
die unterschiedlichen Permutationen für meine Codewörter, die ich insgesamt nur
annehmen kann
Denn wenn ich das jetzt eben über alle möglichen Codelängen
quasi so berechne, eins durch dieses Kuh-Hoch-LI bilde,
das entspricht dann letztendlich den möglichen Codewortern beziehungsweise deren Wahrscheinlichkeiten.
Und die Summe dieser Wahrscheinlichkeiten muss dann eben kleiner gleich A1 sein.
Als Beispiel, also angenommen, ich hätte jetzt diesen Code aus
diesen vier Zeichen, der ist also nicht eindeutig dekodierbar.
Gut, in diesem Fall sieht man das natürlich vergleichsweise direkt,
weil, also das Zeichen eins,
hier in dem 1-1 natürlich mit drin ist und da dem zuvor war,
also diese Prefix-Freiheit, also die Fahne-Bedingungen, nicht erfüllt ist.
Aber nach der Kraftunleichung könnte man dann eben auch sagen,
ich habe ein Zeichen, also jetzt auf dem Binären Alphabet-Einzeichen,
was die Länge 1 hat,
also zwei hoch
Und dann eben entsprechender Kehrwert. Das ist also dieses eineinhalb,
bezieht sich also letztendlich hier auf dieses eine Zeichen der Länge 1.
Und ich habe insgesamt drei Zeichen, die jetzt als Länge 2-Bit haben.
Das heißt, hieraus hätte ich dann eben zwei,
hoch zwei, also dreimal ein Viertel.
Die Summe ist größer als eins und damit wäre dann ihm
diese Unleichung verletzt. Nicht andersrum, also ich hätte jetzt
hier ein Alphabet mit drei Symbolen
Oder entsprechend, oder auf diesem Alphabet sollen jetzt also neun
Codewörter beschrieben werden mit entsprechenden Codewortlängen. Eins, zwei,
zwei, zwei, zwei, dreimal die drei. Nicht,
wenn ich das jetzt in der Unleichung entsprechend oder entsprechend
dieser Formel ausrechnen würde, würde ich dann eben berechnen,
ein Drittel,
nämlich die Länge eins
Dann hätte ich hier fünfmal die Länge zwei,
also fünfmal drei hoch zwei und dreimal drei hoch zwei.
Die Summe von dem Ganzen ist eins. Also das heißt,
in diesem Fall würde ihm ein passender Prefix-Code existieren.
Nicht und ein Beispiel für diesen Code wäre dann
dieser Code hier unten.
Eine Frage
Gut, also die Frage ist jetzt, weil ich habe jetzt gesagt,
also ich habe hier diesen Code, der ist logischerweise nicht eindeutig dekodierbar,
verlässt jetzt hier also diese Kraft und Leichung.
Jetzt war die Frage,
wenn man die 0-0 streicht,
ist der Code logischerweise immer noch nicht eindeutig,
weil ich dann also immer noch hier mit dieser Codierung das Ganze nicht hätte,
beziehungsweise ich könnte also je zwei Wörter raus streichen,
hätte dann 1 und 1-1 als Codewörter,
was natürlich also auch nicht funktioniert
Im Prinzip kann man mit der Kraft- und Leichung eigentlich immer nur beweisen,
ob jetzt für gegebene Codewort-Längen über einem Zeichensatz ein, eindeutig dekodierbarer Code existiert.
Es ist aber damit also jetzt nicht gewährleistet, dass wenn ich jetzt,
also mir hier, also wie jetzt in diesem Beispiel,
in Anführungszeichen definitiv falschen Code ausgedacht habe,
dass der dann nicht nicht trotzdem die Fahnebedingungen verletzt.
Die Sache ist bloß,
wenn ich jetzt eben hier ein Zeichen streichen würde,
könnte ich jetzt letztendlich sagen,
es ist dann eben möglich mit diesem Codewort
Längen ein eindeutigen Code zu generieren,
der Würdlern bloß anders aussehen müssen
Und der würde an ihm genau dabei landen, also je nachdem,
ob ich den jetzt nach vorne oder nach Shannon generiere,
dass also im Prinzip dann immer diese 1-1
rausfällt und ich dann also diese drei Zeichen 0,
0-1 und 0-0 überbehalte.
Und das würde dann diese Leichung erfüllen. Aber gut,
man musste natürlich dann auch immer noch erstmal den richtigen Code finden,
auch dazu generieren können. Aber je nach geht es erstmal
nur darum, jetzt für irgendeinen gegebenen Code zu beweisen,
kann der überhaupt erstmal sein. Du musst jetzt auch mal sagen,
das ist natürlich ein triviales Beispiel,
aber wenn ich jetzt also entsprechend aufwendigen Code habe mit sehr vielen Zeichen,
mit großen Codewortlängen, dann ist es natürlich,
so jetzt auch erstmal nicht direkt ersichtlich,
kann das überhaupt funktionieren und dafür ist dann eigentlich diese Kraft und Leichung letztendlich sinnvoll.
Hier auch nochmal angedeutet, der Beweis,
wie jetzt eigentlich diese Kraft und Leichung funktioniert,
Das Ganze beruht eigentlich auf der Idee, dass ich sage,
wenn ich also einen Kuni ein Zeichenvorrat habe,
also sprich gut Zeichen.
Und ich habe als maximale Kotwortlänge die Länge M.
Dann kann ich insgesamt maximal sowas wie Kuh-Hoch-M-Zeichen darstellen
Und aufgrund dieser Häufigkeiten wird dann quasi geguckt,
wenn ich jetzt eben ein Kotworten mit einer bestimmten Kotwortlänge habe,
wie viele Zeichen es von diesen, insgesamt von den Zeichen letztendlich verbraucht.
Und daraus ergibt sich dann die Sohnleichung. Also das,
was jetzt hier angedeutet ist oder beschrieben ist, ist im Prinzip,
also hier oben erstmal nur die Kraft und Leichung,
also hier die linke Seite, kleiner gleich eins.
Und hier wird das Ganze jetzt eben umgeformt oder dadurch ersetzt,
dass ich jetzt eben sage,
Habe oder betrachte dann eben schon für eine oder für sämtliche Kotwortlängen,
die eben von 1 bis M gehen können.
Die Zeichen, die ich jetzt also bei dieser Kotwortlänge
insgesamt darstellen kann, das wäre dann eben Kuhhochjord.
Und die Zeichen, die ich jetzt also für diese Länge
letztendlich benutze. Das ist dann eben diese Anzahl U-Jord.
Und das ist dann eben das,
was man dann also letztendlich
hier rausziehen kann
Und damit gilt dann im Prinzip diese Unleichen,
wobei dann eben hiermit eben angedeutet ist,
wie jetzt eben wirklich für diese Länge QM,
wie viele Zahlen davon dann eben letztendlich benutzt werden.
Und gut, das ist also jetzt nur angedeutet,
wäre dann die Idee dazu so ein Beweis. Gut,
das war jetzt eigentlich das, was ich zur Quellencodierung,
beziehungsweise zu der Codierung vorstellen wollte, wo es also darum geht,
in der Codierung dafür zu sorgen, möglichst effizient,
mit möglichst wenig Bit meine Information darzustellen.
Wie gesagt, wichtig dabei eigentlich die beiden Verfahren, Fahnhofverfahren, Halfman-Verfahren.
Nicht dazu gibt es dann also auch Übungsaufgaben was,
beziehungsweise das ist dann auch häufig an irgendwelchen kleinen Beispielen, also in den Klausuren mit drin.
Bevor ich jetzt zu dem Bereich der Kanalkodierung komme,
wo es also darum geht,
mit der Kodierung jetzt was ganz anderes zu erreichen,
nämlich zu erreichen, dass ich möglichst effizient gegen Verfälschungen,
die jetzt vielleicht bei der Datenübertragung im Kanal auftreten können,
zu arbeiten, werde ich jetzt also nochmal einige Begriffe zur Informationstheorie einführen,
weil die dann teilweise auch entsprechend dann dafür benutzt werden.
Gut, was ist erstmal letztendlich Informationsbegriff beziehungsweise wie kann ich
jetzt also Informationen, die ich übertrage, messen.
Da kann man ja immer sagen, ich habe jetzt irgendwelche,
bislang hatte ich immer gesagt, das sollen immer irgendwelche Zeichen übertragen werden.
Die Zeichen haben ja immer irgendwelche Wahrscheinlichkeiten.
Generell kann ich natürlich das Ganze umsetzen und sagen,
ich habe sowas wie Ereignisse, AI, die sich gegenseitig ausschließen.
Jedes dieser Ereignisse hat eben irgendwie eine Wahrscheinlichkeit,
Nicht also bezogen auf die Zeichen würde es eben heißen,
dass wenn ich Zeichen übertrage, wäre dann eben das Ereignis,
es wird eben das und das Zeichen übertragen,
entsprechend seiner Häufigkeit, was dann eben dann eben dieser,
diese Wahrscheinlichkeit bestimmt.
So, damit ist im Prinzip erst mal ein stochastisches Modell definiert,
wo ich dann eben sage, ich habe Ereignisse,
die Wahrscheinlichkeiten haben,
in Bezug auf die Informationsübertragung heißt es eben,
ein Symbol wird mit einer Wahrscheinlichkeit empfangen
Trivialstes Beispiel. Ich habe eine Übertragung, habe für ein Symbol die Wahrscheinlichkeit 1.
Für alle anderen die Symbole demzufolge die Wahrscheinlichkeit null. Das heißt,
ich empfange immer dieses, genau dieses eine Symbol,
dann kann ich jetzt natürlich sagen,
wenn ich jetzt also auf die Informationen abziele,
der Empfang dieses Zeichens bringt mich nicht weiter,
weil ich sowieso aufgrund der Wahrscheinlichkeit weiß,
dass ich nur genau dieses Zeichen empfange.
Das heißt, der Informationsgewinn oder das, was dann also in Anführungszeichen Überraschung ist,
wird eigentlich umso größer, je kleiner diese Wahrscheinlichkeiten sind.
So, wie könnte man jetzt diese Information messen,
sage ich, also wir halten eine Nachricht mit einer Wahrscheinlichkeit,
Anschließend als nächstes Zeichen, also wieder unabhängig davon,
eine andere Nachricht, wie mit der entsprechenden Wahrscheinlichkeit.
Jetzt sind das erstmal voneinander unabhängige Ereignisse, demzufolge Wahrscheinlichkeitsrechnung,
ist die Wahrscheinlichkeit beide Ereignisse durch das Produkt beschrieben.
Jetzt kann ich natürlich sagen,
wenn ich jetzt irgendein Maß für die Information haben möchte,
dann ist, gilt letztendlich ja, dass also der Informationsgewinn,
umso größer wird, je kleiner die Wahrscheinlichkeit ist.
Also je kleiner das PI ist, also siehe dies Beispiel eben,
also bei einer Wahrscheinlichkeit von eins ist der Informationsgewinn null,
nicht aber je kleiner das Ganze wird, umso.
Jetzt könnte ich natürlich sagen, gut,
ich nehme jetzt einfach den Kehrwert der Wahrscheinlichkeit und das
ist mein Maß für den Informationsgewinn
Damit könnte man rechnen, das heißt, dies Maß wäre möglich.
Ich habe aber als Nachteil da dann eigentlich mit drin,
dass ich, wenn ich jetzt zwei solcher voneinander unabhängigen Nachrichten betrachte,
ich ja dann im Prinzip entsprechend hier dann auch irgendwie das Produkt der Wahrscheinlichkeiten betrachten müsste.
Und dann wäre eben diese Wahl von A als durch P entsprechend ein bisschen ungünstig,
da möchte man natürlich eigentlich lieber was haben, wo ich jetzt nicht,
also anknown irgendwie multiplizieren muss oder wo ich dann irgendwie was zahlen müsste,
sondern da wäre eigentlich irgendwas sinnig,
was, womit ich dann als additive Größe rechnen könnte.
Deswegen wird als Informationsmaß dann im Prinzip der Lugarithmus von 1
durch P gebildet. So, Schulmathematik, nochmal kurz zur Wiederholung.
Was ist der Lugarithmus? Umkehrfunktions-Exponentialfunktion, das heißt,
ich habe Ein gegebenes A und eingegebenes B. Und als Gleichung habe ich,
A ist gleich B hoch X und der Logarhythmus ist jetzt
eben genau diese Gleichung oder die Lösung X dieser Gleichung.
Das heißt, X wäre dann dem zuvor gelogarhythmus von A
zur Basis
Nicht als Beispiel der Logarhythmus zur Basis 2 von 8
wäre 3, weil 2 hoch 3 ist gleich 8. So,
jetzt hatte ich den Logarhythmus ja eigentlich genau wegen dieser Rechnerriegel hier rausgesucht,
wo ich dann nämlich sage,
für den Logarhythmus gilt eben Starter Multiplikation,
wird das dann eben in die Addition aufgesplittet.
Das heißt, Logarhythmus von x-mal Y ist Logarhythmus X. Plus
Nicht dann gilt quasi jetzt hier als Einheit B-Hochlogarithmus,
B von X ist gleich X, beziehungsweise Logarithmus zur Basis
B von B-Hoch X ist. Auch gleich X. Dann gilt,
dass ich die Basis des Logarhythmus quasi beliebig wählen oder umrechnen kann. Das heißt,
wenn ich jetzt eben den Logarithmus zu einer Basis B bestimme,
gilt,
mathematisch dann gesehen,
dass ich dann eben Logarithmus X zur Basis A geteilt
durch Logarithmus von B
zur Basis A
rechnen würde
Gut, das, was wir dann noch mit betrachten,
jetzt in der Informatik, ist ja dann immer irgendwie Basis
2. Da gehört dann eben Logarithmus X zur Basis 2,
ist Logarithmus von X durch Logarithmus 2,
beziehungsweise das ist dann der natürliche Logarithmus,
also zur Basis eh.
Das wäre dann eben entsprechend dieser Ausdruck,
den man dann eben statt des Logarithmus Duales
benutzen könnte
Gut, da sind wir nochmal kurz als Wiederholung zu den Rechenregeln.
Auch nochmal als Wiederholung oder nur als Anmerkung. Binärer, Luggerhythmus. Da geht es dann eben darum,
dass ich einen Logarhythmus zur Basis 2 bestimme für eine Zahl X und dass es dann eben im Prinzip nichts anderes als genau 0,
und dann eben hier entsprechende Bits, für die dann eben gilt,
dass die Summe BK, und zwar minus Cars,
also im Prinzip dann genau das, was man sonst als Nachkomma-Darstellung hätte.
Für BK kann dann eben null bzw. eins sein,
und was eben auch gilt, aufgrund dieser Regel,
dass der Logarithmus von x zum Quadrat,
gleich zweimal Logorithmus, x ist,
dass eben jetzt hier für diesen Logarithmus duales dann eben auch nichts anderes ist,
als der von x Quadrat ist dann eben nichts anderes,
als dass ich hier dieses Komma um eine Stelle verschiebe,
weil also das Mal zwei, was hier ist,
ist ja im Prinzip in der Dualkodierung da nichts anderes,
als das Verschieden des Kommas.
An dieser Stelle. Nicht damit könnte man dann beispielsweise
so als Pseudocode hier jetzt mal angedeuteten binären Algorithmus ausrechnen.
Voraussetzung dafür ist, dass ich den Eingangswert X
zwischen eins und zwei
Also das muss erst mal durch entsprechende Umrechnung passiert sein,
aber dann könnte ich quasi berechnen,
die Nachkommastellen dieser Binärdarstellung von Logarithmus Duales 2 von X,
wo ich dann eben sage,
I ist jetzt hier mein Index für die einzelnen Bild und ich reichne dann eben in einer Schleife,
je nachdem wie viele bitte ich dann entsprechend berechnen möchte,
dass ich eben den Weg von Xi quadriere, gucke,
es ist größer, leicht, zwei, wenn ja,
wird es durch zwei geteilt und als Bit 1 gesetzt,
andernfalls wird als Bit0 gesetzt und das Ganze dann eben entsprechend durcheteriert,
bis ich dann Nbit bestimmt habe, je nachdem,
wie viele das werden sollen.
Wenn man sich hier also nochmal irgendwie weiter schlau machen möchte,
beziehungsweise generell Logarhythmus, also in der deutschsprachigen Wikipedia im Artikel,
steht also beispielsweise genau dieses hier zum Binär-Logarhythmus so auch eins zu eins drin,
dass man da dann nochmal nachsehen kann.
Gut, jetzt dann wieder zurück auf das Maß,
wie wir
Informationen messen können
Dazu als Definition jetzt eben für den Informationsgehalt von Ereignissen mit einer Wahrscheinlichkeit,
dass ich jetzt eben sage, ich nehme diese Formel,
das heißt, ich habe jetzt die Wahrscheinlichkeit,
nehme dazu den Kehrwert,
um jetzt eben zu sagen,
entsprechend mit kleineren Wahrscheinlichkeiten wird der Informationsgewinn immer größer und bilde dann den Logarhythmus dazu,
um jetzt also irgendwie eine additive Größe zu haben
Nicht, dass es jetzt, also hier einfach willkürlich festgelegt.
Und dieses Größe I von AI ist dann eben der Informationsgehalt oder
die Information dieses Ereignisses AI beziehungsweise wird auch Entscheidungsgehalt genannt.
Aufgrund der Rechenregeln für Logo Outman kann ich dann eben Start dieses Ausdrucks
dann eben auch sagen, ich nehme minus Logarithmus-Duales von PI.
Also das heißt eins durch PI wird dann quasi quasi minus gemacht.
Nicht und mit dieser Definition gilt dann eben für zwei voneinander unabhängigen Nachrichten,
dass dann eben ich genau erreiche, dass ich eins durch PA mal PB,
The World Mustualis kann ich dann eben auftrennen in diese beiden Therme,
die ich dann einfach nur entsprechend addiere.
Das heißt, wenn ich zwei Nachrichten A und B erhalte,
wird dann eben auch einfach nur der Informationsgehalt aufsummiert
Das war ja der Grund dafür, weswegen ich also da
in dieser Größe diesen Logarithmus angesetzt habe. So, dieser Informationsgehalt,
also das, was jetzt hier oben diese Formel ist,
ist dann eine reelle Größe,
also eine Zahl,
die dann entsprechend zu einer reellen Zahl ausgerechnet werden kann
und wird in der Einheit ein wittgemessen mit hier jetzt nicht
als Zähler für Binär stellen oder Abkürzung für Binär stellen oder für die Symbole 0 oder 1,
sondern wird jetzt hier wirklich als eine Maßeinheit für den Informationsgehalt
Was allerdings gilt, angenommen,
ich hätte jetzt nur zwei mögliche Symbole, nämlich 0 und 1.
Die haben beide die gleichen Wahrscheinlichkeiten von jeweils eineinhalb.
Nicht dann würde ich demzufolge auch berechnen,
dass wenn ich eine Null oder eine 1 erhalte,
dass dann der Informationsgehalt dieser Nachricht,
0 oder diese Nachricht 1,
demzufolge dann eben auch Logarithmus-Dore alles
von 1 durch 1 halb ist
Gut, dass es dann eben entsprechend umgerechnet Lugarithmus,
Duales von zwei, gleich eins.
Das heißt, der Informationsgehalt ist dann auch genau ein Bit.
Ich aber ihm nur noch mal zur Unterscheidung,
deswegen ist es hier auch explizit groß geschrieben.
Also hiermit ist jetzt eben wirklich diese Maßeinheit gemeint und jetzt
eben nicht die Anzahl der Binärstellen.
Gut, weitere Begriffe in dem Zusammenhang jetzt
Ungewissheit, Überraschung, Information. Ich hatte ja gesagt,
es wären also jetzt irgendwelche Nachrichten oder irgendwelche Informationen übertragen.
Nicht vor dem Empfang, weiß sie erstmal nicht, was ankommen wird.
Da habe ich also quasi eine Unu-Wissheit. Ich empfange meine Nachricht,
Hura-Überraschung und das, was man dadurch dann erhalten hat,
ist natürlich irgendwo ein Informationsgewinn, der dann letztendlich für diese Nachricht
in so und so viel Bett quasi beschrieben werden kann.
Letztendlich gelten ihm für alle drei Begriffe diese Einheiten.
Ich aber das, was wir jetzt hier betrachten,
ist jetzt immer quasi die Beschreibung oder die Eigenheiten,
also jetzt in Bezug auf die Informationen.
Gut, ein bisschen konkreter war also, ja,
bedingt konkret nicht, also wenn ich jetzt sage, ich habe als Ereignis
Dass ich von einem Meteor getroffen werde.
Jetzt an einem bestimmten Tag. Dann ist also die Wahrscheinlichkeit,
dass sowas passiert, also relativ gering. In diesem Fall,
also hiermit 10 Uhr minus 16 angegeben, wobei ich sage,
also irgendwie gefühlt müsste es deutlich weniger sein, aber okay.
Passiert ja glücklicherweise nicht so oft. Das wäre jetzt also
quasi mein Ereignis mit zugehöriger Wahrscheinlichkeit
Die Ungewissheit, die sich da jetzt einstellt,
wäre jetzt eben, dass sie erst mal sage,
wie groß ist jetzt die Information oder der Informationsgewinn,
dass das eben nicht eintritt.
Das heißt, hier würde ich dann eben berechnen,
dass quasi Gegenereignis, also eins Minus dieser Wahrscheinlichkeit,
berechne davon also jetzt entsprechend Formel 1 durch und davon dann eben Lugarith Mustuales.
Berechnen eben entsprechend dieser Formel, da jetzt den entsprechenden Wert für eine Informationsgewinn,
der ist natürlich demzufolge hier jetzt auch sehr, sehr klein.
Das ist eben nicht eintritt, dem zufolge wäre dann eben die Überraschung,
wenn das Unglück nicht eintritt, natürlich also auch erstmal sehr klein.
Das heißt, das ist eine Nachricht,
ich wurde nicht vom Meteor erschlagen, bringt also relativ wenig Informationsgehalt,
nämlich genau 3,2 mal 10 und minus 16 Bit.
Andersrum, die Nachricht wäre, also ich nicht,
ich stehe ja noch hier,
aber jemand anders wurde jetzt vom Meteor erschlagen,
dann wäre also demzufolge die Überraschung
sehr groß
Erstmal formelmäßig eingesetzt. Wäre dann also im Prinzip der Informationsgehalt
dieser Nachricht, 53,15 Bit.
Also das erst mal nur zu der Rechnung jetzt mit diesem
Maß für die Information,
wie man damit umgeht
Gut, jetzt sind wir wieder ein bisschen näher zu den Sachen,
also Stochastik, was man dann also immer irgendwie so typischerweise erkennt.
Also sprich, wir würfeln. Und wir betrachten jetzt
quasi als Wahrscheinlichkeit, dass eben eine Sechs gewürfelt wird.
Die Wahrscheinlichkeit dazu ist also logischerweise ein Sechstel. Das heißt,
der Informationsgewinn, wenn eben dieses Ereignis eintritt,
wäre dann eben Doratmus
Duales. Von... Ein Sechstel, also 2,585. Bitt.
Andere Beispiele, also ich hätte jetzt beispielsweise Bücher,
einmal ein ganz normaler deutscher Text. Einmal einen irgendwie mit Zufallsgenerator,
generierten Text, wo ich jetzt einfach im Prinzip aus einem
Alphabet mit 80 Zeichen, also ein beliebiges Zeichen erzeugt habe.
Wie wäre jetzt in diesen beiden Fällen der Informationsgehalt anzusetzen?
Da kommt jetzt natürlich hinzu, bislang hatte ich ja immer gesagt,
wir betrachten voneinander unabhängige Ereignisse. Nicht in einem deutschen Text,
oder wenn ich weiß, es ist ein deutscher Text,
habe ich natürlich schon irgendwie sowas wie Kontextinformationen. Also als Beispiel,
wenn man jetzt eben irgendwie sowas wie der B. Grief empfangen hat,
dann wird es also schon mal sehr wahrscheinlich sein,
dass das nächste Symbol, also ein F ist,
war ich jetzt also erst mal intuitiv sage,
also da sollte Begriff stehen und nicht das nächste Zeichen dazu müsste dann eben entsprechend so kommen.
Das heißt, hier habe ich dann eben diese Unabhängigkeit
der Ereignisse erst mal nicht gegeben.
Nicht das müsste man dann eben entsprechend anders kodieren bzw. anders modellieren,
um jetzt also mit solchen Informationsgehalt
zu arbeiten
Wenn ich jetzt aber eben wirklich sage, ich habe sowas wie so einen Zufallstext,
wo jetzt also wirklich alle Symbole absolut unabhängig voneinander auftauchen.
Da kann ich eben wirklich sagen,
dass ich auch mit jedem neuen Symbol als zusätzliche Information,
Logaretten musst du alles von eins durch einen 80. erhalte,
nicht dem zuvor gilt, so erstmal,
dass natürlich ja sowas wie so einen Zufallstext,
wo alle Zeichen gleich wahrscheinlich sind,
ich dann eben
auch die größtmöglichste Information erhalte
Gut, wenn man das jetzt also hier nochmal für einen einzelnen Buchstaben sich ansieht,
also die Wahrscheinlichkeit, dass in einem Text an einer gegebenen Stelle,
also ein Zeichen, für ein großes A anzutreffen ist,
nicht also aufgrund jetzt irgendwelcher statistischen Untersuchungen,
habe ich dann also hier jetzt,
also irgendwie eine bestimmte Wahrscheinlichkeit in diesem Fall,
also von 0,01. Wenn ich das jetzt umrechne in den Informationsgehalt,
das heißt, wie viele Bits oder wie viele Bit Informationen stecken darin,
wenn ich jetzt eben dieses Zeichen groß A erhalten habe,
nicht direkt in die Formel einsetzen, ausrechnen, wäre dann 6,6439 Bit.
Wenn ich diesen Text jetzt in irgendeiner bestimmten Codierung umsätze,
also beispielsweise jetzt also als ISO 88591-Code,
wo ich dann acht binär stellen benutze, sieht man,
dass ich also acht Bit, klein geschrieben jetzt für Binary Digit,
benutze und habe als Informationsgehalt 6,64 Bit,
die dann jetzt entsprechend dieser Formel sich aufgrund der Wahrscheinlichkeiten ergeben.
Also hier sieht man nochmal entsprechend diesen Unterschied zwischen
dem Maß für die Informationseinheit und der Zähleinheit
jetzt für die Stellenanzahl
Bislang hatte ich jetzt bei diesen Beispielen ja immer nur betrachtet,
was passiert, wenn ich jetzt also wirklich
ein spezielles Zeichen irgendwie erhalte oder ein spezielles Ereignis eintritt.
Das, was ich jetzt eigentlich noch betrachten möchte,
ist für eine bestimmte Kodierung oder für einen bestimmten Diskodierungsverfahren,
was gilt eigentlich dann als durchschnittliche Information,
die ich jetzt beim Empfang eines Symbols bekomme
Und diese durchschnittliche Information, beziehungsweise das, was man dann,
als durchschnittliche Information, jetzt eben für ein beliebiges Symbol erhält,
bezeichnet man dann eben als Entropie des Systems.
Wie gesagt, gegeben sind ja nun irgendwie en mögliche Ereignisse.
AI mit ihren Wahrscheinlichkeiten. Das ist also quasi jetzt hier
mein stohastisches Modell
Insgesamt weiß ich... Oder damit das Ganze überhaupt erst mal funktioniert.
Also ich bekomme überhaupt irgendwelche Symbole übermittelt. Demzufolge gilt dann eben,
dass die Summe der Wahrscheinlichkeiten hier dann eben auch eins sein muss.
Und mit diesen Voraussetzungen berechnet sich dann eben die Entropie des Systems,
dass ich den Informationsgehalt für das Ereignis nehme,
den ich ja nach Voriger Formel ausrechnen konnte
Den für das jeweilige Ereignis quasi mit der Wahrscheinlichkeit dieses Ereignisses wichtige.
Und da ich ja insgesamt eins von, eben ein beliebigen Ereignissen bekomme oder betrachte,
muss ich das dann eben noch über sämtliche Ereignisse aufsummieren.
Und wenn man das dann also hier formal-mäßig entsprechend einsetzt,
gilt dann eben,
dass die Entropie dann eben die Summe PI mal Logarithmus 2 von 1 durch PI ist,
beziehungsweise wenn ich das hier entsprechend umsetze, dann minus,
also hier dann auch wieder dieses Minus vorziehen kann und dann Summe Pimo-Logaretten,
was Duales von PI sein kann.
So, und diese Wert oder diese Entropie ist jetzt erstmal nur von dem stochastischen Modell abhängig.
Das heißt also, alles, was hier reingegangen ist,
sind ja nur die Anzahlen und die Wahrscheinlichkeiten der einzelnen Symbole.
Das heißt, die Entropie Hat erst mal nichts mit der Kodierung zu tun.
Ob ich jetzt eine sehr lange oder eine sehr kurze Kodierung wähle,
sondern das ist erst mal wirklich nur von dieser Wahrscheinlichkeits- oder Häufigkeitsverteilung,
je nachdem, wie ich das jetzt bezeichnen mag,
von meinen Symbolen abhängig.
Beispiel jetzt für Entropie,
also ich hätte jetzt hier drei mögliche Ereignisse mit bestimmten Wahrscheinlichkeiten,
also eineinhalb, ein Drittel,
ein Sechstel,
dann berechnet sich die Entropie einfach stumpf in die Formel eingesetzt,
ein halbmal Logarithmus duales
Von eineinhalb plus ein Drittel mal Lockerithmus,
du alles für ein Drittel plus und so weiter.
Nicht das Ganze dann aufsummiert, negiert, ergibt dann 1,45 9,1.
Wäre dann die Entropides Systems. So, angenommen,
ich empfange jetzt Wie Nährwerte, die haben jetzt Wahrscheinlichkeiten,
also ich habe jetzt nur zwei mögliche Werte, der eine Wert hat die Wahrscheinlichkeit.
Kuh, der andere Wert hat die Wahrscheinlichkeit 1. Minuskuh. Für Kuh gleich eineinhalb,
also angenommen, die hätten jetzt beide gleichen Wert in die Formel eingesetzt und ausgerechnet,
erhalte ich dann eben als Entropie genau 1. Oder ein Bett,
also auch genau das Gleiche,
wie jetzt also der Informationsgehalt beim Erhalt eines Zeichens.
Das heißt, Wenn diese Binärstellen eben jetzt die Gleiche Wahrscheinlichkeit haben,
dann wäre eben der mittlere Informationsgehalt bei beiden Symbolen dann eben auch genau identisch,
nämlich ein Bett. Interessant wird das jetzt nur,
wenn sich die Wahrscheinlichkeiten für ein Zeichen, wo ich gesagt habe,
okay, wenn beide Zeichen Gleichwahrscheinlichkeit oder gleichwahrscheinlich sind,
dann ist die Wahrscheinlichkeit jetzt beispielsweise für die Null natürlich genau 0,5 und dann wäre die Entopie entsprechend genau ein wird.
Wenn ich jetzt aber eben sage,
eins von den Zeichen wird wahrscheinlicher, das andere demzufolge unwahrscheinlicher,
erhalte ich dann eben entsprechend in die Formel eingesetzt und das Ganze jetzt eben hier aufgeplottet,
dann eben diese Verteilung, wo ich dann eben sagen kann,
die Entropie des Kanals wird dann eben kleiner als eins bzw. wenn ich genau den Fall habe,
dass ein Zeichen, nie und das andere immer kommt,
dann ist die Entropie natürlich dann auch logischerweise wieder null.
Gut, das hatte ich eben schon an der Grafik erklärt,
also im Prinzip, dass der mit Larettenfahrt Informationsgartenabinärstelle natürlich nur genau dann ein Bit ist,
wenn beide Symbole gleich wahrscheinlich sind.
Entsprechendes gilt dann eben auch für deutlich größere Symbolmengen,
also angenommen, ich hätte jetzt eben acht Bit,
also 256 Symbole zur Verfügung,
die sind alle
gleich wahrscheinlich
Nicht das jetzt hier einfach erst mal stumpf in die Formel eingesetzt,
ausgerechnet, erhalte ich dann eben auch als Entropie 8-Bit,
was aber eben nur gilt, solange alle Symbole auch gleichwahrscheinlich sind.
Gut, hier auf dieser Folie sind jetzt also für die Entropie nochmal einige Eigenschaften definiert.
Nämlich zum einen, dass also die Entropie maximal ist,
wenn die Für alle Symbole gleich, gleich groß ist.
Das heißt, bei N-Symbolen dann eben als Wahrscheinlichkeit eins durch N.
Das war so genau das, was ich jetzt
eben hier für den Fall N live 2 herstehen hatte.
Nicht dann kann man eben auch sagen, also diese Entropie von irgendwelchen Wahrscheinlichkeiten ist im Prinzip symmetrisch. Das heißt also,
wenn ich jetzt mehrere Symbole habe und die haben jetzt unterschiedliche Wahrscheinlichkeiten,
dann ist die Entropie des Systems unabhängig davon,
welches Symbol jetzt genau welche Wahrscheinlichkeit hat, sondern wenn ich hier so sage,
ich habe beispielsweise vier Symbole, die haben die Wahrscheinlichkeit,
0,450,3, 0,1 und 0,15 oder die hätten eben die Wahrscheinlichkeiten,
0,1, 0,15, 0,3, 0,45, also beliebig umsortiert, die Entropie ist bei beiden Codierungen die gleiche.
Das ist das, was hiermit beschrieben ist oder angedeutet ist,
dass also quasi für alle Permutation letztendlich eben nichts anderes als
diese Umsortierung die Entropie identisch ist
Gut, hiermit ist angedeutet, dass sich,
also solange ich hier ein System habe,
wo ich ihm nur ein einziges Symbol mit der Wahrscheinlichkeit eins habe,
alle anderen die Wahrscheinlichkeit. Null ist die Entropie 0,
also auch diesem, dieses Beispiel hat er ja schon gebracht,
wenn ich immer nur gewinnen habe, weiß,
ich empfange nur dieses eine Zeichen entsprechend null.
Hiermit ist jetzt beschrieben, dass,
wenn ich ein Symbol jetzt mit der Wahrscheinlichkeit null habe,
ich das quasi aus dieser Berechnung rausnehmen kann.
Und hier mit dieser fünften Eigenschaft ist jetzt angedeutet,
dass wenn ich jetzt En-Symbole habe,
die Entropide des Systems betrachte und anschließend das System,
also entsprechend vergrößer und sage, ich habe jetzt N plus 1-Symbole,
dass dann dieses zweite System,
wo ich jetzt also quasi mehr Symbole beinhalte,
eine größere Entropie hat
Gut, Additivität ist eben hier aufgrund der Rechenregeln.
Letztendlich war ich ja immer hier mit dem Logarhythmus arbeite, dann entsprechend auch gegeben.
Gut, von diesen Formeln oder von diesen Eigenschaften hier brauchen wir jetzt,
sagen wir mal, bei der praktischen Arbeit erstmal vergleichsweise wenig der Vollständigkeit habe.
Also jetzt ist man nur um dieses mathematische Modell zu erklären,
sind dann hier entsprechend mit drauf. Nicht das,
was uns eigentlich immer nur interessiert,
beziehungsweise wo es dann also auch in einigen Übungsaufgaben entsprechend darauf ankommt,
ist dann eben wirklich,
dass man dies stochastische Modell betrachtet und dann eben für dieses Modell,
also du sprichst Symbole und Symbolhäufigkeiten oder Symbolwahrscheinlichkeiten,
ich dann eben im Prinzip die Entropie aufgrund dieser Definition beziehungsweise dieser Formel dann ausrechnen kann.
Der Begriff Redundanz bezeichnet jetzt die Differenz zwischen dem Tatsächlich ein Informationsinhalt,
also das, was quasi durch Entropie definiert ist.
Und dem möglichen Informationsgehalt. Das heißt, also hier wird jetzt
also berechnet, die Defutterreferenz zwischen einem H0 und der Intropiha.
Und dies H0 ist jetzt eben beschrieben durch die Symbolkodierung.
Das heißt, durch die Wortlänge. Ich war bislang,
hatte ich ja gesagt, es gilt erstmal nur dieses stohastische Modell.
Ich habe Symbole mit ihren Wahrscheinlichkeiten. Daraus kann ich
die Intropier ausrechnen. Das Ganze ist unabhängig davon,
wie das Ganze kodiert ist
Und wenn ich jetzt sage, ich habe vier Zeichen und
ich kodiere die also mit einem Code mit zehn Bit,
dann kann ich mit diesen zehn Bit letztendlich erst mal tausend,
wenn ich sage, das ist ein Blog-Code, 1024 Zeichen unterscheiden.
Und mit diesen 1024 Zeichen im Verhältnis zu den zehn Zeichen,
also erst mal rein anschaulich gesehen, das ist das,
was dann eigentlich die Redundanz ausmacht, dass ich sage,
na gut,
also dieser Code mit 1024 Zeichen ist also ein bisschen ineffizient und ich könnte mir vielleicht einen kleineren oder einen anderen überlegen.
Nicht, das heißt, das ist eben genau Der Unterschied jetzt
zwischen dem möglichen Informationsinhalt und der Entropie. Neben der Redundanz,
wo ich das jetzt quasi jetzt als Differenz berechne,
kann ich auch sagen, ich habe sowas wie eine relative Redundanz,
wo ich das dann im Prinzip auf die Codierungs- oder auf die Wortlänge beziehe.
Das heißt, da würde ich dann eben berechnen,
hanul-ha durch hanul und erhalte dann eben quasi einen anteiligen Wert,
der sich dann eben im Idealfall, entsprechend,
wo beide quasi gleich groß sind, dann eben an Null annähert,
aber ansonsten ich dann eben einen Wert irgendwo zwischen Null und Eins letztendlich erhalte.
Gut, wie sieht die Redundanz jetzt aus für binäre Blockcodes?
Blockcode war sowas, also wie zum Beispiel der Dualcode,
wo ich jetzt also einfach alle Zahlen durchkodiere mit einer Wortlänge
von Enbit
Aufgrund der Kodierung mit den N-Bit kann ich natürlich sagen,
ich habe insgesamt N-Bit als H0. Habe dann,
wenn ich das dann eben jetzt hier entsprechend in die Formel einsetze,
M-Wörter, die jetzt mit einer bestimmten Wahrscheinlichkeit AI auftauchen,
in dem Zufolge,
wenn ich das jetzt also hier als Formel für die Redundanz.
Ausrechnen würde, das heißt für H,
eben hier diese Formel für die Entropie.
Bei einem Blogcode entspricht Hanol dann eben genau der Wortlänge,
also N, würde sich dann eben ergeben,
dass die Redundanz dann eben N plus dieser Summe ist,
was man dann eben wirklich an Beispielen
entsprechend mathematisch durchrechnen müsste
So, damit bin ich dann auch schon relativ pünktlich
für heute fertig und dann kann ich nur ein
schönes Wochenende wünschen