Forum: Digitale Signalverarbeitung / DSP / Machine Learning Geeigneter DSP für Audiosignalverarbeitung


von Paul H. (powl)


Lesenswert?

Hi,

erstmal nur zu inspiration wollte ich fragen, welchen DSP ihr mir zur 
Audiosignalverarbeitung empfehlen würdet.

Was ich damit vor habe:
- Einlesen von 2 Audiosignalen über ADCs
- Verschiedene Filter anwenden, FFT, iFFT... usw..
- Einige LEDs ansteuern zwecks Aussteuerungsanzeige
- Splitten der 2 Audiosignale in 4 oder 5 (Frequenzweiche)
- Ausgeben von bis zu 5 Audiosignalen über DACs

Was er dafür können muss:
- Genug Interfaces bereitstellen, am besten mehrere I2S zur einfachen 
Anbindung von DACs und ADCs
- Programmierbar in C
- Kostenloser Compiler
- Vernünftige Developmentboards verfügbar
- Bezahlbare Programmieradapter verfügbar
- Stand-Alone Betrieb ohne, dass man noch externe RAM-Bausteine und so 
einen Quatsch braucht (abgesehen von den DACs und ADCs..)
- Genug Rechenpower damit man nicht so schnell in Resourcenknappheit 
gerät
- Einigermaßen vernünftige Doku
- FPU?

Da ich fast keine Erfahrung mit DSPs habe (beschäftige mich jedoch grade 
mit dem TMS320F28069 von TI, der ja oben genannte Kriterien bis auf die 
I2S-Schnittstellen und evtl die Rechenpower ganz gut zu erfüllen 
scheint.. naja die Doku ist auch etwas unübersichtlich) hoffe ich 
darauf, dass es da einige DSPs gibt, die die genannten Kriterien 
erfüllen.

lg PoWl

von hans (Gast)


Lesenswert?

Die xCore von XMos könnten da passen:

http://www.xmos.com/

Mehr Cores -> mehr Kanäle ;)

hans

von atmeltierchen (Gast)


Lesenswert?

Das könnte vielleicht sogar noch fast mit dem STM32 hinhauen.

von Frank K. (fchk)


Lesenswert?

Früher, so vor 20 Jahren, waren die DSP56002 für Audiosignalverarbeitung 
sehr beliebt, und zwar wegen ihrer 24 Bit Wortbreite und drei 
Adressräumen, auf die zeitgleich zugegriffen werden kann, nämlich P, X 
und Y - das ist genau richtig für Audio. Diese Teile gibts immer noch, 
wenngleich sie auch schneller geworden sind. Aktuell ist der DSP56721, 
Dual Core 200MHz.

Wie gut die C-Compiler für diese Architektur geworden sind, kann ich 
nicht sagen, ich habe alle in Assembler gemacht, um die Daten möglichst 
günstig auf X und Y Memory verteilen zu können.

http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=DSP56721&nodeId=0127959D9D

fchk

von Paul H. (powl)


Lesenswert?

Mal eine Frage.. bin ich für Mehrkanal-Audioverarbeitung eignetlich 
drauf angewiesen, dass ich mehrere I2S-Schnittstellen habe? Welche 
Alternativen habe ich?

Habe da zum Teil schon Mehrkanal Audio-Codecs entdeckt, welche 
Schnittstellen brauchen diese üblicherweise?

Sind das einfach nur integrierte Mehrfach DACs/ADCs? Was können übliche 
Audio-Codecs sonst noch so?

von Ingo (Gast)


Lesenswert?

Kenne mich mit DSP zwar nicht aus, aber ist der STM32F4 nicht genau 
dafür? Hat alles was du brauchst und ist sau günstig!



Ingo

von Frank K. (fchk)


Lesenswert?

Paul Hamacher schrieb:
> Mal eine Frage.. bin ich für Mehrkanal-Audioverarbeitung eignetlich
> drauf angewiesen, dass ich mehrere I2S-Schnittstellen habe? Welche
> Alternativen habe ich?

I2S ist ja nur ein Spezialfall. Was Du brauchst, ist "Framed SPI", wo Du 
neben den seriellen Datenleitungen nicht nur einen Bit Clock, sondern 
auch einen Frame Clock hast. Der Frame Clock zeigt an, wann ein Frame 
anfängt. Ein Frame kann 2, 4, 8 oder auch mehr Audiokanäle haben, und 
die Wortbreite jedes Audiosamples kann auch variieren. Auch die 
Phasenlage und das an-aus-Verhältnis des Frame Clocks kann variieren.

I2S bezeichnet eine ganz bestimmte Kombination aus Parametern und ist 
grundsätzlich nur für Stereo ausgelegt. Andere Settings (in den 
Datenblättern als "left justified" und "right justified" bezeichnet) 
sind prinzipiell auch für mehr Kanäle geeignet.

Es gibt auch Bausteine, wo zur Erhöhung der Kanalzahl die Anzahl der 
Datenleitungen erhöht wird.

fchk

von Frank K. (fchk)


Lesenswert?

Ingo schrieb:
> Kenne mich mit DSP zwar nicht aus, aber ist der STM32F4 nicht genau
> dafür? Hat alles was du brauchst und ist sau günstig!

Nicht unbedingt. Die Cortex M4 haben zwar DSP-Erweiterungen, sind aber 
trotzdem nicht erste Wahl. Ein Beispiel:

Für FIR-Filter ist ein Multiply-and-Accumulate Befehl essentiell. Der M4 
hat zwar einen, aber der Akku ist eben ein normales 32 Bit Register, und 
das kann bei längeren FIR-Filtern leicht überlaufen. Der DSP56k hat 
jedoch 56-Bit Akkus, und das ist hier wichtig.

Anderes Beispiel: Die getrennten X und Y Adressräume sind bei vielen 
Rechenoperationen sehr nützlich. Die haben eigene Adress- und 
Datenbusse, d.h. der Prozessorkern kann GLEICHZEITIG eine Variable aus 
dem X-Speicher und den zugehörigen Koeffizienten aus dem Y-Speicher 
holen, während der nächste Befehl aus dem P-Speicher kommt, der 
ebenfalls einen eigenen Adress- und Datenbus hat.

Etc etc. DSPs haben an vielen Ecken und Enden Optimierungen für die 
üblicherweise verwendeten Algorithmen bekommen. Klar, prinzipiell kannst 
Du auch alles auf einem Allzweck-Controller machen, aber eben entweder 
nicht so schnell oder nicht mit dem Energiebedarf.

Prinzipiell konntest Du früher auch ohne 8087 Coprozessor leben, aber 
mit war Dein Programm einfach schneller fertig, sofern es den benutzt 
hat.

fchk

von Kurt H. (Firma: KHTronik) (kurtharders)


Lesenswert?

Ich habe mich in Deiner Situation für den ADSP21262 von Analog Devices 
entschieden. Evalutionboard fand ich preislich OK, zumal es recht 
brauchbare Funktionalität (Codec...) bietet. Die Leistung sollte für 
viele Anwendungen reichen und für mich war die flotingpoint-verarbeitung 
wichtig, um mich um die int-Skaliererei zu drücken :-).
Einziges Problem wäre der kostenpflichtige Compiler. Die 
Evaltions-Lizenz gilt für 90 Tage, man kann dann noch einmal 90 
kostenlos ergänzen. Der Support bei ADC ist da sehr flexibedl.
Schau Dir auf jeden Fall mal das Datenblet an.
Das Minimalsystem besteht aus DSP, SPI-EEPROM und Codec. Ich habe mit 
dem System meine Hörhilfe endlich vernünftig umsetzen können.
Viel Spaß, Kurt

von Paul H. (powl)


Lesenswert?

Läuft der Compiler nach Neu-Aufsetzen des Systems wieder oder meldet der 
sich online an? Was kostet der denn wenn man ihn kaufen sollte?

Kostenpflichtig ist halt so ne Sache, obwohl der DPS offenbar ziemlich 
gut geeignet ist und das Board auch alles hergibt, was ich mir wünsche.

