Forum: Mikrocontroller und Digitale Elektronik FFT auf dem Mikrocontroller in C


von Thomas (Gast)


Lesenswert?

Hallo,
ich versuche seit ein paar Tagen auf meinem yC das FFT einzubinden, 
komme leider auf keinen grünen Zweig.

Ich habe hier Beitrag "[C] AVR-Lichtorgel per FFT MEGA8 32 644" gesehen, dass 
es mit C möglich ist, verstehe allerdings den Quelltext noch nicht ganz.

Ich habe an einer anderen Stelle mal gelesen, dass es mit C kaum möglich 
sei, verwendet er inline Assembler?  (ich kenne mich mit Asm nicht aus)
Habe auf jeden Fall Asm Teile gefunden im Quelltext.

Ich habe leider 8 Kanäle, nicht wie im Beispiel oben 6. Meine LED Matrix 
(8 Breit, 10 Hoch) funktioniert schon wie sie es soll.

Das Prinzip wie FFT funktioniert habe ich verstanden, leider hilft mir 
das beim Programmieren nicht viel weiter.
Kennt jemand eine gute Seite (am besten ein Tutorial) auf der FFT im 
zusammenhang mit C beschrieben wird?

von Dussel (Gast)


Lesenswert?

Thomas schrieb:
> Ich habe an einer anderen Stelle mal gelesen, dass es mit C kaum möglich
> sei,
Das kommt auf den Controller an. Ein mit ATTiny wird das sicher nicht 
schaffen, während ein 750MHz Blackfin damit keine Probleme haben sollte.

Thomas schrieb:
> Kennt jemand eine gute Seite (am besten ein Tutorial) auf der FFT im
> zusammenhang mit C beschrieben wird?
Das brauchst du doch nicht, wenn du das Prinzip verstanden hast. 
Anscheinend hast du Probleme mit der Umsetzung von mathematischen 
Vorschriften in C. Da hilft eher ein C-Buch oder Tutorial. Das würde ich 
auch zuerst mal am PC ohne Ressourcenbeschränkung probieren und dann für 
einen Mikrocontroller umsetzen, wenn es funktioniert.

von Karl H. (kbuchegg)


Lesenswert?

Mein Tip wäre, erst mal auf dem PC eine 'nicht trickreich programmierte' 
FFT auseinander zu nehmen und im Detail zu verstehen. Mit diesem Wissen 
kannst du dann wieder zurück zum Elm Chan Code. Und plötzlich wirst du 
viele Dinge wiedererkennen. Und du wirst wissen, was in den Bereichen, 
die du codemässig noch nicht verstehst, eigentlich (im Prinzip) 
passieren müsste und kannst dich daran machen, rauszufinden mit welchen 
fiesen Tricks Elm gearbeitet hat.

> Kennt jemand eine gute Seite (am besten ein Tutorial) auf der FFT
> im zusammenhang mit C beschrieben wird?

Für schwarze Magie gibt es keine Tutorials.
Da gibt es nur eines: üben, üben, üben und möglichst viel Code von 
anderen Wizards studieren. Und zwar solange, bis man mit allen Bits 'per 
Du' ist.

von Zorc (Gast)


Lesenswert?

Eine FFT fuer eine Lichtorgel? Ist das ein Witz? Dazu muss man nur das 
Signal mit den 8 Frequenzen multiplizieren und ueber die Periode, die 
der Bandbreite entspricht integrieren.

von Frank K. (fchk)


Lesenswert?

"Numerical Recipies in C" ist ein Standardwerk für numerische Verfahren.

Schau hier

http://apps.nrbook.com/c/index.html

und gehe auf Seite 496 (Kapitel 12)

... oder kaufe Dir das Buch.

Da sind die mathematischen Grundlagen ausführlichst beschrieben, plus 
passendem Beispielcode, der allerdings nicht besonders optimiert ist. 
Die Optimierung auf die jeweilige Plattform wird dem Leser als 
Hausaufgabe überlassen.

fchk

von billydeedaniels (Gast)


Lesenswert?

Also für den Atmega gibt es von elm chang eine tolle FFT in Assembler 
die man sehr gut einbinden kann.

von Thomas (Gast)


Lesenswert?

Erstmal danke für die ganzen Antworten, ja das von Elm Chang hab ich 
schon gesehen, auch mal angeschaut aber dann nicht kapiert 
wie/was/wieso? :)

Na dann muss ich wohl üben, um die schwarze Magie zu verstehen :P
Erst auf dem PC nen einfacheren Code auszuwerten klingt durchaus 
sinnvoll, werd ich dann mal machen.

@Zorc mir gehts auch darum, den FFT zu verstehen. Sollte es nur 
irgendwie funktionieren würde ichs einfach mit Analogelektronik 
aufbauen.

PS:Ich habe dafür einen ATMega32

von anna log (Gast)


Lesenswert?

Thomas schrieb:
> @Zorc mir gehts auch darum, den FFT zu verstehen. Sollte es nur
> irgendwie funktionieren würde ichs einfach mit Analogelektronik
> aufbauen.

bandpass -> opamp -> licht
bandpass -> opamp -> licht
bandpass -> opamp -> licht
bandpass -> opamp -> licht
bandpass -> opamp -> licht

analoge lichtorgel?

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

http://www.jjj.de/fxt

dort 11. Link und folgende

siehe auch

http://www.jjj.de/fxt/demo/fft/

von Nilp (Gast)


Lesenswert?

Die FFT .. verstehen. Ist eher aufwendig. Man sollte mit den 
Fourierreihen beginnen, und dann zur Fouriertransformation uebergehen.

von PittyJ (Gast)


Lesenswert?

Ich habe auf dem PC die Bibliothek FFTW benutzt.
http://www.fftw.org/

Die hat dort problemlos funktioniert. Ob die auch auf einem 
Mikrokontroller läuft bezüglich Speicherverbrauch und Geschwindigkeit, 
kann ich nicht sagen.

Aber der Sourcecode ist mit dabei, und evtl kann man sich nur die 
benötigten Teile extrahieren.

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.