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
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
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?
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
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
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
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
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 ;)
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
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
> 80% RAM-Auslastung habe ich einen 1024 Punkte
80 kByte fuer 1024 Punkte?
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.
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
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
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
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.
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.
Wir setzen TMS320 Typen von TI ein. Ist zwar für Video, sollte aber auch fürs lahme Audio passen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.