Forum: Digitale Signalverarbeitung / DSP / Machine Learning Kreuzkorrelation bei verrauschten Sinus-Schwingung


von Coriane J. V. (coriane)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich habe vor kurzen eine Masterarbeit gekriegt mit dem Thema:
Automatisierung eines Analyseverfahren zur Kompensation
frequenzabhängiger Störungen beim Betrieb vom PMSM. Die erste Aufgabe
ist es einen genauen Nullphasewinkel bei einem verrauschten Sinus
Schwingungen mit einem richtige Verfahren zu bestimmen. Was bei mir
bekannt ist , sind die Amplitue, die man über's FFT ablesen kann, das
Frequent und das Soll Moment. Zwar habe ich auch den Phasenwinkel aber
ich ich weiss nicht genau, wo es (Nullphasewinkel)anfängt.

Ich hatte mir mal überlegt die Methode der Kreuzkorrelation einzusetzen
aber ich weiss nicht ob die geeignet ist und ob die mir helfen würde
mein Rauschen zu beseitigen.

Wenn Sie noch einige Verfahren kennt würde ich mich sehr freuen es zu
wissen. Danke für Ihre Aufmerksamkeit und Rückmeldung

Mfg
Coriane

von trulla (Gast)


Lesenswert?

Bin nicht 100pro sicher ob ich die Aufgabe verstehe aber evtl hilft das: 
Das Signal in zwei Zweigen mit je einem Sinus und einem Kosinus der 
Ausgangsfrequenz mischen (multiplizieren). Die beiden Mischprodukte dann 
durch einen Tiefpass laufen lassen. Aus dem Quotienten der beiden 
Resultate kannst du mit Arcustangens sehr genau den relativen 
Phasenwinkel bestimmen (die Amplitude fällt dabei natürlich auch noch 
ab). Das ganze geht so in Richtung IQ Demodulator (mal googeln).

von Coriane J. V. (coriane)


Lesenswert?

trulla schrieb:
> Bin nicht 100pro sicher ob ich die Aufgabe verstehe aber evtl hilft das:
> Das Signal in zwei Zweigen mit je einem Sinus und einem Kosinus der
> Ausgangsfrequenz mischen (multiplizieren). Die beiden Mischprodukte dann
> durch einen Tiefpass laufen lassen. Aus dem Quotienten der beiden
> Resultate kannst du mit Arcustangens sehr genau den relativen
> Phasenwinkel bestimmen (die Amplitude fällt dabei natürlich auch noch
> ab). Das ganze geht so in Richtung IQ Demodulator (mal googeln).

 Ich habe mir das IQ Demodulator verfahren gegoogeln!!!! Bei Einsatz von 
Tiefpass Filter kriege ich immer eine Phaseverschiebung und das hilft 
mir dabei nicht . Danke für deine Hilfe Trulla.

von trulla (Gast)


Lesenswert?

Das macht in dem Fall aber nichts, da die Info nach dem Mischen schon in 
der Amplitude steckt, sozusagen im dc Anteil, der gegen 
Phasenverschiebungen recht resistent ist. :-)

von Coriane J. V. (coriane)


Lesenswert?

trulla schrieb:
> Das macht in dem Fall aber nichts, da die Info nach dem Mischen schon in
> der Amplitude steckt, sozusagen im dc Anteil, der gegen
> Phasenverschiebungen recht resistent ist. :-)

Danke sehr ... ist es was du oben erklärt hast das Modulation Verfahren 
? SOrry wegen der Frage ich bin einfach in dem Bereich ne echte 
Dummy.wenn ich dich richtig verstanden sol ich mein Signal quasi in zwei 
Signale aufteilen. Die modulieren und am ende mal demodulieren ? Oder 
reicht es wenn ich die einfach demoduliere?

von ---- (Gast)


Lesenswert?

Hatte schon einmal ein ähnliches Problem. Konnte all Informationen eines 
Sinussignals ermitteln, in dem ich einen Sinus in das gemessene Signal 
gefittet habe. Kann man mit einer nicht linearen Regression machen.

von Coriane J. V. (coriane)


Lesenswert?

