MATLAB Signal Processing Toolbox
Inhaltsverzeichnis
0 Signal Processing Toolbox1 Was ist Digitale Signalverarbeitung?2 Inhalt
3 Aufbereitung der Messdaten4 Interpolation6 Approximation7 Interpolation und Approximation8 Anpassung der Abtastrate
11 Analyse im Zeitbereich12 Korrelationsfunktionen
16 Analyse im Frequenzbereich17 Spektralanalyse18 Diskrete Fouriertransformation DFT23 Leakage–Effekt25 Fensterfunktionenn27 Leistungsdichtespektren32 Spektralanalyse – zeitvariable Signale
33 Extraktion von Signalanteilen34 Digitale Filter35 FIR–Filter40 IIR–Filter44 Digitale Filter – Beliebiger Frequenzgang45 Digitale Filter – Vergleich46 Analoge Filter48 Digitale Filter – Herleitung51 sptool
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
MATLAB Signal Processing Toolbox
MATLAB
Signal Processing Toolbox
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
MATLAB Signal Processing Toolbox
Was ist Digitale Signalverarbeitung?
Verarbeitung zeitdiskret abgetasteter Signale mit
• Methoden zur Aufbereitung von Messdaten
• Analysen im Zeitbereich
• Analysen im Frequenzbereich
• Methoden zur Extraktion von Signalanteilen
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 1
MATLAB Signal Processing Toolbox
Inhalt
Schwerpunkte der heutigen Vorlesung:
• Interpolation, Approximation und Abtastung
• Korrelationsfunktionen
• Spektralanalyse
• Filter −→ Digital und Analog
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 2
MATLAB Signal Processing Toolbox
Aufbereitung der Messdaten
Interpolation
Approximation
Anderung der Abtastrate
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 3
MATLAB Signal Processing Toolbox
Interpolation
Anwendung
• Funktionswertberechnung zwischen Abtastpunkten
• Grafische Darstellung einer abgetasteten Kurve
Verfahren
• linear
• kubisch
• Splines
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 4
MATLAB Signal Processing Toolbox
Interpolation
Matlab–Befehle
• Interpolation (methode = linear, cubic, spline):
interp1 (x_koord, y_werte, x_auswertung, ’methode’)
• Mehrdimensionale Interpolation:
interp2, interp3, interpn
• Zweidimensionale Interpolation unsortierter Daten:
griddata (x_koord, y_koord, z_werte, ...
x_auswertung, y_auswertung, ’methode’)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 5
MATLAB Signal Processing Toolbox
Approximation
Anwendung
• Generieren von Kennlinien aus verrauschten Daten
• Beschreibung von Messdaten durch Ausgleichspolynom
Matlab–Befehle
• polynom = polyfit (x_koord, y_werte, ordnung)
• y_auswertung = polyval (polynom, x_auswertung)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 6
MATLAB Signal Processing Toolbox
Interpolation und Approximation
Vergleich interp1 mit Basic Fitting Tool
• ’spline’, ’cubic’ −→ spline interp., shape-preserving
• polyfit −→ linear, cubic etc.
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 7
MATLAB Signal Processing Toolbox
Anpassung der Abtastrate
Anwendung
• Messdaten liegen mit abweichender Abtastfrequenz vor
• Kompatibilitat zwischen unterschiedlichen
Aufzeichnungsstandards (z.B. Digital-Audio)
• Einfache (verlustbehaftete) Datenkompression
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 8
MATLAB Signal Processing Toolbox
Anpassung der Abtastrate
Matlab–Befehle
Ohne Filterung:
• downsample (x, faktor) −→ Zwischenwerte entfallen
• upsample (x, faktor) −→ Auffullen mit 0
Mit Filterung:
• decimate (x, faktor [, ordnung, ’fir’])
• interp (x, faktor)
• resample (x, zaehler, nenner)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 9
MATLAB Signal Processing Toolbox
Anpassung der Abtastrate
0 20 40−5
0
5Original x
0 5 10−5
0
5y = downsample (x, 4)
0 20 40−5
0
5z = upsample (y, 4)
0 20 40−5
0
5Original x
0 5 10−5
0
5y = decimate (x, 4, 8, ’fir’)
0 20 40−5
0
5z = interp (y, 4)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 10
MATLAB Signal Processing Toolbox
Analyse im Zeitbereich
Autokorrelation
Kreuzkorrelation
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 11
MATLAB Signal Processing Toolbox
Korrelationsfunktionen
Aufgabenstellung
Korrelationsfunktion = Maß fur Ahnlichkeit
• zweier Signale −→ Kreuzkorrelation
• eines Signals mit sich selbst −→ Autokorrelation
Anwendung
• Erkennung und Ausblendung von Echos
• Laufzeitmessung zur Ortung einer Signalquelle
• Unterscheidung verschieden codierter Sender
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 12
MATLAB Signal Processing Toolbox
Korrelationsfunktionen
Autokorrelation
φxx(k) =1
N
N∑
n=1xn+k · xn
Berechnung in Matlab:
cxx = xcorr (x, ’options’)
x: Signalvektor der Lange N
cxx: Ergebnisvektor der Lange 2N − 1
’options’ = ’none’ −→ Standard, ohne Skalierung 1/N= ’biased’ −→ Skalierung wie in Formel
= ’coeff ’ −→ Skalierung, so dass φxx(0) = 1
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 13
MATLAB Signal Processing Toolbox
Korrelationsfunktionen
Kreuzkorrelation
φxy(k) =1
N
N∑
n=1xn+k · yn
Berechnung in Matlab:
cxy = xcorr (x, y, ’options’)
x, y: Signalvektoren, Lange jeweils ≤ N ,
bei Bedarf wird der kurzere Vektor mit 0 aufgefullt
cxy: Ergebnisvektor der Lange 2N − 1
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 14
MATLAB Signal Processing Toolbox
Korrelationsfunktionen
Signallaufzeit von 4 verschieden codierten Sendern
mittels Kreuzkorrelation:
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5−0.1
0
0.1
0.2
0.3
0.4
Laufzeit [s]
Kreuzkorrelation
S1, 100msS2, 200 msS3, 150msS4, 400 ms
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 15
MATLAB Signal Processing Toolbox
Analyse im Frequenzbereich
Amplitudenspektren
Leistungsdichtespektren (PSD)
Fensterfunktionen
Averaging
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 16
MATLAB Signal Processing Toolbox
Spektralanalyse
Aufgabenstellung
Bestimmung der Frequenzanteile in einem Signal
= Korrelation mit Frequenzen Fk
Anwendung
• Bestimmung der Ubertragungsfunktion
• Bestimmung des Rauschabstands (SNR)
• Anlagenuberwachung (fruhzeitige Fehlererkennung)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 17
MATLAB Signal Processing Toolbox
Diskrete Fouriertransformation DFT
Kontinuierliche FT:
X(jω) =∫ ∞
−∞x(t) exp (−jωt) dt
Zeitdiskret (N Messwerte, Ts Abtastzeit):
Xd(jωk) =N−1∑
n=0x(nTs) exp (−jωknTs)
=N−1∑
n=0x(nTs) cos(ωknTs)︸ ︷︷ ︸
Realteil
− x(nTs) j sin(ωknTs)︸ ︷︷ ︸
Imaginarteil
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 18
MATLAB Signal Processing Toolbox
Diskrete Fouriertransformation DFT
• Nur fur diskrete Frequenzen definiert:
ωk = k∆ω = 2π k∆F
• Frequenzauflosung = 1 / Messdauer:
∆F = 1/(NTs)
• Maximal messbare Frequenz = 1/2 Abtastfrequenz:
Fmax = Fs/2 = 1/(2Ts)
• Fourierkoeffizienten sind eindeutig und
(konjugiert komplex) spiegelbildlich um N/2 bzw. Fs/2
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 19
MATLAB Signal Processing Toolbox
Diskrete Fouriertransformation DFT
Reelle Fourierreihe:
x(t) = a0 +K∑
k=1(ak cos(kωkt) + bk sin(kωkt))
Reelle Fourierkoeffizienten:
ak =2
NRe {Xd(k)} k = 1 . . . N/2
bk = −2
NIm {Xd(k)} k = 1 . . . N/2
a0 =1
NRe {Xd(0)} k = 0
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 20
MATLAB Signal Processing Toolbox
Diskrete Fouriertransformation DFT
Matlab–Befehl
• X = fft (x)
• x: Signalvektor der Lange N
• X: Frequenzgang der Lange N
(komplex, symmetrisch)
• Achtung: Formel a0, a1, a2 . . . entspricht
Matlab–Indizes 1, 2, 3 . . . !
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 21
MATLAB Signal Processing Toolbox
Diskrete Fouriertransformation DFT
0 0.1 0.2 0.3 0.4 0.5−15
−10
−5
0
5
10
15
Zeit [s]
Signal
0 10 20 30 40 500
1
2
3
4
5
6
7
8
9
10
Frequenz [Hz]
Spektrum
DFTIdealHamming
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 22
MATLAB Signal Processing Toolbox
Leakage–Effekt
0 0.2 0.4 0.6 0.8
−1
−0.5
0
0.5
1
Zeitbereich
8 Hz
0 2 4 6 8 10 12 14 16 18 20
0
0.5
1
Frequenzbereich (Prinzip)
|sinc|k⋅∆F
0 0.2 0.4 0.6 0.8
−1
−0.5
0
0.5
1
Zeitbereich
11 Hz
0 2 4 6 8 10 12 14 16 18 20
0
0.5
1
Frequenzbereich (Prinzip)
|sinc|k⋅∆F
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 23
MATLAB Signal Processing Toolbox
Leakage–Effekt
• Messzeitfenster ◦—• Spaltfunktion
• Im allgemeinen Fall (F 6= k ∆F ) wird Spaltfunktion
nicht in Nullstellen (k ∆F ) abgetastet −→ Leakage
• Verbesserung durch Gewichtung der Messwerte mit
Fensterfunktionen:
– Vorteil: niedrigere”Nebenzipfel“
−→ verringertes Leakage
– Nachteil: breiterer”Hauptzipfel“
−→ schlechtere Frequenztrennung
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 24
MATLAB Signal Processing Toolbox
Fensterfunktionen
Matlab–Befehle
• Ohne Fensterung: Rechteck rectwin(n), alt: boxcar(n)
• Fenster in Reihenfolge zunehmender Glattung ↓
triang(n) Dreieckhamming(n) Hamming
hann(n) Hannblackman(n) Blackman
0 5 10 15 20
0
0.5
1
DreieckHammingHannBlackman
• Matlab–Aufruf: X = fft (hamming(length(x)) .* x)
• Matlab–Tool: wintool
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 25
MATLAB Signal Processing Toolbox
Fensterfunktionen
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 26
MATLAB Signal Processing Toolbox
Leistungsdichtespektren
Autoleistungsdichtespektrum
Φxx(k∆F ) =1
N2 ∆F|Xd (2π k∆F )|2
mit ∆F = Fs/N = 1/(NTs)
Amplitudenspektrum ←→ Leistungs(dichte)spektrum
Amplitude A ∼ U Leistung P ∼ U2
DFT / N |DFT / N |2 /∆F
Einheit dB Einheit dB/Hz, W/Hz
20 dB = 10 · U 20 dB = (10 · U)2 = 100 · P
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 27
MATLAB Signal Processing Toolbox
Leistungsdichtespektren
Matlab-Befehle (1)
psd −→ veraltet
periodogram −→ sehr anfallig fur Rauschen
pwelch −→ mit Fensterung: reduziertes Leakage
−→ ohne Fensterung: quantitative Analyse
• Averaging (DFT stuckweise, Mittelung)
• uberlappende Sequenzen (geringer Datenverlust)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 28
MATLAB Signal Processing Toolbox
Leistungsdichtespektren
Matlab-Befehle (2)
[Pxx, Fxx] = pwelch (x, fenster, Nover, Nfft, Fs)
plot (Fxx, 10 * log10 (Pxx))
x: Signalvektor der Lange N
fenster: Lange fur Hamming (Standard), sonst Vektor
Nover: Uberlappung, Standard = Nfft/2
Nfft: Lange einer Sequenz ≤ N
Fs: Abtastfrequenz
Pxx: Autoleistungsdichtespektrum (Schatzwert)
Fxx: Zugehoriger Frequenzvektor
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 29
MATLAB Signal Processing Toolbox
Leistungsdichtespektren
0 5 10 15 20 25 30 35 40 45 50−10
−5
0
5
10
15
20
Frequenz [Hz]
Leis
tung
sdic
hte
[dB
/Hz]
Spektrum mit "pwelch"
SpektrumIdealRauschen
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 30
MATLAB Signal Processing Toolbox
Leistungsdichtespektren
Skalierung bei pwelch (x, rectwin(Nfft), [], Nfft, Fs)
Signalanteil Zeitbereich ←→ Frequenzbereich
Gleichanteil x = C X(0) = C2 /∆F
Sinus / Cosinus x = A · sin (. . .) X(f) = A2/2 /∆F
Rauschen x normalverteilt X = σ2 / (Fs/2)
Beispiel fur ∆F = Fs/Nfft = 100Hz/250 = 0.4Hz:
x = 2 + ... 10 = 10 dB/Hz
+ 8 * sin (2*pi*8*t) ... 80 = 19 dB/Hz
+ 5 * randn (1, n) 0.5 = − 3 dB/Hz
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 31
MATLAB Signal Processing Toolbox
Spektralanalyse – zeitvariable Signale
x = 5 + 8 * sin (2*pi*(8+t).*t) + t .* cos (2*pi*33*t);
[S, F, T, P] = spectrogram (x, 64, [], 64, Fs);
pcolor (T, F, 10*log10(P))
5 10 15 200
10
20
30
40
50
Zeit [s]
Fre
quen
z [H
z]
Spektraler Verlauf mit spectrogram
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 32
MATLAB Signal Processing Toolbox
Extraktion von Signalanteilen
Digitale FIR- und IIR-Filter
Analoge Filter
Herleitung Digitaler Filter
sptool
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 33
MATLAB Signal Processing Toolbox
Digitale Filter
Aufgabenstellung
• Verstarkung des Nutzsignals
• Unterdruckung von Storsignalanteilen
Allgemeine Gleichung (Matlab-Indizes!)
H(z) =y(z)
x(z)=
B(z)
A(z)=
b1 + b2 z−1 + . . . + bn+1 z−n
a1 + a2 z−1 + . . . + am+1 z−m
a1 yk = b1 xk + b2 xk−1 + . . . + bn+1 xk−n
− a2 yk−1 − . . .− am+1 yk−m
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 34
MATLAB Signal Processing Toolbox
FIR–Filter
• Der Ausgangswert wird ausschließlich aus
Eingangswerten xk . . . xk−m berechnet:
H(z) =y(z)
x(z)= B(z) = b1 + b2 z−1 + . . . + bn+1 z−n
yk = b1 xk + b2 xk−1 + . . . + bn+1 xk−n
• FIR–Filter sind nicht–rekursiv und stets stabil.
• Die Impulsantwort besitzt eine endliche Lange
(Finite Impulse Response).
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 35
MATLAB Signal Processing Toolbox
FIR–Filter
Matlab–Befehle
• Filterentwurf: B = fir1 (ordnung, Fg)
B: Filterkoeffizienten, optimiert auf idealen Tiefpass
Fg: Grenzfrequenz normiert auf Fs/2 = Fmax
• Ubertragungsfunktion: [H, F] = freqz (B, 1, N, Fs)
N: Anzahl der Datenpunkte fur Ausgabe
H: Ubertragungsfunktion
F: zugehoriger Frequenzvektor
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 36
MATLAB Signal Processing Toolbox
FIR–Filter
• Endliche Zahl an Koeffizienten ◦—• Spaltfunktion
• Uberlagerte Fensterfunktion reduziert Welligkeit
−20 −10 0 10 20−0.1
0
0.1
0.2
0.3
Nummer der Koeffizienten
Filter−Koeffizienten
0 10 20 30 40 50−0.2
0
0.2
0.4
0.6
0.8
1
1.2
Frequenz [Hz]
Filter−Übertragungsfunktion
IdealFIRFIR + Hamming
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 37
MATLAB Signal Processing Toolbox
FIR–Filter
Matlab–Befehle
• Tiefpass, Durchlassbereich < 0.4 · Fmax
fir1 (20, 0.4)
• Hochpass, Durchlassbereich > 0.4 · Fmax
fir1 (20, 0.4, ’high’)
• Bandpass, Durchlassbereich 0.2 ...0.4 · Fmax
fir1 (20, [0.2 0.4])
• Bandsperre, Sperrbereich 0.2 ...0.4 · Fmax
fir1 (20, [0.2 0.4], ’stop’)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 38
MATLAB Signal Processing Toolbox
FIR–Filter
• Filterung (kausal): x_fir = filter (B, 1, x)
• Filterung (doppelt): x_fir = filtfilt (B, 1, x)
(ohne Phasenverschiebung, nur off-line moglich)
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5−10
0
10
20
30
Zeit [s]
Diskrete Filterung mit FIR 20. Ordnung
ungefiltertFIR filterFIR filtfilt
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 39
MATLAB Signal Processing Toolbox
IIR–Filter
• Der Ausgangswert wird aus Eingangswerten und
vergangenen Ausgangswerten berechnet.
a1 yk = b1 xk + b2 xk−1 + . . . + bn+1 xk−n
− a2 yk−1 − . . .− am+1 yk−m
• IIR–Filter sind rekursiv (d.h. a2 . . . am+1 6= 0)
und kann auch instabil sein.
• Die Impulsantwort besitzt eine unendliche Lange
(Infinite Impulse Response).
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 40
MATLAB Signal Processing Toolbox
IIR–Filter
Matlab–Befehle (Filter-Typen)
• Butterworth-TP, Fg: Grenzfrequenz normiert
[B, A] = butter (ordnung, Fg [, typ])
• Tschebyscheff, Rp: Welligkeit im Durchlassbereich [dB]
[B, A] = cheby1 (ordnung, Rp, Fg)
• Tschebyscheff, Rs: Dampfung im Sperrbereich [dB]
[B, A] = cheby2 (ordnung, Rs, Fg)
• Elliptisch (Cauer)
[B, A] = ellip (ordnung, Rp, Rs, Fg)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 41
MATLAB Signal Processing Toolbox
IIR–Filter
Matlab–Befehle (Ruckgabewerte)
• Zahler– und Nennerpolynom
[B, A] = butter (ordnung, Fg)
• Nullstellen, Pole und Verstarkung
[Z, P, K] = butter (ordnung, Fg)
• Zustandsdarstellung
[A, B, C, D] = butter (ordnung, Fg)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 42
MATLAB Signal Processing Toolbox
IIR–Filter
• Filterung (kausal): x_iir = filter (B, A, x)
• Filterung (doppelt): x_iir = filtfilt (B, A, x)
• Ubertragungsfunktion: [H, F] = freqz (B, A, N, Fs)
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5−10
0
10
20
30
Zeit [s]
Diskrete Filterung mit IIR 4. Ordnung
ungefiltertIIR filterIIR filtfilt
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 43
MATLAB Signal Processing Toolbox
Digitale Filter – Beliebiger Frequenzgang
Matlab–Befehle
• FIR: fir2 (ordnung, frequenzen, amplituden)
• IIR: yulewalk (ordnung, frequenzen, amplituden)
0 10 20 30 40 500
0.2
0.4
0.6
0.8
1
1.2FIR−Filterdesign mit fir2 20. Ordnung
Frequenz [Hz]
Am
plitu
de
Sollverlauffir2
0 10 20 30 40 500
0.2
0.4
0.6
0.8
1
1.2IIR−Filterdesign mit yulewalk 4. Ordnung
Frequenz [Hz]
Am
plitu
de
Sollverlaufyulewalk
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 44
MATLAB Signal Processing Toolbox
Digitale Filter – Vergleich
FIR-Filter ←→ IIR-Filter
immer stabil klassische Filtertypen
numerisch unkritisch geringe Ordnung
Gruppenlaufzeit konstant geringer Rechenaufwand
Hinweise
• Fg immer auf halbe Abtastfrequenz Fs/2 normiert.
• Grenzfrequenz Fg entspricht meist nicht −3dB.
• −→ Auslegung immer anhand Frequenzgang prufen!
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 45
MATLAB Signal Processing Toolbox
Analoge Filter
Anwendung
• Verwendung in quasikontinuierlichen Simulationen
• Grenzfrequenz wg in [rad/s]
Matlab–Befehle
[B, A] = besself (ordnung, wg)
[B, A] = butter (ordnung, wg, ’s’)
[B, A] = cheby1 (ordnung, Rp, wg, ’s’)
[B, A] = cheby2 (ordnung, Rs, wg, ’s’)
[B, A] = ellip (ordnung, Rp, Rs, wg, ’s’)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 46
MATLAB Signal Processing Toolbox
Analoge Filter
Frequenzgang plotten
[B, A] = butter (4, 1, ’s’); % Butterworth-TP, analog
[H, W] = freqs (B, A); % Frequenzgang berechnen
loglog (W, abs (H)); % Frequenzgang ausgeben
0.1 1 10
−40
−20
0
Frequenz normiert
Bessel
Am
plitu
de [d
B]
0.1 1 10
−40
−20
0
Frequenz normiert
Butterworth
0.1 1 10
−40
−20
0
Frequenz normiert
Tschebyscheff Typ 1
0.1 1 10
−40
−20
0
Frequenz normiert
Elliptisch (Cauer)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 47
MATLAB Signal Processing Toolbox
Digitale Filter – Herleitung
Berechnung
• Auslegung IIR-Filter als analoge Filter
• Umrechnung mit der Bilinearen Transformation:
s = 2Fs ·z − 1
z + 1
• Abbildung periodisch und verzerrt:
– Abbildung Frequenz 0 −→ 0, Fs, ...
– Abbildung Frequenz ∞ −→ Fs/2, 3Fs/2, ...
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 48
MATLAB Signal Processing Toolbox
Digitale Filter – Herleitung
Periodizitat
• Aliasing fur Frequenzen > Fs/2
• −→ Immer analogen Tiefpass vorschalten!
10 20 30 40 50 100 200−80
−60
−40
−20
0
Frequenz [Hz]
Am
plitu
de [d
B]
Periodischer Frequenzgang digitaler Filter
analogdigitalFgFs/2
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 49
MATLAB Signal Processing Toolbox
Digitale Filter – Herleitung
Verzerrung
• Frequenz Fg wird auf kleinere Frequenz abgebildet.
• −→ Pre-Warping vor Bilinearer Transformation!
• Bei IIR-Filterfunktionen bereits berucksichtigt.
15 20 25 30 35 40 45 50−30
−20
−10
0
Frequenz [Hz]
Am
plitu
de [d
B]
Pre−Warping bei digitalen Filtern
analogdigital (bilinear)analog (Pre−Warping)digital (Pre−Warping)Fg
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 50
MATLAB Signal Processing Toolbox
sptool – Signal Browser & Spectrum Viewer
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 51
MATLAB Signal Processing Toolbox
sptool – Filter Design and Analysis Tool
Lehrstuhl fur Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink 52