Forum: Digitale Signalverarbeitung / DSP / Machine Learning Transferfunktion numerisch Gain/Phase berechnen


von Markus (Gast)


Lesenswert?

Hallo Leute,

ich möchte eine Transferfunktion in einem Bode-Diagramm plotten.
Es soll ausdrücklich kein Matlab verwendet werden sondern Java.

Jetzt die Frage:

Ich lege eine einfache Funktion an, z.B.

double G (double s, double a, double b) {
 return ..... ;
}

s soll dabei mein jW sein.

Muss ich zwingend mit komplexen Werten rechnen?
oder kann ich für S dann einfach direkt 2*PI*f annehmen? Was ist mit 
sampling-frequenz?

Muss leider ein Projekt von Matlab nach Java portieren und habe noch 
nicht so richtig den Überblick.

Danke.

von Tobias P. (hubertus)


Lesenswert?

Markus schrieb:
> Muss ich zwingend mit komplexen Werten rechnen?

offenbar, denn

Markus schrieb:
> s soll dabei mein jW sein.

;-) wenn du nur s = 2*pi*f setzt, dann kommt da sogenannter Murks raus.
Samplingfrequenz gibt es bei kontinuierlichen Übertragungsfunktionen 
nicht.

von Al3ko -. (al3ko)


Lesenswert?

Hi Markus,
deine Übertragungsfunktion müsstest du in Betrag und Phase überführen, 
um das Bode Diagramm zu erhalten.
Matlab macht das automatisch, Java wahrscheinlich nicht.

Gruß,

von Markus (Gast)


Lesenswert?

Hey Leute,

wollte kurz Feedback geben.
Hat alles hingehauen. Habe in C++ geschrieben und die complex-Lib 
benutzt.
Habe als s in die Übertragungsfunktion dann 2*Pi*f als komplexe Zahl 
hineinmultipliziert.

Betrag dann über 20*log(abs(komplexes_ergebnis)) und Phase mit irgendwas 
aus atan von imag zu realteil *180 durch Pi oder so. Habe es nicht mehr 
genau im Kopf.

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.