INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Länge des FFT-Spektrums



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

10.10.2008, 15:21
Beitrag #1

wiszou Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Aug 2008

8.00
2008
de

67663
Deutschland
Länge des FFT-Spektrums
Hallo LabVIEW- Experten und -Users,

ich habe ein kleines Problem bei der Berechnung des FFT-Spektrum mit FFT Spectrum (Mag-Phase). Ich gebe einen array mit 12500 Elemente als Zeitsignal rein und ich bekomme an beiden Ausgänge "Magnitude" und "Phase" einen array mit 6250 Elemente. Das kann ich leider nicht nachvollziehen. Normalerweise haben die FFT- und Zeit-Signale die gleichen Längen. oder? Warum bekomme ich nur ein Spektrum nur halb so lang wie das Zeitsignal.

Ich danke ganz herzlich jeder/m, die/der mir helfen kann.

Mit freundlichen Grüßen.
Wiszou
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.10.2008, 17:06
Beitrag #2

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
Deutschland
Länge des FFT-Spektrums
Hi!

Der FFT-Algorithmus hat die Eigenschaft, dass sogenannte "Spiegelfrequenzen" erzeugt werden, also um -pi verschobene im Frequenzbereich. Aus einem N Sample langen Vektor bekommt man mit einem "simplen" FFT-Block also nur N/2 Werte - lässt sich vielleicht nicht ganz richtig aber anschaulich über das gute alte Abtastheorem verstehen.

Wie gut die FFT von NI implementiert wurde, weiß ich nicht - aber bei Matlab z.B. bekommt man auch den vollen Vektor geliefert. Das ist notwendig, damit man entsprechende Rücktransformationen nach Filterungen machen kann - nimmt man nur N/2 Werte, sinkt die Auflösung bei jedem Transformationsschritt...

Sowas müsste aber eigentlich auch nochmal in der Hilfe erklärt sein. Im Übrigen würde ich Dir empfehlen, wen möglich ein paar mehr Samples zu nutzen (die nächste Zweierpotenz), weil eine FFT nur mit entsprechenden Sampleanzahlen funktioniert und padding nicht unbedingt zur Genauigkeit eiträgt.

Grüße,

ch
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.10.2008, 19:12
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Länge des FFT-Spektrums
@crissyPU
Wenn wiszou etwas Anderes gefragt hätte, dann wäre Deine Antort richtig. Er hat sich aber nicht drüber gequndert, daß es zu viele Frequnezelemente sind - und davon gehst Du bei Deiner Antwort aus - sondern er wundert sich, daß es seiner Meinung nach zu wenige sind.
Deine Antwort wäre richtig, wenn a) wiszou die Funktion fft.vi benutzt hätte - hat er aber nicht . und er sich b) darüber gewundert hätte, daß es doppelt so viele Elemente sind als erwaret.
Aber ich freue mich auf jeden Fall, wenn hier nach jemand etwas von FFT versteht - die Experten sind hier eher dünn gesät.

Nun zur Antwort: Das hängt mit dem Nyquist-Theorem zusammen. Um eine Frequenz aus einem Zeitverlauf zu rekonstruieren, brauche ich mindetes zwei Punkte. Also einfachstes Beispiel: Aus einem Zeitverlauf der Dauer T, bestehend aus 4 Punkten, kann ich nur die Grundfrequenz f0=1/T und die erste Oberwelle f1=2/T rekonstruieren, aber nicht mehr. Insgesamt erhalte ich aber aus den 4 Samples nach der Fouriertransformation auch 4 Werte zurück: 2 Frequenzwerte und 2 Phasenwerte.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.10.2008, 20:33
Beitrag #4

wiszou Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Aug 2008

8.00
2008
de

67663
Deutschland
Länge des FFT-Spektrums
Hallo,

