Summierung von Phasenverläufen in Diagrammen

#5692532
Lesenswert?

Servus!

Ich bin dabei für mein Programm "Pulseaudio Crossover Rack" 
Unterstützung für Frequenzgangs-Dateien (.FRD) zu implementieren.

Ziel ist es, einzelne Frequenzgangsverläufe von Lautsprechern zu messen, 
Filter darauf anzuwenden und die Verläufe danach aufzusummieren um einen 
Gesamtverlauf zu bekommen bzw. diesen dann zu optimieren. Ein Beispiel 
mit einem Tieftöner und einem Mitteltöner hab ich als Bilder mal 
angehängt, damit wird's vielleicht etwas klarer.

Nun, das Aufsummieren der Magnituden ist ja trivial, was ich noch 
implementieren muss ist der Phasenverlauf der Summenkurve und da setzt's 
bei mir schon wieder mal aus mit der Mathematik. Hat jemand einen Tipp 
für mich, wie man das anstellt?

Vielen Dank schon mal im Voraus und VG,
Jürgen
Angehängte Dateien:
#5693022
Lesenswert?

Ja äh, das will ich :)

Sorry, ich bin immer noch ein DSP-noob und absolut 100%ig aus der Übung 
was die Mathematik angeht, is schließlich >20y her.

Aber dank solcher stichwortartigen Inputs wie von Dir und etwas googeln 
komm ich dann schon auf die richtigen Lösungen ;)

Danke und VG,
Jürgen
#5693037
Lesenswert?

Moin,

Axo. Da nimmste deine ganzen zu summierenden Amplituden jeweils mal dem 
cosinus ihres Winkels:

X=A1*cos(phi1)+A2*cos(phi2)+...

und das ganze nochmal mit dem sinus:

Y=A1*sin(phi1)+A2*sin(phi2)+...

Dann ist die Summe der einzelnen Ampliduden:
A=sqrt(A1²+A2²+...)
und der dazugehoerige Winkel
phi=atan2(Y/X) (mit den entsprechenden Vorsichtsmassnahmen, wenn X=0 ;-) 
)

https://en.wikipedia.org/wiki/Atan2

Gruss
WK
#5693081
Lesenswert?

Danke nochmal, in Python gehts tatsächlich noch einfacher. Umwandeln in 
komplexe Zahl:

C = magnitude  * math.exp(1j * phi)

magnitude als Faktor, phi als Winkel in rad

Aufsummieren ist ja tatsächlich trivial auch für komplexe Zahlen.

Das konvertieren zurück geht auch ganz einfach:

magnitude, phi = cmath.polar(C)

VG Jürgen

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren