Forum: Digitale Signalverarbeitung / DSP / Machine Learning 64 Punkte FFT auf guenstigem Mikrocontroller


von Fede (Gast)


Lesenswert?

Ich möchte eine 64 Punkte FFT auf einem möglichst günstigen 
Mikrocontroller realisieren. Dabei soll mindenstens alle 5 ms eine neue 
Berechnung möglich sein.
Hier wurde öfters das Projekt von chan erwähnt: 
http://elm-chan.org/works/akilcd/report_e.html
der auf einem Atmega8 eine 64 Punkte FFT in 3,4 ms schafft.

Kann mir jemand einen Mikrocontroller dafür empfehlen? Ginge das auch 
mit einem Attiny85?

(Ich hab schon lange nichts mehr damit gemacht, früher mal mit 80C59)

: Verschoben durch Admin
von Frickelfritze (Gast)


Lesenswert?

Fede schrieb:
> Kann mir jemand einen Mikrocontroller dafür empfehlen? Ginge das auch
> mit einem Attiny85?

Ist es von erheblichem Vorteil wenn der Controller statt 2Markfuffzich
nur 2Markvierzich kostet?

von Fede (Gast)


Lesenswert?

Nein, darauf kommt es dann nicht an. Ich würde gerne mit noch etwas 
kleinerem als dem Atmega8 anfangen und der Attiny hat ja ähnliche 
Features. "On-chip 2-cycle Multiplier" fehlt. Ich weiß nicht ob das ein 
Problem ist...

von Peter II (Gast)


Lesenswert?

Fede schrieb:
> "On-chip 2-cycle Multiplier" fehlt. Ich weiß nicht ob das ein
> Problem ist...

dann nimm einfach den Simulator und teste es. Dann steht auch genau die 
Zeit da die die Funktion braucht.

von Frank K. (fchk)


Lesenswert?

Fede schrieb:
> Nein, darauf kommt es dann nicht an.

Gut. Dann kannst Du auch einen PIC32MX110F016B-I/SP verwenden. 50MHz 32 
Bit MIPS Kern, damit sollte das schon flutschen. Bei Bedarf gibts auch 
Versionen mit mehr Speicher...

> Ich würde gerne mit noch etwas
> kleinerem als dem Atmega8 anfangen und der Attiny hat ja ähnliche
> Features. "On-chip 2-cycle Multiplier" fehlt. Ich weiß nicht ob das ein
> Problem ist...

Warum dieser Umstand? Tut doch nicht mehr not.


fchk

von Stefan K. (stefan64)


Lesenswert?

http://www.watterott.com/de/STM32F030F4P6-Minimum-Systerm-Board-Cortex-M0

Als Einzelchip irgendwo um die 1€.

Oder den hier:
http://www.watterott.com/de/STM32F103TB-ARM-Cortex-M3-Development-Board

Es wäre sinnvoll, wenn Du etwas mehr Daten zu Deiner FFT angibst. Welche 
Wortbreite sollen Deine Daten haben? float, int?

Zu den Cortex CPUs gibt es eine DSP-Library von ARM, die neben sehr 
vielen anderen Sachen auch FFT-Routinen beinhaltet.

Gruß, Stefan

von M. K. (sylaina)


Lesenswert?

Fede schrieb:
> Ich würde gerne mit noch etwas
> kleinerem als dem Atmega8 anfangen und der Attiny hat ja ähnliche
> Features

Öhm, was "kleinerem"? Also im Prinzip ist der Aufwand sich in den Atmega 
oder einen Attiny einzuarbeiten ähnlich umfangreich. Kleiner ist bei 
Attiny eigentlich nur das Gehäuse aber deshalb zu entscheiden, mit 
welchem Mikrocontroller man beginnt…ich weiß ja nicht. Und dann willst 
du gleich mit einer FFT beginnen? Da liegt ein wenig Arbeit vor dir ;)
Bei Attiny wird dir wahrscheinlich der Speicher einen Strich durch die 
Rechnung machen. Eine 64er FFT braucht ja schon nur für die 
Eingangsfolge 128 Byte (Realteil und Imaginärteil).

: Bearbeitet durch User
von Bastler (Gast)


Lesenswert?

Für LunaAVR gibt es eine FFT-Library (ATMega und ATXMega) für 64 bis 
1024 Punkte.

http://avr.myluna.de/doku.php?id=de:lib-fft

von Fede (Gast)


Lesenswert?

Wortbreite..das hatte ich noch gar nicht bedacht. Es müsste aber schon 
float sein.

Danke für die Vorschläge! Der M0 hört sich auch interessant an...Den 
attiny schlag ich mir für dieses Vorhaben dann lieber aus dem Kopf..

von Programmierer (Gast)


Lesenswert?

Fede schrieb:
> Es müsste aber schon
> float sein.
>
> Danke für die Vorschläge! Der M0 hört sich auch interessant an...
Wenn schon Cortex-M + float, dann kannst du auch gleich Cortex-M4 
nehmen, denn der hat eine FPU! Somit sind die meisten float-Operationen 
in 1 Takt abgehandelt.

Schau z.B. mal hier:
http://www.st.com/web/en/web/en/catalog/tools/FM116/SC959/SS1532/LN1847/PF262544
Handliches Arduino-Nano Format, FPU, integrierter Programmer/Debugger. 
Gibt aber natürlich noch viele weitere Möglichkeiten.

von Geert H. (geerth)


Lesenswert?


von Geert H. (geerth)


Lesenswert?


von avr (Gast)


Lesenswert?

Bastler schrieb:
> Für LunaAVR gibt es eine FFT-Library (ATMega und ATXMega) für 64 bis
> 1024 Punkte.

das ist aber zu 99.9% von elm-chan abgekupfert. Warum sollte das jetzt 
besser sein, abgesehen von der unportablen, exotischen und 
vergleichsweise trivialen Sprache.

von n^2 (Gast)


Lesenswert?

Wullst es es haben oder selber bauen? Bei ebay als Bausatz kostet es ca 
8 Euro

von Bastler (Gast)


Lesenswert?

avr schrieb:
> Warum sollte das jetzt
> besser sein, abgesehen von der unportablen, exotischen und
> vergleichsweise trivialen Sprache.

Hallo MWS ...

von Pandur S. (jetztnicht)


Lesenswert?

>Wortbreite..das hatte ich noch gar nicht bedacht. Es müsste aber schon
float sein.

Float... aha. Da gibt es vieleicht eine Multiplikation in diesen 5ms.

Was soll Float denn bringen? Um die verrauschten 8 bit des ADC voll auf 
die 43dB des dynamischen Bereich abzubilden ? Steckbrettaufbau ?

Ich wuerde die Anforderungen hochschrauben, und die FFT von einem 
einzigen Transistor erwarten ... da alles andere eh viel zu teuer ist.

pfffffft....

von dsPIC (Gast)


Lesenswert?


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.