Hallo Leute! Ich bin ziemlich neu in der Filtertechnik. Habe aber schon mal einen TP 1. Ordnung und TP2. Ordnung entworfen und die entsprechende Rechenvorschrift in das µC-Programm eingebaut. Ich möchte aber höher hinaus. Ich möchte einen HP 10.Ordnung und einen Bandpass 2-8. Ordnung entwerfen. Das Problem ist nur das man von der Übertragungsfunktion in der normierten Form zur Differentialgleichung und dann zur Differenzengleichung gelangen muss. Leider ist hier der Rechenaufwand auf dem Papier sicher gewaltig. Aus diesem Grund wäre ein Programm, welchen einem bei einer Filterdimensionierung unter die Arme greift echt großartig. Welche Programme gibt es für die Dimensionierung von digitalen Filtern? Danke für eure Antworten. Tschüss Martin
Zu dem Thema gibt es enldos viel im www. Versuchs mal mit google: 'digital filter design'. Gruß, Michael
... und ein sehr teures. Es gibt frei verfügbare Matlab-Clones: Scilab und Octave. Scilab enthält ausserdem eine Art Simulink-Clone.
Hallo, der Weg ist nicht zu schwer. Man will mit den digitalen Filtern die analogen Filter schlagen und nimmt noch andere Aspekte meist hinzu, wie Fensterung und Phasengangoptimierung.
Auch mit LabVIEW geht das mittlerweile. Nicht so teuer wie Matlab und es gibt ganz oole Studi-Preise, aber ist halt auch nicht umsonst http://www.ni.com/toolkits/df_design_toolkit.htm
Danke für eure Antworten. Ich habe mir jetzt schon verschiedenste Filterprogramme angesehen. z.B. auch Filter Free Aber ich habe keines gefunden, welches Differenzengleichungen ausgibt. Das mit dem Labview-Toolkit schaue ich mir mal an, wenn es eine Shareware davon gibt. Tschüss Martin
Ich bin im Moment nicht total fit auf dem Gebiet. Die Filterkoeffizienten sind doch die Übertragungsfunktion. G(z)= a*z + b*z^(-1)..... Jetzt brauchst du die Transformation z-> jOmega. Da gab es eine einfache Rechnung. Irgend ein Satz aus der Funktionstheorie. Das ist eine spezielle Reihe. Leider bin ich etwas aus der Übung.
Soweit ich weiß ist überall die normierte Übertragungsfunktion angegeben A(s). Man multipliziert diese mit x und y kreuzweise aus. Danach bildet man die Differentialgleichungen und erst danach kann man entsprechend die Differenzengleichungen oder auch die Z-Transformation bilden. TP1.0 Ordnung z.B: y(n)=(k*x(n)+(T1/TA)*y(n-1))/(1+T1/TA) Daraus ergibt sich im Programm: y(n)=multiplikator1*x(n)+multiplikator2*y(n-1); Beim TP2.0 Ordnung ist die Berechnung der Differenzengleichung schon um einiges aufwändiger. Aber einen TP z.B. 10 Ordnung zu berechnen ist für mich auf dem Papier zu heftig. Gruß, Martin
Ich hoffe du hast verstanden, dass du mit dem G(z) bereits die Differenzengleichung gegeben hast. Ansonsten wirst du, was die Theorie angeht, nochmal von vorne anfangen müssen.
Ja. Das weiß ich. Aber z.B. beim TP1 Ordnung ist folgende Übertragungsfunktion gegeben: A(jOm)=y(jOm)/x(jOm)=K/(1+(jOm/Om0)) Bei einem TP10 Ordnung wird das mit 5 Tiefpässen zweiter Ordnung erledigt. Die einzelnen Parameter für die einzelnen Grenzfrequenzen kann man dem Tieze-Schenk entnehmen. Leider ist die Umwandlung von A(jOm) auf z.B. G(z) bei einem TP10 Ordnung auf dem Papier schwierig. Aus diesem Grunde meine Frage.
Achso :-) Die einzige genaue Variante ist über Tabellen (also erst in TPs 2. Ordnung zerlegen und dann transformieren). Alternativ gibt es auch Näherungen wie die Bilineartransformation. In Rechnern werden z.T. iterative Verfahren eingesetzt, die dann genauer arbeiten. Am genauesten sind jedoch die Tabellen.
Hallo, Du bist sehr versteift auf die Mathematik. Wichtige Hilfsmittel sind das Pol-Null-Stellen Diagramm und das Bodediagramm. Aus dem Bodediagramm sind die Einschwingzeiten nicht ermittelbar, doch der Eingeschwungen Zustand lässt sich gut ablesen. Die Hilfsmittel sind Grafische Lösungen der Differentialgleichungen. Damit kann man sehr gut arbeiten und Aussagen treffen.
Hi! Hab nur die Fragestellung gelesen und hier vielleicht was, was weiterhilft (natürlich SCILAB). http://scilabsoft.inria.fr/product/man/html/eng/control/tf2ss.htm Für die Diskretisierung der Zustandsraumdarstellung hab ich immer Maxima verwendet, bei dem die Matrix Ad=e^(A*\Delta t) und der Vektor Bd=(e^(A*\Delta t)-I)*A^(-1)*B x(n+1)=Ad*x(n)+Bd*u(n) mfg Weinga-Unity
Hallo, das stimmt schon. Dieser Weg ist nur möglich wenn eine Matixschreibweise überhaupt möglich ist. Die Zurücktransformierte muss eine Lineare Differntialgleichung sein. Die Digitalen Filterkonstruktion lassen auch ander Diff-gleichungen zu. Diese werden sehr selten betrachtet, zumindest in den Büchern. Der Grund es lässt sich nicht gut damit rechnen. Das sind die Typen bei denen man numerische Lösungen anwendet.
Also ich verwende SigLab. Als Output hab ich die Filterkoeffizienten in Tabellenform, die ich über #include in ein Array einbinden kann. ZUr Filterung muss ich dann nur noch diesen "Filter-Vektor" mit meinem Eingangspuffer multiplizieren. Hier sind ohne Problem Filter der Ordnung 200 oder mehr möglich. Du hast hier mit DGLs nichts mehr zu tun.
Die Filterordnung würde ich nicht als Kriterium sehen. Beim fenstergestützten FIR-Filter Enwurf hat Matlab auch mit N=100000 kein Problem, nur macht die Implementierung keinen Sinn mehr. Mit Differentialgleichungen hat man beim diskreten Filterentwurf gemeinhin nichts zu tun.
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.