Hallo, ich stehe im Moment vor der Aufgabe, dass ich anhand eines vorgegebenen Amplitudenganges einen Tiefpass-Filter mit Matlab modellieren soll. Ich kann zwar Eckdaten wie die Grenzfrequenz (3384 Hz) sowie die Dämpfungen bei bestimmten Frequenzwerten aus dem Diagramm ablesen (z.B. -9 dB bei 6000 Hz), nur bin ich mir momentan nicht sicher wie ich bei so einer Aufgabe am geschicktesten vorgehen soll, da mein Tiefpass möglichst exakt mit dem vorgegebenen übereinstimmen soll. Die Verwendung der bei Matlab mitgelieferten Filter-funktionen wie butter, bessel usw hat nicht zum gewünschten Ergebnis geführt. Hat jemand eine Idee, wie ich an die entsprechenden Filterkoeffizienten kommen kann? mfG, TW
Amplitudengang H zu Impulsantwort h transformieren und schon hat man die Filterkoeffizienten !?!
oder mit Geradenstücken annähern, mit "yulewalk" http://www.mathworks.com/access/helpdesk/help/toolbox/signal/yulewalk.html
Wenn es FIR sein darf: firls benutzen. firls braucht einen Amplitudenvektor und einen Vektor mit den dazugehörigen Frequenzen. Einfach ein paar Werte da reinfüttern und Matlab bastelt ein Filter mit minimalem quadratischem Fehler. Die Impulsantwortmethode gäbe es auch noch. Ansonsten könnte man auch versuchen den quadratischen Fehler zu minimieren. Der Nelder-Mead bietet sich dafür an, heißt in Matlab fminsearch. Das geht dann mit einer beliebigen Art Filter. Eigenes Filter bauen, Amplitudengang berechnen, quadratischen Fehler zum vorgegebenen Filter "messen" und zurückgeben. fminsearch passt die Koeffizienten dann an. Kann furchtbar in die Hose gehen aber einen Versuch ist es Wert, dauert ja nicht lange. firls macht etwas ähnliches, aber nur mit FIR Filtern.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.