MATLAB Signal Processing Toolbox Inhaltsverzeichnis

Transcrição

MATLAB Signal Processing Toolbox Inhaltsverzeichnis
MATLAB Signal Processing Toolbox
Inhaltsverzeichnis
0
1
2
Signal Processing Toolbox
Was ist Digitale Signalverarbeitung?
Inhalt
3
4
6
7
8
Aufbereitung der Messdaten
Interpolation
Approximation
Interpolation und Approximation
Anpassung der Abtastrate
11
12
Analyse im Zeitbereich
Korrelationsfunktionen
16
17
18
23
25
27
32
Analyse im Frequenzbereich
Spektralanalyse
Diskrete Fouriertransformation DFT
Leakage–Effekt
Fensterfunktionenn
Leistungsdichtespektren
Spektralanalyse – zeitvariable Signale
33
34
35
40
44
45
46
48
51
Extraktion von Signalanteilen
Digitale Filter
FIR–Filter
IIR–Filter
Digitale Filter – Beliebiger Frequenzgang
Digitale Filter – Vergleich
Analoge Filter
Digitale Filter – Herleitung
sptool
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
MATLAB Signal Processing Toolbox
MATLAB
Signal Processing Toolbox
Lehrstuhl für 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 für 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 für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
2
MATLAB Signal Processing Toolbox
Aufbereitung der Messdaten
Interpolation
Approximation
Änderung der Abtastrate
Lehrstuhl für 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 für 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 für 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 für 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 für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
7
MATLAB Signal Processing Toolbox
Anpassung der Abtastrate
Anwendung
• Messdaten liegen mit abweichender Abtastfrequenz vor
• Kompatibilität zwischen unterschiedlichen
Aufzeichnungsstandards (z.B. Digital-Audio)
• Einfache (verlustbehaftete) Datenkompression
Lehrstuhl für 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)
−→ Auffüllen mit 0
Mit Filterung:
• decimate (x, faktor [, ordnung, ’fir’])
• interp (x, faktor)
• resample (x, zaehler, nenner)
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
9
MATLAB Signal Processing Toolbox
Anpassung der Abtastrate
Original x
y = downsample (x, 4)
z = upsample (y, 4)
5
5
5
0
0
0
−5
−5
−5
0
20
40
0
Original x
5
10
y = decimate (x, 4, 8, ’fir’)
5
5
0
0
0
0
20
40
−5
0
5
20
40
z = interp (y, 4)
5
−5
0
10
−5
0
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
20
40
10
MATLAB Signal Processing Toolbox
Analyse im Zeitbereich
Autokorrelation
Kreuzkorrelation
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
11
MATLAB Signal Processing Toolbox
Korrelationsfunktionen
Aufgabenstellung
Korrelationsfunktion = Maß für Ähnlichkeit
• 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 für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
12
MATLAB Signal Processing Toolbox
Korrelationsfunktionen
Autokorrelation
N
1 X
φxx(k) =
xn+k · xn
N n=1
Berechnung in Matlab:
cxx = xcorr (x, ’options’)
x:
Signalvektor der Länge N
cxx: Ergebnisvektor der Länge 2N − 1
’options’ = ’none’ −→ Standard, ohne Skalierung 1/N
= ’biased’ −→ Skalierung wie in Formel
= ’coeff ’ −→ Skalierung, so dass φxx(0) = 1
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
13
MATLAB Signal Processing Toolbox
Korrelationsfunktionen
Kreuzkorrelation
N
1 X
φxy (k) =
xn+k · yn
N n=1
Berechnung in Matlab:
cxy = xcorr (x, y, ’options’)
x, y: Signalvektoren, Länge jeweils ≤ N ,
bei Bedarf wird der kürzere Vektor mit 0 aufgefüllt
cxy: Ergebnisvektor der Länge 2N − 1
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
14
MATLAB Signal Processing Toolbox
Korrelationsfunktionen
Signallaufzeit von 4 verschieden codierten Sendern
mittels Kreuzkorrelation:
Kreuzkorrelation
0.4
S1, 100ms
S2, 200 ms
S3, 150ms
S4, 400 ms
0.3
0.2
0.1
0
−0.1
0
0.05
0.1
0.15
0.2
0.25
Laufzeit [s]
0.3
0.35
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
0.4
0.45
0.5
15
MATLAB Signal Processing Toolbox
Analyse im Frequenzbereich
Amplitudenspektren
Leistungsdichtespektren (PSD)
Fensterfunktionen
Averaging
Lehrstuhl für 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 Übertragungsfunktion
• Bestimmung des Rauschabstands (SNR)
• Anlagenüberwachung (frühzeitige Fehlererkennung)
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
17
MATLAB Signal Processing Toolbox
Diskrete Fouriertransformation DFT
Kontinuierliche FT:
X(jω) =
Z ∞
−∞
x(t) exp (−jωt) dt
Zeitdiskret (N Messwerte, Ts Abtastzeit):
Xd(jωk ) =
NX
−1
=
NX
−1
n=0
x(nTs) exp (−jωk nTs)
x(nT
s) cos(ω
s) j sin(ω
k nTs)} − x(nT
k nTs)}
|
{z
|
{z
n=0
Realteil
Imaginärteil
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
18
MATLAB Signal Processing Toolbox
Diskrete Fouriertransformation DFT
• Nur für diskrete Frequenzen definiert:
ωk = k∆ω = 2π k∆F
• Frequenzauflösung = 1 / Messdauer:
∆F = 1/(N Ts)
• 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 für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
19
MATLAB Signal Processing Toolbox
Diskrete Fouriertransformation DFT
Reelle Fourierreihe:
x(t) = a0 +
K
X
k=1
(ak cos(kωk t) + bk sin(kωk t))
Reelle Fourierkoeffizienten:
2
Re {Xd(k)}
ak =
N
2
bk = −
Im {Xd(k)}
N
1
a0 =
Re {Xd(0)}
N
k = 1 . . . N/2
k = 1 . . . N/2
k=0
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
20
MATLAB Signal Processing Toolbox
Diskrete Fouriertransformation DFT
Matlab–Befehl
• X = fft (x)
• x: Signalvektor der Länge N
• X: Frequenzgang der Länge N
(komplex, symmetrisch)
• Achtung: Formel a0, a1, a2 . . . entspricht
Matlab–Indizes
1, 2, 3 . . . !
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
21
MATLAB Signal Processing Toolbox
Diskrete Fouriertransformation DFT
Signal
Spektrum
15
10
DFT
Ideal
Hamming
9
10
8
7
5
6
0
5
4
−5
3
2
−10
1
−15
0
0.1
0.2
0.3
Zeit [s]
0.4
0.5
0
0
10
20
30
Frequenz [Hz]
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
40
50
22
MATLAB Signal Processing Toolbox
Leakage–Effekt
Zeitbereich
Frequenzbereich (Prinzip)
8 Hz
1
|sinc|
k⋅∆F
1
0.5
0
0.5
−0.5
−1
0
0
0.2
0.4
0.6
0.8
0
2
Zeitbereich
4
6
8
10 12 14 16 18 20
Frequenzbereich (Prinzip)
11 Hz
1
|sinc|
k⋅∆F
1
0.5
0
0.5
−0.5
−1
0
0
0.2
0.4
0.6
0.8
0
2
4
6
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
8
10 12 14 16 18 20
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 für 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 Glättung ↓
triang(n)
hamming(n)
hann(n)
blackman(n)
Dreieck
Hamming
Hann
Blackman
1
Dreieck
Hamming
Hann
Blackman
0.5
0
0
5
10
15
20
• Matlab–Aufruf: X = fft (hamming(length(x)) .* x)
• Matlab–Tool:
wintool
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
25
MATLAB Signal Processing Toolbox
Fensterfunktionen
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
26
MATLAB Signal Processing Toolbox
Leistungsdichtespektren
Autoleistungsdichtespektrum
1
2
Φxx(k∆F ) =
|X
(2π
k∆F
)|
d
N 2 ∆F
mit
∆F = Fs/N = 1/(N Ts)
Amplitudenspektrum ←→ Leistungs(dichte)spektrum
Amplitude A ∼ U
Leistung P ∼ U 2
DF T / N
|DF T / N |2 / ∆F
Einheit dB
Einheit dB/Hz, W/Hz
20 dB =
ˆ 10 · U
20 dB =
ˆ (10 · U )2 = 100 · P
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
27
MATLAB Signal Processing Toolbox
Leistungsdichtespektren
Matlab-Befehle (1)
psd
−→ veraltet
periodogram −→ sehr anfällig für Rauschen
pwelch
−→ mit Fensterung: reduziertes Leakage
−→ ohne Fensterung: quantitative Analyse
• Averaging (DFT stückweise, Mittelung)
• überlappende Sequenzen (geringer Datenverlust)
Lehrstuhl für 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:
fenster:
Nover:
Nfft:
Fs:
Signalvektor der Länge N
Länge für Hamming (Standard), sonst Vektor
Überlappung, Standard = Nfft/2
Länge einer Sequenz ≤ N
Abtastfrequenz
Pxx:
Fxx:
Autoleistungsdichtespektrum (Schätzwert)
Zugehöriger Frequenzvektor
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
29
MATLAB Signal Processing Toolbox
Leistungsdichtespektren
Spektrum mit "pwelch"
20
Spektrum
Ideal
Rauschen
Leistungsdichte [dB/Hz]
15
10
5
0
−5
−10
0
5
10
15
20
25
30
Frequenz [Hz]
35
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
40
45
50
30
MATLAB Signal Processing Toolbox
Leistungsdichtespektren
Skalierung bei pwelch (x, rectwin(Nfft), [], Nfft, Fs)
Signalanteil
Zeitbereich
Gleichanteil
x=C
←→ Frequenzbereich
X(0) = C 2 /∆F
Sinus / Cosinus x = A · sin (. . .)
X(f ) = A2/ 2 /∆F
Rauschen
X
x normalverteilt
= σ 2 / (Fs/2)
Beispiel für ∆F = Fs/Nfft = 100 Hz/250 = 0.4 Hz:
x = 2 + ...
+ 8 * sin (2*pi*8*t) ...
+ 5 * randn (1, n)
10 =
ˆ 10 dB/Hz
80 =
ˆ 19 dB/Hz
0.5 =
ˆ − 3 dB/Hz
Lehrstuhl für 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))
Spektraler Verlauf mit spectrogram
50
Frequenz [Hz]
40
30
20
10
0
5
10
15
20
Zeit [s]
Lehrstuhl für 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 für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
33
MATLAB Signal Processing Toolbox
Digitale Filter
Aufgabenstellung
• Verstärkung des Nutzsignals
• Unterdrückung von Störsignalanteilen
Allgemeine Gleichung (Matlab-Indizes!)
b1 + b2 z −1 + . . . + bn+1 z −n
y(z)
B(z)
H(z) =
=
=
x(z)
A(z)
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 für 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:
y(z)
H(z) =
= B(z) = b1 + b2 z −1 + . . . + bn+1 z −n
x(z)
yk = b1 xk + b2 xk−1 + . . . + bn+1 xk−n
• FIR–Filter sind nicht–rekursiv und stets stabil.
• Die Impulsantwort besitzt eine endliche Länge
(Finite Impulse Response).
Lehrstuhl für 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
• Übertragungsfunktion: [H, F] = freqz (B, 1, N, Fs)
N:
Anzahl der Datenpunkte für Ausgabe
H:
Übertragungsfunktion
F:
zugehöriger Frequenzvektor
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
36
MATLAB Signal Processing Toolbox
FIR–Filter
• Endliche Zahl an Koeffizienten ◦—• Spaltfunktion
• Überlagerte Fensterfunktion reduziert Welligkeit
Filter−Koeffizienten
Filter−Übertragungsfunktion
1.2
0.3
Ideal
FIR
FIR + Hamming
1
0.8
0.2
0.6
0.1
0.4
0.2
0
0
−0.1
−20
−10
0
10
Nummer der Koeffizienten
20
−0.2
0
10
20
30
Frequenz [Hz]
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
40
50
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 für 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 möglich)
Diskrete Filterung mit FIR 20. Ordnung
30
ungefiltert
FIR filter
FIR filtfilt
20
10
0
−10
0
0.05
0.1
0.15
0.2
0.25
Zeit [s]
0.3
0.35
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
0.4
0.45
0.5
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 Länge
(Infinite Impulse Response).
Lehrstuhl für 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: Dämpfung im Sperrbereich [dB]
[B, A] = cheby2 (ordnung, Rs, Fg)
• Elliptisch (Cauer)
[B, A] = ellip (ordnung, Rp, Rs, Fg)
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
41
MATLAB Signal Processing Toolbox
IIR–Filter
Matlab–Befehle (Rückgabewerte)
• Zähler– und Nennerpolynom
[B, A]
= butter (ordnung, Fg)
• Nullstellen, Pole und Verstärkung
[Z, P, K]
= butter (ordnung, Fg)
• Zustandsdarstellung
[A, B, C, D] = butter (ordnung, Fg)
Lehrstuhl für 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)
• Übertragungsfunktion: [H, F] = freqz (B, A, N, Fs)
Diskrete Filterung mit IIR 4. Ordnung
30
ungefiltert
IIR filter
IIR filtfilt
20
10
0
−10
0
0.05
0.1
0.15
0.2
0.25
Zeit [s]
0.3
0.35
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
0.4
0.45
0.5
43
MATLAB Signal Processing Toolbox
Digitale Filter – Beliebiger Frequenzgang
Matlab–Befehle
• FIR: fir2 (ordnung, frequenzen, amplituden)
• IIR: yulewalk (ordnung, frequenzen, amplituden)
FIR−Filterdesign mit fir2 20. Ordnung
IIR−Filterdesign mit yulewalk 4. Ordnung
1.2
1.2
Sollverlauf
fir2
1
0.8
Amplitude
Amplitude
1
0.6
0.4
0.2
0
Sollverlauf
yulewalk
0.8
0.6
0.4
0.2
0
10
20
30
Frequenz [Hz]
40
50
0
0
10
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
20
30
Frequenz [Hz]
40
50
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 prüfen!
Lehrstuhl für 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 für 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
Amplitude [dB]
Bessel
Butterworth
Tschebyscheff Typ 1
Elliptisch (Cauer)
0
0
0
0
−20
−20
−20
−20
−40
−40
−40
−40
0.1
1
10
Frequenz normiert
0.1
1
10
Frequenz normiert
0.1
1
10
Frequenz normiert
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
0.1
1
10
Frequenz normiert
47
MATLAB Signal Processing Toolbox
Digitale Filter – Herleitung
Berechnung
• Auslegung IIR-Filter als analoge Filter
• Umrechnung mit der Bilinearen Transformation:
z−1
s = 2 Fs ·
z+1
• Abbildung periodisch und verzerrt:
– Abbildung Frequenz 0 −→ 0,
Fs, ...
– Abbildung Frequenz ∞ −→ Fs/2, 3Fs/2, ...
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
48
MATLAB Signal Processing Toolbox
Digitale Filter – Herleitung
Periodizität
• Aliasing für Frequenzen > Fs/2
• −→ Immer analogen Tiefpass vorschalten!
Amplitude [dB]
Periodischer Frequenzgang digitaler Filter
0
−20
−40
−60
−80
analog
digital
Fg
Fs/2
10
20
30
40
Frequenz [Hz]
50
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
100
200
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 berücksichtigt.
Amplitude [dB]
Pre−Warping bei digitalen Filtern
0
analog
digital (bilinear)
analog (Pre−Warping)
digital (Pre−Warping)
Fg
−10
−20
−30
15
20
25
Frequenz [Hz]
30
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
35
40
45
50
50
MATLAB Signal Processing Toolbox
sptool – Signal Browser & Spectrum Viewer
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
51
MATLAB Signal Processing Toolbox
sptool – Filter Design and Analysis Tool
Lehrstuhl für Elektrische Antriebssysteme und Leistungselektronik
Simulation mit Matlab/Simulink
52

Documentos relacionados