LabVIEWForum.de - Auswertung eines FFT-Spektrums (Peak-Detektion)

LabVIEWForum.de

Normale Version: Auswertung eines FFT-Spektrums (Peak-Detektion)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo LabVIEWer!

Ich bastel gerade an einem Programm, in dem ein Zeit-Spektrum durch eine Fouriertransformation ausgewertet werden soll. Die FFT funktioniert auch so halbwegs, allerdings muss das Spektrum nun auch ausgewertet werden. Bei einer vom Anwender erwartet Frequenz ("Center Frequency") soll nun ein Peakauswertung gemacht werden. Genau genommen soll die Fläche in einem definierten Intervall um die "Center Frequency" bestimmt werden. Man könnte auch die Peakhöhe nehmen, allerdings kann es zu leichten Verschiebungen des Peaks kommen. Somit ist die Fläche in dem Intervall (hier erwartet man eine Verschiebung) hilfreicher.

Mein Problem bei der Sache ist nun folgendes:
Ich habe mein Frequenzspektrum und muss dieses nach der "Center Frequency" bzw. dem betrachteten Intervall durchsuchen um an die Y-Werte heranzukommen. Genau bedeutet das ja, dass den 1-dim Array der Magnitude Werte durchsuchen muss. Da ja der Abstand der Datenpunkte df bekannt ist, muss ich also nach dem Index in dem Array suchen, wo i mal df gleich der Center Frequency ist. Am besten wäre natürlich gleich den Array in der Form auszuschneiden, dass ich nur mein betrachtes Intervall habe. Allerdings sind bei dieser Umsetzung mir die Ideen ausgegangen.

Hat vielleicht jemand da eine Hilfestellung parat? Würde mich auf jedenfall über Anregungen freuen.

Schöne Grüße
der Endanwender
Hallo!

Also ich habe auch eine FFT gemacht und anschließend ein bestimmtes Intervall ausgeschnitten und zwar so:
- mit Array Subset kannst du ja auf einen bestimmten Bereich von deinem Array zugreifen
- jetz musst du nur noch index und length festlegen und das hast du ja selber schon gesagt wie's geht
- anschließend integrierst du über dieses Intervall und dann hast du deine Fläche....


MFG Newcomer
' schrieb:Hallo!

Also ich habe auch eine FFT gemacht und anschließend ein bestimmtes Intervall ausgeschnitten und zwar so:
- mit Array Subset kannst du ja auf einen bestimmten Bereich von deinem Array zugreifen
- jetz musst du nur noch index und length festlegen und das hast du ja selber schon gesagt wie's geht
- anschließend integrierst du über dieses Intervall und dann hast du deine Fläche....
MFG Newcomer

Hallo Newcomer!

Danke für Deine schnelle Hilfe. Habe das nun umgesetzt und werde das ganze nachher gleich mal antesten. Bei Problemen oder weiteren Fragen melde ich mich wieder.

Schöne Grüße
der Endanwender
' schrieb:Genau genommen soll die Fläche in einem definierten Intervall um die "Center Frequency" bestimmt werden. Man könnte auch die Peakhöhe nehmen, allerdings kann es zu leichten Verschiebungen des Peaks kommen. Somit ist die Fläche in dem Intervall (hier erwartet man eine Verschiebung) hilfreicher.
Weiß nicht genau, wie Du dir das mit der Fläche gedacht hast, will Dich nur noch auf eine andere Möglichkeit hinweisen: Mittels Spline-Interpolation in der Umgebung des Maximums die Zahl der Datenpunkte vervielfachen und davon dann Lage und Höhe des Maximums bestimmen.
[attachment=2693][attachment=2694]
' schrieb:Weiß nicht genau, wie Du dir das mit der Fläche gedacht hast, will Dich nur noch auf eine andere Möglichkeit hinweisen: Mittels Spline-Interpolation in der Umgebung des Maximums die Zahl der Datenpunkte vervielfachen und davon dann Lage und Höhe des Maximums bestimmen.
[attachment=28633:attachment][attachment=28634:attachment]

Hallo Lucki!

Irgendwie glaube ich aber, gibt es diese Funktion wohl nicht bei LabVIEW 6.1, oder hab ich da irgendwo was übersehen?

Falls nicht trotzdem danke für Deine Hilfestellung.

Schöne Grüße
der Endanwender
' schrieb:..gibt es diese Funktion wohl nicht bei LabVIEW 6.1, oder hab ich da irgendwo was übersehen?
Jein, die gibt es zwar, aber was es gibt, ist weit davon entfernt so Anwender-komfortabel zu sein wie die entsprechende Funktion in LV8. Zu finden unter: Analyse/Mathematik/CuveFitting.
Wenn Du ernstlich beabsichtigst das anzuwenden und wenn Du mit den dortigen Funktionen nicht klar kommst, mache ich Dir das Beispiel noch mal für LV61.
Referenz-URLs