---- schrieb:
> Hatte schon einmal ein ähnliches Problem. Konnte all Informationen eines
> Sinussignals ermitteln, in dem ich einen Sinus in das gemessene Signal
> gefittet habe. Kann man mit einer nicht linearen Regression machen.

echt ?? freue mich es zu wissen. was meinst du bei nicht linearen 
Regression ?  und wie hast du bitte das Problem gelöst ?

Danke für deine Infos

von ---- (Gast)


Lesenswert?

Durch die Regression kannst du die Parameter (Frequenz, Phase, Amplitude 
...) eines Sinussignals bestimmen. Dabei legst du ein berechneter Sinus 
in dein Signal und ermittelst die Parameter so, dass die Quadratischen 
Fehler minimal werden. Da es wegen dem Sinussignal auf eine nicht 
lineare Gleichung hinausläuft, benötigst du eine nicht lineare 
Regression. Ein Ansatz findest du hier 
http://de.wikipedia.org/wiki/Gau%C3%9F-Newton-Verfahren . Im Matlab gibt 
es fertige Funktionen für dieses Problem. Falls ich das Skript finden 
werden, werde ich es heute Abend posten.

von Coriane J. V. (coriane)


Lesenswert?

---- schrieb:
> Durch die Regression kannst du die Parameter (Frequenz, Phase, Amplitude
> ...) eines Sinussignals bestimmen. Dabei legst du ein berechneter Sinus
> in dein Signal und ermittelst die Parameter so, dass die Quadratischen
> Fehler minimal werden. Da es wegen dem Sinussignal auf eine nicht
> lineare Gleichung hinausläuft, benötigst du eine nicht lineare
> Regression. Ein Ansatz findest du hier
> http://de.wikipedia.org/wiki/Gau%C3%9F-Newton-Verfahren . Im Matlab gibt
> es fertige Funktionen für dieses Problem. Falls ich das Skript finden
> werden, werde ich es heute Abend posten.


Echt ehrlich ne bin ganz froh!!!! ich warte nur aufm Skript und freue 
mich schon über deine Idee. Die Methode von kleinste Quadrate hatte 
schon meinen Betreuer erwähnt aber ich war ganz skeptisch.... aber jetzt 
werde ich lieber die Methode einsetzen. Zwei weiteren Methoden hatte ich 
auch und zwar die IQ-Demodulation und die Kreuzkorrelation. Was ist 
deiner Meinung nach am wenigsten Aufwändiger und leichter?

von ---- (Gast)


Lesenswert?

Habe es damals in C# gemacht und doch nicht in Matlab. Sollte aber in 
Matlab einfach zu realisieren sein.

Wenn du nach einer einfachen Lösung suchst, solltest du den Ansatz von 
trulla genauer anschauen. Dieses bedingt aber, dass die Frequenz des 
Signals bekannt sein muss.

von Johannes E. (cpt_nemo)


Lesenswert?

trulla schrieb:
> Bin nicht 100pro sicher ob ich die Aufgabe verstehe aber evtl hilft das:
> ...

Das ist im Prinzip das gleiche, wie wenn man eine FFT macht und diese in 
nur einem Punkt auswertet.

Um diese Verfahren anwenden zu können, muss man im Voraus die 
Signalfrequenz möglichst genau kennen. Wenn ich das richtig verstanden 
habe, dann hat er die Frequenz aus der FFT bestimmt.
Wenn er sowieso schon die FFT hat, dann kann er die Phase auch dort 
ablesen, die Berechnung mit sin/Cos bringt dann keine zusätzlichen 
Informationen.

: Bearbeitet durch User
von Coriane J. V. (coriane)


Lesenswert?

Johannes E. schrieb:
>>
> > Wenn er sowieso schon die FFT hat, dann kann er die Phase auch dort
> ablesen, die Berechnung mit sin/Cos bringt dann keine zusätzlichen
> Informationen.

Danke Johannes für deine Antwort. Laut mein Betreuer kann man annehmen, 
dass man eine bestimmte Frequenz hat aber die Amplitude ist aus den FFT 
lesbar. Drei Verfahren habe ich schon in die Hand. Aber ich weiss noch 
nicht welche der drei Verfahren am besten mit Matlab geeignet ist.

