Zusammenfassung - Universität Ulm
Transcription
Zusammenfassung - Universität Ulm
Ausarbeitung zum Thema Signalverarbeitung und Signalanalyse in der Spracherkennung Michael Munz Fakultät für Informatik Universität Ulm 23. November 2004 1 INHALTSVERZEICHNIS 2 Inhaltsverzeichnis 1 Motivation 3 2 Überblick 3 3 Typen von Filterbänken 3.1 Gleichförmige Filterbänke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Ungleichförmige Filterbänke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 7 4 Implementierung von gleichförmigen Filterbänken 4.1 FIR-Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Windowing-Methode für FIR-Implementierung . . . . . . . . . . . . . . . . . . . . . . . . 4.3 STFT-Implementierung mit FFT-Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 9 10 5 Implementierung von ungleichförmigen Filterbänken 5.1 FFT-basierende Implementierung ungleichförmiger Filterbänke . . . . . . . . . . . . . . . 5.2 QMF-basierende Implementierung ungleichförmiger Filterbänke . . . . . . . . . . . . . . . 12 12 13 6 Zusammenfassung 13 7 Anhang: Einführung in die Systemtheorie 7.1 Der Dirac-Impuls . . . . . . . . . . . . . . . . 7.2 Die Abtastung . . . . . . . . . . . . . . . . . 7.3 Die diskrete Fourier-Transformation (DFT) . 7.4 Die Interpretation der Fourier-Transformation 7.5 Die Faltung . . . . . . . . . . . . . . . . . . . 7.6 Das Faltungstheorem . . . . . . . . . . . . . . 7.7 Lineare zeitinvariante Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 14 14 14 15 15 15 16 1 MOTIVATION 3 Abbildung 1: Modell einer kompletten Filterbank-Analyse 1 Motivation Um in der Spracherkennung eine hohe Wahrscheinlichkeit für eine korrekte Erkennung eines Sprachsignals zu erzielen, spielt die Vorverarbeitung des Signales und die Merkmalextraktion eine sehr wichtige Rolle. Die extrahierten Merkmale werden später mit Hilfe von Merkmalqualifikatoren weiterverarbeitet. Es stellt sich natürlich die Frage, welche Merkmale eines Signales für die Spracherkennung am wesentlichsten und aussagekräftigsten sind. Da auch biologisch die menschliche Fähigkeit, Sprache zu erkennen, noch nicht endgültig geklärt ist, ist auch die Problemstellung der maschinellen Spracherkennung noch nicht vollständig gelöst. Es gibt jedoch viele Lösungsansätze, die sich auch in der Praxis bereits bewährt haben. Filterbänke sind eine mögliche Art, Merkmale aus Sprachsignalen zu extrahieren. Dabei wird das Signal in unterschiedliche Frequenzbänder zerlegt und jeweils deren Energie bestimmt. Diese Energiesignale sind die Ausgabe der Filterbank. 2 Überblick Zunächst möchte ich einen Überblick über den Ablauf der Verarbeitung geben, wie sie bei Filterbänken üblich ist. Dabei wird die Verarbeitung aus systemtheoretischer Sicht erläutert. 1. Abtastung und Quantisierung Da Sprache ein kontinuierliches Signal ist, jedoch ein Spracherkennungs-System nur mit zeit-und wertdiskreten Signalen arbeiten kann, muss das Sprachsignal s(t) abgetastet werden. Dies entspricht einer Multiplikation des Signales s(t) mit der Sha-Funktion (auch: Delta-Impuls-Folge, KammFunktion). Dieses P∞ Ergebnis wird im folgenden mit s̃(n) bezeichnet. Also: s̃(n) = k=−∞ s(t) · δ(n − kT ). Menschliche Sprache umfasst ein Spektrum von ca. 300-6000 Hz. Daher genügt nach dem Abtasttheorem eine Abtastrate von 16 kHz, um das Signal eindeutig zu repräsentieren. Das Signal wird anschliessend noch quantisiert, um ein wertdiskretes Ergebnis zu erhalten. 2. Vorverarbeitung Hierbei wird das Sprachsignal verstärkt, Rauschen entfernt und das Signal geglättet. Dies dient dazu, dass die anschliessende Verarbeitung die Fehler, z.B. in Form von Rauschen, nicht noch mehr verstärkt, wie es bei manchen Filtern der Fall ist. Das verbesserte Signal wird mit s(t) bezeichnet. 2 ÜBERBLICK 4 3. Bandpass-Filter Die eigentliche Filterbank-Verarbeitung. Hier wird das Signal s(n) mittels mehrerer unterschiedlicher Bandpassfilter gefiltert. Die Impulsantwort hi (n) der Bandpassfilter wird mit dem Signal gefaltet. Das Ergebnis wird mit xi (n) bezeichnet: xi (n) = s(n) ∗ hi (n) 4. Wellengleichrichter Für die folgende Betrachtung soll angenommen werden, dass die Ausgaben der Bandpassfilter xi (n) ideal sind, d.h. genau eine Sinusschwingung beinhalten: xi (n) = αi · sin(ωi · n). Hinzu kommt noch, dass der Bandpassfilter eng genug sein muss, damit er nicht zwei oder mehr starke Signalharmonien umfasst. Ein Wellengleichrichter ist ein nicht-lineares System. Man kann das System durch folgende Gleichung beschreiben: ( +1 , xi (n) ≥ 0 vi (n) = f (xi (n)) · w(n), w(n) = −1 , xi (n) < 0 Diese Gleichung entspricht also im Ortsbereich der Betragsfunktion, wodurch auch klar wird, dass diese nicht durch ein lineares System beschrieben werden kann. Im Frequenzbereich kann dieses System durch folgende Faltung ausgedrückt werden: Vi (f ) = Xi (f ) ∗ W (f ), wobei ∗ die zirkulare Faltung bedeutet. Im Frequenzraum betrachtet verschiebt der Wellengleichrichter das Spektrum in Richtung 0, erzeugt jedoch gleichzeitig höherfrequente Kopien des Spektrums (Aliase). Idealisierte Spektren: Xi (n) = 2j (δ(f − fi ) − δ(f − fi )), Sinus enthält nur eine Frequenz. ≈ δ(f ), Korrespondenzen der W (f ) : Folge von schnell abklingenden Sinc-Funktionen ( sin(x) x Fenster-Funktionen) an ungeraden harmonischen Frequenzen fq = fi · q, q = 1, 3, ..., qmax . V i(f ) : Impuls δ(f ) und Folge von kleiner werdenden Impulsen an geraden harmonischen Frequenzen fq = fi ∗ q, q = 2, 4, 6, ... (vgl. Abbildung 2 und 3). 5. Tiefpassfilterung Die Tiefpassfilterung des Signales vi (n) soll bewirken, dass die durch die nicht-lineare Verarbeitung des Signales im vorherigen Schritt entstandenen Aliase entfernt werden. Dabei werden die höheren Frequenzen weggefiltert. Damit bleibt, im Frequenzraum betrachtet, nur noch das zum Nullpunkt hin verschobene Frequenzspektrum des bandpassgefilterten Signales übrig, im Idealfall ein einzelner Dirac-Impuls. Die Gleichrichtung und die anschliessende Tiefpassfilterung kann man auch als Berechnung des Gleichanteils der Signalfunktion sehen. Der Gleichanteil ist im Spektrum nahe dem Koordinaten-Ursprung. Dies funktioniert jedoch nur solange ideal wie auch das Signal ideal ist, d.h. dass bereits das Ausgangssignal xi (n) der Bandpassfilter ideal ist, wie oben beschrieben. Im praktischen Fall ist jedoch das Ausgangssignal des Bandpasses nicht ideal, was wiederum bedeutet, dass das Ausgangsspektrum des Tiefpasses nicht nur ein einzelner Dirac ist, sondern die Information befindet sich in einem (engen) Spektrum um den Gleichanteil im Ursprung. Die Breite dieses Spektrums hängt von der schnellsten Änderung im jeweiligen Frequenzband zusammen. Meist liegt die Breite bei 20-30 Hz. 6. Sampling Rate Reduction Box Die Sampling Rate Reduction Box dient zur Komprimierung der Datenmenge. Da das FrequenzSpektrum des Tiefpasses wie oben erwähnt eine maximale Frequenz von 30 Hz hat, kann das Signal nun gemäß dem Abtasttheorem auch mit weniger Samples rekonstruiert werden. Es reicht hierfür 2 ÜBERBLICK 5 Abbildung 2: Idealisiertes Spektrum einer Sinus-Schwingung bei der Filterung durch Wellengleichrichter eine Abtastrate von 60 Hz, was zu einer erheblich geringeren Datenmenge führt. 7. Amplitudenkomprimierung Eine letzte oft angewendete Methode, um die Datenmenge zu reduzieren, ist die Amplitudenkompression. Hierbei werden Verfahren wie log-Encoding oder µ-law-Encoding verwendet, die hier nicht weiter betrachtet werden sollen. Ein Beispiel: 16 Kanal-Filterbank, maximale Frequenz im zu untersuchenden Spektrum: fmax = 8000 Hz. Es soll bit eine Samplingrate von fs = 20000 Hz verwendet werden, Quantisierung mit 12 sample ⇒ bitrate = bit · 12 sample = 240000 bit 20000 samples s s Mit Hilfe der Sampling Rate Reduction Box mit Resampling-Frequenz 50 Hz und eines 7-bit-logEncoders wird die Datenmenge auf 5600 bit s reduziert, was einer Komprimierung von 42:1 entspricht. Zu beachten ist, dass diese Komprimierung für die zu extrahierende Datenmenge verlustlos ist. 8. Nachverarbeitung Nach der Komprimierung kann das Signal noch nachverarbeitet werden, um die Ausgabe des Filterbank-Analysators so klar wie möglich zu machen. Hierzu können unter anderem verwendet werden: zeitliche Glättung, Frequenzglättung, Normalisierung, Quantisierung oder Schwellwertverfahren, Hauptachsentransformation. 2 ÜBERBLICK Abbildung 3: Spektrum einer Sinus-Schwingung bei der Filterung durch Wellengleichrichter 6 3 TYPEN VON FILTERBÄNKEN 7 Abbildung 4: Frequentunterteilung einer ungleichförmigen Filterbank 3 Typen von Filterbänken Es gibt meherere Arten von Filterbänken. Mit Filterbank wird eine Gruppe von Filtern bezeichnet. Im folgenden werden wir uns mit gleichförmigen und ungleichförmigen Filterbänken befassen. Dabei unterscheidet man die Art, wie die Frequenzbänder der Filteraufgeteilt sind, mit denen das Signal gefiltert wird. 3.1 Gleichförmige Filterbänke Gleichförmige Filterbänke sind die am meisten verwendete Filterart. Dabei wird das zu untersuchende Frequenzspektrum gleichförmig unterteilt, d.h. die Mittelfrequenz des i-ten Filters bei Q Filtern ist fi = Fs N · i, 1 ≤ i ≤ Q, wobei Fs die Sampling-Rate ist und N die Anzahl der Filter, die benötigt werden, um das Frequenzspektrum komplett abzudecken. Für das Design von gleichförmigen Filterbänken gibt es mehrere Parameter, die eingehalten werden sollten. Für die Anzahl Q der Filter soll gelten: Q ≤ N2 . Falls Q = N2 , so wird das gesamte Spektrum abgedeckt. Für die Breite bi der einzelnen Filterspektren soll gelten: bi ≥ FNs . Hierbei bedeutet Gleichheit, dass sich die Spektren nicht überlappen, sondern gerade aneinanderstoßen. Die Anzahl sollte nicht zu klein sein, da sonst das Spektrum nicht genügend untersucht wird. Die Anzahl darf natürlich auch nicht zu groß sein, da sonst die Filterbreite zu eng werden würde, oder die Filter sich zu einem Großteil überschneiden würden. Ein zu enger Filter hat den Nachteil, dass evtl. einzelne Harmonien nicht durch den Filter erkannt werden, insbesondere bei sehr hochfrequenten Sprechern wie Kindern oder Frauen. Wenn diese Größe unterschritten wird, würde ein Teil des Spektrums fehlen und das Ergebnis daher unbrauchbar sein. Meist wählt man 8 < Q ≤ 32. 3.2 Ungleichförmige Filterbänke Ungleichförmige Filterbänke haben die Eigenschaft, dass die Breite der Filterspektren nicht gleich ist, sondern mit zunehmender Mittelfrequenz der Filter größer wird. Eine häufig verwendete Methode ist die logarithmische Aufteilung. Diese wird gern verwendet, da die menschliche Wahrnehmung von Audio-Signalen logarithmisch ist (vgl. z.B. Lautstärke in dB). Dies bedeutet dann für Q Bandpassfilter der Breite bi : b1 bi fi =C = α · bi−1 , 2 ≤ i ≤ Q i−1 X bj − b1 = f1 + bj + 1 j=1 4 IMPLEMENTIERUNG VON GLEICHFÖRMIGEN FILTERBÄNKEN 8 Abbildung 5: Kritische Bandbreite wobei C die Anfangsbreite und f1 die Anfangsfrequenz ist. α ist ein konstanter Wachstumsfaktor. Meist wird hierbei α = 2 verwendet. Dies verdoppelt jeweils die Frequenz, was für die menschliche Wahrnehmung eine Erhöhung des Tons um 1 Oktave entspricht. Dies ergibt dann einen sog. Oktavfilter. Eine Alternative zu dieser Aufteilung ergab sich aus einer Studie, wie unterschiedliche Frequenzen vom Menschen wahrgenommen werden. Psychoakkustische Experimente zeigten, dass es mehrere Gruppen von Frequenzen gibt, die jeweils in bestimmten Kriterien vom Menschen gleich empfunden werden. Die Breite der Frequenzgruppe wird kritische Bandbreite genannt. Die kritische Bandbreite ist unter 1000Hz annähernd konstant und umfasst jeweils 1/3 Oktave, was einer linearen Skalierung entspricht (vgl. Abbildung 6). Oberhalb von 800 − 1000Hz steigt sie exponentiell an, was zu einer logarithmischen Skalierung führt. Dies kann bei der Aufteilung der ungleichförmigen Filterbänke verwendet werden, um möglichst gut die menschlichen psychoakkustischen Wahrnehmungen zu simulieren. Die bekanntesten Skalierungen hierbei sind die mel-Scale und die Bark-Scale. Es wird jedoch auch oft α = 23 verwendet, was eine OktavDrittelung ergibt und daher unter 1000 Hz einer kritischen Bandbreite entspricht. Dies nennt man dann einen Terzfilter. 4 Implementierung von gleichförmigen Filterbänken Das System einer gleichförmigen Filterbank kann unterschiedlich implementiert werden. Zunächst können die verwendeten Filter erst einmal in 2 Kategorien aufgeteilt werden: IIR (Infinite Impulse Response unendliche Impulsantwort) und FIR (Finite Impulse Response - endliche Impulsantwort). IIR-Filter sind komplizierter zu implementieren, da die Impulsantwort eines IIR-Filters unendlich ist und daher die Faltung mit dem Signal nicht möglich ist. Die effizienteste Implementierung ist eine kaskadierte oder parallele Berechnung. Wir wenden uns im Folgenden den FIR-Filtern zu. 4.1 FIR-Implementierung Die einfachste Implementierung eines FIR-Filters in Hard- oder Software ist die folgende: man faltet das Signal s(n) diskret mit der Impulsantwort des Filters hi (n). Dies ist möglich, da die Impulsantwort eines FIR-Filters endlich ist. Dies muss für jeden Kanal wiederholt werden. Für L Samples und Q Kanäle ergibt sich: xi (n) = s(n) ∗ hi (n) = L−1 X hi (m) · s(n − m) (1) m=0 Dabei ergibt sich eine Komplexität von CF IR = L · Q (2) 4 IMPLEMENTIERUNG VON GLEICHFÖRMIGEN FILTERBÄNKEN 9 . 4.2 Windowing-Methode für FIR-Implementierung Die Windowing-Methode ist eine effizientere Implementierung für FIR-Filter. Diese Methode kann angewendet werden, falls die Systemantwort jedes Filters beschrieben werden kann durch ein Fenster, dass auf der Frequenzachse verschoben ist: Hi (f ) = W (f − fi ). Dies korrespondiert im Ortsbereich mit: hi (n) = w(n) · e−j2πfi n , also einer Modulation des Signales. In diesem Fall kann man die Ausgabe des Filters in Gleichung 1 ausdrücken durch: xi (n) = X = X w(m)e−jωi n s(n − m) m s(m)w(n − m)e−jωi (n−m) m = e−jωi n X s(m)w(n − m)e−jωi m (3) m | {z Sn (F ) = e−jωi n Sn (ωi ) } (4) wobei ωi = 2πfi n und Sn (ωi ) die Kurzzeit-Fourier-Transformation (STFT) von s(n) ist. Die KurzzeitFourier-Transformation kann wesentlich effizienter implementiert werden, wie im folgenden beschrieben wird. Betrachtet man die STFT in Gl. 3 im Frequenzraum für ein festes n = n0 : Sn0 (fi ) = X s(m)w(n0 − m)e−jωi m m = F T [s(m) · w(n0 − m)]|f =fi wobei F T [·] die Fouriertransformation ist. Dies bedeutet: die STFT ist gleichbedeutend mit der Fouriertransformation des Signals, welches mit einem Zeitfenster multipliziert wird, an der Stelle f = fi . Es wird also immer nur ein bestimmter Zeitabschnitt des Signales transformiert. Da w ein FIR-Filter ist, kann seine Größe L explizit festgelegt werden. L bestimmt also die Anzahl der Samples, die bei der DFT berücksichtigt werden. Man kann für unterschiedliche Filtergrößen L feststellen, dass dies stark unterschiedliche Auswirkungen auf das Filterergebnis sowohl im Frequenz- als auch im Zeitbereich hat. Falls L 1 Signalperiode: im Spektrum von Sn (f ) sind die einzelnen Frequenzen gut sichtbar, ebenso können die einzelnen Obertöne klar voneinander getrennt werden. Im Zeitbereich kann man die Periodizität des gefilterten Signales sehr gut sehen. Falls jedoch L 1 Signalperiode: Jetzt sind im Spektrum von Sn (f ) die einzelnen Frequenzen nicht mehr klar voneinander getrennt, jedoch erhält man so eine gute Abschätzung des groben Spektralverlaufes. Man kann die STFT jedoch auch als lineare Filteroperation im Zeitbereich eines zeitdiskreten Signales interpretieren. Hierzu betrachten wir uns noch einmal Gl. 3: interpretiert man die Summe als Faltung, so ergibt sich Folgendes für ein festes f = fi , bzw. w = wi = 2πfi : 4 IMPLEMENTIERUNG VON GLEICHFÖRMIGEN FILTERBÄNKEN Sn (fi ) X = 10 s(m)w(n0 − m)e−jωi m m in (s(n) |e−jω {z } ) ∗ w(n) = M odulation Sn (fi ) ist also die Faltung des frequenzmodulierten Signals mit einem Tiefpassfilter. Betrachten wir dies im Frequenzbereich: da die Modulation im Zeitbereich zu einer Verschiebung im Frequenzbereich korrespondiert, erhalten wir: = F T [(s(n) · e−jωi n ) ∗ w(n)] ωi = S(f − ) · W (f ) 2π F T [Sn (fi )] ωi wobei W (f ) die Fouriertransformierte von w(n) und S(f − 2π ) die verschobene Fouriertransformierte von s(n) ist. W (f ) approximiert innerhalb eines schmalen Bandes 1 und ist sonst überall 0. Dies erlaubt uns also folgende Interpretation: Sn (f ) ist also das Spektrum des Signales, gefiltert mit einem Filter, dessen Bandbreite gleich der Bandbreite von W (f ) ist, bei fester Frequenz fi . 4.3 STFT-Implementierung mit FFT-Methoden Nach den oben angestellten Beobachtungen können wir nun die Kurzzeit-Transformation auf FFTMethoden zurückführen. Wir wollen dies nun verwenden, um eine gleichförmige Filterbank zu implementieren mit der gleichförmigen Frequenzaufteilung fi = i(F s/N ), i = 0, 0, ..., N − 1. Betrachten wir dazu noch einmal Gl. 3: 2π xi (n) = e−j N in X m 2π s(m)w(n − m) e−j N im | {z } (5) =:sn (m) Setzen wir m = N r + k, 0 ≤ k ≤ N − 1, −∞ < r < ∞, so erhalten wir: xi (n) = 2π e−j N in −1 X NX r e−j2πir =1 = 2π e−j N in N −1 X X = e 2π sn (N r + k) e−j N ik (7) r | N −1 X (6) k=0 k=0 −j 2π N in 2π sn (N r + k)e−j N i(N r+k) {z =:un (k) 2π un (k)e−j N ik } (8) k=0 Nach dieser äquivalenten Umformung der Darstellung haben wir unser Ziel erreicht. Denn Gleichung 8 beschreibt lediglich die N-Punkt diskrete Fouriertransformation (DFT) der Sequenz un (k), welche anschliessend moduliert wird. un (k) ist jedoch die gefensterte Ausgangsfunktion sn (m), die stückweise aufsummiert wird. Formulieren wir nun den Algorithmus (s. auch Abbildung 4): 1. Filterung des Signals s(m) mit dem Fenster-Filter mit L Samples ergibt sn (m) = s(m)w(n − m) 4 IMPLEMENTIERUNG VON GLEICHFÖRMIGEN FILTERBÄNKEN 11 Abbildung 6: STFT-Implementierung einer gleichförmigen Filterbank 2. Bilden von un (k): das Signal sn (m) wird jeweils in N Samples große Stücke geteilt. Diese werden alle aufsummiert. 3. Die Transformation: hierbei kann die DFT mit FFT-Methoden verwendet werden: transformiere mit der N-Punkt-DFT das Signal un (k). 2π 4. Moduliere das DFT-Ergebnis mit der Sequenz ej N in oder: das Signal un (k) wird im Zeitbereich vor der Transformierung zirkular verschoben, was zu der Modulation korrespondiert und effizienter zu berechnen ist. Was wir durch die Umformung gewonnen haben, erkennt man am Besten, indem man sich die Komplexität der DFT-Implementierung (die natürlich FFT-Methoden verwendet) ansieht: CF F T = 2N log(N ) (9) LQ Vergleicht man nun Gl. 4.1 mit Gl. 9, so erhält man das Verhältnis R = 2N log(N ) , das in den meisten praktischen Fällen größer als 1 ist. Dies bedeutet, dass die Implementierung mit Hilfe der DFT wesentlich effizienter ist. Ein Beispiel: 16 Kanal-Filterbank, N = 32, Filter mit L = 128 Samples, 12, 8 ms bei 10 kHz Sampling Rate und Q = 16 Kanäle. 128 · 16 R= = 6, 4 2 · 32 · 5 Hier ist die DFT-Implementierung also 6,4-mal so schnell. 5 IMPLEMENTIERUNG VON UNGLEICHFÖRMIGEN FILTERBÄNKEN 5 12 Implementierung von ungleichförmigen Filterbänken Bei ungleichförmigen Filterbänken besitzt der k-te Bandpass-Filter die Impulsantwort hk (n) mit der Mittelfrequenz ωk und der Bandbreite ∆wk . Die einfachste Implementierung einer ungleichförmigen Filterbank ist die direkte Faltung der Impulsantwort hk (n) mit dem Eingangssignal s(n). Dabei ergeben sich Q bandpassgefilterte Ausgangssignale. Die Faltung ist jedoch insbesondere bei längeren Sequenzen ineffizient. Falls jedoch jeder Filter mit Hilfe der Fenster-Design-Methode implementiert wird, ergibt sich, dass die Ausgabe eines Q-Kanal-Filterbank-Analysators völlig unabhängig von der Verteilung und der Anzahl der verwendeten Filters ist. Der Beweis hierzu kann folgendermaßen skizziert werden: Sei h̃k (n) die Impulsantwort des zu designenden idealen Filters, w(n) ein FIR-Fenster-Filter. Die Impulsantwort des k-ten Bandpassfilters sei hk (n) = w(n)h̃k (n) Die korrespondierenden Fourier-Transformierte der Summe aller Filterantworten lautet dann H(f ) = Q X W (f ) ∗ H̃k (f ) = W (f ) ∗ Q X H̃k (f ) k=1 k=1 PQ wobei k=1 H̃k (f ) die Summe aller Impulsantworten aller Q idealen Filter ist, also ein zusammengesetztes Fenster aus lückenlos aneinandergefügten ( Fenstern. P 1 , fmin ≤ f ≤ fmax Q ˜ ) := Und damit ist H(f , mit fmin und fmax den jeweils kleinsten k=1 H̃k (f ) = 0 , sonst und größten im Spektrum zu untersuchenden Frequenzen, und damit unabhängig von der Verteilung und der Anzahl der einzelnen Filter. ˜ ). Insgesamt also: H(f ) = W (F ) ∗ H(f 5.1 FFT-basierende Implementierung ungleichförmiger Filterbänke Um ungleichförmige Filterbänke effizient zu implementieren, kann man das Ergebnis aus 4.3 verwenden, indem man aus der gleichförmigen Filterbank einzelne Kanäle kombiniert. Diese mögliche Implementierung verwendet dann ebenfalls die FFT-Methoden, jedoch kann man dies noch optimieren. Wir untersuchen, wie sich die Addition zweier Filterausgaben mathematisch darstellen lässt. Filtern wir das Eingangssignal s(n) mit einem Fenster-Filter mit der Impulsantwort w(n) und transformieren das Ergebnis anschliessend mit der N-Punkt-DFT, so ergibt sich Folgendes: Xk = N −1 X 2π x(n)e−j N nk n=0 Addiert man nun, wie oben beschrieben, das Ergebnis zweier Filter zusammen, so erhält man: Xk + Xk+1 = N −1 X 2π 2π x(n)(e−j N nk + e−j N n(k+1) ) n=0 = N −1 X n=0 2π [x(n)2e−j N n cos( πn −j 2π nk )]e N N Dies bedeutet, dass die Kombination zweier Kanal-Antworten äquivalent berechnet werden kann, indem 2π man das Eingangssignal zuerst fenstert, anschliessend mit der komplexen Folge 2e−j N n cos( πn N ) multipliziert und erst dann Fourier-transformiert. Bei mehr als zwei Kanälen ergibt sich analog dazu ein anderer Faktor, der jeweils wieder wie oben bestimmt werden kann. Wir erhalten also daraus den Vorteil, dass die Ergebnisse nicht mehr rekursiv berechnet werden müssen. 6 ZUSAMMENFASSUNG 13 Abbildung 7: QMF-Schema, inkrementelle Filterung 5.2 QMF-basierende Implementierung ungleichförmiger Filterbänke Da sich aus rekursiven Strukturen oftmals leicht Bäume bilden lassen, kann für die Implementierung ungleichförmiger Filterbänke auch ein Baum-basierender Ansatz gewählt werden. Dabei verfährt man folgendermaßen (vgl. Abbildung 7: das Eingangssignal wird schrittweise gefiltert. In jeder Stufe wird das Signal in ein Hoch- und ein Tiefband zerlegt. Das Tiefband wird anschliessend weitergefiltert. Da durch die Filterung natürlich die maximale Frequenz reduziert wird und sich somit das Signal auch aus weniger Samples wieder eindeutig und korrekt rekonstruieren lässt, wird zudem nach jeder Stufe die Sampling Rate reduziert, um die Filterung effizienter ablaufen lassen zu können. Meist werden hierbei sog. Quadratur Mirror-Filter (QMF-Filter) verwendet. Dies sind Filter, deren Impulsantworten komplementär sind. Diese Filter sind besonders für Oktav-Bänder sehr effizient zu implementieren. Bei einer Oktav-Skalierung bedeutet dies, dass ein QMF-Filter-Paar aus Hoch- und Tiefpass ein Spektrum in 2 genau gleich große Anteile zerlegt. Dies bedeutet auch, dass die Sampling-Rate anschliessend um den Faktor 2 verkleinert werden kann. Der Hochpass-Anteil wird anschliessend in die nächste Stufe weitergegeben, und das Verfahren beginnt wieder von vorne. Man erhält so schrittweise die Filterantworten Xn , Xn−1 , ..., X2 , X1 . 6 Zusammenfassung Es gibt also eine Reihe unterschiedlicher Verfahren, um gleichförmige wie auch ungleichförmige Filterbänke zu implementieren. Sie unterscheiden sich in Aufwand der Implementierung, Effizienz und natürlich in der Ausgabequalität. Beim Design solcher Filterbänke spielen eine Reihe unterschiedlicher Parameter eine Rolle, die bisher noch nicht genauer betrachtet wurden. Hierzu zählt die Art der Filter (IIR, FIR), die Art des Fenster-Filters (z.B. Hamming-Window,...), Anzahl der Kanäle. 7 ANHANG: EINFÜHRUNG IN DIE SYSTEMTHEORIE 7 14 Anhang: Einführung in die Systemtheorie An dieser Stelle möchte ich eine kurze Einführung zur Systemtheorie, Transformationen und Signalanalyse geben. 7.1 Der Dirac-Impuls Der Dirac-Impuls (auch: Dirac-Stoß) ist eine in der Systemtheorie wesentliche Funktion, die auf den ersten Blick recht einfach aussieht, jedoch ist die mathematisch exakte Beschreibung des Signales sehr komplex. Die diskrete Definition des Dirac-Impulse δ(n): ( 1, n = 0 δ(n) := 0, n 6= 0 Für kontinuierliche Betrachtungen muss dieser Dirac-Impuls jedoch über Distributionen beschrieben werden, was jedoch hier nicht weiter betrachtet werden soll. Anschaulich kann man sich den Dirac-Impuls als unendlich schmales, unendlich hohes Signal vorstellen, dass genau die Fläche 1 hat. 7.2 Die Abtastung Die Abtastung ist ein wesentliche Instrument der Systemtheorie. Sie beschreibt die Verarbeitung kontinuierlicher Signale zu diskreten Signalen, die in einem Rechner verarbeitet werden können. Dabei werden abzählbar viele Signalwerte des kontinuierlichen Signales verwendet und an das System weitergeleitet. Die Abtastung eines Signales x(n) ist definiert als Multiplikation des Signales mit der Dirac-Impuls-Folge ∆(n): ∆(n) = ∞ X δ(n − kT ) k=−∞ Also ist die Gleichung eines abgetasteten Signales: ∞ X x(n) = x(t) · δ(n − kT ) k=−∞ wobei x(t) das kontinuierliche Signal und 7.3 1 T die Abtastrate ist. Die diskrete Fourier-Transformation (DFT) Die Fourier-Transformation ist eine Operation der Systemtheorie. Da wir uns im Folgenden nur mit wert- und zeitdiskreten Signalen beschäftigen, beschränke ich mich hierbei auf die sog. diskrete FourierTransformation (DFT). Die DFT ist definiert für eine endliche Anzahl N Abtastpunkte. Die Definition lautet: Xi (f ) = N −1 X x(k)ωnki , i = 0, 1, ..., N − 1 k=0 −j 2π n wobei ωn = e die n-ten Einheitswurzeln sind. Die Definition der inversen diskreten Fouriertransformation (IDFT) lautet: x(k) = N −1 1 X X(i)ωn−ki , k = 0, 1, ..., N − 1 N i=0 7 ANHANG: EINFÜHRUNG IN DIE SYSTEMTHEORIE 15 Um N Abtastwerte zu erhalten, wird also jeweils das Signal zuerst abgetastet und anschliessend mit einem Fenster (ideal: rect) multipliziert, um nur einen Bereich von N Abtastwerten zu transformieren. Die Transformierte eines Signales wird immer mit Großbuchstaben und der Variablen f oder ω bezeichnet, die Rücktransformierte mit Kleinbuchstaben und der Variablen n oder k (im kontinuierlichen Fall mit t) Ein solches Fourier-Paar wird auch Korrespondenz genannt. Man sagt: x(n) korrespondiert mit X(f ). 7.4 Die Interpretation der Fourier-Transformation Die Fourier-Transformation kann auf unterschiedliche Weise interpretiert werden. Allen Interpretationen gleich ist jedoch das Resultat der Transformation: Die DFT transformiert ein Signal aus dem sog. Ortsoder Zeitbereich in den Fourier- oder Frequenzbereich. Dieser Frequenzbereich gibt an, wie stark die im Signal vorkommenden verschiedenen Frequenzen sind. Dies beruht auf der Tatsache, dass jedes periodische Signal aus unterschiedlichen Kombinationen von Sinus- bzw. Cosinus-Funktionen zusammengesetzt werden kann. Jede Sinus-Funktion enthält also genau eine Frequenz. Für die Begründung, warum die Fourier-Transformation dies leistet, hat unterschiedliche Interpretationsmöglichkeiten, wovon jedoch alle äquivalent sind, jedoch jede für sich einen anderen anschaulichen Ansatz hat: 1. Möglichkeit: Die Fourier-Transformation korreliert die Funktion mit allen möglichen Sinus-CosinusSchwingungen (die Exponential-Funktion enthält Sinus-Cosinus-Schwingungen). Vgl. die Fourierreihe und ihre Fourier-Koeffizienten. 2. Möglichkeit: Die Fourier-Transformation projiziert die Funktion auf verschiedene Sinus-CosinusSchwingungen durch das Skalarprodukt. Beachte: das Ergebnis einer Fourier-Transformation ist (in den meisten Fällen) nicht reell, sondern komplex. Daher wird in einem Plot die Transformierte meist durch Betrag und Phase (im Folgenden meist nur durch Betrag) dargestellt. 7.5 Die Faltung Die Faltung ist eine weitere wesentliche Operation der Systemtheorie. Die Faltung eines Signales x(n) mit einem Signal y(n) ist definiert als: w(n) = x(n) ∗ y(n) ∞ X = x(i)u(n − i) i=−∞ Anschaulich kann dies folgendermaßen interpretiert werden: Spiegle das zweite Signal, verschiebe dies von links nach rechts über das erste Signal und bestimme für jede Verschiebung die Fläche des Produktes beider Signale. Das neutrale Element der Faltung ist der Dirac-Impuls: x(k) ∗ δ(k) = x(k) 7.6 Das Faltungstheorem Die Faltung und die Fourier-Transformation hängen sehr eng zusammen. Es gilt nämlich für ein Signal w(k): w(n) = x(n) ∗ y(n) LITERATUR 16 korrespondiert im Frequenzbereich mit W (f ) = X(f ) · Y (f ) wobei W (f ), X(F ), Y (F ) die jeweils korrespondierenden Funktionen zu w(k), x(k), y(k) sind. Dies bedeutet also, dass die Faltung ∗ mit der Multiplikation · korrespondiert. Dies gilt auch analog umgekehrt. Dies wird oft verwendet, um eine Faltung effizienter zu berechnen. Mit Hilfe der Fast-Fourier-Transformation (FFT) kann die DFT mit der Zeit-Komplexität N log(N ) berechnet werden. Dies ist insbesondere bei langen Sequenzen viel effizienter als die Faltung. In diesem Fall transformiert man also die beiden Signale, multipliziert sie im Frequenzbereich und transformiert dann das Ergebnis wieder zurück in den Ortsbereich, um so eine Faltung zu berechnen (der Befehl convı̈n Matlab ist genau so implementiert). 7.7 Lineare zeitinvariante Systeme Ein lineares zeitinvariantes System (LTI-System) ist die zentrale Beschreibungsform in der Systemtheorie. Für LTI-Systeme muss gelten, dass das Systemverhalten linear und zeitinvariant ist. LTI-Systeme werden immer anhand ihrer Impulsantwort beschrieben. Ein System bildet eine Folge von Eingangswerten x(n) auf eine Folge von Ausgangswerten y(k) ab. Man schreibt: y(k) = H{x(k)}. Die Impulsantwort h(k) eines Systems ist die Antwort(das Ergebnis) am Ausgang eines Systems, wenn die Eingabe ein Dirac-Impuls ist. Betrachtet man nun die Antwort des LTI-Systems auf den Dirac-Impuls: y(k) = H{x(k)} = H ∞ X x(i)δ(k − i) i=−∞ Linearitaet = = ∞ X i=−∞ ∞ X i=−∞ = ∞ X x(i)H{δ(k − i)} x(i) H{δ(k)} | {z } h(k−i),Zeitinvarianz x(i)h(k − i) i=−∞ = x(k) ∗ h(k) Für LTI-Systeme gilt also: y(k) = x(k) ∗ h(k) Systeme, deren Impulsantwort unendlich ist, nennt man Infinite Impulse Response System (IIR-System) oder auch rekursive Systeme, analog dazu Systeme mit endlicher Impulsantwort nennt man Finite Impulse Response System (FIR-System). Endlich heisst hier: die Antwort besteht aus unendlich vielen Stellen 6= 0. Literatur [1] Lawrence Rabiner, Biing-Hwang Juang: Fundamentals of Speech Recognition, Kapitel 3, Prentice Hall, 1993 [2] Prof. Dr-Ing. M.Bossert: Skript Signale und Systeme, Universität Ulm, Stand 15.Otober 2003 [3] Stearns, Hush: Digitale Verarbeitung analoger Signale, Oldenburg, 7. Auflage, 1999 [4] Hoffmann: Grundlagen der Frequenzanalyse, expert- Verlag, 2000