AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem bei FFT

Ein Thema von 3_of_8 · begonnen am 27. Jan 2007 · letzter Beitrag vom 25. Mai 2009
Antwort Antwort
Seite 5 von 6   « Erste     345 6   
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#41

Re: Problem bei FFT

  Alt 19. Mär 2008, 13:37
Naja, man kann das schon machen, aber je größer die Anzahl Samples bei gleichbleibender Samplingrate ist, desto ungenauer ist das Ergebnis. (Aber desto größer ist der Frequenzraum, den man abdecken kann)
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
SunBlack

Registriert seit: 18. Mär 2008
8 Beiträge
 
Turbo Delphi für Win32
 
#42

Re: Problem bei FFT

  Alt 19. Mär 2008, 13:43
Zitat von sirius:
je nach Abtastrate, gewünschter Genauigkeit
Wann ist die Genauigkeit höher? (FFTw braucht für ca. 13MB Mono-Wav ca. 5 Sekunden, wenn es also bei einem höherem Fenster genauer ist... )
//EDIT: 3_of_8 hat die Lösung dafür schon gesagt . Ich werde also das Zeitfenster mal verkleinern und die Ergebnisse der Zeitfenster dann untereinander mitteln .

Zitat von sirius:
dann bekommst du einen Zeitverlauf (Ein Punkt aller 20ms) für die 45Hz und einen für die 60Hz. Und dann kannst du schauen, wann welche Frequenz zu hören/sehen/.. ist.
Ich hatte gehofft, dass man irgendwo eine genauere Zahl herauszubekommen, denn ich ich habe ein Signal, bei dem immer nach einer Pause eine Freuqenz mit geringer Amplitude gefolgt von mehrerer Kurven einer anderen Frequenz mit einer höheren Amplitude. Ich brauch von der Frequenz einfach nur die Eingangsphase, also ob es zuerst nach unten geht oder nicht. Wenn ich aber immer Zeitfenster nehmen muss, werde ich es wohl irgendwie berechnen müssen, da ich es ja nicht relativ zum Ausgang brauche .
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#43

Re: Problem bei FFT

  Alt 19. Mär 2008, 13:47
Je größer die Anzahl der übergebenen Samples, desto genauer wird das Ergebnis. Je größer die Samplerate, desto ungenauer, aber desto breitbändiger wird das Ergebnis.

Das sind die zwei Möglichkeiten, die du hast.

(in meinem vorherigen Beitrag hab ich Unsinn gesagt, es ist genau umgekehrt)

Übrigens geht eine FFT bei 13 MB gar nicht. Das ist dann eine DFT, zumindest teilweise. Eine FFT kann nur angewendet werden, wenn die Sampleanzahl eine Zweierpotenz ist. Dann dauert das auch deutlich weniger als 5 Sekunden.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#44

Re: Problem bei FFT

  Alt 19. Mär 2008, 13:57
[offtopic]
Zitat von sirius:
[...] Ich bin zwar der Meinung, dass man durch Abschreiben (und gleichzeitiges darüber Nachdenken) auch ein Menge lernen kann. Aber bei so komplexen Sachen...
Hut ab, vor dem, der es schafft.
Mal ganz abgesehen davon, das der TS 17 Jahre alt ist Ich bin 19 und hielt mich in Mathe immer für ziemlich gut - aber mit der FFT kann ich schonmal garnix anfangen
[/offtopic]
Frank Dumont
  Mit Zitat antworten Zitat
SunBlack

Registriert seit: 18. Mär 2008
8 Beiträge
 
Turbo Delphi für Win32
 
#45

Re: Problem bei FFT

  Alt 19. Mär 2008, 14:07
Zitat von 3_of_8:
Übrigens geht eine FFT bei 13 MB gar nicht. Das ist dann eine DFT, zumindest teilweise. Eine FFT kann nur angewendet werden, wenn die Sampleanzahl eine Zweierpotenz ist. Dann dauert das auch deutlich weniger als 5 Sekunden.
Jaja, bei der FFTw kann man nur DFT machen (zu mindestens habe ich das FFT noch nicht gefunden), von daher sage ich immer FFT, wobei ich eigentlich immer an FT denke, also nicht an FFT. Da ich aber meistens nach FFT suche, rutscht mir das zweite F immer raus .

Btw: Es gibt bei FFTw vorwärts und rückwärts, gibt es da einen Unterschied? (bei gleichen Eingangswerten kommt immer das gleiche raus).
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#46

