...pünktlicher zu sein.
Also, wir hatten letztes Mal uns noch so ein bisschen die Geschichte
der Spracherkennung angeschaut und hatten da so eine Projektdefinition
gesehen, wo es unter anderem darum ging, dass man
Spracherkennungssysteme mit einer bestimmten Fehlerrate bauen wollte.
Und da ist natürlich die Frage, was ist da für eine Fehlerrate
gemeint?
Und um die Güte eines Spracherkennungssystems zu messen, verwendet man
in 99,9 Prozent aller Fälle immer die Wortfehlerrate.
Das funktioniert halt so, dass man eine Audioaufnahme hat, die lässt
man vom Spracherkennungssystem erkennen, kriegt die Wortfolge raus und
gleichzeitig wird dieselbe Audioaufnahme auch von einem Menschen
verhandverschriftet in eine Wortsequenz und dann stellt man diese
beiden Wortsequenzen gegenüber, indem man halt die minimale
Editierdistanz berechnet.
Minimale Editierdistanz ist oft häufig so ein Standardalgorithmus, den
man irgendwo in Algorithmentechnik mal ganz am Anfang sieht.
Wer hat alles schon minimale Editierdistanz gehabt im Studium?
Die meisten eher nicht.
Das ist schlecht.
Also bei der minimalen Editierdistanz ist die Idee dahinter, wie viele
Editierschritte brauche ich, um eine Wortfolge in eine andere
Wortfolge zu überführen?
Und ich gehe davon aus, dass ich drei verschiedene Editierschritte zur
Verfügung habe.
Entweder ich kann ein Wort ersetzen mit einem anderen Wort, ich kann
ein Wort in die Wortfolge einfügen oder ich kann ein Wort löschen.
Oder wenn halt zwei Worte gleich sind, mache ich halt entsprechend
nichts.
Das heißt also drei Editierschritte, wie ich die Wortfolge verändern
kann, so dass ich die andere Wortfolge bekomme.
Und was man jetzt macht ist, man guckt, wie viele Editierschritte
brauche ich, um diese menschliche Referenz, also das menschliche
Referenztranskript der Audioaufnahme zu überführen in das, was der
Spracherkenner erkannt hat.
Also die Wortfolge, die als Hypothese aus dem Spracherkennungssystem
rauskam.
Dann bekommt man raus, diese Editierschritte, Anzahl der
Auslöschungen, Einfügungen und Ersetzungen, setzt das ins Verhältnis
zur Länge der Referenz und das Ganze ist dann halt die Wort- Federrate
in Prozent.
Und dann gibt es manchmal noch alternativ das Maß der Wortakkuratheit
und das ist dann 100 Prozent minus Wort-Federrate.
Was sie manchmal sehen von Leuten, die da ein bisschen ungenau
formulieren, ist sowas wie Wort-Korrektrate, wie viele Worte korrekt
sind.
Das ist technisch gesehen falsch, weil die Wort-Korrektrate gibt es
auch, das ist aber ein anderes Fehlermaß.
Bei der Wort-Korrektrate würde man halt zählen, okay, wie viele Wörter
sind denn korrekt, sind denn vorgekommen und setzt dann ins Verhältnis
zur Anzahl der Wörter, die es in der Referenz gab.
Das ist aber was anderes als das hier, als dieses Fehlermaß.
Und es ist auch was anderes als die Wort-Akkuratheit.
Diese Distanz, diese Anzahl an Editierschritten, die man da berechnet,
um aus der Referenz die Hypothese des Spracherkennungssystems zu
machen, die nennt man manchmal auch die Levenstein-Distanz.
Und die Frage ist natürlich, wie kann ich das Ganze jetzt vernünftig
berechnen, weil selbstverständlich gibt es unterschiedliche Anzahl an
Operationen, die ich ausführen kann, um aus einer Wortfolge eine
andere zu machen.
Was ich natürlich suche, ist die minimale Anzahl an Editierschritten,
die ich brauche, um die Referenz in die Hypothese zu überführen.
Und da ist jetzt die Frage, wie findet man diese minimale Anzahl an
Operationen und zwar nicht durch einfach stures Ausprobieren, sondern
in vernünftiger Zeit durch vernünftiges Rechnen.
Und das kann man schön mithilfe dynamischen Programmierens machen.
Deswegen ist minimale Editierdistanz häufig ein Musterbeispiel für
einen Algorithmus, den man mithilfe dynamischen Programmierens
berechnen kann.
Man stellt sich das so vor, dass man halt so ein Alignment zwischen
der Referenz und der Hypothese finden will, die die kleinste Anzahl an
Editierschritten, die kleinste Anzahl an Fehlern hat.
Und das Ganze macht man mit dynamischem Programmieren, indem man sich
halt so Zwischenergebnisse abspeichert und dann immer weiter
voranrechnet.
Und das kann man sich halt so vorstellen, dass man sich eine Matrix
hinschreibt.
Man schreibt sich eine Matrix hin.
Auf die eine Achse schreibt man sich die Wörter der Hypothese und
so weiter und so fort, auf die andere die Wörter der Referenz.
Und dann fängt man an.
Man fängt an bei einer fiktiven Zelle, die halt ganz am Anfang ist,
die es eigentlich nicht gibt, und sagt, diese Zelle mit dem Index 0,0,
die hat halt... Also, wie machen wir das so richtig?
Man kann sich das so vorstellen, dass man jedes Wortfolge einen Präfix
gibt mit irgendeinem A-Pseudowort.
Und dann macht man halt die Wörter der Referenz und der Hypothese.
Da die beiden Wörter immer übereinstimmen, werden die beiden Wörter
immer aufeinander abgebildet und haben dann hier Kosten 0.
Und dann kann man halt schreiben, wenn das hier die Hypothese ist und
das die Referenz und ich will die Referenz überführen, wenn ich hier
einen nach oben gehe, dann entspricht das so was wie einem Match, dass
ich Wort 1 auf das hier abbilde und das Ding hier gelöscht habe.
Das heißt, ich mache eine Löschoperation und hätte dann hier so was
wie Kosten 1.
Hier bilde ich das Wort auf das ab, bilde das Wort auf das ab, hätte
dann entsprechend die Kosten, diese hier, plus 1, falls die ungleich
sind die Wörter, ansonsten plus 0.
Und das hier, das wäre ein Schritt, da brauche ich ein Wort der
Hypothese auf.
Das heißt, ich fummel das ein in die Referenz, obwohl es nicht da ist.
Das heißt, das wäre so was wie ein Einfügelschritt und würde halt auch
Kosten plus 1 machen.
Und dann sieht man schon, diese erste Reihe kann man relativ leicht
initialisieren.
Dann kann man ausgehend von einer neuen Zelle immer eine Berechnung
durchführen, was wäre der lokal minimale Schritt.
Also in diese Zelle kann ich gelangen, indem ich von dahin gehe, von
dorthin gehe oder von dorthin gehe, habe ich hier immer lokale Kosten
stehen, weiß wie viele neue Kosten drauf kommen, wenn ich entweder
eine Substitution mache oder halt keine Kosten, wenn es passt,
beziehungsweise eine Deletion, beziehungsweise eine Insertion und kann
mich dann immer für das Minimum von diesen drei Dingern entscheiden
und kann mir dann halt mich entscheiden, von welcher dieser drei
Pfeile ist das Minimum, merke mir das, von wo ich gekommen bin, trage
die neuen lokalen minimalen Kosten ein und das mache ich so lange, bis
ich oben rechts in der letzten Zelle angekommen bin und da steht dann
drin, was die minimale Anzahl an Editionsschritten ist, die ich
brauche, um halt die eine Wortfolge in die andere Wortfolge zu
überführen.
Das heißt, das kann man also in quadratischer Zeit entsprechend
ausrechnen.
Bei so kleinen Beispielen sieht man es meistens durch Draufschauen,
was wohl da das Minimum ist, wenn man also so ein einfaches Beispiel
hat, wie Hallo Herr Freitag, wie geht es Ihnen und erkannt wurde,
Hallo Frau Freitag und wie geht es?
Dann sieht man halt, dass das Wort Herr und Frau wurde vertauscht,
dann wurde in die Hypothese das Wort und eingefügt, was vorher nicht
da war und dieses Wort in wurde ausgelassen, was eigentlich eine
Referenz sein sollte.
Das heißt insgesamt drei Wörter bei einer Referenz, die sieben Wörter
lang ist, das heißt eine Wortfehlerrate von drei siebte entsprechend.
Dann kann man sich ein bisschen was überlegen, kann die Wortfehlerrate
größer als 100 Prozent sein?
Wer ist für Ja?
Wer ist für Nein?
Wer weiß nicht?
Kann man sich leicht überlegen, warum kann die Leichtwörter werden als
100 Prozent?
Kann ja einfach irgendwas, wenn ich drei Worte hätte ich erkennen
sollen, ich gebe 100 Worte aus, dann habe ich mindestens 97
Einfügungen, unter Umständen auch noch drei Ersetzungen, dann hätte
ich 100 Fehler bei der Länge von drei, da wäre ich mehrere hundert
Prozent Wortfehlerrate.
Entsprechend kann die Wortfehlerrate negativ werden?
Weniger als null Fehler kann ich nicht machen, dementsprechend ist der
Zähler mindestens null und ansonsten positiv, der Nenner ist sowieso
immer positiv, also negativ kann es nicht werden.
Und dann die letzte Frage ist ein bisschen kniffliger.
Kann die Wortfehlerrate mit unterschiedlichen Zusammensetzungen aus
Einfügungen, Auslassungen und Ersetzungen entstehen?
Ist das eindeutig, welche Operationen ich anwenden muss, um zu der
minimalen Editierdistanz zu kommen?
Oder kann es unter Umständen mehrere solcher Pfade geben, die zu einer
minimalen Wortfehlerrate führen?
Sogar so, dass die Anzahl der Auslassungen und Einfügungen und
Substitutionen unterschiedlich ist.
Könnte das sein?
Eine Minute Zeit, immer drei Personen zusammensetzen und mal kurz
drüber nachdenken.
Hier eins, zwei, drei, da sind drei, Sie können dann mit den zwei da
hinten, die machen zusammen.
Wenn Sie hinterher sagen, nein, geht nicht, hätte ich gerne eine
Begründung.
Wenn Sie sagen, ja, geht, dann hätte ich gerne ein Beispiel.
Dann schauen wir mal, was wir hier so für ein Meinungsbild bekommen.
Erstmal, wer von den kleinen Gruppen glaubt, nein, das geht nicht?
Alle meinen also, es geht.
Dann hätte ich jetzt gerne ganz viele Beispiele, warum es geht.
Ja, Beispiel?
So, Hypothesis, Referenz.
Hypothesis ist?
Und die Hypothesis?
Ja, aber dann haben Sie immer noch das gleiche Anzahl von Einfügungen
und Einfügungen.
Die Ordnung ist anders, aber meine Frage war, ist es sogar möglich, es
mit einem anderen Anzahl von Einfügungen, Einfügungen und Einfügungen
zu machen?
Nein, ist hier nicht der Fall.
Also, wie gesagt, die Anzahl Substitutionen, Einfügungen muss also
dann immer gleich sein.
Wer hat andere?
Genau.
Da haben wir nämlich das Problem, wenn ich sowas habe, weil es gibt
diese Operationen, zwei Buchstaben sind miteinander vertauscht, die
gibt es nicht.
Und wenn ich die machen muss, also A und D werden offensichtlich
aufeinander abgebildet.
Und was mache ich jetzt hier?
Jetzt könnte ich sagen,
eine Insertion,
eine Abbildung und eine Deletion.
Aber das ist nicht das Minimum.
Moment.
Entschuldigung.
Genau, ich könnte sagen, eine Insertion, eine Kosten, ein Match, ist
also keine Substitution, und eine Deletion.
Oder ich könnte halt sagen, zwei Substitutions.
Auf die Art und Weise hätte ich zwei wirklich echt auch in der Anzahl
der Insertions, Deletions, Substitutions unterschiedliche minimale
Pfade mit jeweils zwei Editier-Operationen.
Alles klar?
Das heißt also, Wortfehlerrate ist nicht notwendigerweise immer
eindeutig.
Die Zusammensetzung, die Zahl ist es immer.
Nur die Anzahl der genauen, der Details, wie sie sich zusammensetzt,
ist halt immer, kann unter Umständen unterschiedlich sein.
Nicht nur in der Reihenfolge, in der ich die Operationen anwende,
sondern auch die Anzahl der Operationen in den einzelnen Kategorien,
die ich anwenden muss.
Diese Wortfehlerrate wird sehr gerne und sehr häufig verwendet, weil
sie hat ein paar Vorteile.
Wenn ich so eine Testdatenmenge habe, dann muss ich die einmal
verschriften und kann immer wieder auf der testen und testen und
testen.
Wenn ich zum Beispiel mein System besser mache und irgendwas Neues
hinzufüge, dann kann ich testen, wird dadurch die Wortfehlerrate
besser oder schlechter und ich kann das im Prinzip voll automatisch
machen.
Das Einzige, was ich machen muss, ist, ich muss halt wieder das System
neu laufen lassen, neue Hypothesen erstellen lassen und dann minimale
Editier -Distanz ausrechnen.
Jetzt gibt es aber auch ein paar Probleme mit der Wortfehlerrate, die
man auch nicht verschweigen sollte.
Erstens, sie basiert darauf, dass wir ein System haben, wo wir Wörter
haben.
Aber es gibt durchaus Schriftsysteme, die nicht unbedingt das Konzept
von Wörtern als solches kennen.
Wieder Beispiel, die chinesische Schrift schreibt ohne Leerzeichen und
gibt keine Segmentierung in Wörtern vor.
Und auch wenn man jetzt Semantik zur Hilfe nimmt, ist die
Segmentierung nicht notwendigerweise immer eindeutig.
Unterschiedliche Personen können einen und denselben
niedergeschriebenen Satz unter Umständen in unterschiedliche
Wortsequenzen segmentieren.
Das heißt, da hätte man das Problem, wenn man wirklich Wortfehlerrate
berechnen würde, müsste man irgendwie einen einheitlichen
automatischen Segmentierer haben.
Das kann man zum Teil machen.
Oder alternativ beschäftigt man sich dann nicht mit der
Wortfehlerrate, sondern mit der Zeichenfehlerrate.
Dann hat man das Problem, dass man, wenn man zwei Wörter, ein Wort mit
einem anderen Wort verwechselt, ist das immer ein Fehler, egal wie
ähnlich oder unähnlich die Wörter sich sind.
Also ob ich Haus und Maus verwechsel bei der Spracherkennung oder Haus
und Schloss Schwanstein, das ist dasselbe.
Würde man natürlich von der Intuition her sagen, naja Haus und Maus,
die Verwechslung sollte man vielleicht nicht so ganz so stark
bestrafen, wenn ich statt Haus Schwanstein erkenne.
Weil das eine klingt ja nun wirklich deutlich anders als das andere.
Eine Möglichkeit bei Alphabeten ist hier, dass man da halt dann die
Zeichenfehlerrate nimmt, weil die Zeichen meistens bei Alphabeten
stark korrelieren mit der Aussprache der Wörter.
Falls man das nicht hat, falls man also eine Schrift hat, wo man nicht
solche schönen Zeichen hat, wo es eine Logosynabischen Schrift zum
Beispiel ist, dann müsste man erst die Schrift umwandeln in eine
Phonemfolge zum Beispiel, mithilfe von Aussprache Wörterbüchern und
könnte dann sowas wie eine Phonemerrorrate bestimmen.
Dann bei, wenn es darum geht um Anwendungen, ist es so, dass kleine
Fehler unter Umständen katastrophale Auswirkungen haben.
Wenn ich ein Sprachübersetzungssystem habe für medizinische
Anwendungen und ich frage und der Arzt fragt, sind Sie allergisch
gegen Penicillin?
Und der Spracherkenner fragt, sind Sie nicht allergisch gegen
Penicillin?
Dann kann das unter Umständen den Tod des Patienten mit sich führen.
Ich habe aber nur einen Fehler gemacht, ist ja gar nicht so schlecht.
Und das ist etwas, da muss man sich auch darüber im Klaren sein, dass
wenn man das wirklich in Anwendungen einsetzt, man unter Umständen da
auch sein Fehlermaß entsprechend anders definieren muss und dass man
dann solche Anwendungen, gerade in kritischen Bereichen, anders
evaluieren muss, ob dann die Spracherkennung wirklich so gut
funktioniert, wie man das gerne hätte.
Hier mal ein Schaubild, das ist zugegebenermaßen schon ein bisschen
älter, jetzt fünf Jahre alt, naja sechs Jahre inzwischen.
Wie man sich vorstellen muss, wieso Wortfehlerraten im Laufe der Zeit,
in welchen Größenordnung die lagen für so unterschiedliche
Spracherkennungsaufgaben.
Und was man hier sieht, ist ein Übersichtsschaubild von der NIST, das
ist die National Information and Standardization Technology Behörde.
Das ist eine Behörde, die ist so ähnlich wie die DIN in Deutschland,
die beschäftigt sich halt mit Normen und Standardisierungen in so
technischen Bereichen und die machen halt nicht nur Schraubengrößen
und irgendwelche ISO-ähnlichen, DIN-ähnlichen Normen und
Standardisierungen, sondern die beschäftigen sich auch mit
Spracherkennung und maschineller Übersetzung.
Und die führen regelmäßig solche Evaluationen vor, durch, in denen ein
bestimmter Task, eine bestimmte Spracherkennungsaufgabe definiert
wird.
Es werden so die Randbedingungen definiert, welches Trainingsmaterial
darf ich verwenden?
Wie schnell müssen die Systeme sein?
Und dann gibt es Trainings- und Entwicklungsdaten, manchmal gibt es
nur Entwicklungsdaten, auf denen ich halt mein Spracherkennungssystem
entwickeln kann.
Und dann, nach einer gewissen Zeit, gibt es Testdaten.
Da wird ein Paket von Audiodaten versandt.
Das heißt, hier diese bitte einmal mit der Spracherkennung durchlaufen
lassen und das Ergebnis uns zurückschicken.
Dann schickt man halt die Wortfolgen, die beim Spracherkenner
herauskommen, zurück und die NIST berechnet dann eine Wortfehlerrate
auf diesem Testset.
Und mehrere verschiedene Institutionen nehmen halt teil und
vergleichen sich gegeneinander.
Und dann wird am Ende festgestellt, wer am besten abgeschnitten hat,
wer das beste Spracherkennungssystem für diese Aufgabe gebaut hat.
Und das Schöne ist, das gibt es halt schon eine ganze Weile.
Das geht hier zurück bis in die 80er Jahre.
Und hier gibt es so verschiedene Kurven.
Eine Kurve entspricht immer der Wortfehlerrate auf einem Task über die
Jahre hinweg.
Die Skala ist logarithmisch skaliert.
Da muss man ein bisschen aufpassen.
Dann die Farben haben auch bestimmte Kodierungen.
Diese schwarzen Linien sind alles Evaluationen, die man auf gelesener
Sprache durchgeführt hat.
Das Grüne ist sogar dann ein besonderer Korpus.
Da ist es praktisch auch Sprache, die stark eingeschränkt ist.
Die ist geplant, die ist nicht gelesen.
Dann alles, was rot ist, ist so Telefonsprache, wo sich zwei Personen
am Telefon miteinander unterhalten.
Alles, was blau ist, ist, was man so im Radio und im Fernsehen
aufgenommen hat.
Meistens Nachrichtensendungen im Radio und im Fernsehen.
Und das, was da so lila ist, das sind sogenannte Meetings, also
Gesprächungen.
Vier Mann sitzen an einem Tisch und unterhalten sich über irgendein
Thema, besprechen irgendein Thema und versuchen das halt entsprechend
zu erkennen.
Und was man dann sieht, immer erstmal den groben gleichen Verlauf.
Wenn so ein neuer Task rauskommt, dann lässt man erstmal das
Spracherkennungssystem drüberlaufen, das man bisher hat und das
Ergebnis ist mies.
Dann fängt man an, dran zu gucken, woran liegt es, was sind die
Probleme, warum funktioniert das so schlecht, entwickelt ein neues
System und über die Jahre hinweg fällt die Wortfehlerrate, bis sie
sich dann irgendwann auspendelt.
Dann sieht man hier bei der gelesenen Sprache, hat man da noch so
Zahlen dran liegen, da war es dann so, dass man das Vokabular
künstlich eingeschränkt hat.
Also ganz am Anfang hat man mal angefangen mit gelesener Sprache,
Vokabular 1000 Worte, ist dann auf 5000 Worte gegangen und dann auf 20
.000 Worte und man sieht, also erst selbst sowas Einfaches, gelesene
Sprache 1000 Worte, hatte man sowas wie 50% Wortfehlerrate, aber ist
dann irgendwann im Laufe der Zeit relativ schnell in den Bereich
gekommen unter diese 4%, wo man auch davon ausgeht, das ist ungefähr
die gleiche Anzahl von Fehlern, die auch die menschlichen
Transkribierer machen, wenn sie diese Sprache anhören und
verschriften.
Dann hat man zwischendurch diesen R-Travel-Kiosk gemacht, wo man halt
Flugreisen buchen konnte und planen konnte.
Das gleiche Bild ist mal auch relativ schnell runtergegangen, dann hat
man irgendwann die Vokabulargröße erhöht und war dann auch bei 5K,
also 5 mal so viele plötzlich sehr schnell gut, dann 20 mal so viele
war man auch plötzlich relativ schnell gut.
Dann hat man hier auch nochmal ein bisschen später 20K gemacht und war
plötzlich auch wieder in dieser Range von menschlichen
Transkribierern.
Und dann hat man einfach mal das Experiment gemacht, was ist, wenn ich
die Mikrofone variiere, was ist, wenn ich für die Trainingsdaten ein
anderes Mikrofon nehme als für die Testdaten und vielleicht auch ein
Hintergrundrauschen dazufüge, also entferntere Mikrofone nehme, nicht
mehr so eine schöne, ruhige Umgebung, sondern so ein Reportage
-Mikrofon, das mehr aufnimmt.
Und Rucki-Zucki war die Wortfehlerrate wieder größer, hat das
schwieriger gemacht.
Dann, man versucht ja immer was Interessantes zu machen, was
Schwieriges.
Man hat relativ früh schon mit so Telefon-Konversationen angefangen
und hat ganz am Anfang schlecht festgestellt, dass im Prinzip da was
rauskam, da hätte ich auch nichts ausgeben können.
Das war letztendlich genauso gut.
Das heißt also, ob die Spracherkennung was ausgibt oder nicht, war am
Anfang gleich gut und ist dann im Laufe der Zeit halt entsprechend
besser geworden.
Hat das einmal für so Landline-Phones gemacht, also so
Festnetztelefone und dann ist man übergegangen, das Ganze mit Handys
zu machen.
Und das ist dann halt ein bisschen was anderes, weil halt die Codex,
die da verwendet werden beim Mobilfunk, das Erkennungsergebnis
schwieriger machen.
Und dann hat man halt auch Broadcast-Speech genommen, hat da keine
künstliche Vokabulargrößenbegrenzung mehr festgelegt, sondern hat das
so genommen, wie es ist.
Und dann hat man auch da festgestellt, dass man irgendwann im Laufe
der Zeit auch dafür mit sehr großem Vokabular innerhalb, unter diese
10 Prozent zumindest gekommen ist.
Das ist schon mal ein sehr guter Wert.
Und das Ganze hat man dann auch noch Restriktionen, was die Laufzeit
angeht, angegeben.
Dann durfte man einmal zehnfache Echtzeit und einmal einfache Echtzeit
haben und sieht, dass man da zwar einen gewissen Unterschied hat, aber
dass der Unterschied im Laufe der Zeit nicht zugenommen hat und man da
relativ gleich ungefähr hinterher war.
Das alles bisher war alles Englisch.
Und dann ist man irgendwann auf die Idee gekommen, ja, Englisch ist ja
schön und gut, aber es gibt noch 5999 andere Sprachen auf der Welt.
Was passiert denn, wenn ich mal eine andere Sprache nehme?
Und sobald man dann die Sprache gewechselt hat, zum Beispiel bei
diesem Conversation at Telephone Speed, da sieht man zwischen der
roten Linie und dieser gelben, grünen, orangen, das sind andere
Sprachen, zum Beispiel Arabisch, Mandarin und es gab auch noch andere
Sprachen wie Spanisch, Deutsch und so weiter da drin.
Und da sieht man, hat man plötzlich einen ganz großen Unterschied.
Englisch hat viel besser funktioniert als die anderen Sprachen, was
halt daran liegt, dass man so sehr lange auf Englisch gearbeitet hat
und dass Englisch einige gutmütige Eigenschaften besitzt, was zum
Beispiel so Inflektionen angeht oder die Vokabulargröße, die
Verfügbarkeit an Aussprache-Wörter-Büchern, die es halt einfacher
macht, Englisch zu erkennen als zum Beispiel jetzt Arabisch oder
Mandarin.
Und dann diese letzte Kurve, diese Meeting-Sachen, da ist man relativ
schnell auf dieses Plateau gekommen.
Das heißt, im Gegensatz zu jetzt Broadcast-News oder gelesener
Sprache, ist man da nie wirklich auf einen grünen Zweig gekommen.
Und da sieht man hier diese drei lila Linien, das sind immer die
gleichen Daten, die gleichen Meetings, auf denen getestet wurde, aber
mit unterschiedlichen Mikrofonen.
Die Linie mit den niedrigsten Wortfehlerraten, da steht IHM dran, das
steht für Individual Head-Mounted Microphone.
Das sind die Nahbesprechungs-Mikrofone, die direkt am
Besprechungsteilnehmer dran waren.
Und da drüber die beiden Linien, die sind mit entfernten Mikrofonen
aufgenommen worden.
Das waren entweder Mikrofone, die an der Wand im Besprechungszimmer
angebracht waren oder es waren zum Teil so Apple HomePod, Google
HomePod und Alexa und wie die Dinger alle heißen, ähnliche Mikrofon
-Arrays, die halt auf dem Tisch standen und hat dann versucht, wenn
man halt so ein Mikrofon-Array hat, mehrere entfernte Mikrofone,
Multiple Distant Microphones, MDM, hat versucht, da Spracherkennung
drauf zu betreiben und hat das verglichen mit, was ist, wenn ich nur
ein entferntes Mikrofon habe, also wenn ich nur auf einem dieser
Mikrofone erkenne, die in diesem Array drin sind.
Die Hoffnung war halt, dass wenn ich viele solcher Mikrofone habe, die
entfernt sind, dass ich dann halt durch aufwendige Signalverarbeitung
da was Besonderes rausholen kann, dass ich dann viel, viel besser bin,
als wenn ich nur ein entferntes Mikrofon habe.
Und dann sieht man, dass, sagen wir mal, die Gewinne, die man da
erzielt, relativ gering sind.
Insbesondere im Vergleich zu dem Aufwand an Signalverarbeitung, den
man da betreibt.
Inzwischen ist man bei diesem Conversational Telephone Speech und bei
Meeting Speech ist man schon runtergekommen, aber man ist noch weit
von dieser Linie entfernt.
Bei der Conversational Telephone Speech hat man in letzter Zeit wieder
ein bisschen daran gearbeitet und ist inzwischen auch so in diesen 5%,
5,3%, 6, 7% Bereich reingekommen, der auch ungefähr dem entspricht,
was Menschen an Transkriptionsfehlern auf diesen Daten machen.
Das sind so die letzten Fortschritte da.
Aber auch Meeting Speech ist man jetzt zwar auch inzwischen so bei 20,
24 % Wortfehlerrate, aber ist selbst von dieser magischen 10% Grenze,
von der man immer träumt, weil man sagt, wenn man so weniger als 10%
Fehler macht, dann kann man da schon was Brauchbares mit machen mit
dem Spracherkennungssystem.
Da ist man immer noch relativ weit von entfernt.
Das heißt, die Lektion daraus ist, unter gutmütigen Bedingungen kann
man sehr gute Spracherkennungssysteme bauen, unter Bedingungen, wie
man sie eher in der echten Welt sieht, vor allem mit entfernten
Mikrofonen, ist das Ganze immer noch eine große Herausforderung, wo es
viel Forschungsbedarf gibt.
Was wir jetzt noch ein bisschen wiederholen werden, heute und dann
nächste Woche, sind so ein paar Grundlagen im Bereich der
Signalverarbeitung.
Sie haben schon ein bisschen, was in kognitive Systeme gehört und in
anderen Vorlesungen.
Wir werden das hier nochmal ein bisschen wiederholen, ein bisschen
vertiefter wiederholen, damit Ihnen der gesamte Zusammenhang nochmal
klar ist und dass wir dann aufgrund dieser Grundlagen ableiten können,
wie wir eine schöne Signalverarbeitung, eine Signalvorverarbeitung in
der Spracherkennung wirklich machen können.
Erstmal die Frage, wozu brauchen wir Signalvorverarbeitung?
Die ganz primitive Antwort ist, naja, vom Mikrofon kommt ein analoges
Signal und im Rechner können wir nur ein digitales Signal verarbeiten.
Also zumindest müssen wir irgendetwas machen.
Und dann hatten wir schon gesehen, bei diesem Übersichtsdiagramm,
dieses Kommunikationsdiagramm hat er den Sprecher und den Empfänger,
der dazuhört.
Da hatte man ja gesehen, da gab es oben im Kopf eine Bit per Seconds
Rate, eine Datenrate, die war sehr klein und je weiter es runter ging,
war die sehr hoch.
Dann die Schallwelle selber hatte eine sehr, sehr hohe Datenrate und
dann geht das Ganze wieder zurück hoch in den Kopf und man kommt
wieder bei dieser sehr niedrigen Datenrate der Wortfolge an.
Das heißt, in der Schallwelle selber muss sehr, sehr viel Redundanz
drin stecken.
Und das bedeutet halt häufig, dass es für Klassifikation ein Problem
ist, wenn ich dann diese viele Redundanz irgendwie erkennen muss, weil
ich dann mehr Parameter lernen muss, als eigentlich notwendig wäre.
Schöner wäre es, wenn ich aus dem Signal die wirklich relevanten
Informationen extrahieren könnte, die redundanten Informationen
wegwerfen könnte und zusätzlich noch unwichtige Informationen, die
auch in der Schallwelle enthalten sind, rausfiltern könnte.
Dann reduziert das zum einen die Datenrate, ich muss nicht so viel
rechnen und aus der Sicht des Konstrukteurs eines Klassifikators
brauche ich hinterher weniger Parameter, um einen Klassifikator für
dieses Signal dann schätzen zu können.
Also typische unwichtige Informationen, die in so einer Schallwelle
drin stecken, sind zum Beispiel alles, was irgendwie mit der
Sprecheridentität zu tun hat.
So ein Spracherkennungssystem, dem soll es egal sein, ob ein Mann,
eine Frau, eine alte Person, ein Kind spricht, jemand mit hoher
Stimme, mit tiefer Stimme, ob jemand laut oder leise spricht, das
sollte alles völlig uninteressant sein.
Es soll immer die gleiche Wortfolge rauskommen.
Das heißt, diese ganzen Informationen, wie hoch ist die Stimmlage, wie
schnell wird gesprochen, wie laut wird gesprochen, das sind alles
Dinge, die man eigentlich wegwerfen möchte.
Auch sonstige Sachen aus dem Raum, die man halt sonst noch aufgenommen
hat, also Hintergrundgeräusche, das Brummen des Projektors, die
Reflektionen von den Wänden, der Hall und das Echo, das wir haben,
auch das würde ich gerne rausnehmen und auch alles, was irgendwie mit
den spezifischen Mikrofoneigenschaften zu tun hat, würde ich auch am
liebsten alles rausfiltern, weil es sollte egal sein, ob das mit
diesem Mikrofon oder dem Mikrofon von der Konkurrenz aufgenommen
wurde, im Idealfall egal, ob es ein Nahbesprechungsmikrofon oder ein
entferntes Mikrofon ist.
Das kann die Signalverarbeitung zum Teil leisten, aber nicht in allen
Fällen immer alles machen.
Aber da wird auch viel dann geforscht, gerade so im Bereich, wie kann
ich Hintergrundgeräusche und Hall und Echo, wie kann ich das
rausfiltern, da wird nach wie vor viel dran geforscht.
Eines der wichtigsten Grundprinzipien, die man bei der
Signalverarbeitung braucht, ist der Begriff des Systems.
Und wenn Sie jetzt nicht gerade Elektrotechnik studieren, dann werden
Sie den Begriff des Systems wahrscheinlich noch nicht groß gehört
haben.
Ich glaube, auch in kognitive Systeme wird, glaube ich, das System als
solches nicht besprochen, oder?
Wer hat schon mal gehört, also das technische System der
Signalverarbeitung?
Elektrotechniker?
Da ist es gut, da braucht man halt den Begriff des Systems.
Für uns ist ein System hier grundsätzlich ein diskretes System, weil
wir halt mit diskreten Signalen im Rechner arbeiten.
Diskretes System kann man sich vorstellen.
Ich habe eine diskrete Folge von Zahlen, eine Zahlenfolge, sei sie x
von n, n der Index über die Zahlen.
Und ein System macht erstmal aus so einer Zahlenfolge x von n eine
neue Zahlenfolge y von n.
Das ist die Ausgabe des Systems.
Einfaches Beispiel wäre zum Beispiel, dass ich ein Signal verzögern
möchte.
Das heißt, meine Ausgabe zum Zeitpunkt n ist immer der Wert im
Originalsignal n minus nd Zeitschritte in der Vergangenheit.
Ich gucke also, was war nd Zeitschritte in der Vergangenheit im
ursprünglichen Signal und das ist meine aktuelle Ausgabe.
Oder ein bisschen komplizierter, ich bilde halt den Durchschnitt über
einem Fenster.
Ich habe ein Fenster, um einen Wert drum herumliegen.
Das geht m1 Schritte nach links und das geht m2 Zeitschritte nach
rechts und ich bilde einfach die Summe aller Werte innerhalb dieses
Fensters von m1 bis m2 und teile das durch die Länge des Fensters.
Das ist halt m1 plus m2 plus den aktuellen Zeitschritt.
Das wäre dann so ein gleitender Durchschnitt, indem ich so ein Fenster
über ein Signal schiebe und dann immer den Durchschnitt innerhalb
dieses Fensters ausrechne.
Das ist jetzt erstmal allgemein ein System.
Dann definiert man, was ein lineares System ist.
Und ein lineares System ist eben eins, bei dem ich Skalierungen bei
den Eingabesignalen und Additionen von Eingabesignalen vor das System
rausziehen kann.
Das heißt, wenn ich ein Signal habe, das die Summe ist aus zwei
Signalen und die einzelnen Anteile werden noch skaliert, dann ist das
dasselbe, als wenn ich diese einzelnen Signale durch das System
durchjage, dann die Ausgabe mit den jeweiligen Faktoren skaliere und
am Ende das Ergebnis addiere.
So was nennt man ein lineares System.
Man kann sich schon vorstellen, nicht jedes System, das man sich jetzt
vorstellen kann, muss notwendigerweise ein lineares System sein.
Und dann gibt es zusätzlich auch noch den Begriff der
Zeitinvariantensysteme.
Das muss man sich jetzt so vorstellen, dass die Operation, die das
System auf dem Signal ausführt, sich mit der Zeit nicht grundlegend
ändert.
Dass also das, die Ausgabe, die so ein System auf einem Signal
produziert, unabhängig davon ist, ob ich das Signal zeitverzöge.
Das heißt, wenn ich so ein Signal habe, das um die Zeitschritte
verzögere und darauf dann das System laufen lasse, dann muss das
Ergebnis auch gerade eben die Verzögerung der ursprünglichen Ausgabe
des Systems sein.
Das heißt also, die grundsätzliche Operation, wie das System
funktioniert, ist unabhängig von dem Zeitpunkt, in dem ich so ein
Signal in das System reingebe.
Wenn das der Fall ist, dann nennt man so ein System Zeitinvariant.
Und bei uns in der Vorverarbeitung sind insbesondere Zeitinvariante
lineare Systeme, also Linear Time Invariant Systems, abgekürzt als
LTI, von Interesse, denn sie haben zwei Eigenschaften.
Erstens, sie sind gut berechenbar und man kann gut mit ihnen rechnen.
Man kann gut im Rechner Zeitinvariante lineare Systeme berechnen und
gleichzeitig kann man trotzdem mit ihnen viele interessante Dinge
machen, die man so für die Signalverarbeitung braucht, die man in der
Signalverarbeitung zum Beispiel machen möchte.
Dann schon kennengelernt, zum Beispiel in lineare Algebra,
kennengelernt in kognitive Systeme, ist die sogenannte Dirac
Distribution, manchmal auch der Dirac-Stoß genannt.
Hier nochmal zur Erinnerung, ich glaube, das wird in kognitive Systeme
nicht so deutlich gemacht, diese Dirac Distribution ist eben eine
Distribution und keine Funktion.
Sie ist keine Funktion im mathematischen Sinne, sondern etwas anderes,
nämlich eine Distribution.
Man kann diese Dirac Distribution so definieren, dass man sagt, die
Dirac Distribution angewandt auf eine Funktion f ist gerade eben das
Integral von minus unendlich bis plus unendlich aus dem Produkt der
Dirac Funktion über x mal der Funktion f von x und dieses Integral,
das soll eben gerade der Wert der Funktion an der Stülle 0 sein.
Aber so richtig mit diesem Riemann-Integral kann man das eigentlich
nicht ausrechnen, weil diese Distribution d von x eben nicht
integrierbar ist, weil halt nur Funktionen integrierbar sind, aber
keine Distribution.
Man kann jetzt diese Dirac Distribution deshalb nur angeben als den
Grenzwert über eine Dirac-Folge.
Das heißt, man definiert sich so etwas wie eine Dirac-Folge, die
parametrisiert ist über ein Epsilon und hat dann dieses Integral, das
f von 0 ergeben soll, dann, wenn ich dieses Epsilon, über das diese
Dirac -Folge parametrisiert ist, gegen 0 gehe.
Das kann man sich relativ leicht vorstellen.
Beispiele, wie man das machen kann.
Man könnte so eine Dirac-Folge definieren, wenn ich irgendwelche lokal
integrierbaren Funktionen habe, die über so ein Epsilon parametrisiert
sind und die ich, wenn ich über die integriere, immer das Integral 1
haben.
Das ist die erste Eigenschaft, die wir haben müssen.
Und die andere Eigenschaft ist, dass wenn ich den Limes von diesem
Epsilon gegen 0 bilde, dann muss der Wert dieser Funktion an der
Stelle 0 gegen Unendlich streben und 0 werden überall sonst.
Und diese Funktionsfolge, diese Funktionen in der Funktionsfolge, die
sollen bitte auch schon noch symmetrisch sein.
Einfache Beispiele wären zum Beispiel, dass man so eine Rechteck-Folge
nimmt, dass man ein Rechteck hat.
Die Breite ist halt von Epsilon definiert und die Höhe ist halt gerade
immer so, dass wenn ich über das ganze Ding integriere, unter dem
Rechteck halt eine Fläche von 1 hat.
Und das kann ich dann halt so machen, dass das Rechteck ist halt 0,
wenn ich mehr als Epsilon-Halbe vom Nullpunkt entfernt bin.
Und ansonsten hat das Rechteck halt die Höhe 1 durch Epsilon.
Und wenn ich darüber integriere, dann habe ich halt die Fläche unter
diesem Rechteck der Fläche 1.
Oder ich kann das Ganze auch mit E-Funktionen machen, indem ich so
eine E-Funktion hernehme, die dann heißt E hoch minus x-Quadrat durch
2 Epsilon, normiert durch 1 durch Wurzel 2 Pi Epsilon.
Wenn ich darüber integriere, kriege ich auch die Fläche 1 raus.
Das Ding ist symmetrisch.
Und bei beiden, wenn ich den Limit von Epsilon gegen 0 gehen lasse,
dann geht halt der Wert an der Stelle 0 gegen unendlich.
Und an allen anderen Stellen geht der Wert halt gegen 0.
Wenn man sich das grafisch aufzeichnet, sieht das so aus.
Hier sieht man halt für die Rechteckse, für die einzelnen Epsilon
-Werte, wie die aussehen.
Je kleiner der Epsilon-Wert wird, je näher ich den gegen 0 gehen
lasse, desto schmaler wird das Rechteck und desto höher wird es,
sodass ich immer die Fläche 1 darunter habe.
Und je kleiner ich das werden lasse, wird das Rechteck immer schmaler
und wird immer höher.
Und dann an der Stelle 0 geht es dann halt irgendwann gegen unendlich.
Und an allen anderen Werten geht es halt gegen 0.
Und genauso, wenn man sich diese E-Funktionen aufzeichnen lässt, die
sehen dann so aus, dass das halt so eine E-Funktion wird.
Die wird immer schmaler und spitzer und immer höher und geht halt auch
gegen diese Eigenschaften.
Jetzt kann man zwar über den Dirac-Stoß offiziell nicht integrieren,
weil er ist eine Distribution und kein Funktionswert, aber man tut so,
als könnte man es doch.
Wenn man jetzt mit Dirac-Stößen rechnet, dann tut man so, als wäre das
Integral von minus-unendlich bis plus-unendlich über einen mit a
skalierten Dirac-Stoß-Delta von x, als wäre das eben gerade gleich a.
Also wenn a gleich 1 ist, dann ist die Fläche darunter bei dem Dirac
-Stoß 1 und wenn ich es halt mit a skaliere, ist die Fläche darunter
eben a.
Das ist also eine beliebig schmale, beliebig hohe Funktion mit Fläche
1.
Wenn man das Ganze ins Riemann-Integral-Echte einsetzen würde, würde
das halt nicht funktionieren, gerade bei dieser Eigenschaft, dass der
Wert an der Stelle 0 unendlich sein soll und alle anderen Werte 0,
wenn ich darüber integriere und das mit dem Riemann-Integral
ausrechne, dann kommt eigentlich eine Fläche von 0 raus.
Da kann keine Fläche von 1 rauskommen.
Deswegen ist es halt eben keine Funktion und man muss halt ein
bisschen diese Krücke nehmen, damit man da ein bisschen mit rechnen
kann.
Diese Dirac-Distribution hat ein paar Eigenschaften.
Die wichtigste Eigenschaft ist die sogenannte Sieb-Eigenschaft.
Was dieser Dirac-Stoß tun kann, ist, wenn ich mit dem Dirac-Stoß
multipliziere und darüber dann gesamt integriere, dann kann ich den
Wert einer Funktion an einer bestimmten Stelle herausnehmen.
Wenn ich also irgendeine Funktion habe, die ist halt parametrisch
beschrieben und ich möchte wissen, was ist der Wert der Funktion an
der Stelle 0, dann ist das gerade eben das Integral von Minus
-unendlich bis Plus-unendlich, Dirac-Stoß von x, Delta von x mal g von
x dx.
Oder wenn ich mich für einen anderen Wert, für einen Wert an der
Stelle Tau interessiere, dann muss ich halt den Dirac-Stoß
entsprechend an die Stelle Tau hin verschieben.
Wenn wir das Ganze zeichnen wollen im Diagramm, dann nimmt man halt
für den Dirac-Stoß meistens so einen Strich.
Manchmal kommt oben noch ein kleiner Pfeil dran, dass man so einen
kleinen Pfeil zeichnet und man skaliert den halt.
Wenn er halt der Standardimpuls ist mit Höhe 1, kriegt er halt die
Höhe 1 und wenn er halt mit irgendeinem Faktor skaliert wird, dann
macht man halt Höhe h, Höhe 1 durch h und was auch immer man das
skaliert.
Und wenn man dann mehrere Dirac-Stöße miteinander addiert, bekommt man
dann so eine Impulsfolge raus, dann kann man unterschiedlich hohe
Impulse, die man halt einfach so hinschreiben kann.
Wenn wir das Ganze im diskreten Fall rechnen, und wir rechnen ja
eigentlich nur mit diskreten Dingen, dann wird aus diesem Dirac-Stoß
eine relativ einfache Folge von Zahlen, die halt an der Stelle 0 den
Wert 1 hat und an allen anderen Stellen eben den Wert 0.
Dann haben Sie auch mit viel Freude in kognitive Systeme
kennengelernt, die Operation der Faltung.
Man hat sich angeschaut, was ist die Faltung zweier Signale, f und g,
und hat die erst mal definiert, dass das Integral von Minusunendlich
bis Plusunendlich, f von x-t, g von t, dt.
Jetzt muss man ein bisschen aufpassen.
Unterschiedliche Lehrbücher definieren das unterschiedlich.
Manche machen halt das Integral von f von x mal g von x-t, oder auch g
von t-x.
Da kommen numerisch andere Werte raus, aber die Eigenschaften bleiben
letztendlich immer das Gleiche.
Was halt passiert ist, dass man so ein bisschen hin und her, im
schlimmsten Fall, also hin und her dreht das Ganze.
Das kann man auch diskret machen, dann wird halt aus dem Integral
einfach eine Summe über alles, und man hat halt die Verschiebung von n
-k, also Spiegelung und Verschiebung, mal g von k, und davon das
Produkt und die Summe über alles.
Die Faltung hat halt bestimmte Eigenschaften.
Zum einen ist sie kommutativ, sie ist assoziativ.
Es gilt das Distributivgesetz gegenüber der Addition und es gilt die
Assoziativität mit einem Skalar.
Das heißt, ich kann so einen Skalar reinziehen, entweder in das erste
oder in das zweite Argument.
Das sind halt interessante Rechenregeln, wenn man halt mit Faltungen
rechnen muss.
Das hier ist nochmal so ein bisschen die altbekannte grafische
Darstellung.
Ich habe eine eine Funktion, die ich mit einer anderen falte.
Hier falte ich das Rechteck mit sich selber.
Und was passiert ist, das erste, was ich mache mit der Funktion, mit
der ich falte, die spiegel ich einmal, drehe sie einmal drum, dann
schiebe ich sie von minusunendlich bis plusunendlich über die gesamte
Funktion drüber.
Und für jeden Zeitpunkt, für jeden Verschiebungszeitpunkt berechne
ich, was ist die Fläche unter dem Produkt.
Ich multipliziere also die beiden Funktionen miteinander und erhalte
eine Fläche.
Und diese Fläche trage ich ab.
Gucke also im Prinzip, was ist die Fläche der Überlappung, da wo die
beiden sich überlappen, wenn sie sonst 0 sind und ich die miteinander
multipliziere.
Und da jetzt hier 1 mit 1 multipliziert immer 1 ist, ist also die
Fläche in der Höhe immer gleich und ich habe nur Variationen in der
Breite.
Und irgendwann habe ich halt eine Überlappung, dann nimmt die Fläche
zu, dann nimmt der Wert der Faltung zu, dann habe ich irgendwann die
maximale Überlappung an der Stelle 0.
Das ist dann gerade die Fläche 1, weil das Rechteck ist der Fläche 1
und dann wird es wieder rausgeschoben und dann geht das Ganze wieder
runter.
Haben Sie in kognitive Systeme, in der Klausur und den Übungsblättern
bis zum Abwinken berechnet, was es da so für unterschiedliche
Grundformen gibt, so Dreiecke, Trapeze und so weiter und so fort, wenn
man so unterschiedliche Rechtecke miteinander faltet.
Was man jetzt machen kann, ist, dass man diese drei Begriffe System,
die Rackstoß und Faltung miteinander kombiniert.
Und wenn man das macht, dann kommt was Vernünftiges raus, mit dem man
was Echtes machen kann.
Und das Ganze macht man über die Impulsantwort eines Systems.
Man definiert sich die Impulsantwort eines Systems als die Ausgabe,
wenn ich in das System so einen Dirac-Impuls reintue und dann gucke
ich, wenn ich zum Zeitpunkt 0 so einen Dirac-Stoß reintue, was ist die
Ausgabe des Systems über die nächsten K-Zeitschritte hinweg.
Wenn man das macht, kann man sich Folgendes überlegen.
Also angenommen, ich habe so ein System T, das kriegt als Eingabe ein
X von N und heraus kommt ein Y von N.
Wenn ich mir jetzt die Siebeigenschaft des Dirac-Stoßes zunutze mache,
dann kann ich dieses X von N auch anders schreiben.
Ich kann das so machen, dass ich mir für jeden Zeitpunkt K den Wert an
der Stelle K von diesem Signal X rausholen lasse und zwar mithilfe
dieser Faltung mit dem Dirac-Stoß.
Da hatten wir gesagt, wenn ich das ausrechne mit K, dann kommt gerade
der Wert an der Stelle K raus und wenn ich jetzt den Wert an
unterschiedlichen K-Stellen für alle möglichen Zeitpunkte von Minus
und Endlich bis Plus und Endlich aufaddiere, dann kommt gerade eben
dieses ursprüngliche Signal X von N raus.
Das heißt, mit hier, mit dieser Siebeigenschaft und darüber dann
summieren über alle möglichen Zeitpunkte, kommt gerade eben wieder das
ursprüngliche Signal raus.
Das stecke ich jetzt in ein System rein.
Ich habe also nur das ursprüngliche Signal, das reingesteckt wird,
anders geschrieben.
Es kommt also immer noch YN raus und jetzt schränke ich mich ein auf
lineare Systeme.
Bei einem linearen System kann ich dieses X von K nach außen raus
ziehen, weil dieses X von K hat nichts mehr zu tun mit dem N.
Da kommt das N nicht mehr vor.
Über das N haben wir ja gerade unsere Folge parametrisiert.
Ich kann das X von K rausziehen und innen drin, in diesem System T,
bleibt nur noch das Delta N-K drin stehen.
Das heißt also, die Summe und das X ziehe ich vor das System raus.
Das System rutscht nach innen rein, so dass ich jetzt diese unendliche
Summe habe von X von K mal dem T von Delta N-K.
Und das hier ist gerade die Impulsantwort.
Das ist die Definition der Impulsantwort.
Das heißt, meine ursprüngliche Ausgabe Y von N ist gerade eben diese
Summe von minus unendlich plus plus unendlich X von K mal HK von N.
Und wenn jetzt das System auch noch zusätzlich zeitinvariant ist, dann
gilt, dass eben dieses HK von N eben genau H von N minus K ist.
Und was ich dann da stehen habe ist, dass also meine Ausgabe Y von N
eben gerade diese Summe von minus unendlich plus plus unendlich ist,
über diese Originalfolge X mal der Impulsantwort HN-K.
Und das wiederum ist nichts anderes als die Definition der Faltung von
dem ursprünglichen Signal X von N mal der Impulsantwort H von N dieses
linearen Zeitinvarianten-Systems.
Das heißt, wenn ich also beschreiben will, was ein zeitinvariantes
lineares System tut, wie das das System verändert, reicht es, wenn ich
die Impulsantwort dieses Systems angehe.
Wenn ich also ein LTE habe, von dem ich die Impulsantwort kenne, dann
kann ich für jede beliebige Eingabe die Ausgabe dieses Systems
berechnen, indem ich einfach die Eingabe des Systems mit der
Impulsantwort des Systems falte.
Wofür ist das zum Beispiel nützlich?
Wer hat hier eine super-duper Heimkinoanlage oder eine super-duper
Stereoanlage?
Also sowas richtig teures.
Also nicht das Dolby-System vom Aldi, sondern was weiß ich, wessen
Eltern haben sowas zu Hause?
So eine richtig schöne Heimkinoanlage.
Der Schönste vom Schönen.
Der hat dabei gewesen, als er das aufgebaut hat.
Hat einmal erzählt, wie er das, was man machen musste, wenn man das
aufbaut.
Zum Beispiel man kann klatschen.
Man baut das Ding auf und dann setzt man sich da auf das Sofa, wo man
denn normalerweise sitzen würde und da muss man einmal machen.
Oder wenn man jetzt nochmal eine Geldstufe höher geht, dann kriegt man
einen kleinen Lautsprecher mit, den stellt man dahin, wo man sich
hinterher hinsetzt und der macht das für einen selber.
Der macht halt nicht das, sondern der macht noch was schöner, wohl
definiertes.
Was ist denn das hier?
Als Signal beschrieben.
Das ist ein Dirac-Stoß.
Also so gut wie es halt eben geht.
Den Dirac-Stoß selber können wir nicht machen, der ist unendlich hoch
und unendlich kurz, aber das kommt der Sache schon mal relativ nahe.
Das heißt, was macht man?
Man berechnet die Impulsantwort des Raumes, wenn ich halt an der
Stelle sitze.
Weil da, wo ich sitze, da kommt der Schall aus den Lautsprechern und
der Raum drumherum, der verändert den Schall.
Durch die Reflektionen in dem Raum selber wird der Schall verändert,
der jetzt an der Stelle auftritt, wo ich dann hinterher sitze und
höre.
Und damit die Audioanlage weiß, wie der Schall verändert wird, muss
man dem einmal sagen, was ist die Impulsantwort.
Und dann nimmt das die Impulsantwort auf mit einem Mikrofon und dann
weiß es, okay, so verändert der Raum das.
Das rechne ich jetzt wieder raus, so dass, wenn ich also den Film
abspiele mit super duper Surround-Sound, dann klingt das wirklich
überall gleich, egal in welchem Raum ich diese Anlage aufbaue.
Das, was der Raum normalerweise verändern würde, das wird
rausgerechnet rausnormalisiert.
Das ist so eine typische Aufgabe.
Man kann das Ganze auch umgekehrt machen.
Also angenommen, ich habe eine Audioaufnahme, die habe ich in einem
schalltoten Raum aufgenommen.
Das heißt, ich habe keinerlei Reflektionen von den Wänden oder sonst
wo.
Und ich hätte jetzt gerne, dass das so klingt, als stände der Sprecher
in einer Kathedrale oder in dem Sydney Opera House oder in der
Elbphilharmonie oder er steht im Bundestag oder sonst wo.
Damit ich das machen kann, muss ich nur wissen, was ist denn die
Impulsantwort dieses Konzerthauses, der Kathedrale und so weiter.
Das kann man messen.
Lautsprecher aufstellen, Mikrofon aufstellen, den Lautsprecher das
machen lassen und messen, was kommt denn danach, wenn sonst nichts
kommt.
Das ist die Impulsantwort.
Und da falte ich dann meine ursprüngliche Aufnahme mit und dann klingt
das gerade so, als würde die Aufnahme halt, wäre die aufgenommen
worden in irgendeinem ganz anderen Raum, in der Kathedrale oder in
irgendeinem Konzertraum und so weiter.
Das wäre so ein ganz einfaches Beispiel dafür, für so eine Zeit, in
der das lineare System gut ist.
Idealerweise ja, macht man natürlich nicht.
Also, was man normalerweise messen würde, idealerweise, ist, das
Mikrofon stelle ich dahin, wo ich hinterher sitze, wo ich höre und das
da stelle ich dahin, wo eigentlich die Schallquelle hinterher sein
wird.
Hat man natürlich nicht ganz.
Das heißt, man macht irgendwelche Modellannahmen.
Man macht halt Modellannahmen, der stellt sich halt mitten in den Raum
und macht den da und dann hat man das Mikrofon irgendwo da.
Dann weiß man noch, die Lautsprecherkonfiguration hinterher so und so
aussehen und dann macht man irgendwelche vereinfachenden Annahmen, um
das entsprechend trotzdem halbwegs rausrechnen zu können.
Bei dem umgekehrten Fall, wenn es so klingen soll, wie in der
Kathedrale, kann man das wirklich so machen, da soll der Zuhörer
sitzen, da setze ich mein Mikrofon hin, der Redner steht am Pult, da
stellt sich mein Lautsprecher hin und dann lasse ich den Impuls
aussenden und dann messe ich es und danach kann ich so drauf rechnen,
als jede beliebige Aufnahme, als hätte der Zuhörer da gesessen und der
Sprecher da gestanden.
Was natürlich auch ein Problem ist, diesen idealen Impuls, den kriege
ich nicht hin.
Da gibt es dann spezielle Funktionen, die von den Eigenschaften her
möglichst nah an diesen Impuls rankommen sollen, also Billigfall
klatschen.
Im teuren Fall, wenn man da einen richtigen Lautsprecher hinstellen
hat, dann hat man meistens solche Funktionen, das nennt man einen
Chirp.
Und was der Chirp macht, der ist relativ kurz und der geht einmal
übers komplette Frequenzspektrum.
Der macht einen Ton von 0 bis 20 Kilohertz innerhalb von möglichst
kurzer Zeit, 20 Millisekunden.
Das macht er einmal so, geht er einmal komplett durch.
Und damit hat man Eigenschaften, die dem eines Dirac-Stoßes sehr
ähnlich kommen und die Impulsantwort, die man dann hat, mit der kann
man auch fast das Gleiche machen, als wenn man die Impulsantwort eines
echten Dirac-Stoßes.
Jetzt können wir diesen Begriff des Systems auch auf die menschliche
Sprachproduktion und damit für die Spracherkennung nutzen.
Wir können so tun, als sei die menschliche Sprachproduktion einfach
die Folge von Systemen.
Ich habe ein System, das nenne ich Vokaltrakt und ich habe ein System,
das nenne ich Lippen, Nasenlöcher, die dann was abstrahlen.
Und je nachdem, ob ich stimmhafte oder stimmlose Sprache habe, sieht
die Eingabe zu den Systemen unterschiedlich aus.
Wenn ich stimmhafte Sprache produziere, dann habe ich halt so diese
idealerweise Impulsfolge, die durch die Stimmbänder produziert wird.
In Wirklichkeit ist das mehr so eine schwingungsähnliche Folge.
Manchmal kann man das schön durch so 3x-Kurven annähern.
Dann schicke ich die rein.
Oder wenn die Stimmlippen halt nicht schwingen, dann tue ich so, als
sei das weißes Rauschen.
Das kommt dann in das System Vokaltrakt rein.
Die Ausgabe geht in das System Abstrahler, also Lippen, Nasenlöcher.
Dann könnte ich mir noch vorstellen, habe ich das System Kanal, also
Raum, Mikrofon, sonst irgendwas und habe dann die Faltung dieser
einzelnen Systeme hintereinander, als das finale Signal, das
abgestrahlt wird.
Wenn ich also die Impulsantworten dieser Systeme erkennen würde, dann
könnte ich die einfach, das ursprüngliche Signal mit Impulsantwort
falten von dem System VN, falten mit dem System RN, gegebenenfalls
noch ein weiteres System für den Kanal, für den Raum oder sowas, alles
dahinter und habe damit das finale Signal, das rauskommt.
Jetzt wäre die Idee, damit ich weiß, welche Laute da gesprochen
wurden, müsste ich ja nur noch die Faltung rückgängig machen.
Das heißt, wenn ich also diese Faltung rückgängig machen könnte, dann
könnte ich gucken von dem Signal inverse Impulsantwort, inverse
Impulsantwort und dann gucken stimmhaft oder stimmlos und dann wüsste
ich, wie war die Impulsantwort des Vokaltrakts, wie war die
Impulsantwort der Lippen zudem für diesen erzeugten Laut und wenn ich
weiß, wie die Impulsantwort aussieht, dann weiß ich auch, auf welchen
Laut, auf welches Phonem, der eingestellt war bei der Produktion.
Nur so was wie eine inverse Faltung gibt es halt leider nicht so
richtig schon.
Also eine Faltung zu invertieren, herauszufinden, was war denn die
Impulsantwort, mit der ich falten musste, bei gegebener Eingabe, um
das finale Signal da zu bekommen.
Das ist halt leider nicht so leicht auszurechnen.
Wenn das ginge, wäre das schön.
Aber jetzt kann man sich schon überlegen, vielleicht gibt es ja einen
Trick in der Signalvorverarbeitung, dass ich diese Faltung zumindest
ersetzen kann durch etwas, was ein bisschen gutmütiger ist.
Und das ist etwas, was man dann später in der Signalvorverarbeitung
auch machen wird.
Nur damit man das machen kann, muss man noch was anderes kennen.
Nämlich unter anderem zum Beispiel die Fourier-Transformation.
Und um die Fourier-Transformation zu kennen, muss man sich ein
bisschen mit trigonometrischen Funktionen auskennen.
Wir hatten ja schon gesagt, Schall ist die Summe von unterschiedlichen
Frequenzen, Schwingungen unterschiedlicher Frequenzen, sinusförmiger
Schwingungen unterschiedlicher Frequenzen mit unterschiedlicher
Intensität, mit unterschiedlicher Energie.
Standardtrigonometrische Funktion ist halt der Kosinus.
Kosinus von T ist so eine periodische Funktion.
Die hat so etwas wie eine Periode, also die Zeit, die es braucht, bis
sie wieder von vorne anfängt.
Oder halt die Frequenz, das Inverse der Periode.
Wenn ich so eine Kosinusfunktion habe, und hier zum Beispiel die Zeit
skaliere mit einem Faktor 2pi, dann sieht man hier oben diese
ursprüngliche Kosinusfunktion, die hat eine Periode von genau 2pi.
Und wenn ich hier dann 2pi drauf multipliziere, auch die Variable,
also die Zeitvariable hier mit 2pi skaliere, dann kriege ich eine
Kosinusfunktion raus, die genau die Periode 1 hat.
Das heißt also, dadurch, dass ich einen Faktor vor diese Variable T
hinschreibe, kann ich beliebige Kosinusfunktionen mit beliebiger
Periode beziehungsweise beliebiger Frequenz erzeugen.
Wie gesagt, Frequenz ist gleich Inverse der Periode.
Wenn man sich das anschaut, kann man das halt so schreiben, Kosinus
2pi f mal t ist gleich Kosinus 2pi geteilt durch Periode von t, in dem
halt Frequenz das Inverse der Periode ist.
Und das schreibt man dann als Kosinus Omega t.
Und dieses Omega, das ist halt 2pi mal Frequenz, beziehungsweise 2pi
geteilt durch Periode, das nennt man manchmal auch die Kreisfrequenz,
die Kreisfrequenz Omega.
Wenn man also diesen Faktor 2pi mit reinzieht, dann wird das Ganze
einfach schöner zu schreiben und einfacher zu rechnen.
Weil nämlich eben gerade Kosinus von 2pi mal Frequenz ein Hertz ist
eben gerade diese Kosinusschwingung mit der Periode eine Sekunde
gleich Frequenz ein Hertz.
Und wenn ich halt eine Kosinusschwingung haben will mit 2 Hertz, dann
ist das eine mit Periode eine halbe Sekunde und dann ist das gerade
eben Kosinus 2pi mal 2t oder eben 2pi geteilt durch 0,5t.
Das heißt, wenn ich das also mit diesem Omega hinschreibe, dann ist da
oben dieses f beziehungsweise dieses t, das mit 2pi skaliert wird und
reingeschrieben wird in die Kosinusfunktion gerade eben die Frequenz
in Hertz beziehungsweise die Periode, 1 durch die Periode in Sekunde
hingeschrieben.
Jetzt gibt es ein paar Gesetze oder erstmal gibt es eine Möglichkeit
jetzt beliebige periodische Funktionen in solche Kosinus- und
Sinusschwingungen zu zerlegen.
Wenn ich eine periodische Funktion f habe, die eine Periode t hat,
dann kann ich die eben darstellen als diese unendliche Summe aus a 0,5
plus die Summe von n gleich 1 bis unendlich an mal Kosinus Omega nt
plus bn mal Sinus Omega nt.
Omega gleich 2pi durch t, die Kreisfrequenz.
Das heißt, was passiert da?
Ich habe hier Funktionen an diskreten Frequenzzeitpunkten.
Das sind immer Vielfache von 2pi durch t.
Das ist immer Omega mal n von t.
Das ist eine Kosinusfunktion und eine Sinusfunktion, die hat auch die
Frequenz, ein Vielfaches von Kreisfrequenz 2pi durch t.
Der Sinus ist eigentlich nur eine phasenverschobene Variante des
Kosinus.
Ich könnte da hinten auch eine zweite Kosinusfunktion mit einer
Phasenverschiebung hinschreiben.
Und die beiden Komponenten werden halt mit solchen Faktoren,
geeigneten Faktoren a, n und b installiert und dann kommt noch so ein
konstanter Faktor a 0,5 drauf und durch diese unendliche Funktion kann
ich jede beliebige periodische Funktion darstellen.
Ich muss halt wissen, wie ich geschickt a, n und b, m ausrechne.
Muss ich halt geschickt wählen und dann kann ich jede beliebige
periodische Funktion f von t darstellen.
Jetzt kann ich Kosinus und Sinus auch noch anders hinschreiben.
Wie gesagt, der Kosinus ist nichts anderes als ein phasenverschobener
Sinus oder umgekehrt.
Phasenverschiebung mache ich, wenn ich auf die Zeitvariable einfach
eine Verzögerung drauf addiere.
Die Phase phi von n.
Dann kann ich diese gleiche Fourierreise auch darstellen als die Summe
von n gleich 1 bis unendlich geeigneter Faktor a, n mal Sinus Omega nt
plus phi von n.
Das a, n wähle ich halt immer als Wurzel aus a, n Quadrat plus b, n
Quadrat.
Und diese Phasenverschiebung phi, n muss gerade so gewählt sein, dass
der Tangens dieser Phasenverschiebung phi, n gerade gleich dem
Quotienten a, n durch b, n ist.
Das ist dann, da kommt der gleiche Wert raus wie da oben.
Oder ich kann das Ganze mithilfe der Eulerschen Formel umformen und
das Ganze mithilfe komplexer Zahlen darstellen.
Und das Ganze dann darstellen als die Summe von minus unendlich bis
plus unendlich geeignete Faktoren cn mal e hoch i n Omega t.
Hier oben also auch wieder diese Skalierung der n Omegas, die
Vielfachen der Kreisfrequenz Omega mithilfe diesem e hoch i.
Und diese cn, das muss ich halt auch geeignet wählen,
Fallunterscheidung n gleich 0, dann ist das Ganze ein halb a 0, von da
oben aus der ursprünglichen Darstellung.
Wenn das n größer 0 ist, ist es gleich ein halb a n minus i b n.
Und wenn das n kleiner 0 ist, ist es gerade ein halb a minus n plus i
b minus n.
Sozusagen Pausenmetrieeigenschaften, die man aussetzt.
Wer kennt noch die Eulersche Formel, damit man diese sich anschauen
kann?
Wer weiß noch, was das ist?
Dann haben wir das gemeinsam.
Ich kann mir die Eulersche Formel auch nie merken.
Was macht man, wenn man die Eulersche Formel wissen möchte, aber sie
sich nicht gemerkt hat?
Man googelt.
Sie sind hier an einer Universität, Sie googeln nicht, sondern Sie
greifen in Ihre Tasche und haben als treuen Begleiter immer das
Handbuch, das Taschenbuch der Mathematik dabei.
Gucken nach und jetzt haben wir Glück.
Entweder einer dieser roten Fäden ist noch vom letzten Jahr.
Da sieht es leider doof aus.
Nein.
Also gucken wir im Index nach, Eulersche Formel.
Das ist nämlich gerade die Regel, nach der man hinterher diese
Umformung da oben machen kann.
Und wenn man nämlich da diese Faktoren entsprechend dann einsetzt und
diese Gleichung einsetzt, dann sieht man eben gerade, dass hier die Is
so geschickt gewählt sind, dass die sich halt zu den richtigen Plus
und Minus dann entsprechend wieder ausmultiplizieren bzw.
entsprechend sich ausgrenzen.
Diese Darstellung hier hat aber einen gewissen Charme, weil da sieht
man nämlich sofort, was es mit dieser Kreisfrequenz eigentlich auf
sich hat.
Da kann man es schön sehen.
Wenn man sich anschaut, was das bedeutet, dieses E hoch I Phi gleich
Cosinus Phi plus I Sinus Phi.
Wenn man also E hoch Phi als komplexe Zahl abdreht, dann sieht man,
dass man für den realen Anteil irgendwas zwischen 0 und 1 bekommt.
Für den komplexen Anteil bekommt man was zwischen 0 und 1.
Und das Schöne ist, dass dieser Vektor, den man bekommt bei der
Darstellung in der komplexen Ebene eben gerade immer schön auf diesem
Einheitskreis liegt.
Und das heißt im Prinzip nichts anderes, dass bei einer Frequenz von 2
PN, also von Omega, das heißt da oben bei dem T, da steht nichts drin,
da steht nur dieser Vektor Phi drin.
Dann liege ich immer auf diesem Einheitskreis und diese
Phasenverschiebung Phi, die lässt den Zeiger einfach entlang dieses
Kreises rotieren.
Deswegen nennt man das auch den Phasenwinkel.
Deswegen nennt man also dieses Phi auch den Phasenwinkel, weil es ist
klar, wenn ich eine Sinusfunktion weit genug verschiebe, dann kommt
wieder die ursprüngliche Sinusfunktion raus, die man vorher hatte.
Das heißt, man dreht sich dann bei dieser Phasenverschiebung immer im
Kreis und hat dann entsprechend da halt diese Phasenverschiebung.
Das sind einfach unterschiedliche Darstellungen der Fourier-Reihen.
Und jetzt stört einen, dass man diese Fourier-Reihen-Darstellung nur
auf periodische Funktionen anwenden kann.
Was man gerne hätte, dass man so eine ähnliche Zerlegung hat für
nichtperiodische Funktionen.
Und mathematisch macht man das so, indem man jetzt die Periode dieser
periodischen Funktion gegen unendlich gehen lässt.
Und wenn also diese Periode dieser periodischen Funktion gegen
unendlich geht, dann ist er halt nicht mehr periodisch.
Und jetzt muss man sich also überlegen, was passiert, wenn man jetzt
bei dieser Fourier-Reihen-Zerlegung die Periode der ursprünglichen
Funktion gegen unendlich gehen lässt.
Man hatte halt vorher hier
immer ein Vielfaches dieser ursprünglichen Periode, beziehungsweise
der Kreisfrequenz, zwei Pi durch Periode.
Man hatte das also in Schwingungen zerlegt, die ein Vielfaches waren
dieser ursprünglichen Kreisfrequenz.
Jetzt geht dieses t gegen unendlich.
Das heißt, dieses Omega, das geht gegen null.
Das heißt also, diese Abstände zwischen den Frequenzen, die ich habe,
die ich dabei aufaddiere, die werden immer kleiner.
Wenn ich also ein periodisches Signal habe mit 10 Hertz, dann habe ich
immer so einen Abstand mit zwei Pi mal 10 dazwischen und immer
Vielfaches von zwei Pi mal 10.
Solche Sinus-Schwingungen werden aufaddiert.
Wenn ich fünf Hertz habe, dann habe ich halt nur noch den halben
Abstand.
Und jetzt wird die Periode immer kleiner.
Das heißt, die Periode wird immer größer.
Das heißt, die Frequenzen werden immer kleiner.
Das heißt, die Abstände zwischen diesen Basisfrequenzen, von denen ich
immer Vielfaches aufaddiere, die werden immer kleiner und kleiner und
kleiner und so klein, bis dann irgendwann statt dieser Summe dann ein
Integral von letztendlich unendlich vielen solcher Frequenzen, die ich
jetzt miteinander vermischen muss, da drin steht, sodass ich dann also
ein Integral habe über der ursprünglichen Funktion f von t mal diesen
e hoch minus i Omega t.
Also nichts anderes als eine andere Darstellung dieser Kosinus- und
Sinusfunktionen, aber jetzt nicht mehr diskret viele und immer
Vielfaches von dieser ursprünglichen Periode, die ich hatte, sondern
jetzt unendlich viele, die ich halt nicht mehr aufaddiere, sondern bei
denen ich dann das Integral über alle binde.
Das, was rauskommt, wird parametrisiert über dieses Omega.
Das ist so ähnlich wie die Koeffizienten.
Die Koeffizienten waren vorher parametrisiert über das n.
Es gab also so Koeffizienten a n und b n und die sind halt
parametrisiert über das wievielte Vielfache der ursprünglichen
Frequenz, die ich mir anschaue.
Hier gibt es nicht mehr das wievielte Vielfache, es ist jetzt
kontinuierlich.
Das heißt, es hängt jetzt komplett ab von dieser kontinuierlichen
Kreisfrequenz Omega.
Ich habe also unendlich viele solcher Koeffizienten, die jetzt halt
abhängig sind von dieser Kreisfrequenz Omega, die ich betrachte.
Und die rechne ich halt aus, indem ich immer für jedes Omega dieses
Integral bilde über dieses f von t minus i Omega.
Und diese Fourier-Transformation hat auch ein Inversus.
Die sieht fast genauso aus wie die Vorwärts-Transformation.
Der einzige wirklich interessante Unterschied ist, statt eines Is
steht hier ein Minus-I und vorne muss halt noch so ein
Skalierungsfaktor davor.
Und ansonsten ist das die gleiche Transformation wie in die
Vorwärtsrichtung.
Kann man sich vorstellen, dass also so Sachen wie Skalierung und
Addition und sowas funktioniert bei beiden.
Das ist einfach nur in der Höhe ein bisschen sind die Koeffizienten
anders skaliert.
Und hier da vorne, da ist ein Minus.
Das macht den großen Unterschied.
Die Fourier-Transformation hat so ein paar Eigenschaften, die Sie alle
kennen.
Insbesondere kann man diese Fourier-Transformation f von Omega einmal
darstellen als einen Betragsanteil und als einen Phasenanteil.
Also f von Omega, die Fourier-Transformierte allgemein, die nennen wir
das Spektrum.
Wenn wir davon den Betrag bilden, dann nennen wir das Ganze das
Amplitudenspektrum.
Wenn man bei der Betragsbildung bleibt nur übrig, mit welcher Energie
die einzelnen Frequenzen in dem Signal vorhanden sind, aber die
Phasenverschiebung der einzelnen Frequenzen geht von oben.
Die Phasenverschiebung finde ich in dem sogenannten Phasenspektrum phi
von Omega.
Und wenn ich halt das Phasenspektrum und das Amplitudenspektrum wieder
zusammennehme, kriege ich das ursprüngliche Spektrum, sind alle
Informationen dabei.
Und manchmal nimmt man noch das Quadrat des Amplitudenspektrums und
nennt das Ganze das Leistungsspektrum.
Analog zur Berechnung der Energie oder der Leistung eines Signals, bei
der man auch immer die Beträge der einzelnen Werte nimmt und das Ganze
quadriert.
Die Fourier-Transformation ist linear, so wie so ein lineares System.
Ich kann also Faktoren reinziehen und wenn ich die addiere, kann ich
das alles vor die Fourier-Transformation ziehen.
Es gibt eine Eigenschaft bei der Ableitung.
Wenn ich also die Fourier-Transformierte der enden Ableitung einer
Funktion nehme, dann ist das die Fourier-Transformation der nicht
abgeleiteten Funktion mal eines einfachen Faktors I Omega hoch N.
Wenn ich das Ganze zeitlich verschiebe, wenn ich also die Fourier
-Transformation einer zeitlich verschobenen Funktion anschaue, dann
ist das die Fourier-Transformation der ursprünglichen Funktion mit so
einem Phasenverschiebungsterm da vorne vor.
Und genauso umgekehrt, wenn ich also etwas Phasen verschiebe im
Zeitbereich, dann wird daraus eine Verschiebung im Frequenzbereich der
Fourier -Transformierten.
Und jetzt kommt eine sehr schöne Eigenschaft.
Wenn ich die Fourier-Transformierte der Faltung von zwei Funktionen
berechnen will, dann ist das das Gleiche, als wenn ich die Funktionen
erst einzeln Fourier-Transformiere und dann miteinander multipliziere.
Und das ist deshalb interessant, wenn man zum Beispiel irgendwelche
schwierigen Funktionen hat, die man miteinander falten möchte, und man
das irgendwie symbolisch nicht schön hinbekommt.
Wenn man stattdessen es aber schaffen könnte, die Fourier
-Transformation von den Signalen zu berechnen, dann könnte ich also,
wenn ich die Faltung haben will, einfach erst mal Fourier
-Transformation rechnen, dann multipliziere ich, das ist eine einfache
Operation, und danach mache ich wieder die inverse Fourier
-Transformation und kann damit sozusagen die Faltung von zwei Signalen
z.B.
miteinander berechnen.
Das heißt, ich kann diese Faltung sowohl im Zeitbereich als auch im
Fourier -Bereich ausrechnen, wenn ich das denn so möchte.
Und wenn ich sowieso die Fourier-Transformation der Faltung zweier
Funktionen haben möchte, dann ist es häufiger einfacher, erst mal die
einzelnen Funktionen zu Fourier-Transformieren und dann miteinander zu
multiplizieren.
Das bedeutet zum Beispiel, wenn mich die Fourier-Transformation des
Ergebnisses eines linearen zeitinvarianten Systems interessiert, dann
kann ich das zum Beispiel so machen, dass ich das Eingabesignal
Fourier -Transformiere, dass ich die Impulsantwort Fourier
-Transformiere und dann die beiden Ergebnisse miteinander
multipliziere, anstatt dass ich die Impulsantwort mit dem
ursprünglichen Signal erst mal falten muss.
Gut.
Nächstes Mal werde ich das auch noch erklären mit dem komplexen
Spektrum, weil das wichtig ist.
Das ist etwas, das Sie aller Garantie nach immer noch falsch im Kopf
haben.
Sie alle haben in kognitive Systeme ein paar Fourier-Transformationen
ein bisschen geübt.
Jetzt machen wir das, bevor ich Sie entlasse, probieren wir mal das
aus.
Wer kann mir auswendig sagen, was die Fourier-Transformierte einer
Sinusfunktion ist?
Wer kann sich da noch so ungefähr dran erinnern?
Fourier-Transformierte einer Sinusfunktion.
Wer weiß das noch?
Ja?
Na, komm.
Ja.
Also zwei Impulse.
Das da.
Genau.
Das haben Sie alle gelernt.
Sie gucken im Lehrbuch rein und da steht drin, wenn Sie es zeichnen,
das ist das hier.
Das ist falsch.
Das ist nämlich falsch.
Jetzt überlegen wir mal, bei der Fourier-Transformierten kommt was
Komplexes raus.
Das F von Omega, von einem bestimmten Omega, ist eine komplexe Zahl.
Und jetzt mache ich die Fourier-Transformation über alle möglichen
Omegas.
Das sollen ja alle möglichen Omegas sein.
Hier die Achse, die ist Omega und an jeder Stelle Omega steht eine
komplexe Zahl.
Und eine komplexe Zahl kann ich nicht so hinschreiben.
Eine komplexe Zahl ist eine eigene Ebene.
Das heißt, hier muss es eigentlich eine dritte Dimension geben, den
Imaginäranteil.
Omega, Imaginäranteil, Realanteil.
Und diese Dinger, die zeigen nicht nach oben.
Die zeigen nach da.
Wenn Sie es richtig zeichnen wollen, dann müssen Sie das
dreidimensional zeigen.
Die liegen in Wirklichkeit so da drin.
Da müssen Sie jetzt hier, jetzt gibt es hier keinen Zeigestock.
Wenn Sie es in den großen Hörsälen sehen, ist das schöner.
Das hier ist die Omega-Achse.
Und dann liegen die Zeiger so da drin.
Das sind die Zeiger.
Die zeigen nicht nach oben, die zeigen nach hinten in den Raum rein.
Und genauso wenig, wenn Sie Kosinus gucken, dann sehen Sie das hier.
Und das ist falsch.
Kosinus ist das da.
Der eine zeigt auf Sie zu, der andere Pfeil zeigt nach hinten.
Und wenn Sie dann anfangen, den Sinus, den Sie transformieren, Phasen
zu verschieben, dann rotieren diese Zeiger um diese Omega-Achse.
Wenn Sie den Sinus Phasen verschieben, dann rotiert der Zeiger um
diese Omega-Achse.
Und wenn Sie den Kosinus Phasen verschieben, dann rotieren diese
Zeiger gleichmäßig um die Omega-Achse.
Dessen müssen Sie sich immer bewusst sein.
Wenn Sie sowas in einem Lehrbuch sehen, das ist eine vereinfachte
Darstellung.
Das ist die Projektion aufs Zweidimensionale.
Da, wo Sie eigentlich ein dreidimensionales Bild zeichnen müssten.
Weil jeder Punkt hier steht für eine komplexe Zahl und das ist eine
Ebene.
Die hat einen Realanteil und die hat einen Imaginäranteil.
Das ist also ein dreidimensionales Gebilde, so eine Fourier
-Transformation und nicht sowas Zweidimensionales.
Weil ich halt die Zweidimension der reellen Zahlen habe und als dritte
Dimension eben die Omega-Achse.
Okay, und das soll es dann erstmal für heute gewesen sein.
Nächste Woche geht es dann weiter mit der Signalverarbeitung.