PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : FFT in BASCOM



Che Guevara
30.04.2011, 14:25
Hallo Leute,

habe folgende Seite gefunden: http://bascom-forum.de/index.php?topic=1796.0 Dort wird von "Mobifu" eine FFT-Routine mit 128 Points in Bascom vorgestellt. Allerdings möchte ich den Code nicht einfach kopieren, wenn ich ihn nicht verstehe. Nun meine Frage an euch, hat sich jemand schon mal damit befasst oder kennt evtl. sogar diesen Code?
Ich selbst verstehe ihn leider nicht, weshalb ich wissen wollte, ob ihn mir jemand erklären könnte? Was mir am meisten Probleme bereitet ist, warum man soviele Werte im EEprom ablegen muss? Für was genau braucht man diese Werte?
Außerdem wollte ich noch wissen, ob mir jemand ein bisschen zur Hand gehen kann, da ich momentan keinen ATMega128 habe (und auch nicht verlöten möchte) und ich das auf einen ATMega32 umstricken möchte. Dieser hat leider nicht genug EEprom, sodass ich Fragen wollte, ob man die ganzen Daten auch im normalen Programmspeicher (SRAM) ablegen kann? Meiner Meinung nach sollte das gehen, man muss nur die "Readeeprom"-Befehle rausnehmen und durch Restore / Read ersetzen?! Würde mich wirklich sehr freuen, wenn mir jemand das Ganze evtl. ein bisschen näher bringen könnte.
Oder wäre es besser, ich würde mich in dem Bascom-Forum anmelden und dort meine Frage an den Code-Ersteller stellen? Wollte mich nicht nochmal wo anders anmelden, aber falls ihr meint, ich solls machen, dann meld ich mich dort an.

Vielen Dank & Gruß
Chris

EDIT: Hab grad diese Seite gefunden: http://www.sprut.de/electronic/pic/16bit/dsp/fft/fft.htm
Ist zwar alles ohne Mathematik, aber ich denke, jetzt habe ich das Grundprinzip verstanden. Man braucht viele Filter (pro Abzutastende Frequenz 1 Filter?!) und bei jeder Frequenz verschiebt man die Phase von den Abtastpunkten um 1e best. Anzahl von Grad (wie kommt man darauf? --> Durch die Frequenz des Filters!? Sprich: Wenn ich einen 2kHz Filter habe, dann verschiebe ich die Phase um xx Grad). Dann addiert man diese verschobenen Werte auf und erhält somit die Amplitude in Abhängigkeit der Frequenz. Somit braucht man pro abzutastende Frequenz 1en Filter?!
Wäre nett, wenn sich das jemand mal ansieht, was ich hier so geschrieben habe und mir dann sagt, was stimmt / nicht stimmt.

Che Guevara
11.05.2011, 22:25
Gibts den niemanden, der mir die Umsetzung der DFT (oder auch FFT) in BASCOM erkären kann? Pseudocode würde auch schon reichen?! Das Ganze muss nicht schnell sein, aber so könnte ichs besser verstehen mit einem Beispiel?!

Gruß
Chris

DanielSan
12.05.2011, 09:46
Hast du denn die FFT an sich verstanden? In der Schule hast du davon sicher noch nichts gehört.
Gehst du denn noch zur Schule? Falls ja zu welcher? Frag mal deinen Mathe lehrer, ob er dir das erklärt. Falls er dir da nicht helfen kann/will, sagt das schonmal etwas über die fachliche Kompetenz deines Lehrers. Sollte er dir wirklich nicht helfen können, frag mal deinen Physik lehrer...
Die werden sich wahrscheinlich beide sehr über die Frage freuen^^

Ansosnten kannst du mal versuchen an das Buch "Höhere Mathematik von N.Herrmann" zu kommen. Das hab ich für mein Studium gekauft und finde es ganz gut. Man muss sich nur einmal an die Mathematische Sprache gewöhnt haben.

Wenn du die FFT verstanden hast, sollte es kein großes Problem mehr sein das in eine Software zu schreiben.

Gruß Daniel

Vitis
12.05.2011, 11:21
Das Grundprinzip ist recht einfach.
Du nimmst Dein periodisches Signal, das um einen Nullpunkt schwingt und suchst den ersten
Nulldurchgang.
Dann nimmst Du rechnerisch eine kleine Sinusfrequenz und legst diese rechnerisch darüber und
schaust ob die in Dein Ursprungssignal von den Nulldurchgängen her hinein passt.
Passt das in etwa, dann schaust Du welche Signalgröße (Amplitude) maximal in das Ursignal passt,
dass ist Dann Dein Messwert für diese Frequenz.
Dann subtrahierst Du das eingepasste Signal vom Ursignal und nimmst die nächst höhere Frequenz
und passt diese ein. usw. usw.
ist eine Frequenz garnicht passend ist der Messwert natürlich 0.

Das ist so in etwa das Grundprinzip.
So bekommst Du eine Aussage über Die Qualität Deines Signales, Oberwellen oder in der Musik halt
die Verteilung der enthaltenen Frequenzen.

Das Ding zu programmmieren ist schon n verdammt hartes Brett ... schau Dir mal diese Version an:
http://www.mcselec.com/index2.php?option=com_forum&Itemid=59&page=download&id=110

habe damit schöne Lichteffekte gezaubert ... quasi ne Lichtorgel mit x Kanälen.

hacker
12.05.2011, 22:54
Such mal nach Butterfly Struktur. Das sollte dir weiter helfen.

So schwer ist das ganze dann auch nicht mehr.

Che Guevara
14.05.2011, 19:45
Momentan gehe ich in die 11. Klasse (Bayern). Werd meinen Lehrer bei Gelegenheit mal fragen, danke für den Tip!
Bzgl. dem Buch werd ich mal in der Bibliothek in der Schule schauen, evtl. haben die dieses ja ...

Jetzt werd ich mir erstmal ein paar Grundlagen usw. (auch Butterfly Struktur) aneignen, dann wirds bestimmt um einiges einfacher. Danke für eure Antworten

Gruß
Chris