WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Freq. von Sinus variiert, wie diese Änderungen feststellen?

 

mhaeberer
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 28.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2012, 16:20     Titel: Freq. von Sinus variiert, wie diese Änderungen feststellen?
  Antworten mit Zitat      
Hallo an alle MATLAB-User.

Ich habe ein kleine Untersuchung zu einem Sinussignal mit veränderlicher Frequenz.
Bsp. (Signal ist eine Zeile eines Kamerabildes, daher nenne ich einen Pixel hier einen 'Punkt').
Gegeben ist ein Sinussignal, welches durchschnittlich 60 Punkte für eine Schwingung benötig. Das ganze Signal ist z.B. 2000 Punkte lang, was ungefähr 33 Schwingungen ergibt.
Mir ist die Grundfrequenz (-> 60 Punkte) bekannt, ABER die Frequenz des Signal variiert leicht (+/- 0.09 bis 0.8 Punkte pro Schwingung , klassische Frequenzmodulation halt). Was ich jetzt messen möchte ist pro Punkt die Abweichung von der gegebenen Grundfrequenz (hoffe diese Erklärung ist hilfreich).

Folgende Ansätze habe ich bereits probiert:
1. ich scanne die 2000 Punkt mit eine Segment von z.B. 100 Punkten. Das Segment verschiebt sich pro Berechnung um einen Punkt (also 1:100 dann 2:101 etc.) Von diesem Signal berechne ich eine sehr genaue Chirp Z-Transformation und suche im Ergebniss das Maximum. Dies funktioniert sehr gut, ist jedoch unglaublich aufwendig = langsam.
2. Ich nutze das gleiche 'Segmentscanning' wie in 1. und versuche mit einem Fit dieses Segment einer Sinuskurve anzunähern (Parameter Frequenz und Phase). Dann lese ich daraus den Parameter Frequenz ab. Nachteil ist, das der Fit ebenfalls sehr langsam ist und durch die kurze Segmentgröße in einigen Bereichen nur schlechte Fitwerte ermittelt werden.
3. Durch das Forum habe ich eine selbstgeschriebene Matlabfunktion gefunden, welche Maxima und Minima feststellt (Peakdetect). Aus 2 Punkten (1x Max. 1xMin) lässt sich ein Sinus problemlos berechnen). Vorteil ist die Geschwindigkeit, Nachteil ist die Ungenauigkeit, die sich aus den ermittelten Werten ergeben.

Hat jemand schon mal ein ähnliches Problem bearbeitet und vielleicht einen guten und vor allem schnellen arbeitenden Ansatz gefunden?

Grüße,

Martin

PS. Pro Punkt-Abweichung bitte in Anführungszeichen sehen, dies ist eher als Abweichung von der Grundfrequenz in einen kleinen Bereich zu sehen.
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.