Forum: Digitale Signalverarbeitung / DSP / Machine Learning Filterimplementierung in Simulink


von leon (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte in Simulink einen Bandpass realisieren. Hierfür habe ich ein 
Tool gefunden, womit man die Koeffizienten sowie die Pole und die 
Nullstellen berechnen kann. Das Tool generiert ebenfalls ein C-Code.
Siehe Dateianhang.

Z domain Zeros
z = -1.000000 + j 0.000000
z = 1.000000 + j 0.000000

Z domain Poles
z = 0.999509 + j -0.024535
z = 0.999509 + j 0.024535

Wie kann ich nun laut diesen Angaben eine diskrete Übertragungsfunktion 
erstellen ? Wie müsste die Übertragungsfunktion aussehen ?

von leon (Gast)


Lesenswert?

Ich habe mal die Übertragungsfunktion aufgestellt:

Bin mir nicht sicher, ob die Übertragungsfunktion so stimmt.

von russenbaer (Gast)


Lesenswert?

Wenn Du simulink hast hast auch MATLAB:

doc zp2tf

Frü die Faulen :)

lg
russenbaer

von leon (Gast)


Lesenswert?

Danke für die Info. Die Funktion kenne ich bereits. Ich bin mir halt 
nicht sicher, ob die Übertragungsfunktion korrekt ist. Nur das wollte 
ich eigentlich wissen.

von :-) (Gast)


Lesenswert?

Wie hast du denn die Übertragungsfunktion erstellt? Hast du theoretische 
Grundlagen, oder wo kommt die her?

MMn ist sie jedenfalls nicht richtig, denn rechne mal die 
Nullstellen/Polstellen nach, (Polstellen = Nennerpolynom nullsetzen, 
Nullstellen = Zählerpolynom nullsetzen). Da kommen andere Werte heraus, 
also kann das gar nicht die Übertragungsfunktion sein.

Schöne Grüße

von leon (Gast)


Lesenswert?

Ok die Übertragungsfunktion die ich aufgestellt habe ist falsch.
Wo bringe ich diesen Pol: 0.999509 + j -0.024535 = z im Nenner von der 
Übertragungsfunktion unter?

von :-) (Gast)


Lesenswert?

Hi!

Das große T ist wichtig, wir befinden uns im diskreten Bereich ;)

Was auch immer, diese Angabe benötigst du nur, wenn du den Frequenzgang 
deiner diskreten Übertragungsfunktion bestimmen möchtest. Willst du hier 
aber gar nicht ;)

Ganz allgemein gilt:
Das K verändert sich je nachdem, wie man den Spaß normiert (also ob man 
z.B. die höchste Potenz von z auf 1 normiert, oder konstanten 
Koeffizienten etc).

Das ist die Polynomialdarstellung. Da man jedes Polynom vollständig 
faktorisieren kann (ggf. unter Verwendung von komplexen Zahlen) gilt 
auch:
Das ist die faktorisierte oder Pol-Nullstellen Darstellung.

Beachte: das K' ist ein anderes als das K oben. z_0, z_1... steht für 
zeros. Also die Nullstellen (hast du gegeben), p_0, p_1,... steht für 
Poles also Polstellen, die wiederrum die Nullstellen des Nennerpolynoms 
sind.

Da du Pol- & Nullstellen gegeben hast, kannst du sie einsetzen und bist 
entweder fertig, oder multiplizierst das ganze noch aus (unten 3. 
binomische Formel, gilt auch mit komplexen Zahlen, wobei j*j=-1 ist), um 
wieder auf die Polynomdarstellung zu kommen. Wenn du möchtest kannst 
dann auch noch die höchste Potenz von z ausklammern und kürzen, sodass 
du negative Expontenten in deinen z erhälst, das ist manchmal praktisch, 
weil man unter Umständen besser die Ursprungsfolge bestimmen kannst, 
aber keine Ahnung ob du das machen willst ;)

Wenn was unklar ist, frag nach.

Schöne Grüße

von leon (Gast)


Lesenswert?

Vielen Dank für deine Ausführung!

In Simulink gibt es da noch ein weiteres Problem. Ich benutze das 
Element "Discrete Transfer FCN" um die beiden Übertragungsfunktionen in 
Simulink abzubilden. Wie kann ich nun den komplexen Pol in diesen Block 
unter Denominator coefficients integrieren ? Komplexe Größen wie das j 
bzw. i werden nicht akzeptiert.

von :-) (Gast)


Lesenswert?

Wieso zwei Übertragungsfunktionen?

Was hast du denn jetzt raus?

Und Simulink akzeptiert garantiert i bzw j, es aktzeptiert quasi alles, 
was in matlab syntax eingegeben wird.

Gib doch mal "doc zpk" oder "doc tf" ein, dann siehst du, wie du die 
Nenner/Zähler Koeffizienten angeben musst.

von leon (Gast)


Lesenswert?

Leider habe ich keine entsprechende Toolboxen für Matlab und Simulink.

von Jan K. (jan_k)


Lesenswert?


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.