Hallo,
ich baue mir grade einen Vorverstärker. SPDIFF & Analog rein und SPDIFF
& Analog raus. Dazu kommt noch ein Prozessor (AVR) für LEDs, Tasten, RC5
Encoder. Das ganze ist nichts wildes und damit habe ich auch keine
Probleme.
Jetzt hatte ich aber die Idee das interne digitale Signal durch meinen
Prozessor zu leiten, um das Signal auf einer SD-Karte zuspeichern und
auch abspielen zu können. RAW, FLAC, oder MP3 --> kommt auf die
benötigte Rechenleistung an.
Einen Filter würde ich auch gerne gleich mit umsetzten.
Mit DSPs habe ich noch nie was gemacht, habe aber gerade Erfahrung mit
einem ARM7S256 vom Atmel gesammelt.
Jetzt stellt sich nur die Frage würde der für so eine Aufgabe reichen?
Wenn Nein: Für welchen Teil meiner Wünsche wäre der ARM7 noch
einsetzbar?
Dirk
Hi,
wenn WAV geht ist das doch schon mal eine Aussage.
Der Prozessor soll übrigens nicht alles gleichzeitig machen.
Nur eine der Funktionen und die System Steuerung (LEDs ...).
Das Aufnehmen ist nett wenn es geht, WAV würde mir reichen. Ich will ja
nicht 14 Tage lang am Stück aufnehmen, 1GB reicht auch schon für einige
Minuten im WAV Format.
Könnte OGG funktionieren?
Abspielen soll ja gehen, wie ich hier und da lesen kann.
Was mich wirklich interessiert ist ob der ARM7 reicht um das Signal zu
Filtern. Vielleicht sogar eine Frequenzweiche?
Dirk
Dirk wrote:
> Könnte OGG funktionieren?
Ich würde schätzen, dass man hierzu schon einen Prozessor mit DSP
Funktionalität braucht. Samtliche Codierverfahren sind ziemlich
rechenintensiv. Einige sind optimiert auf möglichst einfaches Dekodieren
(wenn ich mich recht erinnere ist FLAC hier zu nennen). OGG liegt m.W.
bereits als Fixkommaimplementierung vor, kannst es ja mal probieren und
berichten. Was ich definitiv sagen kann ist, dass MP3 dekodieren und
codieren gleichzeitig (Back-to-Back) auf einem Single-Core Blackfin
geht (Fixkomma).
Für die Filter kannst du die benötigte Rechenleistung relativ einfach
vorherbestimmen. Schau dir mal die für FIR- und IIR-Filter benötigten
Rechenoperation und Speicherbedarf für die Ringpuffer an.
Mit Assembler, Festkommaarithmetik und 32 bit "Auflösung" (ist
erforderlich) kriegst du bei Stereo und vorgegebener Samplingfrequenz
ein Filter welcher Ordnung hin?
Kannst du also vergessen.
Würde ich so pauschal nicht sagen. Der Prozessor hat nicht viel zu tun
wenn der Transfer ADC -> RAM -> DAC über DMA läuft, man hat also ein
paar hundert Takte pro Sample zur Verfügung. Und der ARM7TDMI hat z.B.
Befehle für signed 32x32 MAC. Damit sollte sich also schon was anfangen
lassen.
OGG funktioniert genausowenig wie MP3, ist von der Komplexität her
ähnlich (eher aufwändiger).
Den ADC will ich nicht benutzen, ich habe die Signale doch schon Digital
im System. Der ARM7 hat eine I²S Schnittstelle. Den DMA muss ich
benutzen sonst macht der ARM7 nur noch an der Ausgabe der Daten rum und
hat nicht mal mehr Zeit für mein kleines Steuerprogramm. Zum Rechen
würde der dann erstrecht nicht mehr kommen.
OK MP3 und Konsorten kann ich zum Aufnehmen also vergessen.
Abspielen geht, haben einige Projekte bewiesen.
Aber was ist mit den Filtern? Vergessen oder habe ich gute Karten das
zum laufen zu bringen?
Gerhard hast Du ein Paar Quellen über die Rechenoperationen und dem
Speicherbedarf von Filtern?
Ich bin glaube ich zu Blind, ich finde nichts.
Mit ADC/DAC meinte ich die SSC-Ports. Zur Machbarkeit der Filter, das
kommt darauf an wie viele Ein- und Ausgangskanäle du verarbeiten willst
und wie steil der Frequenzgang werden soll. "Vergessen" musst du es
nicht.
Ah ein Lichtblick!
Nun ich denke ich komme in Stereo rein (also 2 Signale rein) und gehe
mit 1-2 * Stereo raus (also 2-4 Signale raus). Was auch gut wäre ist
noch ein Subwoffer Ausgang (+1 Out Signal mehr).
Das ich mehr brauche kann ich mir nicht vorstellen, soll ja kein Dolby
7.1 System werden. Das soll nur eine Frequenzweiche werden mit der
Möglichkeit das Signal zu verbiegen oder wenn das nicht machbar ist
dann wenigstens ein Filter ( nur ab X Hz das Signal Ausgeben).
Die Filter???? Nun ich denke das da Filter in der Qualität einer Analog
Weiche reichen würden. Klar wäre es gut wenn mann die wildesten Filter
machen könnte, aber das tut nicht not.
Für MP3 würde ich Dir den AVR32 empfehlen. Hat sogar einen DSP drauf.
Zusätzlich bei Bedarf: kostenlosen TCP/IP/ USB / Stack und eine
kostenlose DSP Library, DMA, und wenn willst auch nen RTOS. USB Host
dann klemmst einfach ne SD Karte dran und gut ist. Und die Eclipse IDE
nicht vergessen mit kostenlosem GCC. Ich denke 20MHz würden für MP3
ausreichen...
Der AVR32 hat keinen USB-Host. SD-Karten kann man aber anschließen. Er
hat auch keinen DSP on chip, sondern vielmehr einige DPS-ähnliche
Befehle in seinem Befehlssatz.
Für einfache Audio-Anwendungen könnte er vermutlich ausreichend schnell
rechnen.
Um so gut wie gute Analog-Filter zu werden, braucht man einiges an
Rechenleistung. Wenn das Signal nicht ohnehin schon digital vorliegt,
macht es meistens keinen Sinn, digital zu filtern. Bedenke auch die
Lautstärkestellung. Bei einer Drei-Kanal-Stereo-Frequenzweiche
bräuchtest du ein sechsfach-Poti. Digitale Lautstärkestellung ist so
eine Sache, da verlustbehaftet.
> Aber was ist mit den Filtern? Vergessen oder habe ich gute Karten> das zum laufen zu bringen?
Ich wuerde lieber einen FPGA nehmen. Filtern an sich ist nicht so
aufwendig, weder fuer einen DSP noch fuer einen FPGA. Aber du willst
ja eine ganze Menge Filter mit moeglichst hoher Ordnung gleichzeitig
laufen lassen. Da scheint mir ein FPGA die sauberste Loesung zu sein
weil da die Gleichzeitigkeit systemimanent ist.
Olaf
Erst mal gilt es herauszufinden, welche Filter (Biquad, FIR, ...) mit
welcher Ordnung und Genauigkeit für die gewünschte Frequenzweiche nötig
sind. Danach kann man sich Gedanken um die Implementierung machen. Ein
FPGA ist für ein paar Audio-Filter jedenfalls Overkill, das macht jeder
kleinere DSP nebenbei.
Hi,
danke für die Antworten.
Ich werde entweder einen Arm7 nehmen, weil ich den halt gerade erst
kennengelernt hatte und für das was ich machen will reichen wird.
Oder nur einen AVR und die SD card vergessen.
Für die Filter habe ich eine Super Alternative gefunden, es gibt doch
die TAS3103A und die kosten nicht viel.
DSPs wären zwar auch gut aber da habe ich einfach null Erfahrung.
Hat da TI beim TAS3103A von Alesis übernommen? Die kommen mir so extrem
ähnlich vor. Sogar die Nummer in der Bauelementbezeichnung ist gleich.
Gruß -
Abdul