Forum: Digitale Signalverarbeitung / DSP / Machine Learning Digitale Filter selbst entwerfen


von martin (Gast)


Lesenswert?

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

von MSE (Gast)


Lesenswert?

Zu dem Thema gibt es enldos viel im www. Versuchs mal mit google:
'digital filter design'.

Gruß, Michael

von Tobias (Gast)


Lesenswert?

Hallo,

Matlab ist ein sehr gutes Programm zum Filterdesign.

von MSE (Gast)


Lesenswert?

... und ein sehr teures. Es gibt frei verfügbare Matlab-Clones:

Scilab und Octave.

Scilab enthält ausserdem eine Art Simulink-Clone.

von michael (Gast)


Lesenswert?

"Filter Free" ist auch eine Empfehlung

von dose (Gast)


Lesenswert?

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.

von TOMMu (Gast)


Lesenswert?

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

von martin (Gast)


Lesenswert?

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

von Jochen (Gast)


Lesenswert?

warum brauchst du die DGL's?

von dose (Gast)


Lesenswert?

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.

von martin (Gast)


Lesenswert?

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

von martin (Gast)


Lesenswert?

Hab was vergessen: Bei A(s) ist s = jOmega

von Alex (Gast)


Lesenswert?

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.

von martin (Gast)


Lesenswert?

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.

von Alex (Gast)


Lesenswert?

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.

von dose (Gast)


Lesenswert?

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.

von Weinga-Unity (Gast)


Lesenswert?

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

von dose (Gast)


Lesenswert?

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.

von Carsten Steiner (Gast)


Lesenswert?

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.

von Alex (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.