Trotzdem wäre mir was kostenloses doch lieber, nen Audio-Codec krieg ich 
mi tnem vorhandenen System sicher noch verbunden ;)

von Kurt H. (Firma: KHTronik) (kurtharders)


Lesenswert?

Hallo Paul,
für mich waren die Funktionen des Boards der entscheidende Faktor. Ich 
habe kein anderes so gut auf Audioverarbeitung getrimmtes Board 
gefunden. Meine Softwareentwicklung hat damit richtig gut funktioniert.
Ob man das Datum rücksetzen kann weiss ich nicht, da das für mich aus 
verschiedenen Gründen nicht anstand. ADC ist aber, wie schon 
geschrieben, großzügig mit den Lizenzen.
Eine Arbeitsplatzlizenz mit der neuen CCES-Version kostet 950,00€. Die 
VisualDSP-Versionen waren deutlich teurer. Da ich sowieso mit eclipse 
arbeite, ist mir die CCES-Version sehr willkommen, auch wenn sie noch 
nicht den Standard anderer C-Umgebungen unter eclipse erreicht hat.
Frag doch einfach mal bei ADC an. Du wirst Dich wundern, wie prompt und 
kompetent die antworten.

Grüße, Kurt

von Martin (Gast)


Lesenswert?

Um noch einmal kurz auf dem Eröffnungspost zurückzukommen, ich habe mit 
dem tms320f28069 für Audioanwendungen ganz gute Arfahrungen gemacht.

Dieser AppNote nach sollte sich I2S über die McBSP Schnittstelle 
realisieren lassen, was aber die 100-Pin Version den f28069 voraussetzt.

http://www.ti.com/mcu/docs/litabsmultiplefilelist.tsp?sectionId=96&tabId=1502&literatureNumber=spraaj2&docCategoryId=1&familyId=1414

Ich bin deshalb bei einer kombination der beiden SPI-Schnittstellen 
geblieben um einen I2S ADC anzusprechen.

Zugegebenermaßen ist einiges an Einarbeitungszeit in die Doku von dem 
Teil nötig bis es läuft, aber ich denk das wird bei anderen Plattformen 
nicht besser sein.
Von der Rechenleistung her lässt sich damit einges Anfangen. Mit ca. 50% 
CPU- und 80% RAM-Auslastung habe ich einen 1024 Punkte Fließkomma 
FFT/iFFT Faltungsalgorithmus realisiert, der ein 96kHz Signal 
verarbeiten kann. Sehr interessat wäre noch der CLA Coprozessor, aber 
bis der in C programiert zuverlässig arbeitet vergingen einige Nächte.
Weniger problematisch stellte sich die Verwendung der HRPWM-Einheit 
heraus, mit der man Class-D Enstufen direkt ansteuern kann, da sie bei 
150 kHz eine Auflösung von ~15Bit bieten kann.


Gruß Martin

von ./. (Gast)


Lesenswert?

> 80% RAM-Auslastung habe ich einen 1024 Punkte

80 kByte fuer 1024 Punkte?

von Martin (Gast)


Lesenswert?

ich müsste nochmal genau nachsehen wie viel es genau war, aber da kommt 
einiges zusammen da Fleißkommazahlen mit 4 Bytes nicht gerade sparsam 
sind.  Gäbe sicher auch Optimierungsmöglichkeiten, aber es gibt
- 2 Eingangnspuffer(2*1024)
- komplexer Puffer doppelter Länge für das transformierte Signal 
(4*1024),
- Impulsantwort mit der gefaltet werden soll (1024)
- twiddelfactor (1024)
- overlap buffer (2*1024)
- output buffer (2*1024)

....


kommt also schon hin, aber alles immernoch um Längen schneller als ein 
direkter FIR Filter.

von gq35z35h (Gast)


Lesenswert?

Wir fahren hier mit dem ADSP21469 (SHARC, Phönix) ganz gut.

