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?
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.
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.
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.
"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
Also für den Atmega gibt es von elm chang eine tolle FFT in Assembler die man sehr gut einbinden kann.
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
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?
Die FFT .. verstehen. Ist eher aufwendig. Man sollte mit den Fourierreihen beginnen, und dann zur Fouriertransformation uebergehen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.