Re: Problem bei FFT

  Alt 19. Mär 2008, 14:14
Was ist eine FFTw? O_o

Also, ich sags nochmal so: Eine FFT ist ein Spezialfall einer DFT, die auf dem Divide and Conquer-Verfahren beruht (das kennen wir aus der Schönhagen-Strasse-Matrixmultiplikation oder dem Quicksort-Algorithmus). Divide-and-Conquer-Algorithmen funktionieren nur mit Zweierpotenzen. Ich hab das ganze in dem Fall so geschrieben, dass die FFT solange wie möglich angewandt wird (also so oft wie möglich durch zwei geteilt wird) und dann DFTs ausgeführt werden. Bei Zahlen, die mit 2 teilerfremd sind, muss also immer eine DFT angewandt werden. Das ist der worst-case. Bei Zweierpotenzen kann komplett eine FFT angewandt werden, wodurch man eine Laufzeit von, ich glaube log n oder n log n oder sowas in der Art hat. Also wenn irgendwie möglich, sollte man diese Funktion immer mit Zweierpotenzen aufrufen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
SunBlack

Registriert seit: 18. Mär 2008
8 Beiträge
 
Turbo Delphi für Win32
 
#47

Re: Problem bei FFT

  Alt 19. Mär 2008, 14:26
Zitat von 3_of_8:
Was ist eine FFTw? O_o
FFTw = "Fastest Fourier Transform in the West". Vlt. kommt daher meine Gewohnheit mit den 2 F's .
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#48

Re: Problem bei FFT

  Alt 19. Mär 2008, 15:20
Zitat von 3_of_8:
Bei Zahlen, die mit 2 teilerfremd sind, muss also immer eine DFT angewandt werden. Das ist der worst-case.
Es gibt für andere Potenzen noch andere Algorithmen als die FFT, welche auch schneller sind als die DFT. Aber das ist hier egal.

Zitat von SunBlack:
Wann ist die Genauigkeit höher?
Nie
(Wie ich schon weiter oben schrieb) Eine DFT ist der Einstieg in die Signalanalyse. Das ist dasselbe, wie, dass du Lesen lernen musst um Goethe interpretieren zu können. Die Fouriertransformation ist kein Allheilmittel. Du musst dir überlegen, was du willst, und dann deine DFT danach ausrichten und danach geht es erst richtig los. Weitere Berechnungen müssen folgen. Das hast du ja schon selber erkannt:
Zitat von SunBlack:
Wenn ich aber immer Zeitfenster nehmen muss, werde ich es wohl irgendwie berechnen müssen, da ich es ja nicht relativ zum Ausgang brauche
Und genau so eine Analyse muss der DFT folgen. Die DFT kann einfach nicht mehr.

Eine DFT liefert nur eine exakte Analyse, wenn du ein Signal hast, dass entsprechend seiner Abtastwerte auch nur bestimmte Frequenzanteile beinhaltet und dann auch so, dass immer vollständige Perioden jedes Frequenzanteils im betrachteten Zeitfenster enthalten sind.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#49

Re: Problem bei FFT

  Alt 19. Mär 2008, 15:38
Zitat von 3_of_8:
Was ist eine FFTw? O_o

Also, ich sags nochmal so: Eine FFT ist ein Spezialfall einer DFT, die auf dem Divide and Conquer-Verfahren beruht (das kennen wir aus der Schönhagen-Strasse-Matrixmultiplikation oder dem Quicksort-Algorithmus). Divide-and-Conquer-Algorithmen funktionieren nur mit Zweierpotenzen.
Wie kommst Du darauf? Divide-and-Conquer geht natürlich auch mit 3, 5 usw. ZB bei den Multiplikationsalgorithmen: 2 -> Karatsuba, 3 usw -> Toom-Cook

Zitat von 3_of_8:
Bei Zahlen, die mit 2 teilerfremd sind, muss also immer eine DFT angewandt werden.
Auch das ist nicht richtig, bzw nicht mehr richtig. Die ersten FFTs arbeiteten mit 2er-Potenzen. Inwischen gibt's FFTs auch für andere Samplegrößen. Hier eine Delphi-Implementation: http://www.simdesign.nl/fft.html
Zitat:
This library provides a free Delphi implementation (source included) for a complex Fast Fourier Transform (FFT) on an arbitrary length data series.
Gruß Gammatester
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#50

Re: Problem bei FFT

  Alt 19. Mär 2008, 15:46
Okay, dann streich das "alle" und ersetze es durch "meine".
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz