LabVIEWForum.de
Mittelwert aus einzel-FFT's - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Mittelwert aus einzel-FFT's (/Thread-Mittelwert-aus-einzel-FFT-s)



Mittelwert aus einzel-FFT's - TobiasMo - 08.12.2011 16:35

Hallo,

folgende Problemstellung:

Ich berechne aus einer Datei mit 210.000 Messwerten und 3 Kanälen für jeden Kanal einzeln ein Spektrum. Ich möchte für diese Datei über jeweils 4.000 Messwerte eine FFT laufen lassen, und diese dann um die hälfte weiter schieben, sodass ich dann rund 105 Einzelspektren habe. Aus diesen 105 Einzelsektren möchte ich den Mittelwert bilden - Ergebnis ist dann ein Spektrum.

Ich schaffe es schon erfolgreich die Datei so "abzuscannen", dass ich die 105 Spektren nacheinander angezeigt bekomme. Mein Problem ist: Wie speichere ich diese einzelnen Spektren zwischen (liegen ja in Form eines Arrays vor) und wie bilde ich den Mittelwert daraus?

Mein Ansatz wäre:
Pro Kanal aus der existierenden For-Schleife rausgehen um sozusagen ein sehr großes Gesamtarray zu bekommen. Aus diesem kann ich dann den Mittelwert bilden. Denke ich da richtig, und: Kann wie kann ich dann den Mittelwert über diese vielen Spektren bilden?

Beste Grüße,

Tobias


RE: Mittelwert aus einzel-FFT's - Lucki - 08.12.2011 18:59

Die Sache einfacher als Du denkst:
für das Fouriersprektrum nimm die VIs aus der Palette
Signalverarbeitung/ Signalverlaufsmessung
Dort ist genau die Mittelwertbildung wie Du sie geplant hast in den VIs selbst schon mit eingebaut. Außerdem können diese Funktionern ganze Arrays von Signalverläufen behandeln, so daß Du die Daten nicht mehr aufsplitten mußt. Sie sind auch sonst viel komfortabler als dein AutoPowerSpectrumVI, z.B Ausgabe in dB usw. Das Einzige was gemacht werden muß: Die Daten in Signalverläufe konvertieren - aber das sollte kein Problem sein.
Ich würde Dir empfehlen, statt 4000 besser 4096 Samples zu verwenden. Sonst ist es kein FFT und es kann wesentlich länger dauern.
Probier mal den Vorschlag und wenn es Probleme gibt melde Dich wieder.


RE: Mittelwert aus einzel-FFT's - dimitri84 - 08.12.2011 23:36

(08.12.2011 18:59 )Lucki schrieb:  Ich würde Dir empfehlen, statt 4000 besser 4096 Samples zu verwenden. Sonst ist es kein FFT und es kann wesentlich länger dauern.
Ich bin grundsätzlich davon ausgegangen, dass eine FFT Funktion bei einer Signalblocklänge ungleich 2^n entweder meckert und kein Ergebnis liefert oder Zero-Padding betreibt. Aber jetzt wo du's sagst bin ich doch stutzig geworden ... Wird dann tatsächlich stillschweigend einfach eine FT gemacht anstatt einer FFT?

Gruß dimitri


RE: Mittelwert aus einzel-FFT's - TobiasMo - 09.12.2011 15:10

Vielen Dank! Das geht ja einfach :-).

Als nächstes möchte ich jetzt aus vielen Dateien ein Kennfeld erzeugen, also die einzelnen Spektren hintereinander in einem 3D-Diagramm darstellen lassen. x-Achse = Frequenz, z-Achse = Amplitude und y-Achse = Messnummer (Datei). Habe mir dafür eine For-Schleife um meine Spektrumanalyse gelegt und möchte nun idealerweise nach der For-Schleife ein Array haben, was ich als 3D darstellen kann. Geht das? Ich habe nur leider noch nicht die Möglichkeit eines 3D-Diagramms in Labview gefunden. Gibt es das überhaupt?

Des Weiteren nochmal eine Frage zu der PSD in Labview: Kann ich die FFT-Größe selbst bestimmen? Habe dafür an dem Block keinen Eingang gefunden.

Ein schönes Wochenende.

Beste Grüße,

Tobias