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