Forum: PC-Programmierung Sinusschwingung analysieren?


von ich (Gast)


Lesenswert?

Hallo!

Ich rätsle gerade an einem Problemchen herum und hoffe, dass mir hier 
jemand einen schubs in die richtige Richtung geben kann:

Gegeben:
Ein Differenzsignal.
Dieses Signal wird mit einem Ausreichend schnellen AD-Wandler 
digitalisiert. Die Daten werden von einem Programm in einem 2D Array 
abgelegt. Daraus wird dann das Signal in einem Diagramm dargestellt.
--> so weit klappt auch alles einwandfrei.

Jetzt kommt die Aufgabe, bei der ich euere Hilfe brauche.
Ich möchte diesen Signalverlauf analysieren. Konkret möchte ich 
erkennen, ob es sich bei dem Signal um eine Sinusschwingung mit einer 
bestimmten Frequenz und Spannung handelt oder nicht.
Nur wie kann man so etwas am einfachsten realisieren?
Den "Sollverlauf" als Tabelle ablegen und Wert für Wert vergleichen?
Oder gibt es da effektivere Methoden??

danke euch schon jetzt für euere Ideen.

von Mark B. (markbrandis)


Lesenswert?

Diskrete Fourier-Transformation. Wenn nur ein einzelner, sehr deutlicher 
Peak dabei herauskommt, dann hast Du einen idealen Sinus :-)

von HildeK (Gast)


Lesenswert?

ich schrieb:
> Den "Sollverlauf" als Tabelle ablegen und Wert für Wert vergleichen?

Das wird sowieso nicht besonders hilfreich sein - denn bereits geringste 
Phasenverschiebung, ungenaue Frequenz- oder Amplitudenwerte zwischen 
"Sollverlauf" und den aufgenommenen Daten macht den einfachen Vergleich 
schwierig.

Man kann z.B. mit Mathcad, Excel o.ä. eine FFT (oder DFT) erstellen und 
dann daraus die Frequenz bestimmen. Alle weiteren Linien im Spektrum 
sind Störer, Oberwellen, Rauschen usw. und können damit zur 
Klirrbestimmung oder zur Bestimmung der effektiven Auflösung des AD 
herangezogen werden. Das ist nicht ganz trivial, denn die normalen 
Fouriertransformationen benötigen Zweierpotenzen als Abtastwerte und 
idealerweise sollte sich der aufgenommene Sinus auch noch steig 
fortsetzen lassen. Andernfalls braucht man Fensterung usw., sonst treten 
Fehler ein, die in Wirklichkeit gar nicht vorhanden sind.

Du kannst alternativ auch im Zeitbereich versuchen, einen Sinus zu 
berechnen, der am besten zu den aufgenommenen Abtastwerten passt, indem 
du Amplitude, Frequenz und Phase geeignet variierst. Diejenigen 
Parameter, die z.B. die kleinste Abweichung liefern (kleinster mittlerer 
quadratischer Fehler), beschreiben am Besten den Sinus. Die restlichen 
Abweichungen kann man aufsummieren und zum rekonstruierten Sinus in 
Bezug stellen und erhält damit den Störanteil. Das ist auch nicht ganz 
trivial, denn man muss ein Optimierungsverfahren anwenden, das an drei 
Parameter dreht.

von Jan R. (superjany)


Lesenswert?

Also nur noch mal zum Verständnis: Du willst wissen, ob es sich um ein 
reines Sinussignal handelt und dann die Frequenz bestimmen, oder willst 
du dein Signal auf einen vorgegeben Sinus hin untersuchen?

Im ersten Fall bleibt dir (wie oben erwähnt) die Option der FFT offen. 
Ich denke, dass aber auch einfach das Ermitteln der Maxima und 
Nulldurchgänge schon genügend Aufschluss geben kann.

Im zweiten Fall kann ich dir empfehlen eine Korrelationsfunktion zu 
bilden. Du lässt dann praktisch deinen Funktionsverlauf über eine 
generierte SInusfunktion laufen. Kann ich dir gern nochmal erläutern, 
wenn es das ist was du willst ;-)

von max (Gast)


Angehängte Dateien:

Lesenswert?

Entweder mit EXCEL Zeilen oder Spalten Fouriertransformation ausführen.
(Extras\Analyse-Funktionen)

Oder mit LabVIEW die zweidimensionale FFT einsetzen.

von Mark B. (markbrandis)


Lesenswert?

max schrieb:
> Entweder mit EXCEL Zeilen oder Spalten Fouriertransformation ausführen.
> (Extras\Analyse-Funktionen)

Wer für solche Berechnungen Excel nimmt, der frisst auch kleine Kinder. 
;-)

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.