PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PIC & Fast furier transformation (FFT)



LT
07.02.2006, 22:01
Hallo,
Ich würde für eine Lichtorgel eine "realtime Fast furier transformation" benötigen. - Mir ist klar, dass das vielleicht ein bisschen ein "Overkill" ist.

Ich hab schon im Google recherchiert:
Mit den "normalen" PICmicro® Microcontrollers geht das anscheinend nicht
Die "dsPIC® Digital Signal Controllers" können das (teilweise)

Nun meine Fragen:
Hat irgendwer Erfahrungen mit PIC & FFT ?
Wie Programmiert man "dsPIC® Digital Signal Controllers" ? - ich hab den Brenner5 von Sprut.
Gibt es einen freien C-Compiler für "dsPIC® Digital Signal Controllers"

ich freue mich schon auf jede Hilfe - Danke!

mfg Lukas

ruediw
07.02.2006, 22:14
Habe noch keine Erfahrungen damit, aber was ich dafon weiss ist:

1. Bei der FFT must Du viel mit Float (1.xxx) rechnen.
2. Das Rechnen mit Float war auf dem PC immer extrem
langsam im Verhältniss zum Rechnen mit Ganzzahen. Deshalb
konnte man sich früher (8086, 80286, 80386, 80486) einen
"Numerischen Koprozessor" bestücken der auf diese Operationen
speziell optimiert war (z.Bsp. 80287 von AMD).
3. Was der Coprozessor im PC ist der DSP bei den uC. Er ist speziell
darauf optimiert Rechnungen mit Float vorzunehmen.
4. Mit einem normalen uC wirdst Du es wrscheinlich nie schaffen
weil:
1. Die Rechenleistung nicht ausreicht
2. Der Speicher des pics ist nicht ausreicht.

Nehme an dass es wenn nicht einen freien so doch wenigstens
einen Demo-Compiler gibt. Von da wo es dir Compiler für
die normalen PIC's gibt.
Schau doch mal beim Hersteller des PIC's nach oder recherchier
mal beim "PIC Webring".

LT
07.02.2006, 22:25
4. Mit einem normalen uC wirdst Du es wrscheinlich nie schaffen
weil:
1. Die Rechenleistung nicht ausreicht
2. Der Speicher des pics ist nicht ausreicht.


das hab ich mir auch gedacht nur dann ist mir eingefallen, dass (fast) jeder, sogar der billigste, neue Autoradio FFT kann. - auch in den meisten mp3-player ist ein FFT zu finden - wie machen die das?

mfg LT

ruediw
07.02.2006, 22:34
Maskenprogrammiert ?

Gibt ja auch sehr billige uP / uC die nur einmal programmiert
werden können. Oder das ganze wird rein hardwaremässig gemacht.

Fritzli
08.02.2006, 11:21
Mit den "normalen" PICmicro® Microcontrollers geht das anscheinend nicht

Das stimmt so nicht. Von Microchip gibt's ne FFT-ApplicationNote. Da die aber anscheinend nur Muell ausgibt, taugt sie wohl nur als Anschauung.

Eine funktionierende/schnellere Version gibts hier:
http://www.piclist.org/techref/microchip/fft/picspect.htm

Hab allerdings nicht nachgeschaut, wie schnell die abtastet, etc

Sollte also gehen.

Gruess
Fritzli

ruediw
08.02.2006, 22:59
@Fritzli:
danke für deinen Link.

Wenn Du das Listing (Assembler) mal gelesen hast, so hast Du gesehen
dass der 17C756 benutzt wird. Dieser hat einen Hardwaremultiplizierer
der die Multiplikation und Division durchführt. Es ist quasi ein interner
"Koprozessor". Aus diesem Grunde würde ich Ihn nicht als "Normalen"
PIC bezeichnen sondern eher als PIC DSP.

Wird mit 33 Mhz betrieben und macht eine Multiplikation oder Division
in 1 Taktzyklus (121 nSek @ 33 MHz).

Sehr interessantes Teil.