Forum: Mikrocontroller und Digitale Elektronik FFT Library von Elm-Chan


von Holger K. (holgerkraehe)


Lesenswert?

Hallo zusammen

Ich suche eine möglichst einfach zu implementierende FFT für 
Mikrocontroller (welchen möchte ich noch offen lassen) in C.

Habe immer wieder diesen Link gefunden: 
http://elm-chan.org/docs/avrlib/avrfft.zip

Leider scheint dieser nicht mehr zum Ziel zu führen.
Hat eventuell noch jemand dieses ZIP-File?

Oder kennt jemand einen ähnlich guten FFT Algorithmus in C?


Danke

von Christian S. (roehrenvorheizer)


Angehängte Dateien:

Lesenswert?


: Bearbeitet durch User
von Holger K. (holgerkraehe)


Lesenswert?

VIelen Dank für die Files

Leider ist der FFT Code in Assembler.
Das wusste ich nicht.

Also geht die Suche nach einem passenden Code weiter :)

von Christian S. (roehrenvorheizer)


Lesenswert?

Dann hättest Du ab jetzt den Anlass, mit Deinem Mikrocontroller in einer 
Fremdsprache zu kommunizieren...

Oder Arduino

http://wiki.openmusiclabs.com/wiki/ArduinoFFT

: Bearbeitet durch User
von roehrenvorheizer (Gast)


Lesenswert?


von Georg G. (df2au)


Angehängte Dateien:

Lesenswert?

Wenn es denn C sein soll...
Du musst den Code noch etwas überarbeiten, aber er funktioniert.

von M. K. (sylaina)


Lesenswert?

Holger K. schrieb:
> VIelen Dank für die Files
>
> Leider ist der FFT Code in Assembler.
> Das wusste ich nicht.
>
> Also geht die Suche nach einem passenden Code weiter :)

Schau mal hier:

http://elm-chan.org/works/akilcd/report_e.html

Da ist die FFT, die du aus deinem Eingangspost gesucht hast. Die FFT 
selbst ist in Assembler, die Lib ist für Programmierung in C gemacht.

von Johannes S. (Gast)


Lesenswert?

Wenn es ein Cortex-M werden soll: in der CMSIS-Dsp Lib sind fft 
Funktionen drin.

von Holger K. (holgerkraehe)


Lesenswert?

Johannes S. schrieb:
> Wenn es ein Cortex-M werden soll: in der CMSIS-Dsp Lib sind fft
> Funktionen drin.

Hallo, ja soll es werden.


>
> Da ist die FFT, die du aus deinem Eingangspost gesucht hast. Die FFT
> selbst ist in Assembler, die Lib ist für Programmierung in C gemacht.

Danke, werde ich mir anschauen

Georg G. schrieb:
> Wenn es denn C sein soll...
> Du musst den Code noch etwas überarbeiten, aber er funktioniert.

Danke!

von Holger K. (holgerkraehe)


Lesenswert?

Ich habe nun diesen Code gefunden:

http://www.embeddedsignals.com/FFTCM3.s

Dieser gefällt mir sehr gut!
Leider habe ich Samples mit 24Bit Aflösung (als vorzeigenbehafteter 
Wert)

Die obige FFT benötigt 16bit Werte.

Sieht jemand eine einfache Lösung, diese auf 24 bzw. 32 Bit zu 
erweitern?
Genügt es, wenn ich das Array vergrössere?

Danke!

von M. K. (sylaina)


Lesenswert?

Ganz so einfach wird es nicht sein. Wenn es in Assembler geschrieben ist 
wird man wahrscheinlich an mehreren Stellen auf 16 bit stehen, und wenns 
nur temporäre Variablen sind, die auf 16 bit getrimmt sind. Frage: 
brauchst du unbedingt 24 bit? Meiner Erfahrung nach braucht man das 
eigentlich praktisch nie bei einer FFT. Oft ist selbst 16 bit oversize. 
Du könntest ja z.B. die 24 bit Werte um 6 bit nach links schieben (ein 
Left Align also) und nur die oberen 16 bit für die FFT benutzen.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

"Audiospektrum-Analyse mit Mikrocontrollern" Franzis 2013
ISBN 3645651381
Autor Felix Irmscher
"Ladenpreis aufgehoben"
der benutzt die Elm-Chan-FFT-Routinen

von Conny G. (conny_g)


Lesenswert?

Christoph K. schrieb:
> "Audiospektrum-Analyse mit Mikrocontrollern" Franzis 2013
> ISBN 3645651381
> Autor Felix Irmscher
> "Ladenpreis aufgehoben"
> der benutzt die Elm-Chan-FFT-Routinen

Ui, krass, so ein richtiges Buch!!

von Zzzzzz (Gast)


Lesenswert?

http://www.jjj.de/fft/fftpage.html

Das ist eine gute Sammlung für FFT mit Hineweisen zu den Links.

Das Buch vom Auto gibt es ebenfalls auf seiner Seite, da ist auch FFT 
Kram drin:

http://www.jjj.de/fxt/fxtpage.html#fxtbook

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
Noch kein Account? Hier anmelden.