PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : FFT mit Microcontroller



Sebastian132
03.07.2007, 16:47
Hallo,
ich möchte für ein Projekt eine FFT aus einem Audiosignal generieren und auf einem Display ausgeben (ähnlich wie der Winamp Spectrum analyzer z.B.), und das möglichst ohne Ruckeln also über 25 fps wären wünschenswert.

Jedoch sind die normalen Microcontroller wie AVR und Co damit wohl überfordert, es gibt zwar ein Projekt welches die FFT in Assembler aufm AVR laufen hat, aber ich würds gerne selber machen (und in C ;)).

Ohne gleich komplett umsteigen zu müssen auf teure, schwierige und übertriebene Architekturen (spezielle DSPs, ARMs etc.)...gibt es Microcontroller, die das mitmachen, z.B. auch PICs oder diese Renesas-Teile?

Felix G
03.07.2007, 19:25
Also wenn du keinen DSP nutzen willst, ist der erste Schritt wohl die Suche nach dem richtigen Algorithmus. Denn es gibt da so einige, die sich teilweise erheblich in Ausführungsgeschwindigkeit und Speicherplatzbedarf unterscheiden.

Das ASM-Projekt hast du ja offensichtlich schon gefunden, und das zeigt ja recht eindrucksvoll daß ein AVR auch eine FFT packen kann. Du könntest also durchaus einen AVR nutzen, oder du gehst einen Schritt weiter und schaust dir mal diese neueren dsPIC an (die sollen ja angeblich recht flott sein bei solchen Berechnungen). Ich könnte mir aber auch gut vorstellen, daß ein Propeller für diese Aufgabe sehr gut geeignet sein könnte (da der eben mehrere parallele Recheneinheiten hat).

Sebastian132
05.07.2007, 11:27
Hi,
klingt interessant, habe mir den dspic und die AT91* von Atmel mal angeschaut. Bei welchen dürfte der Einstieg denn leichter und billiger sein? Und ist das ganze programmiertechnisch überhaupt mit den AVRs vergleichbar (sprich einfach Pins ansprechen können, Timer initialisieren, ISRs usw usw) oder viel komplexer?

Felix G
05.07.2007, 14:38
Gute Frage...

leider habe ich mit den dsPIC bisher keine Erfahrung, daher weiss ich nicht inwiefern sie komplizierter zu programmieren sind als die AVRs.

Ich denke aber, daß man bei den meisten 8- und 16-Bit Controllern davon ausgehen kann, daß sie sich noch "normal" programmieren lassen. Bei einem 32-Bit Controller wie einem ARM dürfte das schon aufwendiger sein (da wird man vermutlich kaum auf ein Betriebssystem verzichten können).

robotxy
05.08.2007, 23:07
Ich benötige in einem Projekt auch ne FFT. Das ganze Programm ist in Bascom geschrieben, und nun würde ich die FFT natürlich auch gerne in Bascom einbinden. Kann ich das einfach als Assembler einbauen? Gibt es das Ganze als Library? Die FFT muss nicht in realtime sein.

Gruß,
Rasmus

robotxy
06.09.2007, 16:05
So ich habe jetzt ne FFT in Assembler geschrieben mit 256 Filtern. Da ich die Frequenzen bis 400 Hertz untersuchen will, hat jeder Filter eine Bandbreite von 800/256=3,125Hz. Gibt es Techniken, außer die Anzahl der Filter zu erhöhen, um die Frequenz noch genauer zu bestimmen?
Gruß,
Rasmus