Von Koeffizienten zu Übertragungsfunktion

OP (Firma: none) #1409954
Lesenswert?

Hallo!
Ich habe mal eine "kleine" Frage.
Wie kann ich von Filterkoeffizienten mittels Matlab zur 
Übertragungsfunktion des Filters gelangen.

Beispiel: Nehmen wir an ich habe folgende filterkoeffizienten 
b = [0.000264  0.001595  0.004249  -0.018820  -0.026935  0.065497 
0.076514  -0.124576  -0.132255  0.154638  0.154638  -0.132255  -0.124576 
0.076514  0.065497  -0.026935  -0.018820  0.004249  0.001595  0.000264].

Gibt es eine Matlabfunktion womit ich die Übertragungsfunktion direkt 
bestimmen ggf. ploten kann?

Danke für eure Hilfe

mfG
#1410236
Lesenswert?

Plotten kannst du sie, indem du dir noch einen "a"-Nullvektor erstellst, 
der die gleiche Länge wie b hat und dann ins erste Element eine 1 
schreibst. Also
1
a=zeros(1, length(b));
2
a(1)=1;

Dann kannst du mit
1
freqz(b, a)
den Frequenzgang plotten. Wenn du dich für die dahinterstehende Ü-Fkt im 
Frequenzbereich interessierst, hilft dir Matlab afaik nicht.
Gast #1415685
Lesenswert?

Hallo Merlin,

offensichtlich handelt es sich um FIR-Filterkoeffizienten. Wie Thomas 
schon schrieb, kannst Du die Üertragungsfunktion mit der Funktion

freqz(b) oder freqz(b,1)

ermitteln. Es genügt aber der Aufruf nur mit Deinen Koeffizienten, wie 
eben dargestellt.
Du fragst nun nach der Übertragungsfunktion im Frequenzbereich. Das ist 
aber genau die Ausgabe von freqz(b), allerdings in normierter Form, da 
Deine Abtastrate nicht bekannt ist.
Die Abzisse ("X-Achse") ist von 0...1 beschriftet, wobei die 1 für die 
Nyquistfrequenz steht. Bei z.B. 10kHz Abtastrate, wären das 5kHz. Die 
Mittenfrequenz Deines Bandpasses ist normiert bei 0.5, also bei 2.5khz 
für den Fall mit 10kHz Abtastrate. OK?

Du kannst die Darstellung auch gleich mit direkt ablesbaren Frequenzen 
erzeugen, wenn Du wie folgt vorgehst:

fs=10e3;
[h,w]=freqz(b);
plot(w/pi*fs/2, 20*log10(abs(h))); grid on
xlabel('Freq / Hz');
ylabel('Magnitude / dB');
titel('Transfer Function')

Im Übrigen: Die Koeffizienten eines FIR-Filters entsprechen der 
Impulsantwort. Aus der Impulsantwort kann mit Hilfe der 
Fourier-Transformation die Frequenzübertragungsfunktion ermittelt werden 
(und umgekehrt!). Eine FFT führt hier also auch zum Ziel, allerdings 
wäre die Frequenzauflösung sehr gering, da sie der Anzahl Deiner 
Koeffizienten entsprechen würde. Für eine höhere Auflösung nutzt man ein 
sogenanntes Zero padding (Auffüllen mit Nullen) bis z.B. 1024, um eine 
Frequenzauflösung von 1024 Punkten zu bekommen.

Dies nur zum Verständnis des Zusammanhangs Koeffizienten/Impulsantwort 
und Übertragungsfunktion.

Ich hoffe das hilft.

Viele Grüße!

Gerrit, DL9GFA

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren