matlab signal processing toolbox inhaltsverzeichnis€¦ · matlab signal processing toolbox...

54
MATLAB Signal Processing Toolbox Inhaltsverzeichnis 0 Signal Processing Toolbox 1 Was ist Digitale Signalverarbeitung? 2 Inhalt 3 Aufbereitung der Messdaten 4 Interpolation 6 Approximation 7 Interpolation und Approximation 8 Anpassung der Abtastrate 11 Analyse im Zeitbereich 12 Korrelationsfunktionen 16 Analyse im Frequenzbereich 17 Spektralanalyse 18 Diskrete Fouriertransformation DFT 23 Leakage–Effekt 25 Fensterfunktionenn 27 Leistungsdichtespektren 32 Spektralanalyse – zeitvariable Signale 33 Extraktion von Signalanteilen 34 Digitale Filter 35 FIR–Filter 40 IIR–Filter 44 Digitale Filter – Beliebiger Frequenzgang 45 Digitale Filter – Vergleich 46 Analoge Filter 48 Digitale Filter – Herleitung 51 sptool Lehrstuhl f¨ ur Elektrische Antriebssysteme und Leistungselektronik Simulation mit Matlab/Simulink

Upload: others

Post on 01-May-2020

163 views

Category:

Documents


13 download

TRANSCRIPT

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

• Digitale und analoge Filter

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, pchip, 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’, ’pchip’ −→ 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’]) &%'$2

• interp (x, faktor) &%'$1

• 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:

1 2 3 … N

xn

f--2

f

xn–2

N–1

+N–1nx

cxx = xcorr (x, ’options’)

x: Signalvektor der Lange N

cxx: Ergebnisvektor der Lange 2N − 1

1 2 3 … N

xn

N2 -- 1

’options’ = ’none’ → Standard, ohne Skalierung 1/N= ’biased’ → Skalierung wie in Formel= ’unbiased’ → Skalierung mit 1/(N − |k|)= ’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

Amplitudenspektren

Reelle Fourierreihe (Synthese):

0 s 0.1 0.2 0.3 0.4 Zeit -10

0

10

Sig

nal Summe

f = 0 Hzf = 8 Hzf = 20 Hz

x(t) = a0 +K∑

k=1(ak cos(kωkt) + bk sin(kωkt))

Reelle Fourierkoeffizienten:

0 Hz 10 20 30 40 50 60 70 80 Frequenz0

5

10

| DF

T /

N | symmetrisch

unsymmetrischFs / 2

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

Amplitudenspektren

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

Amplitudenspektren

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)

• 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)

periodogram −→ Leistungsdichtespektrum, quantitativ

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