Schau mal hier, ob da was bei ist:
Beitrag "Schnelle FFT in Assembler"
>- gibt es bestimmte Frequenzen, die du prüfen möchtest?
>am luxoriösten wäre natürlich, wenn ich alle vielfachen frequenzen von
>1hz prüfen könnte ^^ aber ich würd mich da auch mit weniger begnügen ;)
Ergibt also eine Analyse von 100 Bändern - ist schonmal nicht gerade
wenig. Je mehr Frequenzen du unterscheiden willst, desto schlechter wird
die zeitliche Auflösung - also um so mehr Samples musst du aufzeichnen
und auswerten.
>- ansonsten: welche Frequenzauflösung und Verteilung (logarithmisch oder
>linear)?
>linear :)
Das menschliche Gehör kann tiefe Frequenzen deutlich besser
unterscheiden als hohe, weshalb die Frequenzen normaler Weise
exponentiell notiert werden. Eine lineare Verteilung spräche für die
Fourier-Analyse.
>- welche Genauigkeit (in bit)?
>die genauigkeit sollte dabei bei so +-0,5hz (bei 8bit auflösung)
>liegen...
Missverständnis. Mit wie vielen Stufen soll die Amplitude jeder Frequenz
wiedergegeben werden? Für rein grafische Geschichten reichen 8 Bits
dicke.
>- welche Sampling-Rate?
>realtime!? also so schnell wie möglich ^^
Ich meinte, wie schnell kommen die Daten rein? Bei 100 Hz
Maximalfrequenz macht eine Sampling-Rate größer als ca. 400 Hz nicht
viel Sinn. 200 Hz reichen hier meist schon.
>- Warum unter 20 Hz bei Audio?
>ist keine echtes 'audiosignal', ist aber genauso aufgebaut (überlagerung
>verschiedener frequenzen und amplituden)
Was ist es denn?
>- Welche zeitliche Auflösung
>was meinst du damit genau? tschuldige... hab heut nacht ne lange
>leitung..
Wir oft pro Sekunde soll das Programm die neuen Pegel ausgeben? Das
steht dem Frequenzauflösungsvermögen diametral entgegen!
Siehe auch:
http://de.wikipedia.org/wiki/Heisenbergsche_Unsch%C3%A4rferelation
ab "Folgende Analogie verdeutlicht die Unbestimmtheit:"
>- Welche Plattform?
>avr (irgendwas richtung mega...) und in assembler
Wird auf möglichst viel SRAM hinauslaufen.
Benötigst du nur die Amplituden oder auch die Phasen?
Im Moment spricht alles für eine FFT.
- Fenstergröße: 256 8-bit Samples.
- Sample Rate 256 Hz
- Auflösung 1 Hz
Ob das von der Rechenleistung her hinhaut weiß ich noch nicht.
Die Trennung der Frequenzen im unteren Bereich wird recht mies.
Zeitliche Auflösung liegt bei 1 Hz (Jede Sekunde ein neues Spektrum),
lässt sich aber mit genügend Rechenleistung unter Verwendung eines
Ringpuffers interpolieren.
Wenn das von der Rechenzeit her nicht passt, kann man den Puffer
halbieren, dadurch ergibt sich eine Frequenzauflösung von 2 Hz und eine
zeitliche Auflösung von 2 Hz. Das Spielchen kannst du so lange
fortsetzen, bis die Rechenzeit reicht oder die das Ergebnis nicht mehr
gefällt ;)
Ein bisschen im Forum suchen schadet übrigens nicht - Spektralanalysen
werden hier recht oft diskutiert.
Gruß und gute Nacht
Kai