http://www.analog.com/static/imported-files/product_highlights/SHARC_Proc_Family_(C)_Final.pdf

von Audio Hans (Gast)


Lesenswert?

Welche Bandbreiten verarbeitet ihr?

von Kurt H. (Firma: KHTronik) (kurtharders)


Lesenswert?

Hallo Hans,
bei meiner Anwendung des ADSP-21262 verwende ich 48kHz Samplerate. Jedes 
Sample durchläuft maximal 12 Biquad-Filter (float) und zwei Kompressoren 
(Peak). Damit ist der Prozessor ca. 20% ausgelastet.
Grüße, Kurt

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Brauchst Du nur die DSP-Plattform oder auch die AD-Wandler? Ich habe 
gerade eine IO-Karte für mein Masterkeyboad entdeckt, dass nur 175,- 
kostet, einen DSP drin hat (keine Ahnung welchen) aber die komplette 
IO--Seite (2x Input + 2x Output mit jeweils S/PDIF und Analog mit 
24/192). Fertig gebaut mit (symmetrischen ?) 6,3er Klinken und Cynch für 
digital. MIDI kann das Viech wohl auch noch.

Das ist ein Einsteckkarte und braucht wohl nur noch Strom. Ankoppeln 
kann man es sicher, gfs auch die FW für den DSP austauschen.

Ich werde mir das mal zulegen und berichten.

http://www.thomann.de/de/cme_uf400e.htm

von Michael W. (Gast)


Lesenswert?

Kurt Harders schrieb:
> bei meiner Anwendung des ADSP-21262 verwende ich 48kHz Samplerate. Jedes
> Sample durchläuft maximal 12 Biquad-Filter (float) und zwei Kompressoren
> (Peak). Damit ist der Prozessor ca. 20% ausgelastet.

Hallo Kurt, ich gehe davon aus, dass Du der hier bist:
Beitrag "Partner für ein DSP-Audio-Projekt"

Was heisst "maximal 12"?  Wenn das dynamisch ist, wäre es ja keine 
Aussage über die Leistung. Wiviele Filterberechungen dieser Art sind 
denn insgesamt möglich? Und bei welcher Auflösung?

Jürgen S. schrieb:
> gfs auch die FW für den DSP austauschen.
Viel Spass, wenn Du dafür keine Umgebung hast.:-)

Martin schrieb:
> einen 1024 Punkte Fließkomma
> FFT/iFFT Faltungsalgorithmus realisiert, der ein 96kHz Signal
> verarbeiten kann.
Bezieht sich die Aussage auf jeweils eine FFT mit 1024 Punkten Block von 
1024 ankommenden Daten?

Wie werden die gepuffert, oder entstehen da Lücken?
Was ich meine ist, dass die Berechnung erst einsetzen kann, nachdem die 
96kHzx1024 Daten eingegangen sind.

von Kurt H. (Firma: KHTronik) (kurtharders)


Lesenswert?

Hallo Markus,

Markus Wagner schrieb:
> Hallo Kurt, ich gehe davon aus, dass Du der hier bist:
> Beitrag "Partner für ein DSP-Audio-Projekt"
>
> Was heisst "maximal 12"?  Wenn das dynamisch ist, wäre es ja keine
> Aussage über die Leistung. Wiviele Filterberechungen dieser Art sind
> denn insgesamt möglich? Und bei welcher Auflösung?

Der bin ich und das Projekt ist in der Abschlussphase des Prototyps.

Maximal 12 heisst, dass sich bei der Berechnung der Filter je nach 
Audiogramm verschiedene Filteranzahlen ergeben.

Grüße, Kurt

PS: wenn Dich das Projekt ernsthaft interessiert, melde Dich per PM.

von Markus F. (Gast)


Lesenswert?

Wir setzen TMS320 Typen von TI ein. Ist zwar für Video, sollte aber auch 
fürs lahme Audio passen.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

M. Fritsch schrieb:
> sollte aber auch  fürs lahme Audio passen.
Du würdest Dich wundern, welche Anforderungen das "lahme Audio" so hat. 
:-)

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.