Hallo ich versuche eine FFT-Anaylse mit einem Microcontroller (PIC) zu realisieren. Aufgabe: AD-Wandler digitalisiert ein Signal, das dann analysiert werden soll (Frequenzen). Ich habe schon einiges dazu gelesen, auch im Internet, aber ich verstehe immer noch Bahnhof. Wer hat schon mal ne FFt programmiert ( in C oder Assembler) ? Wer hat ne gute verständliche Anleitung oder ien Beispielprogram ? Gruß Gerhard
Bei dem uC-Compiler fuer 8051 ist eine komplette FFT (in C) dabei. Die läuft auf PC (Borland) und 8051. Quellcodes in SRC\DFHT. Esam. (Link: www.wickenhaeuser.com)
Hallo, gerade bei Microchip auf der Homepage ist ein Beispiel einer FFT zu finden mit Code. Rechenzeit dauert aber je nach Auflösung bis 1 Sekunde. Gruß
Hallo Chris danke, die habe ich schon gesehen, die funkt aber nicht. Hallo Esam danke für den Link. Den Compiler muß mwan wohl kaufen, oder gibts den wo umsonst ? Gerhard
"die funkt aber nicht." Hallo, mich würde mal interessieren, was an dem Microchip-Beispiel falsch ist, da ich mich mit solchen Beispielen mal befassen wollte und nicht unnötig Zeit mit einem fehlerhaften Beispiel verbringen möchte. Gruß
Hallo Chris http://www.piclist.com/techref/microchip/fft/picspect.htm ich weiß es nicht, ich verlasse mich hier auf das, was unter dem Link steht. Wenn Du den Link liest, findest Du ein Projekt zu einer FFT. Hab ich auch gelesen. Aber nix verstanden. Ich suche was für Dummies. Ich hab zwar schon mal was von Fourier gehört, aber alle Beispiele die ich bisher gefunden habe verlassen sich darauf, daß die Leute schon Spezialisten sind. Schaus mal an, vielleicht kannst Du mir sagen was das Prog macht: z.B. wo hinterher das Ergebnis steht. Gehrhard
Hallo, na ja, also die FFT wird im Unterprogramm "Real FTT" ausgerechnet. Der C-Code wurde dann wohl compiliert und der daraus entstandene Assembler ist etwas abstrakt. Ausgabe erfolgt in Data[1] und Data[2] vermute ich mal. Letztendlich produziert das Programm eine grafische Ausgabe auf einem VGA-Display. Schaltbild fehlt, oder? Gruß "Algorithm from "Numerical recipes in C", manually compiled in assembler ; and adapted... ; ; Calculate FFT of a set of 256 real values stored in data[0..511] ; (2 bytes per value, MSB first). ; ; Replace these data by the positive frequency half of the FFT ; (128 frequencies, complex values). First and last frequencies (which are ; real) are in data[1] and data[2] respectively." " This project is a complete audio spectrum analyser with output on a ; standard VGA display, done entirely with a PIC17C756 microcontroler"
In diesem beispiel, aber auch in so manchen anderen, vermisse ich eine Doku, was das Programm macht, und wo die Ergebnisse stehen. das gilt auch für dieses Beispiel. Eine FFT-Analyse liefert doch ne Menge Informationen: Frequenz1+zugehörige Größe, Frequen2+zugehörige Größe... Wo steht das ? Ich kapiers nicht. Gerhard
Hallo, stimmt schon, was Du bemängelst, geht mir nicht anders. Was denn genau in data[1] und data[2] steht, habe ich auf die Schnelle auch nicht heraus gefunden. Die Erklärung müßte bei der C-Quelle zu finden sein, die da angegeben ist: "Algorithm from "Numerical recipes in C" Die gibt's irgendwo im Internet zum Download, sind aber auf Englisch und wie immer nicht einfach zu verstehen, da es eine mathematische Abhandlung ist mit Umsetzung in C-Code. Meistens sind das weiter entwickelte Algorithmen, die Rechenzeit sparen gegenüber dem Standard. Gruß
Betreff obigem Link, Ne, kaufen musste da nix, ist alles in der demo dabei (v.a.D C-Quellcodes). Kannste sogar laufen lassen, da die FFT nur ein paar kB belegt, Demo geht aber bis 8k. Du brauchst lediglich 'ne 8051 mit etwas externem RAM... Ist aber nicht besonder Echtzeitfaehig. Esam
U.a. das Schaltbild ist hier zu finden: http://www.circuitcellar.com/pastissues/articles/Laco98/article.htm
Hallo Gerhard! Schau Dir den Quelltext in Ruhe an, es ist alles genau erklärt: http://www.piclist.com/techref/microchip/fft/picspect.htm <i>;==================================================================== ======== ; PROJECT : PIC'SPECTRUM ; ; FILE : FFT.INC ; ; VERSION : 1.0 ; ; DESCRIPTION : ; ; 256 points FFT routines, using s/2/13 format for numeric computations ; (through the fixed.inc library). All data are stored in the internal ; registers of the 17C756 (array DATA). ; ; Execution time on a PIC17C756/32MHz : around 50ms without concurrent ; video generation (resulting in a 90-100ms refresh time with spectrum ; power calculation, analog acquisition and video refresh) ; ;======================================================================= ===== ; Developped & Copyrighted by Robert LACOSTE ;======================================================================= ===== ;----------------------------------------------------------------------- ----- ; Complex FFT, radix-1, decimation in place, 128 points ; ; Algorithm from "Numerical recipes in C", manually compiled in assembler ; and adapted... ; ; <b>Input : 128 complex values (each on 4 bytes), stored in data[0..511] ; For each data : byte 0 = MSB of real part ; byte 1 = LSB of real part ; byte 2 = MSB of complex part ; byte 3 = LSB of complex part ; ; Replace data[0..511] by its FFT (128 frequencies, complex values)</b> ;----------------------------------------------------------------------- -----</i> und: <i>;-------------------------------------------------------------------- -------- ; Real FFT ; ; Algorithm from "Numerical recipes in C", manually compiled in assembler ; and adapted... ; ; <b>Calculate FFT of a set of 256 real values stored in data[0..511] ; (2 bytes per value, MSB first). ; ; Replace these data by the positive frequency half of the FFT ; (128 frequencies, complex values). First and last frequencies (which are ; real) are in data[1] and data[2] respectively.</b></i> Gruß Uwe
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.