www.mikrocontroller.net

Forum: PC-Programmierung Sinusschwingung analysieren?


Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mark Brandis (markbrandis)
Datum:

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

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jan R. (superjany)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: max (Gast)
Datum:
Angehängte Dateien:
  • preview image for F1.png
    F1.png
    33,5 KB, 219 Downloads
  • preview image for F2.png
    F2.png
    1,43 KB, 206 Downloads

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

Oder mit LabVIEW die zweidimensionale FFT einsetzen.

Autor: Mark Brandis (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht 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. 
;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.