@ Lucki: Ich wäre mit deiner Antwort zufrieden, wenn ich genau die gleiche Länge des FFT-Signals hätte (6250) als ich die normale FFT Funktion benutzt habe. Die FFT-Funktion liefert mir aber einen array von 12500 Werte, also genau so lang wie die Zeitfunktion. Nur mit FFT Spektren Funktionen habe ich immer nur 6250 Werte. Komisch oder?

Viele Grüsse.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.10.2008, 05:18 (Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2008 07:33 von Lucki.)
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Länge des FFT-Spektrums
' schrieb:Hallo,

@ Lucki: Ich wäre mit deiner Antwort zufrieden, wenn ich genau die gleiche Länge des FFT-Signals hätte (6250) als ich die normale FFT Funktion benutzt habe. Die FFT-Funktion liefert mir aber einen array von 12500 Werte, also genau so lang wie die Zeitfunktion. Nur mit FFT Spektren Funktionen habe ich immer nur 6250 Werte. Komisch oder?

Viele Grüsse.
Daran ist nichts komisch.
(Mir sträubt sich das Gefieder, Deine Zahlen zu benutzen, denn FFT funktioniert immer nur mit 2^N Werten, also nicht mit 6250, worauf chrissipu schon hinwies. Aber um Dich nicht zusätzlich zu verwirren, verwende ich jetzt Deine Zahl)

Die "normale" FFT Funktion (FFT.vi) liefert auch nur 6250 Werte, nur sind die alle doppelt: einmal die Werte von 0..6250, und dann dieselben Werte nochmal von 6250..12500, gespiegelt um den Punkt 6250. (Es gibt auch eine "komplexe" FFT mit komplexen Samples, dort machen die gespiegelten Werte dann Sinn. Deine Zeitfolge ist aber reell)

Die gespiegelten Werte sollten vor der Weiterverarbeitun schlichtweg abgeschnitten werden. Oder aber man verwendet eine der mehr anwendungsgerechten Funktionen aus der Palette, die das FFT.vi als Sub-VI enthalten und wo diese Arbeit schon erledigt ist. Also z.B die von Dir benutzte Funktion "Amplituden und Phasenspektrum.vi"

Noch kleine Anmerkung zur FFT.vi:
Bei der FFT hat man eigentlich außer den positiven Frequenzen nochmals die gleich großen negativen, also um den Nullpunkt gespiegelten Frequenzen. Also in Deinem Falle wären das die Komponenten -6250...+6259. Da es aber in LV kein Arrays mit negativen Indizees gibt, mußte das notgedrungen alles in den Bereich positiver Zahlen abgebildet werden. Beispielsweise bei einem Frequenzarray von 0..255 müßten die Frequenzen nach dieser Vorschrift in die "richtigen" Frequenzen von -128..+127 transformiert werden:
   
(in anderen Fällen, wie z.B bei Deinen Zahlen wäre das allerdings nicht so zu machen).
Das ist aber alles nur von rein schöngeistigem Interesse. In der Praxis muß man nur das wissen: gespiegelte Häfte abschneiden, dann weiterarbeiten.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Event Taste lange gedrückt hansi9990 1 2.476 17.02.2019 12:55
Letzter Beitrag: hansi9990
  Lange Ladezeit eines Projektes - sucht den Example Finder SPS-Fuzzi 0 2.624 21.06.2016 09:17
Letzter Beitrag: SPS-Fuzzi
  String nach Array mit fester Länge jan_1 18 8.665 22.04.2016 12:49
Letzter Beitrag: Lucki
  extrem lange Windows Startdauer nach RTE + DAQ installation I3erry 1 2.937 11.11.2015 14:47
Letzter Beitrag: jg
  Aufruf externer Lib dauert sehr lange dimitri84 7 6.470 21.05.2013 08:18
Letzter Beitrag: dimitri84
  String in Tabelle mit beliebiger Länge easydive 2 3.521 29.11.2011 10:17
Letzter Beitrag: Lucki

Gehe zu: