Musterlösung 10. Aufgabenblatt

Transcription

Musterlösung 10. Aufgabenblatt
Einführung in die digitale Signalverarbeitung WS11/12
Prof. Dr. Stefan Weinzierl
Musterlösung 10. Aufgabenblatt
1.
Digitale Filter
1.1
Was ist ein digitales Filter und zu welchen Zwecken wird die Filterung eingesetzt?
Ein digitales Filter ist einfach ein digitales System, das dementsprechend mit
zeitdiskreten Eingangssignale arbeiten kann, und ein quantisiertes Ausgangssignal
liefert. Das Ausgangssignal ist gegeben durch die Faltung des Signals x[n] mit der
Impulsantwort h[n] des Filters. Dadurch lassen sich digitale Filter mit Hinblick auf ihre
Systemeigenschaften charakterisieren und mittels Fourier- und Z-Transformation
analysieren.
Die Filterung wird für mehrere Gründe eingesetzt. Manche davon sind:
- Die Abschwächung bzw. Verstärkung einer bestimmten Frequenz oder eines
Frequenzbereichs eines digitalen Signals, z. B. für die Vermeidung störender
Signalanteile.
- Das Aussuchen von spezifischen Frequenzen in einem digitalen Signals.
- Die Gestaltung des Spektrums eines digitales Signals so, dass es für weitere
Anwendungen vernünftig benutzt werden kann (z. B. Noise-Shaping).
- Die Bestimmung der Eigenschaften eines digitales Signals u. v. m.
1.2
Wie lautet die allgemeine Differenzengleichung eines digitalen Filters und die
zugehörige Übertragungsfunktion?
Die allgemeine Differenzengleichung eines digitalen Filters lautet:
N
M
y[n] = −∑ ak y[n − k] +∑ bk x[n − k]
k =1
k =0
Durch Z-Transformation kann man die Übertragungsfunktion gewinnen:
N€
M
N
M
Y (z) = −∑ akY (z)z −k +∑ bk X(z)z −k ⇒ Y (z) + ∑ akY (z)z −k = ∑ bk X(z)z −k ⇒
k =1
€
k =0
k =1
k =0
M
N
M
Y (z)
Y (z)(1+ ∑ ak z ) = X(z)(∑ bk z ) ⇒ H(z) =
=
X(z)
k =1
k =0
−k
−k
∑b z
−k
k
k =0
N
1+ ∑ ak z −k
b0 + b1z −1 + ...+ bM z −M
=
1+ a1z −1 + ...+ aN z −N
k =1
Man sieht, dass die Übertragungsfunktion ein Bruch von zwei Polynomen mit reellen
(machnmals auch komplexen) Koeffizienten ak ,bk darstellt. Die Filterordnung ist durch
das max(M,N) gegeben.
€
Bemerkung #1: Das Nennerpolynom keinen allgemeinen a0 Koeffizient hat, bzw. hat
€ Ausgang Y (z) bzw. y[n] ohne irgendwelche
er den Wert 1. Das gilt, weil der
Skalierungkonstante stehen soll. Die entsprechende Gleichung bekommt man wenn
man alle Koeffizienten mit a0 dividiert.
€
€
€
Bemerkung #2: In der Differenzengleichung kommen die verzögerte Ausgänge mit
einem Minusvorzeichen vor. Dies ist auch eine Notationsthema, sodass man das
€ der Übertragungsfunktion mit Plusvorzeichen vorkommen lassen
Nennerpolynom bei
kann. Die Koeffiezienten ak ,bk gehören jedenfalls zu den reellen Zahlen, das heißt, sie
können auch negative Werte bekommen.
1.3
€ von digitalen Filter kennen sie und wie lassen sie sich mit Hinblick
Welche Kategorien
auf deren Systemeigenschaften charakterisieren?
Es gibt zwei großen Kategoriern von digitalen Filtern, die FIR (Finite Impulse
Response = Endliche Impulsantwort) und die IIR (Infinite Impulse Response =
Unendliche Impulsantwort) Filtern. Der Name deutet darauf hin, dass der entscheidende
Unterschied in der Länge der jeweiligen Impulsantwort liegt. Mit Bezug auf ihre
Differenzengleichung ist es so, dass die FIR Filter keine ak ,k ≥1 Koeffizienten besitzen
( ak = 0,k ≥1), es gibt also keine verzögerte Ausgangssamples, die in den Eingang
reingespeist werden. Die Differenzengleichung und Impulsantwort eines FIR Filters
sehen entsprechend so aus:
€
€
M
M
y[n] = ∑ bk x[n − k] ⇒ h[n] = ∑ bkδ [n − k]
k =0
k =0
Es ist ersichtlich, dass für ein endliches M, ist die Impulsantwort eines FIR Filters auch
immer endlich. Es folgt daraus, dass die Übertragungsfunktion eines FIR Filters nur
€ und ggf. triviale Polstellen (bei z = 0). Für die IIR Filter kann keine
Nullstellen hat
solche Aussage getroffen werden. Andere Unteschiede sind, dass FIR Filtern fast
immer eine lineare Phase aufweisen (oder können so entworfen werden, dass sie lineare
Phase haben) wobei IIR Filter in der Regel nicht, und dass FIR Filtern viel mehr
Koeffizienten brauchen (und daher Rechenleistung oder Elemente), um die gleiche
Filterqualität zu erreichen im Vergleich zu einem IIR Filter.
Mit Hinblick auf die Systemeigenschaften lassen sich digitale Filter so klassifizieren:
- Linearität: Ein digitales Filter, gegeben durch Gleichung (1), ist ein lineares System,
da die Differenzengleichung nur eine endliche lineare Kombination von Ein- und
Ausgangswerte ist. Im engen mathematischem Sinne ist aber ein IIR Filter ein Filter
dessen Impulsantwort nie ausklingt (und von daher auch einen Ausgang liefern kann für
keinen Ausgang) was die Linearität verletzt. Trotzdem sind in realen Anwedungen auch
IIR Filter als linear betrachtet.
- Zeitinvarianz: Ein Filter, ob FIR oder IIR, ist ein zeitinvariantes System, wenn die
Koeffizientensätze ak ,bk konstante Werte haben (sie sind also keine Zeitfolgen bzw.
Funktionen von t oder n). Für eine Software-Implementation kann das immer
gewährleistet werden. Für Hardware-Implementationen gibt es immer minimal kleine
Änderungen in den Systemwerten, die aber größtenteils vernachlässigt werden können.
€
- Stabilität: Die Stabilität eines Filters kommt auf seine Art an. FIR Filter sind immer
stabil, wobei IIR nicht immer. Für IIR muss gewährleistet werden, dass alle Polstellen
innerhalb des Einheitskreises liegen, damit das Filter stabil ist.
- Kausalität: Digitale Filter sind nicht inbedingt kausal, vor allem wenn um Software
Implementationen geht, wo man alle Werte eines Signals im Voraus speichern kann.
Trotzdem können alle nicht kausale Filter mindestens mathematisch kausal gemacht
werden.
- Rekursivität: IIR Filter, da sie auch zeitverzögerten Ausgangswerte für die
Berechnung des aktuellen Ausgangswerts benutzen, sind rekursive Filter. FIR Filter im
Gegensatz sind nicht-rekursive Filter.
- Speicherfreiheit: Digitale Filter sind in der Regel nicht speicherfrei. Ein
speicherfreies Filter hätte die Form: y[n] = b0 x[n], wo der aktuelle Ausgangswert nur
von dem aktuellen Eingangswert abhängt.
1.4
Was sind Fragen, die mit€dem Entwurf und Benutzung eines digitalen Filters im
Zusammenhang stehen?
Mögliche Fragen, die auftreten können sind:
-
Welche Koeffizienten ak ,bk brauche ich genau, um z. B. ein Butterworth Filter 2.
Ordnung zu realisieren?
Wie viele Koeffizienten brauche ich, um eine bestimmte Übertragungsfunktion des
Filters zu erzielen?
Braucht man €
immer die rekursive ( ak ) Koeffizienten?
Wie kann ich Filter mit linearen Amplituden- bzw. Phasengang erzeugen?
Wie viele Bits braucht man für die digitale Repräsentation von ak ,bk ?
Wie beeinflüssen die Abtastrate und die Kodierung ein Filter?
€ ein Filter entwerfen? Usw.
Wie kann man methodisch
€
Anschließend kann man Vorteile und Nachteile von digitalen
Filtern im Gegensatz zu
analogen Filter versuchen aufzulisten:
Vorteile:
-
Es besteht keine Ungenauigkeit in den Koeffizientenwerten durch Toleranzwerte
der Bauteilen.
Software-Implementationen sind nicht Alterungsanfällig.
-
Möglichkeit, Filter zu realisieren, die mit analogen Implementationen nur sehr
schwer oder gar nicht realisierbar wären.
Nachteile:
-
2.
„Effektiver“ Frequenzbereich ist von Abtastrate bestimmt.
Präzision im Wertebereich ist durch Quantisierung bestimmt.
Ungenauigkeiten und Rauschen treten auf durch Rundungs- und Abschneidenfehler
oder Wertdiskretisierung.
Analyse von digitalen FIR-Filter
Es sei die Differenzengleichung eines kausalen digitalen FIR-Tiefpassfilters (gleitender
Mittelwert) gegeben:
1
y[n] = (x[n] + x[n −1] + x[n − 2])
3
2.1
Berechnen Sie die Übertragungsfunktion des Filters mithilfe der z-Transformation,
finden Sie Pol- und Nullstellen und zeichnen Sie sie auf der z-Ebene.
€
Die Pol- und Nullstellen kann man in folgender Grafik sehen. Für die Erstellung der
Grafik siehe Matlab File „Uebung10_Aufgabe2.m“
.
Abb. 1: Pol- und Nulstellendiagramm für Übertragungsfunktion
Die Differenzengleichung lässt sich so transformieren:
1
1
Y (z) = (X(z) + X(z)z −1 + X(z)z −2 ) ⇒ Y (z) = X(z)(1+ z −1 + z −2 )
3
3
⋅
⇒ H(z) =
€
z2
z 2 1 z 2 + z +1
Y (z) 1
= (1+ z −1 + z −2 ) = (
)
X(z) 3
3
z2
Das System hat also einen doppelten Pol bei z = 0, und zwei komplexen Nullstellen, bei
1
3
z=− ± €
j
, wie es in der Grafik zu sehen ist.
2
2
€
2.2
Mithilfe der Übertragungsfunktion aus 2.1 berechnen sie den DTFT des Filters und
zeichnen Sie seinen Amplituden- und Phasengang. Überprüfen Sie Ihre Ergebnisse mit
der Matlab-Funktion freq(z).
Aus der Übertragungsfunktion, nach Einsetzen von z = e jΩ bekommt man die DTFT,
die man nach Amplituden- und Phasengang aufteilen kann. Es ist:
H(z) =
Y (z) 1
1
= (1+ z −1 + z −2€) = (1+ e − jΩ + e −2 jΩ )
X(z) 3
3
1
H(z) = (1+ cos(Ω) − j sin(Ω) + cos(2Ω) − j sin(2Ω))
3
€
Aus der letzten gleichung nehmen wir den Betrag für den Amplitudengang:
€
H(z) =
1
(1+ cos(Ω) + cos(2Ω)) 2 + (sin(Ω) + sin(2Ω)) 2
3
H(z) =
€
1
1
(2cos(Ω) +1) 2 = 2cos(Ω) +1
3
3
Und für den Phasengang gilt:
€
sin(Ω) + sin(2Ω)
Ω
ARG(H(z)) = arctan(
) = − ± kπ
1+ cos(Ω) + cos(2Ω)
2
Die Verläufe sieht man in der unten stehenden Grafik für eine Periode. Für die
Erstellung der Grafik siehe Matlab File „Uebung10_Aufgabe2.m“.
€
Abb. 2: Amplituden- und Phasengang für Übertragungsfunktion
2.3
Diskutieren Sie Vor- und Nachteile dieses Filters in dieser Implementation.
Vorteile:
-
Das Filter ist sehr leicht zu analysieren, bzw. hat sehr einfache
Differenzengleichung und Übertragungsfunktion.
Die Phase ist linear.
Es lässt sich sehr leicht entweder in Hardware oder Software realisieren (wenige
Terme/wenige Bauteile).
Es ist als FIR Filter immer stabil.
Nachteile:
-
-
Das Filter ist nicht ein sehr „gutes“ Tiefpassfilter, da es nach Ω = 2 bis π (für echte
f
f
Frequenzen von s bis s ) manchen Frequenzen nicht mehr abschneidet, sondern
π
2
durchlässt und zwar mit einem Betrag von 0.333 für die Frequenzen nah an der
Nyquistfrequenz.
Die Qualität der Filterung ist auch nicht optimal, weil der Amplitudengang des
€ nicht steil abfällt, das heißt, es fängt von sehr früh an (von den
Filters €
überhaupt
tiefen Frequenzen) abzuschwächen, wobei es bis zu einer bestimmten Frequenz die
tiefen ohne Dämpfung zulassen sollte.
3.
Entwurf von digitalen FIR-Filter
3.1
Durch welche Parameter wird der Frequenzgang für ein Tiefpass FIR Filter (im
kontinuierlichen) Frequenzbereich spezifiziert? Legen sie diese Parameter fest, und
versuchen sie den zugehörigen Amplitudengang zu zeichnen. Alternativ können Sie den
Amplitudengang des Filters festlegen und das Verhalten des Filters für unterschiedliche
Frequenzbereiche zu bestimmen.
Die Parameter für eine Spezifikation eines Tiefpassfilters sind folgende:
-
€
€
€
€
€
Ω p : Die Kreisfrequenz, die das Ende des Durchlassbereiches bezeichnet
Ωs: Die Kreisfrequenz, die den Anfang des Stoppbereiches bezeichnet
g p max : Der maximale Gain im Durchlassbereich
g p min : Der minimale Gain im Durchlassbereich
gmax : Der maximale Gain im Sperrbereich
In unterer Grafik (aus [1]) sieht man diese Bereiche gezeichnet. In dem inneren
Schlauch (nicht durchgestrichenen Bereich), kann der Amplitudengang eines Filters
Digital Filter Specifications
laufen.
wp
g pmax
ws
g pmin
wf
frequency
rad /s
gain
in dB
g smax
Figure 3-1. The general lowpass filter graphical specification
Abb. 3: Toleranzschema:
Aus3.2.
Digital
Signal ProcessingExample
Specification
of aFiltering
digitalApproach,
lowpassSteve
filterWhite, Figure 3-1, Seite 29
Problem:
Let’s
assume
the customer wants
a digital
that
will not
Man sieht,
dass die
Breite
desthat
Frequenzbereichs
zwischen
und Ω
Ω p filter
s die Steilheit der
amplify the signal at all in the passband while not reducing the gain by
Kurve bestimmt, während die Gain Parameter bestimmen, wie groß die Welligkeit des
more than 3 dB in the passband. The passband extends out to 1,000 rad/s
Frequenzgangs
im Durchlass- und Sperrbereich sein darf.
and the stopband starts at 10,000 rad/s. The digital filter is to reduce the
3.2
gain in the stopband by at least 40 dB. The
€ frequency is given
€ sampling
as 40,000 rad/s, or T is 0.16 ms.
Angenommen dass Sie das digitale Filter mit dem Frequenzgang von Aufgabenteil 2.2
implementieren
gewinnen
Sie die the
erste
zwei Koeffizienten
mithilfe
der
Solution: wollen,
Given these
specifications,
graphical
specification for
the
Frequency-Sampling
Können
Sie 3.2,
einewith
allgemeine
Gleichung
digital lowpassMethode.
filter is shown
in Figure
the frequency
axis onlyfür die
goingfinden,
out to 20,000
rad/s,
any filterFrequenzgängen
gain will repeat after
that.
Koeffizienten
wenn man
vonsince
idealisierten
ausgeht?
Die Frequency-Sampling Methode besagt, dass man den idealen Frequenzgang eines zu
realisierenden Filters einfach regelmäßig abtastet, und mit Nutzung der Inversen DFT
die endliche Impulantwort des Filters gewinnt. Wenn die Übertragungsfunktion für
0
−3
1,000
10,000
20,000
frequency
rad/s
z = e jΩ bekannt ist, dann kann man auch die Koeffizienten bk des Filters mithilfe
folgender Gleichung berechnen [1]:
1
bk =
2π
€
2π
∫ H(e
jΩ
)e jΩk dΩ €
0
Hier wurde die Inverse Fourier-Transformation diskreter Zeit eingesetzt. Für die
Übertragungfunktion aus 2.2 heißt das dann:
€
1
b0 =
2π
b1 =
€
€
1
2π
2π
∫
0
2π
∫
0
2π
2π
1
1 1 2π
1 1
1
− jΩ
−2 jΩ
j⋅0⋅Ω
− jΩ
(1+ e + e
)e
dΩ =
( ∫ dΩ + ∫ e dΩ + ∫ e −2 jΩ dΩ) =
(2π + 0 + 0) =
3
3 2π 0
3 2π
3
0
0
2π
2π
1
1 1 2π jΩ
1 1
1
(1+ e − jΩ + e −2 jΩ )e j⋅1⋅Ω dΩ =
( ∫ e dΩ + ∫ dΩ + ∫ e − jΩ dΩ) =
(0 + 2π + 0) =
3
3 2π 0
3 2π
3
0
0
Wie es ersichtlich ist, die Rückgewinnung solcher Koeffizienten ist rechnerisch
mühsam. Sogar wenn es um „präzisere“ (ideale) Übertragungsfunktionen geht, wie z.
B. eine, die die Form eines Rechteckfensters hat, symmetrisch um die y-Achse (Ideales
Tiefpass Filter (für eine Periode, danach periodisch fortgesetzt)
π
2
π
3π
≤Ω≤
2
2
3π
≤ Ω ≤ 2π
2
H(e jΩ ) = 1
0≤Ω≤
H(e jΩ ) = 0
€
H(e jΩ€
) =1
€
werden diese Koeffiziente:
€
€
π
b0 =
€
2π
1
1 π π
1
( ∫ dΩ + ∫ dΩ) =
( + )=
2π 0
2π 2 2
2
3π
2
2
π
€
2π
1 2 jΩ
1
1
b1 =
( ∫ e dΩ + ∫ e jΩ dΩ) =
(1+1) =
2π 0
2π
π
3π
2
Da erscheint das Problem, dass wir nicht den zweiten Koeffizient mit endlichen Zahlen
darstellen.
€ Daher ist die Repräsentation dessen im Computer unmöglich. Das ist eine
Folge der „perfekten“ Form des Frequenzgangs des Filters, die zu solche Koeffizienten
führt, die nicht darstellbar sind. Trotzdem eine Approximation des Filters mit endlichen
Koeffizienten würde ein gutes Ergebnis geben.
In [1] ist zu sehen, wie man zu einer allgemeinen Gleichung für diese Koeffizienten
kommt. Sie lautet:
bk =
€
sin(kΩ p )
kπ
Diese Gleichung erlaubt uns ohne sie explizit zu berechnen, mehrere Koeffizienten für
ein FIR Filter zu erwerben. Große Vorteile dieser Methode sind die Einfachkeit der
Erhaltung der Koeffizienten, und die Annäherung eines idealen (teilweise linearen)
Frequenzgangs durch die Annahme mehrerer Koeffizienten. Ein Problem dieser
Methode ist das sogenannte Gibbssche Phänomen (nach William Gibbs, siehe
Abbildung):
Abb. 4: Gibbsches Phänomen
Dadurch kommt zustande, dass wenn man eine Rechteckschwingung anzunähern
versucht, kleine Zipfel (Overshoot) an den Grenzübergäange von positivem zu
negativem Bereich und umgekehrt. Das Problem bleibt erhalten, unabhängig von der
Anzahl der Koeffizienten und sorgt für unangenehme Hörartefakte.
3.3
Erzeugen Sie in Matlab ein Sinussignal mit Frequenzen von 200, 950, 1050 und 2000
Hz. Die Abtastrate beträgt 10000 Hz. Danach erzeugen Sie die Filterkoeffizienten für
ein Tiefpassfilter mit Kniefrequenz 1000 Hz, einmal mit 4 und einmal mit 10
Koeffizienten. Fenstern sie jedes von den Koeffizientensätzen mit drei
unterschiedlichen Fenstern (Hamming, von Hann, Bartlett). Filtern Sie dann das Signal
mit jedem Filter und hören Sie sich die Ausgangssignale in Matlab an. Was merken
Sie? Erzeugen Sie Plots für alle Signale und Fenster und vergleichen Sie. Filtern Sie
schließlich weißes Rauschen und merken Sie den Unterschied im Spektrum.
Siehe Matlab File „Uebung10_Aufgabe3.m“. Mehr über die Fenstermethode sind in [2]
und [3] zu lesen. Die Denkweise hier ist folgende: Wenn man eine Methode gefunden
hat, Koeffizienten des Filters zu erhalten, filtert man sie danach nicht mit einem
Rechteck- sondern einem Fenster anderer Art (wie z. B. Hamming, von Hann, Bartlett,
Kaiser, siehe Übung 9), dass bei den Grenzen zu 0 geht. In dieser Weise werden die
Überschüsse verringert. Diese Methode verfälscht natürlich etwa die genaue
Spezifikation des Filters.
3.4
Welche andere Methoden gibt es für den Filterentwurf? Nennen sie drei davon und
diskutieren Sie Vorteile und Nachteile. Was versteht man unter Optimalmethode?
Manche Methoden für den Filterentwurf sind z. B.
-
Least squared Error im Frequenzbereich
Gewichtete Chebyshev
Equiripple Methode (als Parks-McClellan Optimalmethode)
Diese Methode versuchen, an irgendwelche Vorgabe zu halten (meistens zu Verlust
anderer Eigenschaften) oder setzen bestimmte Werkzeuge ein. Die LSE Methode
versucht ein Filter zu entwerfen, dessen Durchlassbereich höher als die spezifizierte
Frequenz liegt, und dann bei der gewollten Frequenz abzuschneiden. Darin wird erzielt
dass die Welligkeit im Durchlassbereich klein bleibt, und die Steilheit beliebig, aber die
Rechenintensität steigt. Die Gewichtete Chebyshev Methode benutzt Chebyshev
Polynome (Variationen des elliptischen analogen Filters (siehe Cauer Filter)) um den
Frequenzgang des Filters zu approximieren, die dann passend gefenstert werden.
Das bekannteste optimale Verfahren ist der Algorithmus von Parks-McClellan. Bei
diesem Algorithmus wird eine Toleranzschema gegeben (Abb. 3), und der Fehler
zwischen dem Frequenzgang des Filters und der Vorgabe wird iterativ, versucht
minimiert zu werden. Die Equiripple Methode schafft eine möglichst gleiche Welligkeit
in Durchlass- und Sperrbereich.
Literatur:
[1]
Steve White. Digital Signal Processing – Filtering Approach. Delmar Cencage
Learning, 2000.
[2]
A. V. Oppenheim, R. W. Schafer, J. R. Buck. Zeitdiskrete Signalverarbeitung, 2.,
überarbeitete Aufl., Pearson, 2004
[3]
Smith, Julius O. Spectral
http://books.w3k.org/, 2011
[4]
Universität für Musik und darstellende Kunst Graz, Institut für Elektronische Musik
und Akustik: http://old.iem.at/~majdak/alg/projectsSS2002/7/: Zugang: 29/01/2012
Audio
Signal
Processing,
W3K
Publishing,