vorlesung_ss_08_af_0..
vorlesung_ss_08_af_0..
vorlesung_ss_08_af_0..
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Teil 1 – Motivation<br />
Lineare Prädiktion<br />
Quelle-Filter-Modell der Spracherzeugung<br />
Herleitung der linearen Prädiktion<br />
Levinson-Durbin-Rekursion<br />
Anwendungsbeispiel<br />
Menschliche Spracherzeugung<br />
und deren Modellierung<br />
Adaptive Filter<br />
E. Hänsler und G. Schmidt<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 2
Spracherzeugung<br />
Quelle: Eppinger / Herter: Sprachverarbeitung, Hanser-Verlag, 1993<br />
Quelle-Filter-Modell<br />
Sprachgrundfrequenz<br />
Impulsgenerator<br />
Rauschgenerator<br />
Prinzip:<br />
Luftstrom, von der Lunge<br />
kommend, regt die<br />
Stimmbänder zum Schwingen<br />
an bzw. erzeugt ein rauschartiges<br />
Signal (bei geöffneten<br />
Stimmbändern).<br />
Der Mund-, Nasen- und Rachenraum<br />
verhält sich wie ein<br />
steuerbarer Resonanzkörper,<br />
der einige wenige Frequenzen<br />
nicht dämpft (diese werden<br />
Formantfrequenzen genannt).<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 3<br />
σ(n)<br />
Vokaltraktfilter<br />
s(n)<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 4
Literaturhinweise<br />
Basistext:<br />
E. Hänsler / G. Schmidt: Acoustic Echo and Noise Control – Kapitel 6 (Linear Prediction),<br />
Wiley, 2004<br />
Sprachsignalverarbeitung:<br />
P. Vary, R. Martin: Digital Transmi<strong>ss</strong>ion of Speech Signals – Kapitel 2 (Models of Speech<br />
Production and Hearing), Wiley 2006<br />
J. R. Deller, J. H. l. Hansen, J. G. Proakis: Discrete-Time Proce<strong>ss</strong>ing of Speech Signals –<br />
Kapitel 3 (Modeling Speech Production), IEEE Pre<strong>ss</strong>, 2000<br />
Weitere Grundlagen:<br />
E. Hänsler: Statistische Signale: Grundlagen und Anwendungen – Kapitel 6 (Linearer<br />
Prädiktor), Springer, 2001<br />
M. S. Hayes: Statistical Digital Signal Proce<strong>ss</strong>ing and Modeling – Kaptitel 4 und 5 (Signal<br />
Modeling, The Levinson Recursion), Wiley, 1996<br />
Teil 2 – Grundlagen<br />
Grundlagen der<br />
linearen Prädiktion<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 5<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 6
Ansatz<br />
Vorhersage des aktuellen Signalwertes auf der Basis der letzten N Werte:<br />
N−1 X<br />
bs(n) = hi s(n − 1 − i)<br />
s(n − 1)<br />
i=0<br />
h0<br />
z −1<br />
z −1<br />
Dabei sind:<br />
bs (n) : Ein Schätzwert für s(n)<br />
N : Länge/Ordnung des Prädiktors<br />
hi : Prädiktorkoeffizienten<br />
Optimierungskriterium<br />
Optimierung:<br />
z −1<br />
Lineares Prädiktionsfilter<br />
z −1<br />
h1 h2<br />
hN−1<br />
bs (n)<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 7<br />
Bestimmung der Filterkoeffizienten hi so, da<strong>ss</strong> eine Ziel- bzw. Kostenfunktion<br />
optimiert wird!<br />
Kostenfunktion:<br />
n £ ¤ o<br />
2<br />
E s(n) − bs (n) → min<br />
| {z }<br />
e(n)<br />
Strukturbild:<br />
s(n)<br />
z −1<br />
[h0, ...,hN−1] T<br />
Lineares<br />
Prädiktionsfilter<br />
e(n)<br />
bs (n)<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 8
Spektrales Entfärben<br />
Kostenfunktion:<br />
E © e 2 (n) ª → min<br />
Leistung<strong>ss</strong>tarke Frequenzanteile<br />
werden zunächst<br />
am stärksten gedämpft<br />
(Parseval).<br />
Dies führt auf ein spektrales<br />
Einebnen (Weißmachen)<br />
des Fehlerspektrums<br />
Inverse Filterstruktur<br />
s(n)<br />
s(n)<br />
z −1<br />
FIR-Filter (Sender)<br />
[h0, ...,hN−1] T<br />
z −1 [h0, ...,hN−1] T<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 9<br />
e(n)<br />
bs (n)<br />
Allpol-Filter (Empfänger)<br />
e(n)<br />
bs (n)<br />
Eigensch<strong>af</strong>ten:<br />
Das inverse Prädiktorfehlerfilter<br />
ist ein Allpol-Filter<br />
(IIR-Filter).<br />
Die kaskadierte Struktur<br />
aus Prädiktorfehlerfilter<br />
und dazu inversem<br />
Filter kann zur (verlustlosen)<br />
Datenreduktion<br />
beim Senden und<br />
Empfangen verwendet<br />
werden.<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 10
Bestimmung der Prädiktorkoeffizienten<br />
Beispiele – Teil 1<br />
(Herleitung an der T<strong>af</strong>el)<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 11<br />
Erstes Beispiel:<br />
Eingang<strong>ss</strong>ignal s(n) : weißes Rauschen mit Leistung σ (mittelwertfrei)<br />
Prädiktorordnung: N = 3<br />
Vorhersage um einen Takt: L =1<br />
2 0<br />
Daraus ergibt sich:<br />
⎡<br />
σ<br />
R<strong>ss</strong> = ⎣<br />
2 0 0 0<br />
0 σ 2 0 0<br />
0 0 σ 2 0<br />
iT r <strong>ss</strong>(1) =<br />
h<br />
0, 0, 0<br />
h = R −1<br />
<strong>ss</strong> r h iT <strong>ss</strong>(1) = 0, 0, 0<br />
⎤<br />
⎦ R −1<br />
bzw.<br />
<strong>ss</strong><br />
1<br />
=<br />
σ2 ⎡ ⎤<br />
1 0 0<br />
⎣ 0 1 0 ⎦<br />
0 0 0 1<br />
, d.h. es kann keine Vorhersage getroffen<br />
werden bzw. die beste Vorhersage ist der Mittelwert<br />
und der ist Null.<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 12
Beispiele – Teil 2<br />
Zweites Beispiel:<br />
Eingang<strong>ss</strong>ignal s(n) : Sprache,<br />
abgetastet mit fs =8kHz<br />
Prädiktorordnung: N =16<br />
Vorhersage um einen Takt: L =1<br />
Einmalige Optimierung<br />
der Prädiktorkoeffizienten<br />
für die gesamte Sprachpa<strong>ss</strong>age<br />
Neueinstellung der<br />
Prädiktorkoeffizienten<br />
alle 64 Abtasttakte<br />
Schätzung der Autokorrelationsfunktion – Teil 1<br />
Problem:<br />
Scharmittelwerte sind in den meisten Anwendungen nicht bekannt.<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 13<br />
Abhilfe:<br />
Schätzung der Scharmittelwerte durch Zeitmittelwerte (Ergodizität annehmen).<br />
n<br />
o X<br />
E s(n) s(n + l)<br />
s(n) s(n + l)<br />
Annahme:<br />
s0(n) sei eine Musterfunktion des Zufallsproze<strong>ss</strong>es s(n) .<br />
n<br />
Schätzverfahren:<br />
Es existieren eine Reihe von Schätzverfahren, die sich hinsichtlich der Eigensch<strong>af</strong>ten der geschätzen<br />
Autokorrelationsfunktion unterscheiden (Erwartungstreue, positive Definitheit der AKF-Matrix).<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 14
Schätzung der Autokorrelationsfunktion – Teil 2<br />
Beispiel – „Autokorrelationsmethode“:<br />
Berechnung: ⎧<br />
L−1−l<br />
1 P<br />
⎪⎨ L s0(n) s0(n + l), für l ≥ 0,<br />
n=0<br />
br <strong>ss</strong>(l) =<br />
L−1<br />
⎪⎩ 1 P<br />
L s0(n) s0(n + l), für lL<br />
br<strong>ss</strong>(l) = br<strong>ss</strong>(−l)<br />
br<strong>ss</strong>(l) · br<strong>ss</strong>(0)<br />
n o<br />
E br<strong>ss</strong>(l) · r<strong>ss</strong>(l)<br />
Die resultierende (geschätzte) Autokorrelationsmatrix ist positiv-definit.<br />
Die resultierende (geschätzte) Autokorrelationsmatrix hat Töplitz-Struktur.<br />
Levinson-Durbin-Rekursion – Teil 1<br />
Problem:<br />
Die Lösung des Gleichung<strong>ss</strong>ystems<br />
R<strong>ss</strong>hopt = r<strong>ss</strong>(L)<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 15<br />
hat – je nach Art und Weise der Schätzung der Autokorrelationsmatrix – einen Aufwand<br />
proportional zu N bzw. . Zusätzlich können numerische Probleme auftauchen, falls die<br />
Matrix schlecht konditioniert ist.<br />
2<br />
N 3<br />
R<strong>ss</strong><br />
Ziel:<br />
Robustes Verfahren, welches ohne direkte Invertierung von auskommt.<br />
Lösung:<br />
Ausnutzen der (Töplitz-) Struktur der Matrix .<br />
R<strong>ss</strong><br />
Rekursion über die Prädiktorordnung<br />
Kombination von Vorwärts- und Rückwärtsprädiktion<br />
Literatur:<br />
J. Durbin: The Fitting of Time Series Models, Rev. Int. Stat. Inst., Nr. 28, Seiten 233 - 244, 1960<br />
N. Levinson: The Wiener RMS Error Criterion in Filter Design and Prediction, J. Math. Phys., Nr. 25,<br />
Seiten 261 - 268, 1947<br />
R<strong>ss</strong><br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 16
Levinson-Durbin-Rekursion – Teil 2 (Rückwärtsprädiktion)<br />
Gleichung<strong>ss</strong>ystem der Vorwärtsprädiktion:<br />
r(1)<br />
r(2)<br />
r(3)<br />
..<br />
=<br />
=<br />
=<br />
h0 r(0)<br />
h0 r(1)<br />
h0 r(2)<br />
.<br />
+<br />
+<br />
+<br />
h1 r(1)<br />
h1 r(0)<br />
h1 r(1)<br />
...<br />
+<br />
+<br />
+<br />
...<br />
...<br />
...<br />
. ..<br />
+<br />
+<br />
+<br />
hN−1 r(N − 1)<br />
hN−1 r(N − 2)<br />
hN−1 r(N − 3)<br />
.<br />
r(N) = h0 r(N − 1) + h1 r(N − 2) + ... + hN−1 r(0)<br />
Umsortieren der Gleichungsreihenfolge:<br />
für h i = h opt,i<br />
r(N) = h0 r(N − 1) + h1 r(N − 2) + ... + hN−1 r(0)<br />
r(N − 1)<br />
r(N − 2)<br />
.<br />
=<br />
=<br />
h0 r(N − 2)<br />
h0 r(N − 3)<br />
.<br />
+<br />
+<br />
h1 r(N − 3)<br />
h1 r(N − 4)<br />
...<br />
+<br />
+<br />
...<br />
...<br />
. ..<br />
+<br />
+<br />
hN−1 r(1)<br />
hN−1 r(2)<br />
.<br />
r(1) = h0 r(0) + h1 r(1) + ... + hN−1 r(N − 1)<br />
für h i = h opt,i<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 17<br />
Levinson-Durbin-Rekursion – Teil 3 (Rückwärtsprädiktion)<br />
Nach dem Umsortieren der Gleichungsreihenfolge:<br />
r(N)<br />
r(N − 1)<br />
r(N − 2)<br />
.<br />
=<br />
=<br />
=<br />
h0 r(N − 1)<br />
h0 r(N − 2)<br />
h0 r(N − 3)<br />
.<br />
+<br />
+<br />
+<br />
h1 r(N − 2)<br />
h1 r(N − 3)<br />
h1 r(N − 4)<br />
.<br />
+<br />
+<br />
+<br />
...<br />
...<br />
...<br />
. ..<br />
+<br />
+<br />
+<br />
hN−1 r(0)<br />
hN−1 r(1)<br />
hN−1 r(2)<br />
.<br />
r(1) = h0 r(0) + h1 r(1) + ... + hN−1 r(N − 1)<br />
Umsortieren der Elementreihenfolge auf der rechten Seite:<br />
für h i = h opt,i<br />
r(N)<br />
r(N − 1)<br />
r(N − 2)<br />
.<br />
=<br />
=<br />
=<br />
hN−1 r(0)<br />
hN−1 r(1)<br />
hN−1 r(2)<br />
.<br />
+<br />
+<br />
+<br />
hN−2 r(1)<br />
hN−2 r(0)<br />
hN−2 r(1)<br />
..<br />
+<br />
+<br />
+<br />
...<br />
...<br />
...<br />
. . .<br />
+<br />
+<br />
+<br />
h0 r(N − 1)<br />
h0 r(N − 2)<br />
h0 r(N − 3)<br />
.<br />
r(1) = hN−1 r(N − 1) + hN−2 r(N − 2) + ... + h0 r(0)<br />
für h i = h opt,i<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 18
Levinson-Durbin-Rekursion – Teil 4 (Rückwärtsprädiktion)<br />
Nach dem Umsortieren der Elementreihenfolge auf der rechten Seite:<br />
r(N)<br />
r(N − 1)<br />
r(N − 2)<br />
..<br />
=<br />
=<br />
=<br />
hN−1 r(0)<br />
hN−1 r(1)<br />
hN−1 r(2)<br />
.<br />
+<br />
+<br />
+<br />
hN−2 r(1)<br />
hN−2 r(0)<br />
hN−2 r(1)<br />
.<br />
+<br />
+<br />
+<br />
...<br />
...<br />
...<br />
. . .<br />
+<br />
+<br />
+<br />
h0 r(N − 1)<br />
h0 r(N − 2)<br />
h0 r(N − 3)<br />
.<br />
r(1) = hN−1 r(N − 1) + hN−2 r(N − 2) + ... + h0 r(0)<br />
Matrix-Vektor-Schreibweise:<br />
für h i = h opt,i<br />
⎡ ⎤ ⎡<br />
r(N )<br />
⎢<br />
r(N − 1) ⎥ ⎢<br />
⎥<br />
⎢ ⎥ =<br />
⎢<br />
⎣ . ⎦ ⎣<br />
r(0)<br />
r(1)<br />
..<br />
r(1)<br />
r(0)<br />
.<br />
...<br />
...<br />
. ..<br />
⎤ ⎡<br />
⎤<br />
r(N − 1) hopt,N − 1<br />
r(N − 2) ⎥ ⎢<br />
⎥ ⎢<br />
h ⎥<br />
opt,N − 2 ⎥<br />
⎥ ⎢<br />
⎥<br />
. ⎦ ⎣ . ⎦<br />
|<br />
r(1)<br />
{z } |<br />
r(N − 1) r(N − 2)<br />
{z<br />
... r(0)<br />
} |<br />
hopt,0<br />
{z }<br />
˜r <strong>ss</strong>(1)<br />
R<strong>ss</strong><br />
˜h opt<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 19<br />
Levinson-Durbin-Rekursion – Teil 5 (Rückwärtsprädiktion)<br />
Matrix-Vektor-Schreibweise:<br />
˜r<strong>ss</strong>(1) = R<strong>ss</strong> ˜ hopt<br />
Symmetrieüberlegungen: h<br />
iT ˜r <strong>ss</strong>(1) = r(N), r(N − 1), ..., r(1)<br />
=<br />
.......... r(l)=r(−l) einsetzen<br />
h<br />
iT r(−N ), r(−N +1), ..., r(−1)<br />
= r<strong>ss</strong>(−N)<br />
Rückwärtsprädiktion um N Takte:<br />
˜r<strong>ss</strong>(1) = R<strong>ss</strong> ˜ hopt<br />
r<strong>ss</strong>(−N) = R<strong>ss</strong> ˜ hopt<br />
˜hopt = R −1<br />
<strong>ss</strong> r<strong>ss</strong>(−N)<br />
s(n) s(n − N − 1) e(n)<br />
z −N−1<br />
z −1<br />
˜hopt<br />
bs (n − N − 1)<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 20
Levinson-Durbin-Rekursion – Teil 6 (Rekursionsgleichungen)<br />
Levinson-Durbin-Rekursion – Teil 7 (Veranschaulichung)<br />
Vorhergesagtes Signal für ein Prädiktionsfilter der Länge N:<br />
ˆs ( N) (n) =<br />
N−1 X<br />
h<br />
i=0<br />
(N)<br />
N−2 X<br />
i s(n − 1 − i) = h<br />
i=0<br />
(N)<br />
i s(n − 1 − i) + h (N)<br />
N−1s(n − N)<br />
Rekursionsgleichung h einsetzen:<br />
(N)<br />
= h (N−1)<br />
− h (N)<br />
i<br />
Vorwärtsprädiktor<br />
der Länge N-1<br />
i<br />
N−1 h(N−1)<br />
N−2−i<br />
Neu hinzugekommener<br />
Signalwert<br />
(Herleitung an der T<strong>af</strong>el)<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 21<br />
ˆs<br />
Innovation<br />
z }| {<br />
| {z } | {z } | {z }<br />
( N) (n) =<br />
N−2 X ³<br />
h<br />
i =0<br />
(N−1)<br />
i − h (N)<br />
N−1 h(N−1)<br />
´<br />
( N)<br />
N−2−i s(n − 1 − i) + h N−1s(n − N)<br />
=<br />
N−2 X<br />
h<br />
i =0<br />
(N−1)<br />
i s(n − 1 − i) − h (N)<br />
N−2 X<br />
N−1 h<br />
i =0<br />
(N−1)<br />
N−2−is(n − 1 − i) + h(N)<br />
N−1s(n − N)<br />
=<br />
N−2 X<br />
h<br />
i =0<br />
(N−1)<br />
i s(n − 1 − i)+h (N)<br />
Ã<br />
N−2 X<br />
N−1 s(n − N) − h<br />
i =0<br />
(N−1)<br />
!<br />
N−2−is(n − 1 − i)<br />
Rückwärtsprädiktor<br />
der Länge N-1<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 22
Levinson-Durbin-Rekursion – Teil 8 (Veranschaulichung)<br />
Strukturbild der Ordnungsrekursion:<br />
s(n − 1)<br />
Kurzform:<br />
Rückwärtsprädiktor der Länge N-1<br />
s(n − 1) s(n − 2) s(n − 3) s(n − N +1)<br />
z −1<br />
z −1<br />
Vorwärtsprädiktor der Länge N-1<br />
s(n − N)<br />
z −1<br />
h (N)<br />
N−1<br />
Vorwärtsprädiktor der Länge N<br />
Neuer Schätzwert = Alter Schätzwert + Gewichtung * (Neu – Vorhersage des Neuen)<br />
z −1<br />
bs (N−1) (n)<br />
bs (N) (n) = bs (N−1) (n) + h (N)<br />
µ<br />
N−1 s(n − N) − bs (N−1) <br />
(n − N)<br />
bs (N−1) (n − N)<br />
bs (N) (n)<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 23<br />
Levinson-Durbin-Rekursion – Teil 9 (Rekursion der Fehlerleistung)<br />
(Herleitung an der T<strong>af</strong>el)<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 24
Levinson-Durbin-Rekursion – Teil 10 (Zusammenfa<strong>ss</strong>ung)<br />
Initialisierung:<br />
Prädiktor:<br />
Fehlerleistung (optional): E (0)<br />
min = r(0)<br />
Rekursion:<br />
Reflexionskoeffizient:<br />
Vorwärtsprädiktor:<br />
Rückwärtsprädiktor:<br />
Fehlerleistung (optional):<br />
Abbruchbedingungen:<br />
Numerische Probleme:<br />
Ordnung:<br />
Matlab-Beispiel<br />
h (1)<br />
0<br />
h (N)<br />
N−1 =<br />
³<br />
r(N ) − ˜r (N−1)<br />
´ T<br />
<strong>ss</strong> (1) h (N−1)<br />
opt<br />
³<br />
r(0) − ˜r (N−1)<br />
´ T (N−1)<br />
<strong>ss</strong> (1) ˜h<br />
opt<br />
£ (N)<br />
h 0 ,h (N)<br />
1 , ..., h (N) ¤ T (N−1)<br />
N−2 = h opt − h (N)<br />
N−1 ˜h (N−1)<br />
opt<br />
˜h<br />
( N)<br />
i = h (N)<br />
N−i−1<br />
E (N)<br />
min<br />
= ˜ h (1)<br />
0<br />
= E(N−1)<br />
min<br />
= r(1)/r(0)<br />
³<br />
1 − ¡ h (N) ¢ ´<br />
2<br />
N−1<br />
¡ (N) ¢ 2<br />
Falls h N−1 > 1 − ε , verwende die Prädiktorkoeffizienten des<br />
vorherigen Rekursion<strong>ss</strong>chritts und stoppe die Rekursion.<br />
Falls N die gewünschte Ordnung erreicht hat, stoppe<br />
die Rekursion.<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 25<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 26
Matlab-Beispiel – Geschätztes Sprachsignal<br />
Matlab-Beispiel – Ausgang<strong>ss</strong>ignale<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 27<br />
E. Hänsler und G. Schmidt, TU Darmstadt, Seite 28