Filterentwurf • IIR-Filter Beispiele f¨ur die verschiedenen Filtertypen

Transcription

Filterentwurf • IIR-Filter Beispiele f¨ur die verschiedenen Filtertypen
Filterentwurf
• IIR-Filter
◦ Beispiele für die verschiedenen Filtertypen
• FIR-Filter
◦ Entwurf mit inv. Fouriertransformation und Fensterfunktion
◦ Filter mit Tschebyscheff-Verhalten
• Vorgehensweise bei Matlab / Octave
• Allpass-Transformation
1
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Filterentwurf mit Matlab bzw. Octave
Beispiel für Toleranzschema:
ωd = π/8, ωs = π/6, 20 log(1 − δd) = −1, 20 log(δs) = −40
Entwurf eines Butterworth-Filters:
wd = 1/8;
ws = 1/6;
dd = 1;
ds = 40;
[n,wc] = buttord(wd,ws,dd,ds);
n
[b,a] = butter(n,wc);
Ergebnis:
• Filtergrad n = 18
• Koeffizienten des Zählerpolynoms a und des Nennerpolynoms b
2
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Butterworth-Tiefpass
0.12
0.1
0.08
Impulsantwort:
0.06
0.04
L = 200;
[x,t] = impz(b,a,L);
stem(t,x);
0.02
0
−0.02
−0.04
−0.06
0
50
100
150
200
3
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Butterworth-Tiefpass
1
Pol-Nullstellendiagramm:
0.5
zplane(b,a);
0
Genauigkeitsprobleme bei
Nullstellenberechnung
mit mehrfachen Nullstellen!
−0.5
−1
−1
−0.5
0
0.5
1
4
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Butterworth-Tiefpass
1
0.5
Pol-Nullstellendiagramm mit
korrigierten Nullstellen
0
(18)
−0.5
−1
−1
Darstellung von Betrags- und Phasengang:
−0.5
0
0.5
1
FREQRES = 1024;
freqz(b,a,FREQRES);
5
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Butterworth-Tiefpass - Frequenzgänge
0
Pass band (dB)
−0.5
−1
−1.5
−2
−2.5
−3
0
−10
−20
−30
−40
−50
−60
−70
−80
−90
−100
Stop band (dB)
0
−200
−400
−600
−800
−1000
−1200
−1400
−1600
−1800
Phase (degrees)
Frequency
6
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Tschebyscheff-Tiefpass Typ 1
[n, wc] = cheb1ord(wd,ws,dd,ds);
n
[b, a] = cheby1(n,dd,wc);
Filtergrad n = 8
0.1
0.08
0.06
0.04
Impulsantwort:
0.02
0
−0.02
−0.04
−0.06
0
50
100
150
200
7
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Tschebyscheff-Tiefpass Typ 1
1
0.5
Pol-Nullstellendiagramm
0
−0.5
−1
−1
−0.5
0
0.5
1
8
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Tschebyscheff-Tiefpass Typ 1 - Frequenzgänge
0
Pass band (dB)
−0.5
−1
−1.5
−2
−2.5
−3
0
−10
−20
−30
−40
−50
−60
−70
−80
−90
−100
Stop band (dB)
0
−100
−200
−300
−400
−500
−600
−700
Phase (degrees)
Frequency
9
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Tschebyscheff-Tiefpass Typ 2
[n, wc] = cheb2ord(wd,ws,dd,ds);
n
[b, a] = cheby2(n,ds,wc);
Filtergrad n = 8
0.12
0.1
0.08
0.06
Impulsantwort:
0.04
0.02
0
−0.02
−0.04
−0.06
0
50
100
150
200
10
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Tschebyscheff-Tiefpass Typ 2
1
0.5
Pol-Nullstellendiagramm
0
−0.5
−1
−1
−0.5
0
0.5
1
11
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Tschebyscheff-Tiefpass Typ 2 - Frequenzgänge
0
Pass band (dB)
−0.5
−1
−1.5
−2
−2.5
−3
0
Stop band (dB)
−20
−40
−60
−80
−100
50
0
−50
−100
−150
−200
−250
−300
−350
−400
Phase (degrees)
Frequency
12
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Cauer-Tiefpass
[n,wc] = ellipord(wd,ws,dd,ds);
n
[b,a] = ellip(n,dd,ds,wc);
Filtergrad n = 5
0.12
0.1
0.08
0.06
Impulsantwort:
0.04
0.02
0
−0.02
−0.04
0
50
100
150
200
13
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Cauer-Tiefpass
1
0.5
Pol-Nullstellendiagramm
0
−0.5
−1
−1
−0.5
0
0.5
1
14
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Cauer-Tiefpass - Frequenzgänge
0
Pass band (dB)
−0.5
−1
−1.5
−2
−2.5
−3
0
−10
−20
−30
−40
−50
−60
−70
−80
−90
−100
Stop band (dB)
0
−50
−100
−150
−200
−250
−300
−350
−400
Phase (degrees)
Frequency
15
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Entwurf von FIR-Filtern
• Entwurf mit inv. Fouriertransformation und Fensterfunktion
• Filter mit Tschebyscheff-Verhalten
16
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Filterentwurf mit Fensterfunktion
Grundidee:
• Vorgabe eines “Wunschfrequenzgangs”
• Berechnung einer Impulsantwort durch inverse
Fouriertransformation
• Begrenzung auf endliche Länge durch Multiplikation mit
Fensterfunktion
Problem bei Unstetigkeiten des Wunschfrequenzgangs:
Gibbs-Effekt: Überschwingen bleibt bei Rechteckfenster bei ca 10%
Verbesserung: Verwendung besserer Fensterfunktionen
17
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Filterentwurf mit Fensterfunktion
Für Filterentwurf häufig verwendete Fensterfunktion:
q
2
I0 α 1 − ( 2n
)
M
mit − M/2 ≤ n ≤ M/2
Kaiser-Fenster wK (n) =
I0(α)
1
α = 0, 1
0.8
α=1
0.6
α=3
0.4
α = 10
0.2
0
10
20
30
40
50
60
70
80
90
100
18
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Filterentwurf mit Fensterfunktion
Vorgehensweise zum Entwurf eines Tiefpassfilters:
• Vorgabe eines Toleranzschemas
• Bestimmung der benötigten Filterlänge
• Bestimmung von α
wp = 1/8;
ws = 1/6;
delta = 0.01;
[n, w, alpha, ftype] = kaiserord([wp,ws],[1,0],[delta,delta]);
a = fir1(n,w,kaiser(n+1,alpha),ftype);
Hier: α = 3.3953, L = n + 1 = 108
19
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Tiefpass mit Kaiser-Fenster
0.14
0.12
0.1
0.08
0.06
0.04
0.02
0
−0.02
0
20
40
60
80
100
20
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Tiefpass mit Kaiser-Fenster
1
0.5
Pol-Nullstellendiagramm:
0
r = roots(a);
zplane(r);
−0.5
−1
−1
−0.5
0
0.5
1
21
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Tiefpass mit Kaiser-Fenster
Pass band (dB)
−60.5
−61
−61.5
−62
−62.5
−63
Stop band (dB)
−70
−80
−90
−100
−110
−120
−130
−140
−150
−160
0
−200
−400
−600
−800
−1000
−1200
−1400
−1600
Phase (degrees)
Frequency
22
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Filter mit Tschebyscheff-Approximation
Ansatz:
Bestmögliche Ausnutzung des Toleranzschemas
Numerische Optimierung der Positionen der Maxima und Minima:
“Remez-Exchange”, “Parks-McClellan”
wp = 1/8;
ws = 1/6;
d1 = 0.05;
d2 = 0.01;
D = (.005309*log10(d1)*log10(d1)+.07114*log10(d1)-.4761)
*log10(d2)
-.00266*log10(d1)*log10(d1)-.5941*log10(d1)-.4278;
n=ceil(2*D/(ws-wp));
a=remez(n,[0 wp ws 1],[1 1 0 0],[1 d1/d2]);
Hier: L = n + 1 = 72
23
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Filter mit Tschebyscheff-Approximation
0.14
0.12
0.1
0.08
0.06
0.04
0.02
0
−0.02
10
20
30
40
50
60
70
24
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Filter mit Tschebyscheff-Approximation
1
0.5
Pol-Nullstellendiagramm:
0
r=roots(a);
zplane(r(2:n));
−0.5
−1
−1
−0.5
0
0.5
1
25
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Beispiel Filter mit Tschebyscheff-Approximation
−60
Pass band (dB)
−60.5
−61
−61.5
−62
−62.5
−60
−70
−80
−90
−100
−110
−120
−130
Stop band (dB)
0
Phase (degrees)
−200
−400
−600
−800
−1000
Frequency
26
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation
Grundidee:
• Entwurf eines IIR-Filters Hp(z) mit bekanntem Verfahren
• Abbildung des Frequenzgangs durch Transformation
der Frequenzvariablen
Transformation durch Substitution ζ = f (z) in Hp(ζ)
Bedingung: Einheitskreis muss auf sich selbst abgebildet werden!
!
|f (ejω )| = 1
f (z) muss der Übertragungsfunktion eines
Allpasses entsprechen
Neue Übertragungsfunktion: H(z) = Hp (f (z)) bzw. H(ejω ) = Hp(ejg(ω)) mit g(ω) = arg f (ejω )
27
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation
Realisierungsmöglichkeit:
Ersetzen jedes Verzögerungselements z −1 durch einen
1
jω
⇒ g(ω) = − arg A(e )
stabilen Allpass A(z) =
f (z)
Achtung:
In der Regel bei rekursiven Systemen nicht direkt anwendbar
wegen verzögerungsfreier Schleifen!
Neue Übertragungsfunktion muss berechnet und
realisiert werden
28
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel-Filter
1
z
jω
⇒ |Hp(e )| = √
Hp(z) =
z−b
1 + b2 − 2b cos ω
10
9
8
7
mit b = 0, 9:
|Hp |
6
5
4
3
2
1
0
0
0.5
1
1.5
ω
2
2.5
3
29
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel-Allpässe
1) A1(z) = −z −1 ⇒ g1(ω) = π + ω
10
Hp
H1
9
8
7
|H|
6
5
4
3
2
1
0
0
0.5
1
1.5
ω
2
2.5
3
30
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel-Allpässe
−az + 1
mit |a| < 1
2) Allpass 1. Ordnung: A2(z) =
z−a
a sin ω
⇒ g2(ω) = ω + 2 arctan
1 − a cos ω
X(z)
−a
z −1
Y (z)
a
31
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel-Allpässe
3.5
0.9
0.5
0
−0.5
−0.9
3
g2 (ω )
2.5
2
1.5
1
0.5
0
0
0.5
1
1.5
ω
2
2.5
3
Verzerrung der Frequenzachse für verschiedene Werte von a
32
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel
10
0.9
0.5
0
−0.5
−0.9
9
8
7
|H2 |
6
5
4
3
2
1
0
0
0.5
1
1.5
ω
2
2.5
3
Resultierende Frequenzgänge
33
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel
ρ2z 2 − 2ρ cos ϕz + 1
mit |ρ| < 1
3) Allpass 2. Ordnung: A3(z) = 2
2
z − 2ρ cos ϕz + ρ
ϕ = π/2
7
0.9
0.8
0.7
6
g3 (ω )
5
4
3
2
1
0
0
0.5
1
1.5
ω
2
2.5
3
34
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel
2ρ sin ϕ sin ω − ρ2 sin 2ω
g3(ω) = 2ω + 2 arctan
1 − 2ρ cos ϕ cos ω + ρ2 cos 2ω
ϕ = π/4
7
0.9
0.8
0.7
6
g3 (ω )
5
4
3
2
1
0
0
0.5
1
1.5
ω
2
2.5
3
35
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel
ϕ = π/2
10
0.9
0.8
0.7
9
8
7
|H3 |
6
5
4
3
2
1
0
0
0.5
1
1.5
ω
2
2.5
3
36
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel
ϕ = π/4
10
0.9
0.8
0.7
9
8
7
|H3 |
6
5
4
3
2
1
0
0
0.5
1
1.5
ω
2
2.5
3
37
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel
ρ2z 2 − 2ρ cos ϕz + 1
mit |ρ| < 1
4) Allpass 2. Ordnung: A4(z) = − 2
2
z − 2ρ cos ϕz + ρ
ϕ = π/2
4
0.9
0.8
0.7
3
2
g4 (ω )
1
0
-1
-2
-3
-4
0
0.5
1
1.5
ω
2
2.5
3
38
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel
2ρ sin ϕ sin ω − ρ2 sin 2ω
g4(ω) = −π + 2ω + 2 arctan
1 − 2ρ cos ϕ cos ω + ρ2 cos 2ω
ϕ = 3π/4
4
0.9
0.8
0.7
3
2
g4 (ω )
1
0
-1
-2
-3
-4
0
0.5
1
1.5
ω
2
2.5
3
39
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel
ϕ = π/2
10
0.9
0.8
0.7
9
8
7
|H4 |
6
5
4
3
2
1
0
0
0.5
1
1.5
ω
2
2.5
3
40
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel
ϕ = 3π/4
10
0.9
0.8
0.7
9
8
7
|H4 |
6
5
4
3
2
1
0
0
0.5
1
1.5
ω
2
2.5
3
41
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel Butterworth
1
0.8
|Hp |
0.6
0.4
0.2
0
0
0.5
1
1.5
ω
2
2.5
3
Betragsfrequenzgang Butterworthfilter Ordnung 18
42
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel Butterworth
ϕ = π/2
1
0.9
0.5
0.1
0.8
|H4 |
0.6
0.4
0.2
0
0
0.5
1
1.5
ω
2
2.5
3
Betragsfrequenzgang resultierender Bandpass
43
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation - Beispiel Butterworth
ϕ = 3π/4
1
0.9
0.5
0.1
0.8
|H4 |
0.6
0.4
0.2
0
0
0.5
1
1.5
ω
2
2.5
3
Betragsfrequenzgang resultierender Bandpass
44
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11
Allpass-Transformation
Tiefpass-Bandpass-Transformation mit Allpass 2. Ordnung:
Vorgaben aus Toleranzschema:
• Eckfrequenzen
• Übergangsbereichsbreiten
• max. Abweichung im Durchlassbereich
• Sperrdämpfung(en)
Wahl geeigneter Parameter ρ, ϕ, ωc
Übertragung in Toleranzschema für Tiefpass-Entwurf
45
Bernd Edler ([email protected])
Laboratorium für Informationstechnologie
DigSig - Teil 11