LabVIEWForum.de
FFT-Averaging über gesamtes eingelesenes Signal - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: FFT-Averaging über gesamtes eingelesenes Signal (/Thread-FFT-Averaging-ueber-gesamtes-eingelesenes-Signal)



FFT-Averaging über gesamtes eingelesenes Signal - herrhannes - 16.06.2012 09:55

Moin Leute,

ich habe folgendes Problem: Und zwar lese ich ein Signal per While-Schleife aus einer Datei in Häppchen einer festen Größe ein, filtere diese, bilde einen Mittelwert und jage sie in einen Collector.
Dieser sammelt 128 Stellen, die an eine FFT verfüttert werden.
Mein Ziel ist es, eine 128-FFT über das ganze Signal zu erreichen, bzw. hier zumindest per averaging über das gesamte Signal.

Dazu habe ich folgende Fragen:

1) Wieso zeigt mir die gemittelte FFT am Ende keinen Ausgang beim ersten Start, sondern erst, wenn ich die VI erneut ausführe?
2) Wie bekomme ich die FFT dazu, über die gesamte Länge des Signals zu mitteln, die zwar endlich aber der VI zuerst unbekannt ist, da eben von den Eingangsdaten abhängen?
3) Gibt es auch die Möglichkeit, eine _ungefensterte_ 128-FFT über die gesamte Länge des Eingangssignals hinzubekommen?

Im Anhang habe ich meine VI, sieht noch etwas wild aus. Meiner Meinung nach wichtige Stellen habe ich kommentiert.

Bahn
Gruß
herrhannes


RE: FFT-Averaging über gesamtes eingelesenes Signal - Schwand - 18.06.2012 08:21

(16.06.2012 09:55 )herrhannes schrieb:  2) Wie bekomme ich die FFT dazu, über die gesamte Länge des Signals zu mitteln, die zwar endlich aber der VI zuerst unbekannt ist, da eben von den Eingangsdaten abhängen?

Du könntest alle Werte einlesen und die Mittelung nach der Schleife machen, also wenn alle Werte eingelesen sind.


RE: FFT-Averaging über gesamtes eingelesenes Signal - herrhannes - 18.06.2012 08:54

Wie meinst du das mit alle Werte einlesen?

Anstatt immer 128 Werte per Kollektor anzusammeln und dann auf einen Schlag an die FFT zu verfüttern ( Was ja einem Array der Länge 128 entspricht?)
einfach die Werte von Hand an ein Array übergeben und das dann nach der Schleife an die FFT verfüttern?
Aber wie bekomme ich es dann hin, genau 128 Stützstellen für die FFT zu verwenden?
Das ist meine Vorgabe und ich dachte sie zu erreichen, indem ich immer genau 128 Punkte auf einmal an die FFT verfüttere.


RE: FFT-Averaging über gesamtes eingelesenes Signal - herrhannes - 18.06.2012 13:47

Hö, kann ich schon länger geschriebene Beiträge nicht mehr editieren?

Also ich habe jetz eine Zwischenlösung: Ich schreibe einfach alle gemittelten Werte in ein Array und werfe sie nach Ablauf der Schleife in die DFT.

Sieht das so sinnvoll aus?


RE: FFT-Averaging über gesamtes eingelesenes Signal - Y-P - 18.06.2012 16:07

Das kann auch nur das LVF-Team. Anniemacht_2
Das ist also nicht nur bei Dir so.

Gruß Markus

(18.06.2012 13:47 )herrhannes schrieb:  Hö, kann ich schon länger geschriebene Beiträge nicht mehr editieren?



RE: FFT-Averaging über gesamtes eingelesenes Signal - Schwand - 19.06.2012 14:20

Also, ich kenn mich leider mit Filtern und FFTs nicht so aus, aber wenn ich das recht verstehe, willst du eine FFT mit 128 Stützstellen über ein gesamtes Signal unbekannter Länge machen?
Dann könntest du das Signal ja erst komplett einlesen, die Anzahl der Samples feststellen und diese durch 128 teilen. Dann nimmst du immer x/128 Samples auf, schickst sie durch den Filter, bildest den Mittelwert und sammelst diesen Wert dann in einem Array, welches nach 128 Durchläufen dann deine Stützstellen bildet. Die benutzt du dann mit deinem aufgenommenen Signal für die FFT.

Falls ich das Problem falsch verstehe, den Vorschlag ignorieren....


RE: FFT-Averaging über gesamtes eingelesenes Signal - herrhannes - 19.06.2012 20:32

Doch genau so war es gemeint. Das werde ich mal versuchen. Hat das denn einen Vorteil gegenüber der Herangehensweise, alles auf einmal zu verfüttern? Außer natürlich, dass ich bei der Gelegenheit gleichzeitig den Offset entfernen könnte, der mit der Zeit variiert...


RE: FFT-Averaging über gesamtes eingelesenes Signal - herrhannes - 20.06.2012 13:38

Mal eine ganz doofe Frage:

Wie stelle ich es an, dass die Zeitinformation aus dem eingelesenen File nicht verloren geht?
Im Moment habe ich das Problem, dass er auf der Zeitachse irgendwelche Fantasiezeiten anzeigt.
Der Signalverlauf an sich passt, aber eben die Zwischenräume zwischen den einzelnen Stellen vermutlich nicht.