Kennt jemand ein Verfahren ohne FFT, mit dem man die Frequenz mit der maximalen Amplitude in einem Spektrum finden kann? Gibt es einen Algorithmus, der mit wenig Rechenaufwand den Frequenzpeak findet und dann die Frequenz tracked?
Christoph M. schrieb: > Kennt jemand ein Verfahren ohne FFT, mit dem man die Frequenz mit der > maximalen Amplitude in einem Spektrum finden kann? DFT. Der Peak muss ja nicht im vorgegebenen Frequenzraster der FFT liegen.
Harald W. schrieb: > Christoph M. schrieb: > >> Kennt jemand ein Verfahren ohne FFT, mit dem man die Frequenz mit der >> maximalen Amplitude in einem Spektrum finden kann? > > DFT. Der Peak muss ja nicht im vorgegebenen Frequenzraster der FFT > liegen. Hä? Was hat die Antwort mit der Frage zu tun und warum spielt es hier eine Rolle, ob der Peak auf das Raster passt? Hast du denn irgendwelches Vorwissen über das Signal, also ist das nur ein Sinus, oder ...?
Harald W. schrieb: > Christoph M. schrieb: > >> Kennt jemand ein Verfahren ohne FFT, mit dem man die Frequenz mit der >> maximalen Amplitude in einem Spektrum finden kann? > > DFT. Der Peak muss ja nicht im vorgegebenen Frequenzraster der FFT > liegen. Was ist denn das für eine lächerliche Antwort? DFT -> Diskrete Fourier Transormation FFT -> Fast Fourier Transformation. https://de.wikipedia.org/wiki/Schnelle_Fourier-Transformation https://de.wikipedia.org/wiki/Diskrete_Fourier-Transformation Lesen & lernen.
Sven B. schrieb: / >> DFT. Der Peak muss ja nicht im vorgegebenen Frequenzraster der FFT >> liegen. > > Hä? Was hat die Antwort mit der Frage zu tun und warum spielt es hier > eine Rolle, ob der Peak auf das Raster passt? Nun, wenn du mit einer FFT z.B. 8 und 16 MHz abtastest, der Peak aber bei 13 MHz liegt, passt das irgendwie nicht.
Harald W. schrieb: > Sven B. schrieb: > / >>> DFT. Der Peak muss ja nicht im vorgegebenen Frequenzraster der FFT >>> liegen. >> >> Hä? Was hat die Antwort mit der Frage zu tun und warum spielt es hier >> eine Rolle, ob der Peak auf das Raster passt? > > Nun, wenn du mit einer FFT z.B. 8 und 16 MHz abtastest, der Peak > aber bei 13 MHz liegt, passt das irgendwie nicht. Dann fittest du eine Parabel an den Peak, oder wenn du pedantisch sein willst die FFT deiner Fensterfunktion, und fertig. Wo die Bins der FFT liegen spielt eigentlich sehr selten eine Rolle.
:
Bearbeitet durch User
Harald W. schrieb: > DFT. Der Peak muss ja nicht im vorgegebenen Frequenzraster der FFT > liegen. Ich musste da erstmal nachlesen. Meinst Du das ernst? "Die Verarbeitungszeit für einen Algorithmus hängt wesentlich von der Anzahl Multiplikationen ab, die ein Rechner ausführen muss. Der Aufwand zur Berechnung der N Spektralwerte beträgt mit der DFT ca. N2 komplexe Multiplikationen. Cooley und Tukey haben 1965 die Fast Fourier Transformation entwickelt. Mit dem FFT Algorithmus lassen sich die N DFT-Werte mit einem Aufwand von ca. N·log2(N) komplexen Multiplikationen berechnen, was einer enormen Reduktion des Aufwands entspricht. Für eine Blocklänge von N=1024 zum Beispiel müssten mit der DFT ca. 1 Million Multiplikationen berechnet werden, während mit der FFT nur ca. 10’000 Multiplikationen anfallen. Es gibt allerdings Anwendungen (z.B. Detektion DTMF-Wählton), in denen nur wenige Spektralwerte interessieren. In diesen Anwendungen kann es durchaus vorteilhaft sein, mit der DFT die wenigen Spektralwerte direkt und nicht mit der FFT alle möglichen DFT-Werte zu berechnen. Mit dem Görtzel-Algorithmus [2] ist es z.B. möglich, einzelne DFT-Werte X[m0] mit IIR-Filtern 1. bzw. 2. Ordnung rekursiv zu berechnen. Die Grundidee bei der FFT besteht darin, eine N-Punkt DFT in zwei N/2-Punkt DFTs aufzuteilen, eine über die geraden und eine über die ungeraden Abtastwerte." So wie ich das verstehe macht DFT nur Sinn, wenn das gesuchte Frequenz -Band bzw. die gesuchten Frequenzen bekannt sind - oder? (O.K., ich bin Laie)
Sven B. >Hast du denn irgendwelches Vorwissen über das Signal, also ist das nur >ein Sinus, oder ...? Es geht mir erst mal ganz allgemein um einen Algorithmus. Irgendwo hier im Forum hat mal einer Frequenzdetekion im Spektrum mit Nulldruchgängen gemacht. Es könnte sein, dass man über ein Histogramm der Nulldurchgangsabstände etwas über die häufigste Frequenz aussagen kann. Eine andere Idee wäre vielleicht, eine Peak mit einer FLL zu tracken.
Christoph M. schrieb: > Frequenzdetekion im Spektrum mit Nulldruchgängen gemacht. Das sieht mir so aus, also ob du in einem Zeitsignal eine Frequenz erkennen möchtest. Dazu ist u.a. das Goertzelfilter geeignet.
Joe G. schrieb: > Christoph M. schrieb: >> Frequenzdetekion im Spektrum mit Nulldruchgängen gemacht. > > Das sieht mir so aus, also ob du in einem Zeitsignal eine Frequenz > erkennen möchtest. Dazu ist u.a. das Goertzelfilter geeignet. Wenn man weiß welche ja. So wie ich das verstanden habe wird hier jedoch die "stärkste" Frequenz im Spektrum gesucht.
Wenn sich die Frequenz, die maximal ist, nur langsam ändert, reicht ein Görzel mit einengenden Bändern, um diese zu finden und zu verfolgen. Habe ich schon gemacht.
Rechenfreak (Gast) >Wenn sich die Frequenz, die maximal ist, nur langsam ändert, reicht ein >Görzel mit einengenden Bändern, um diese zu finden und zu verfolgen. >Habe ich schon gemacht. Das ist eine interessante Idee. Den Görtzelfilter als Bandpass nutzen und dann einfach im Ergebnis die Nulldurchgänge messen. Für sehr kleine Frequenzänderungen vermutlich geeignet. Mal sehen, ob es noch andere Verfahren für größere Frequenzbereiche gibt.
Christoph M. schrieb: > Gibt es einen Algorithmus, der mit wenig Rechenaufwand den Frequenzpeak > findet und dann die Frequenz tracked? Ja, der Goertzel wurde ja schon erwähnt, wenn du mal auf die Frequenz "gelockt" hast, kannst du die Verstimmung per Phase nachtracken, vorausgesetzt andere Signalkomponenten sauen nicht mit Artefakten rein. Für so adaptive Sachen sind auch sliding DFT-Ansätze interessant, die kannst du soweit mit Bandpässen kombinieren, dass dir eben nicht mehr viel reinsaut, wenn du mal weisst, wonach du suchst. Die Sliding-DFT kostet nicht immens Rechenzeit, also hier von "DFT" nicht abschrecken lassen :-)
Wie wäre eine Autokorrelation? Also im Frequenzbereich wird ja damit quasi jede Frequenz vom Betrag quadriert. In zweiter Ordnung wäre das jede Frequenz vom Betrag hoch 4. Also ein Unterschied vom Faktor 2 wird zu 16. Der Fehler bei simpler Nulldurchgangs-Periodenmessung wird damit schon deutlich eingegrenzt. Die Autokorrelation muss natürlich über mindestens so viele Samples wie die Periode der niedrigsten Frequenz im Signal um die es geht laufen. Und Autokorrelation ist ab einer gewissen Samplezahl so ca. ab 64 wohl effektiver mit FFT realisiert. Ohne genau zu wissen was eigentlich erreicht werden soll, ist es wohl schwer etwas "besseres" als eine fft zu finden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.