Forum: Digitale Signalverarbeitung / DSP / Machine Learning FFT keine Ahnung wie es weiter geht


von mark (Gast)


Lesenswert?

Hallo Forum!

Könnt ihr mir bitte erklären wie ich mit einem Atmega88 eine FFT 
durchführen kann.

Eines habe ich schon verstanden ich lese über meinen ADC 10Werte ein 
somit habe ich einen Filter von 10. Aber was mache ich dann weiter mit 
dem Array.

Ich steh da voll auf der Leitung.. (bzw. fehlt mir das Wissen über FFT)

: Verschoben durch Admin
von Decius (Gast)


Lesenswert?

Grundviraussetzung für die FFT ist eine 2er-Potenz (s^x) als 
Stützstellenanzahl. Wenn du aber filtern möchtest, schaue in Richtung 
der digitalen Filter. Der FFT-Algorithmus ist für einen Filter zu 
rechenaufwendig.

von Decius (Gast)


Lesenswert?

nicht s^x sondern 2^x

von mark (Gast)


Lesenswert?

Hallo,

Ich würde gerne 4 Leds leuchten lassen. Die erste leuchtet bei 1kHz die 
zweite 2khz 3. 3Khz 4. 4Khz. Ist da eine FFT overkill ?

danke

von Decius (Gast)


Lesenswert?

Für die FFT sollten es in deinem Abtastintervall so viele Stützstellen 
sein, daß das Abtastheorem für die höchste zu ermittelnde Oberwelle 
erfüllt ist. Also 8 oder 16 Stützstellen sind wahrscheinlich zu wenig.

Aber ob FFT oder digitale Filter beides ist recht mathelastig. Wenn dir 
da die Grundlagen fehlen, solltest du eventuell einen Filter analog mit 
OPV's aufbauen. Da sollten sich auch für den Praktiker brauchbare 
Formeln zur Berechung finden lassen.

von Decius (Gast)


Lesenswert?

Die FFT eignet sich zur Systemanalyse. Deine Anwendung ist eher was für 
Filter. Und damit bist du eigentlich bei den DSP's. Nicht das sich ein 
digitaler Filter nicht, auf einem normalenm Mikrocontroller umsetzen 
läßt, kommt aber dabei sehr auf die notwendige Geschwindigkeit an. Und 
die Wiederum hängt von deiner höchsten zu verarbeitenden Frequenz ab. In 
Abhängigkeit dieser Frequenz, muß man in einem bestimmten Intervall das 
eingangssignal einlesen und das ausgangssignal ausgeben.

Für digitale Filter bin ich aber kein Experte, das müßte dir jemand 
anderes genauer erklären.

von mark (Gast)


Lesenswert?

Hallo,

Das wollte ich jetzt nicht hören ;) aber hast recht, man sollte schon 
wissen was dahinter steckt. Dennoch würde ich es gerne versuchen bzw. im 
Versuch es Verstehen zu lernen.

lg

von Decius (Gast)


Lesenswert?

http://www.winfilter.20m.com/
http://www.digitalfilterdesign.com/

Hier gibt es kostenlose Software für den Entwurf digitaler Filter. Kann 
aber nicht sagen, ob die software etwas taugt. Und du mußt trotzdem 
wissen, was du tust.

von Peter D. (peda)


Lesenswert?


von Decius (Gast)


Lesenswert?

Den Thread kannte ich nicht. Tja, es gibt meist mehrere Lösungen. :-)

von Purzel H. (hacky)


Lesenswert?

Wie macht man eine Detektion von 1 kHz ? Man multipliziert das Signal 
einmal mit Sin(1kHz) und einmal mit Cos(1kHz). Dann Integriert man ueber 
die Filterbandbreite. dh fuer 500Hz 2ms.

von soundso (Gast)


Lesenswert?

Decius schrieb:
> Und damit bist du eigentlich bei den DSP's.

immer der selbe spruch ...

aktuelle Mikrocontroller haben genug rechempower um ein Audiosignal 
mittels FFT auf ein Frequenzspektrum umzurechen ...

Genau das wolte ja der TO, 4 Ledes bei vier verschiedenen Frequenzen ...

ein AVR schafft das locker, wenn die Updaterate nicht auch 1 kHz sein 
soll ...

und falls du nicht so fit bist mit FFT, gibts dafür im netz schon genug 
implementationen ...

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.