2017-02-18 3 views
0

Gegeben zwei Signale:Matlab: Wie Größe und Phase eines Sinussignals erhalten

x1 = A1*exp(j*2*pi*f1*t + Phi1); 
x2 = A1*exp(j*2*pi*f1*t + Phi1) + A2*exp(j*2*pi*f2*t + Phi2); 

Matlab sollten Betrag und Phase zu berechnen in der Lage:

abs(x1) = A1; 
angle(x1) = Phi1; 

abs(x2) = A1+A2; 
angle(x2) = Phi1+Phi2; 

Ist das richtig? Ich bin mir über x2 wirklich nicht sicher. Nun, ich bin ein Sinussignal gegeben:

x3 = A3*cos(2*pi*f3*t + Phi3); 
x4 = A3*cos(2*pi*f3*t + Phi3) + A4*cos(2*pi*f4*t + Phi4); 

Was abs()/Winkel() dieser Signale ergeben?

A1*exp(j*2*pi*(f1-f2)/2 t + Phi1) + A2*exp(j*2*pi*(f2-f1)/2 t + Phi2) 

unter der Annahme einer Trägerfrequenz, die zwischen f1 und f2 ist:

Die komplexe Einhüllende x2 ist gegeben durch. Die Amplitude und auch die Phase der komplexen Hüllkurve sollte etwas dem ursprünglichen Signal entsprechen. Jetzt frage ich mich, oder?

+0

Der Kosinus ist keine lineare Funktion. Daher ist die Größe der Summe der Kosinuswerte nicht die Summe der Kosinusgrößen. Es wird auch nicht die Phase sein. Die Phase macht eigentlich keinen Sinn, da Ihre Frequenzen unterschiedlich sind (beachten Sie, dass sich der Winkel von xi mit der Zeit ändert!). Das Problem, das Sie zu lösen versuchen, heißt harmonische Suche (Schätzung A_i, f_i und Phi_i aus einer abgetasteten Summe von Oberschwingungen). Sie können es durch Fourier-Analyse (DFT) oder hochauflösende Algorithmen wie MUSIC oder ESPRIT lösen. Schau dir diese an. Wie auch immer, es ist nicht so einfach wie Winkel (x) zu nehmen, glaub mir. – Florian

+0

Danke, Florian! Darf ich Sie das auch fragen: Sie sagen, Phase macht bei verschiedenen Frequenzen keinen Sinn. Aber können Sie mir die Phase von x2 sagen, vorausgesetzt, dass f1 = -f2? Ist es nur Phi1 + Phi2? –

+0

Nein, was lässt dich das denken? Phasen werden nur hinzugefügt, wenn Sie Signale multiplizieren, nicht wenn Sie sie hinzufügen. – Florian

Antwort

0

EDIT: Ich bin noch nicht sicher, was genau Sie brauchen, aber vielleicht ist diese Identität könnte mir hilfreich:

cos(a) = [exp(j*a) + exp(-j*a) ]/2 

Wenn Sie (einige), um die Parameter A abschätzen müssen, f, Phi, nehmen ein Schauen Sie sich die diskrete Zeit Fourier Transformation (DTFT) an. Diese Seite hat zum Beispiel die Mathematik least squares sinusoidal parameter estimation.

+0

Thx Giorgos! Ich habe meine Frage bearbeitet, ich denke, es war nicht klar. –

+0

Ich habe meine Antwort aktualisiert! Ihr x2-Beispiel ist übrigens falsch :-) –

+0

Auch Winkel (x1) = (2 * pi * f * t + Phi1) modulo 2 * pi, nicht Phi1 –

Verwandte Themen