LabVIEWForum.de
FFT aus Waveform array - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: FFT aus Waveform array (/Thread-FFT-aus-Waveform-array)

Seiten: 1 2


FFT aus Waveform array - Vaati - 03.11.2015 16:41

Hallo Labview Forum,

nachdem mir einige Beiträge bei euch schon geholfen haben, habe ich nun selbst mal eine Frage.
Folgendes:

Ich habe einen waveform array vorliegen. Mit diesem würde ich gern eine FFT machen.
Leider fehlt mir dazu der Ansatz, wie ich das machen kann?

Hoffe es kann mir jemand helfen!

Grüße


RE: FFT aus Waveform array - Lucki - 03.11.2015 16:50

Mit einer Waveform ist es besonders einfach. Unter Signalverarbeitung / Messungen gibt es dafür 2 passende VIs. (Mit Ausgang Betrag/Phase oder Re/Img)


RE: FFT aus Waveform array - Vaati - 03.11.2015 16:59

Hi Lucki,

danke für die Antwort.
Meinst du das VI "Spektrum ermitteln"? Genau das dachte ich mir nämlich auch und habe es ausgewählt und als "Leistungsspektrum" eingestellt.
Wenn ich allerdings an den Ausgang einen Graphen anschließe, dann bekomme ich

- eine Zeitachse als x-Achse und keine Frequenzachse

Was kann ich dagegen tun?

Grüße


RE: FFT aus Waveform array - GerdW - 03.11.2015 17:17

Einfach das Wort "Zeit" durch das Wort "Frequenz" ersetzen. Erfordert nur einen Rechtsklick auf den Graph (oder eine PropertyNode)…


RE: FFT aus Waveform array - Vaati - 03.11.2015 17:24

Hallo Gerd,

das erscheint mir jetzt doch ein wenig spanisch.
Wenn ich einfach nur das Wort "Zeit" durch "Frequenz" ersetze habe ich doch nicht automatische eine skalierte Frequenzachse?
Oder rechnet LabView dann automatisch im Hintergrund mit Zeit = 1/Frequenz?

Weil so wirklich funktionieren, tut das leider nicht...

€: Auch wenn ich es Logarithmisch einstelle, bekomme ich nicht nur einen Peak sondern kompletten nonsense (ich rege mit einem Sinussignal an, daher die Forderung "ein peak")


RE: FFT aus Waveform array - GerdW - 03.11.2015 17:27

Hallo Vaati,

Zitat:das erscheint mir jetzt doch ein wenig spanisch.
Wieso fragst du, wenn du der Antwort nicht Glauben schenkst?

Zitat:Wenn ich einfach nur das Wort "Zeit" durch "Frequenz" ersetze habe ich doch nicht automatische eine skalierte Frequenzachse?
Doch, bekommst du.

Zitat:Oder rechnet LabView dann automatisch im Hintergrund mit Zeit = 1/Frequenz?
Ja. Und noch viel besser: bei den Spektrum-Funktionen kommt als Ergebnis doch glatt ein Spektrum heraus!
Steht übrigens alles in der Hilfe zur Funktion, musst du nur lesen!

Zitat:Weil so wirklich funktionieren, tut das leider nicht...
Dann hast du wohl etwas nicht richtig gemacht. Mangels VI können wir das aber nicht beurteilen…


RE: FFT aus Waveform array - Vaati - 03.11.2015 17:34

Ok,

danke Dir.
Da das VI wohl sicher funktionieren wird, liegt vllt. der Fehler an dem von mir erzeugten Waveform array, dann setze ich mich lieber daran und schaue, ob da alles mit rechten Dingen zugeht ;-).
Und falls ich da nichts finde lade ich mal mein VI hoch :-)

Grüße


RE: FFT aus Waveform array - Lucki - 03.11.2015 19:55

Den einzelnen Peak bei einem reinen Sinus bekommt man nur dann, wenn die Waveform eine genau ganzzahlige Anzahl von Perioden enthält. (man muß sich die Waveform von - bis + unendlich fortgesetzt denken, und nur bei einer ganzahligen Anzahl hat man keine Phasensprünge zwischen den Abschnitten). Dann darf man aber außerdem nicht fenstern, d.h. als Fenster muss "Rechteck" gewählt sein.
Wenn es von der Datenerfassung her nicht möglich ist, eine genau ganzzahlige Anzahl zu erfassen, dann sollten es wenigstens möglichst viele Perioden sein, und außerdem ist es dann sinnvoll zu fenstern. Damit werden die Phasensprünge an den Enden abgemildert und die Energie der unerwünschten Spektrallinien ist geringer.


RE: FFT aus Waveform array - Vaati - 04.12.2015 11:53

So, damit ich keinen neuen Thread aufmachen muss ;-).

Ich habe das alles hinbekommen und das VI "Spektrum ermitteln" funktioniert, spuckt mir also ein Cluster aus, den ich mir plotten lassen kann.

Jetzt habe ich mal ein bisschen weiter gedacht. In dem Cluster sind drei Einträge.
- f0 (double)
- df (double)
- 1D array

In dem 1D array werden die Amplituden Werte gespeichert, soweit sogut.
Aber woher weiß das Cluster, welcher Amplituden Wert zu welcher Frequenz gehört, um das ganze dann plotten zu können?
Gehört der erste Wert zu f0 und die weiteren dann in df schritten?


RE: FFT aus Waveform array - GerdW - 04.12.2015 11:55

Ja.

Nach dem gleichen Schema funktionieren Waveforms (t0, dt, Y)…