mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Audioverarbeitung in einer Endstufe


Autor: Leopold Nützel (leo_n)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag,

ich habe vor, mir eine Endstufe zu bauen, in der ein Atmega32 das 
Audiosignal auswertet und anschließend über Bargraph-LEDs einen 
Equalizer anzeigt.
Meine Frage nun...kann mir jemand erklären oder mir einen Link zeigen, 
wie man das Audiosignal mittels einer FFT auswertet...ich möchts 
haargenau wissen, weil ich danach das Ganze komplett selbst 
programmieren
will.

Grüße
Leopold

Autor: Franz Schlüter (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Für so eine Aufgabe ist ein Atmega viel, SEHR VIEL zu schwach. Eine FFT 
in Echtzeit kriegst Du damit nicht hin. Das wäre eher was für einen 
richtigen DSP.

Autor: Dergute Weka (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

z.B.: Hier hat jemand das per FFT gemacht:
http://elm-chan.org/works/akilcd/report_e.html

Ich persoenlich halt' die FFT dafuer fuer nicht so geeignet und hab' mir 
hier mal was ueberlegt und auch mal ausprobiert:
Beitrag ""LED-Spectrumanalyzer"software ohne Fouriertransformation"


Gruss
WK

Autor: Thomas U. (thomasu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kommt alles auf die Zahl der Bänder und die Genauigkeit an. Wenn es 
nur 5 Bänder und sagen wir 32 Stufen sein sollen, ist das mit einer 
Filterkaskade sicher am Einfachsten. Das Beispiel von WEKA ist da fast 
schon zuviel.

Autor: Hans Dämpfung (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt auch noch den Görtzel Algorithmus:

http://de.wikipedia.org/wiki/Goertzel-Algorithmus

Habe ihn nie selbst probiert, aber evtl. käme er anstatt FFT auch in 
Frage. Die Idee ist, dass man nur selektiv Frequenzanteile aus dem 
Signal extrahiert, sodass man keine komplette FFT machen muss. Das 
sollte vom Rechenaufwand deutlich geringer sein.

Autor: Dergute Weka (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,


Thomas U. schrieb:
> Das Beispiel von WEKA ist da fast
> schon zuviel.

Hm - was heisst fast zuviel? Das laeuft auf einem atmega16 mit 16MHz und 
braucht dabei ca. 40% der CPU-Zyklen. Also da ist noch Luft drinnen.

Das gute an der Filterkaskade ist, dass der Rechenaufwand bei mehr 
Filtern kaum mehr steigt, weil die Abtastrate fuer jedes neue Filter 
'runtergeht. Verwend' ich Oktavfilter, also 1:2 Unterabtastung, von 
Filter zu Filter (wie in meinem Testprojekt) ist der Rechenaufwand fuer 
alle Filter zusammen hoechsten 2x so gross, wie der Rechenaufwand fuer 
die erste Hoch/Tiefpass-kombi. Egal, ob ich danach noch weitere 9 Filter 
(sinnvoll, damit ist der menschl. Hoerbereich ungefahr abgedeckt) oder 
99 Filter berechnen lasse. Kurz: Das kosta fast garnix.

Beim Goertzel kostet jedes neue Filter gleichviel neue Rechenzeit; 
nochdazu ist das ein IIR-Filter; speziell beim AVR wuerd' ich mir da 
erstmal Sorgen machen wegen Rundungs/Ueberlauffehlern bei 8/16-Bit 
Arithmetik bzw. Geschwindigkeit bei hoeheren Wortbreiten.

Bei einer FFT steigt der Rechenaufwand auch mit zunehmendem N an, sogar 
noch staerker als nur linear (N*log(N) iirc).

Bei all dem nicht vergessen:
Auf einen mit 16MHz getakteten AVR bezogen, der Audio mit 32kSamples/sec 
sampled, kommt alle 500 CPU-Takte ein neues Sample, das verwurstet 
werden will. Und zusaetzlich haengt noch ein LED-Grab dran, das 
puenktlich gemultiplext und mit Lichteffekten versorgt werden will.

Gruss
WK

Autor: Detlef _A (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FFT aufm Mega geht schon, beendet there, done that. Hier hatte ich mal 
Code gepostet1.


Beitrag "Fragen zu FFT mit Festkomma-Arithmetik"

Cheers
Detlef

Autor: Huh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Detlef _A schrieb:
> beendet there, done that.
> gepostet1.

???

Autor: Klapper-Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Huh schrieb:
> Detlef _A schrieb:
>> beendet there, done that.
>
> ???

Autokorrektur.

Autor: Thomas U. (thomasu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dergute W. schrieb:

> Hm - was heisst fast zuviel?

Ich meinte, für DIE Anwendung wären ein paar passive analoge Filter auch 
ausreichend genau.

Autor: Audiomann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leo N. schrieb:
> ich habe vor, mir eine Endstufe zu bauen,
Du weisst schon, dass mit "ENDSTUFE" normal ein Leistungsvertsärker 
bezeichnet wird?

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas U. schrieb:
> Ich meinte, für DIE Anwendung wären ein paar passive analoge Filter auch
> ausreichend genau.
Die könnte man auch als IIR realisieren, um Leistung zu sparen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.