von Max G. (l0wside) Benutzerseite


Lesenswert?

Verstehe ich richtig, dass du einen verrauschten Sinus mit Phasenjitter 
hast, die Sollfrequenz kennst und nun die wahren Nulldurchgänge suchst?

Hört sich für mich nach einer Aufgabe für eine PLL an. Die bleibt auch 
hübsch im Zeitbereich und erspart Rechnen im Frequenzbereich.

Die Amplitude sollte für die Nulldurchgangssuche ziemlich irrelevant 
sein.

Max

: Bearbeitet durch User
von Coriane J. V. (coriane)


Lesenswert?

Max G. schrieb:
> Verstehe ich richtig, dass du einen verrauschten Sinus mit Phasenjitter
> hast, die Sollfrequenz kennst und nun die wahren Nulldurchgänge suchst?
>
> Hört sich für mich nach einer Aufgabe für eine PLL an. Die bleibt auch
> hübsch im Zeitbereich und erspart Rechnen im Frequenzbereich.
>
> Die Amplitude sollte für die Nulldurchgangssuche ziemlich irrelevant
> sein.
>
> Max

Hi Max, Ich möchte mal die Phaseverschiebung durch eine geeignete 
Systemeanalyse finden. und noch dazu muss es über Matlab gemacht werden. 
;)

von Oliver Sievers (Gast)


Lesenswert?

Nimm die Hüllkurven vom verrauschten Sinus und einen sauberen Sinus (den 
hast Du ja laut Deiner Aussage wia FFT).

Die Hüllkurve erhältst Du mit
h1 = abs(hilbert(rauschSinus));
h2 = abs(hilbert(saubererSinus));

Anschließend bestimmst den x-Wert, bei dem
cor = xcorr(h1, h2)

maximimal wird. Wenn das mittlere Elemente maximal ist, sind beide 
Funktionen nicht gegeneinander verschoben (setzt gleiche Länge von h1 
und h2 voraus).

Ich denke Du kannst aus deinen >>Sinussen<< ein paar Wave-Dateien
machen, die Du dann via wavread in h1 und h2 einlesen kannst.


Dies wäre dann die Kreuzkorrelation :) Und ja, dies ist das richtige 
Verfahren für Dein Prolem.

von Coriane J. V. (coriane)


Lesenswert?

Danke Oliver ;)

von Jen Aer (Gast)


Lesenswert?

Max G. schrieb:
> Hört sich für mich nach einer Aufgabe für eine PLL an. Die bleibt auch
> hübsch im Zeitbereich und erspart Rechnen im Frequenzbereich.
Ich würde sagen, eher komplexe FFT mit Phasenbestimmung der 
Basisfrequenz.

von Meckerer (Gast)


Lesenswert?

Jen Aer schrieb:
> Ich würde sagen, eher komplexe FFT mit Phasenbestimmung der
> Basisfrequenz.
Könntest Du bitte beschrieben, wie man sowas macht?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Wenn die Frequenz bekannt ist, versuche es mal mit einen Goertzelfilter.

von Edi M. (Gast)


Lesenswert?

Wenn die Frequenz bekannt ist, wozu baucht es dann noch Görzel?

von Coriane J. V. (coriane)


Lesenswert?

Liebe Lesern und Leserinen,

ich bedanke mich sehr erhzlich bei jeder Personen, die sich für mein 
Problem Zeit genommen haben.Ihr seid die Beste !!!!! Ich habe die 
Parametern(Amplitude und Phasenverschiebung) letzendlich mit dem Least 
Square Verfahren gefunden.
Eine Frage hätte ich aber noch bezüglich die Parametern und der 
Matlab-Software. SOll ich ein neues Thema öffnen oder weiter die Frage 
hier stellen ?

Lg
Coriane

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

E. M. schrieb:
> Wenn die Frequenz bekannt ist, wozu baucht es dann noch Görzel?

Das ist ja gerade das Besondere am Görzel. FFT auf genau einer, der 
bekannten Frequenz. So erhält man Betrag und Phase oder Real und 
Imaginärteil.

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.