Forum: Digitale Signalverarbeitung / DSP / Machine Learning DSP-System für Audioverarbeitung, wie Komponenten aussuchen?


von Etit-Student (Gast)


Lesenswert?

Für meien Master-Thesis würde ich gerne ein DSP-System zur 
Audiosignalverarbeitung entwickeln. Das System soll über zwei unbalanced 
Eingänge und vier oder sechs unbalanced Ausgänge verfügen. Im DSP sollen 
dann 2- oder 3-Wege Stereo-Frequenzweiche, Parametrische Equalizer, 
Kompressor, Limiter und Subharmonic synthesizer implementiert werden. 
Die Verarbeitung soll in Audiotypischer Samplerate und mit 24Bit 
erfolgen. Desweiteren sollen noch ein LCD-Display und ein LED-VU-Meter 
angesteuert werden. Über einen I2S-Eingang soll es möglich sein, ein 
digitales Stereo-Signal einzukoppeln (beispielweise aus einem 
Bluetooth-Audio-Empfänger)

Die Masterarbeit ist noch nicht angemeldet und steht noch ein wenig in 
zeitlicher Ferne. Dennoch würde ich mich gerne schon mal mit der 
Machbarkeit dieses Vorhabens auseinandersetzen.

Praktisch gesehen werde ich einen DSP-Prozessor auswählen, DACs und ADCs 
wählen, die Platine dafür entwickeln und die genannten Features in 
Software implementieren. Wenn ich im Zuge der Masterarbeit nicht alle 
Features implementiert bekomme weil die Zeit fehlt ist das ok, das 
System sollte aber Leistungsfähig genug sein, um die fehlenden Features 
später problemlos nachrüsten zu können, da ich es für private Zwecke 
weiter verwenden und ausbauen möchte.

Nur wie fängt man da an? Ich nehme an, zuerst suche ich mir einen 
passenden DSP-Prozessor aus. Kostenloser C-Compiler ohne Codegrößen-, 
Laufzeit- oder Codeoptimierungsbeschränkung ist sicher pflicht. Nun habe 
ich aber 1x Stereo Analog In, 1x I2S In, und 3x Stereo Analog Out. D.h. 
Ich benötige entsprechend viele Hardware-Kommunikationsschnittstellen am 
DSP. Beim Stöbern ist mir jedoch aufgefallen, dass das gar nicht 
unbedingt so üblich zu sein scheint. Da ist dann von 2..3 
I2S-Schnitstellen die Rede, benötigen würde ich aber gleich mal 5. 
Wieder andere DSPs verwenden andere Schnittstellen oder z.B. TDM, 
welches aber nur in Verbindung mit einem größeren all-in-one Codec zu 
gebrauchen sein dürfte und damit die Auswahl an benutzbaren Bauteilen 
einschränkt, da das meiste ja für I2S zu bekommen sein dürfte. Habe ich 
nur an der flaschen Stelle gesucht?

Nach welchen Kriterien also sollte ich einen DSP aussuchen?

Gruß, ein Etit-Student

von Mark B. (markbrandis)


Lesenswert?

Etit-Student schrieb:
> Nun habe
> ich aber 1x Stereo Analog In, 1x I2S In, und 3x Stereo Analog Out. D.h.
> Ich benötige entsprechend viele Hardware-Kommunikationsschnittstellen am
> DSP. Beim Stöbern ist mir jedoch aufgefallen, dass das gar nicht
> unbedingt so üblich zu sein scheint. Da ist dann von 2..3
> I2S-Schnitstellen die Rede, benötigen würde ich aber gleich mal 5.

Nicht unbedingt.

Die reine Signalverarbeitung ist das eine. Das Routing der Signale ist 
das andere. Beides kann, muss aber nicht im gleichen Gerät stattfinden. 
Stichwort: Matrix mixer https://en.wikipedia.org/wiki/Matrix_mixer

Mir scheint, Du willst quasi so etwas bauen? 
http://www.extron.de/product/printable.aspx?id=dmp64

von Etit-Student (Gast)


Lesenswert?

Nach Möglichkeit wollte ich gerne alles in einem Baustein erledigen, 
sonst handle ich mir wieder zusätzlichen Overhead mit der Kommunikation 
zwischen Router und Prozessor ein, das wird dann alles wieder eine 
Nummer komplizierter.

von Etit-Student (Gast)


Lesenswert?

Ach ja, die Verarbeitung sollte mit 96kHz Samplerate erfolgen damit das 
Antialiasing- und Rekonstruktionsfilter einfach gehalten werden kann. 
Die Samplingtiefe soll 24Bit betragen um genug Headroom auch für hohe 
Eingangspegel zu erhalten.

von Egal (Gast)


Lesenswert?

Hallo,

ich bin gerade an einem ähnlichen Projekt dran:

Grundsätzlich gibt es im großen und ganzen drei Möglichkeiten das 
irgendwie zu realisieren.

1.
Es gibt Audio-DSPs wo alles auf einem einzigen IC integriert ist. z.B. 
der ADAU1701. AD an Board, DA an Board, bis zu 8 digitale Audio Ein- und 
Ausgänge. TI hat da auch paar ähnliche Chips.

Konfiguration bei dem ADAU z.B. erfolgt graphisch, dass du dir da einen 
Signalpfad zusammenkonfigurieren kannst.



2.
Du baust dir ein eigenes DSP-System auf. Mit eigenen AD-Wandlern, 
eigenen DA-Wandlern und einem dickeren DSP-Baustein.
Das sind dann DSPs, die du wenn du willst direkt in einer Sprache wie 
z.B. C Programmieren kannst, wenn du willst um deine eigenen 
Filteralgorithmen zu implementieren.
Von der Komplexität natürlich eine deutliche Stufe über das wie in 1.
Du musst ne PLL mit drauf machen um die Master-Clock zu generieren, 
musst beim Leiterplattenlayout ein bisschen aufpassen.


3.
Du machst das ganze wie in 2. nimmst aber einen FPGA als Baustein und 
baust dir deinen DSP per Hardwaresprache zusammen.
Paramter können ja z.B. über ein I2C Modul von außen trotzdem geändert 
werden.

von derguteweka (Gast)


Lesenswert?

Moin,

Ich schaetz' die Zeitdauer fuer so eine Masterarbeit mal auf <=6 Monate. 
In dieser Zeit kann man nicht allzuviel wuppen. Nochdazu weil man ja 
auch noch Zeit braucht, dan ganzen Kram auf viele Seiten Papier zu 
bringen, sich mit der Textverarbeitung entsprechend 
auseinandersetzen,etc. bla.
In dieser Zeit ein komplettes HW-Design eines Multilayer-PCBs ggf. noch 
mit DDRx-SDRAM Interface, also impedanzkontrollierten Bussen... 
eieiei... das ist "ambitioniert".
Davon ausgehend wuerd' ich eher die Sache andersrum aufziehen: Welche 
Bausteine lassen sich moeglichst simpel auf ein Board bringen? welche 
Erfahrungen beim Erstellen von Layouts hab' ich, die Hochschule? welches 
Gehaeuse haben die Bausteine, kann ich das ueberhaupt "verschaffen"?

Beispiel: Die popeligsten DSPs vom TI, C55x Serie kommen im 0.65mm bzw. 
0.8mm Pitch BGA Gehaeuse daher. Da ist erstmal voellig wurst, ob die 
24bit oder 25.3 bit Audiosamplebreite koennen - da musst du erstmal ein 
Board routen (lassen), fertigen (lassen) und bestuecken (lassen) 
koennen, bevor das interessant wird...

Gruss
WK

von Egal (Gast)


Lesenswert?

Aber mal eine Frage:

Audio-DSPs mit zwei Eingängen und vier/sechs Ausgängen gibts doch schon 
seit Jahren in allen Möglichen Variationen für Industrieeinsatz, 
ELA-Technik, CarHifi, Veranstaltungstechnik, Hifi, etc... zu kaufen?

Wo ist da der Reiz eine Master-Thesis drüber zu schreiben?

von Etit-Student (Gast)


Lesenswert?

Variante 1 und 2 scheinen mir am praktikabelsten.

Variante 1 ist natürlich interessant bezüglich der einfachen 
Realisierung, allerdings schätze ich, dass ich da einfach zu beschränkt 
in meinen Möglichkeiten bin. Kann man da einfach eine I2S-Quelle 
anschließen? Kann man einfach mitten im Verarbeitungspfad die Audiodaten 
abgreifen und eigene Berechnungen damit nebenher durchführen um ein 
VU-Meter zu realisieren? Sind so etwas wie Kompressor und Subharmonic 
Synthesizer damit überhaupt konfigurierbar oder muss man sich das dann 
selber zusammencoden? Und wenn letzteres: Hat man überhaupt die 
Möglichkeit, eigene Algorithmen zu implementieren?

Wie läuft das eigentlich ab mit diesem SigmaStudio. Klickt man sich da 
einfach nur alles zusammen und flasht es auf den DSP und das wars dann? 
Oder Generiert SigmaStudio lediglich Code, den man dann noch nach 
belieben Verändern und (um die genannten Features) erweitern kann? Sind 
das also Closed-Source Fertigbausteine oder sind die frei 
programmierbar?

Variante 2 ist, falls mich Variante 1 jetzt nicht gerade noch umhaut, 
eher das, was ich möchte. Die Masterarbeit soll ja auch einen gewissen 
Anspruch erfüllen, außerdem möchte ich mit dem System wirklich flexibel 
sein.

Im Zuge der Masterarbeit reicht es, wenn der DSP ein fixes Routing mit 
Frequenztrennung übernimmt!

Alles weiteren Features kann ich dann in Eigenregie nach der 
Masterarbeit noch implementieren. Das ist auch der Grund warum ich 
überhaupt ein eigenes System entwickeln möchte. Die ganzen kaufbaren 
Systeme bieten eine Reihe an Features, sind aber darüberhinaus nicht 
anpassbar und alle closed-source. Ich möchte jedoch maximale 
Flexibilität und die Freiheit, ein bereits lauffähiges System beliebig 
anzupassen und jeden erdenklichen Algorithmus implementieren zu können, 
sei es Level-Meter, BPM-Erkennung, Limiter oder Subharmonic Synthesizer.

Dementsprechend muss der DSP natürlich genug Leistungsreserven haben um 
bei 24bit/96khz all diese Verarbeitungsalgorithmen auf 4 Kanälen 
bereitstellen zu können. Zum gegenwärtigen Zeitpunkt habe ich noch 
überhaupt keine Vorstellung, wie viel Rechenleistung dafür in der Praxis 
tatsächlich notwendig ist. Am ärgerlichsten wäre es, am Ende ein 
lauffähiges System zu haben, in das ich mich bereits eingearbeitet habe, 
aber dann nicht alles implementieren zu können, da die Rechenleistung 
nicht ausreicht.

Auf superkomplexes Hardware-Design möchte mit >2-Layer-Platinenlayout 
muss ich natürlich während der Masterarbeit verzichten. Hersteller 
professioneller DSP-Systeme die meinen oben genannten Anforderungen 
genügen schaffens aber auch ohne, dass deren Platinen nach 
Raketentechnik aussehen, das gibt mir Hoffnung :-)

von Mark B. (markbrandis)


Lesenswert?

derguteweka schrieb:
> 25.3 bit Audiosamplebreite

:-)

von Egal (Gast)


Lesenswert?

Am einfachsten wird sein, du beschaffst dir ein evaluation Board.
Da gibts ja einige im Audio-Bereich.


Schau dir doch mal z.B. so einen DSP von Behringer an, hat 3 Ins, 6 Out 
so wie du es brauchst.


http://s130.photobucket.com/user/dropped99silverado/media/Avalanche/SAM_0353.png.html

Schau dir mal die Platine in der Mitte an, was ich da schonmal sehe ist 
ein minimum 144 Pin Sharc-DSP, wenn nicht wahrscheinlich eher noch mehr 
Pins und externe Ram-Bausteine und extern AD und DA Wandler.

Die Platine wird minimum mal 4 Layer haben.

Die Beschaffung der Bauteile sollte jetzt nicht so schwer werden.


Aber bis das alles sauber läuft ist das normalerweise ein Projekt wo 
gerne mal 2-3 erfahrene ING's ein Jahr lang beschäftigt werden können.

von Mark B. (markbrandis)


Lesenswert?

Egal schrieb:
> Am einfachsten wird sein, du beschaffst dir ein evaluation Board.
> Da gibts ja einige im Audio-Bereich.

Sehe ich auch so. Hardware und Software von Grund auf zu erstellen und 
alles sauber zu dokumentieren - dafür wird die Zeit vermutlich nicht 
reichen.

von Etit-Student (Gast)


Lesenswert?

huh, 4-6 Entwicklungsjahre Vollzeit um eine Platine für einen DSP mit 
DACs und ADCs zu entwickeln und eine Frequenzweiche zu implementieren? 
Ist das nicht etwas viel? :-O

Sobald man sich die Komponenten zusammengesucht und die Platine designt 
hat kann man ja schon beginnen, einen simplen Allpass zu implementieren, 
soll heißen den Eingang direkt auf den Ausgang routen. Die restlichen 
Features können dann so nach und nach implementiert werden. Wie gesagt 
reicht für die Masterarbeit ein Minimum Signalverarbeitungstechnischem 
Umfang, also ein paar einfache IIR-Filter völlig aus. Ziel der Sache ist 
ja nur, im Rahmen der Arbeit ein nachhaltiges System zum hobbymäßigen 
weiterentwickeln zu schaffen. Insofern wäre mir die Entwicklung einer 
Platine schon ganz recht.

Mit einem Devboard allerdings könnte ich natürlich schnell erst mal 
lauffähige Ergebnisse produzieren, mich völlig auf die Software 
konzentrieren, Features implementieren und dann später, außerhalb der 
Thesis mich an die Entwicklung einer eigenen Platine machen. Lieber 
wär's mir aber umgekehrt.

Zugegeben habe ich nur wenig Erfahrung darin, was (neben Thesis 
schreiben) zur Entwicklung einer Lauffähigen Platine und einer 
minimalimplementierung eines IIR-Algorithmus alles an Arbeitsschritten 
erforderlich ist. Vor allem die Einarbeitung in den DSP wird dauern. 
Meine bisherige Erfahrung beläuft sich auf das Design einfacher Platinen 
und die Programmierung von Atmel 8-Bit Mikrocontrollern.

von Andreas H. (ahz)


Lesenswert?

Etit-Student schrieb:
> Kostenloser C-Compiler ohne Codegrößen-,
> Laufzeit- oder Codeoptimierungsbeschränkung ist sicher pflicht.

Wenn Du einen findest, dann sag Bescheid ;-)

Etit-Student schrieb:
> huh, 4-6 Entwicklungsjahre Vollzeit um eine Platine für einen DSP mit
> DACs und ADCs zu entwickeln und eine Frequenzweiche zu implementieren?
> Ist das nicht etwas viel? :-O

Nein, ist es nicht. DSP ist "etwas" komplexer als ein Arduino. Aber das 
haben die Anderen Dir auch schon geschrieben.

Grüße
Andreas

von Falk S. (db8fs)


Lesenswert?

Etit-Student schrieb:
> huh, 4-6 Entwicklungsjahre Vollzeit um eine Platine für einen DSP
> mit
> DACs und ADCs zu entwickeln und eine Frequenzweiche zu implementieren?
> Ist das nicht etwas viel? :-O

Unterschätze die Komplexität nicht. Ein Produkt, wofür jemand Geld 
bezahlen soll, ist was anderes als eine schnell zusammengehackte 
Bastelplatine. Du hast Lieferzeiten von Bauteilen und PCBs, u.U. 
Bauteilabkündigungen, womöglich noch Bugs im Layout, musst vielleicht 
noch CE-/EMV-Prüfungen machen. Den selben Spaß hast du dann nochmal bei 
der Software - mal passt was in der Buildumgebung nicht, mal kämpfst du 
mit Prozessor-spezifischen Eigenarten, dann stellst du womöglich fest, 
dass deine Software zwar funktioniert und Grundanforderungen erfüllt - 
aber mehr auch nicht. So kann deine Appliance bei dir funktionieren, 
beim Kunden aber womöglich dessen Anforderungen überhaupt nicht 
erfüllen. Alleine die Planung, welche Anforderungen du erfüllen willst 
und auch welche du nicht erfüllen willst, kostet Zeit.

Der Lebenszyklus eines richtigen Produkts - egal ob Hardware oder 
Software - ist halt mehr als nur mal fix 'ne Schaltung zusammengeklickt 
und schnell noch drei, vier Funktionen zusammengeschrieben.

von Strubi (Gast)


Lesenswert?

Tach,

wo ist das Problem?
Die üblichen Verdächtigen können das schon lange. Ein gutes altes 
Blackfin BF533 EZKIT hat entsprechende HW gleich schon drauf. Da gehen 
Stereo in und 6 Kanal out.
Da du aber noch die Platine machen willst: mit unter 4 Lagen ist da nix. 
Du könntest höchstens die Ansprüche etwas herunterskalieren (würde ich 
mal so raten) und eine kleinere Variante, die noch gut lötbar ist, 
einsetzen, z.B. den BF592.
Und zum Thema Compiler: GCC ist immer noch kostenlos und nicht 
beschränkt in der Codegrösse. Damit fällt die Auswahl schon mal leichter 
:-)
Nur bei den Debug-Tools gibt's halt deutliche Preisunterschiede und ADI 
war in den letzten 10 Jahren gut darin, eine Menge Konfusion mit 
unterschiedlichen, zueinander nicht kompatiblen Tools zu schaffen. Ist 
aber beim anderen Platzhirsch TI nicht besser.

von Horst (Gast)


Lesenswert?

Sag mal an welcher Uni kann man denn eine Masterarbeit (!) einfach nach 
eigenen Hobbyprojekten anmelden, die so gut wie keinen 
wissenschaftlichen Anspruch haben?

Und das soll dann gleichwertig mit einem Masterabschluss sein, der 
tatsächlich aktuelle Forschungsthemen in der Arbeit zum Thema hatte und 
wo der Masterand etwas zwar einfaches, aber neues macht?

von Rolf S. (audiorolf)


Lesenswert?

Etit-Student schrieb:
> Das System soll über zwei unbalanced
> Eingänge und vier oder sechs unbalanced Ausgänge verfügen

Mit der Festlegung schießt Du Dein Audio-System schon in die B-Liga.

von Mark B. (markbrandis)


Lesenswert?

Horst schrieb:
> Sag mal an welcher Uni kann man denn eine Masterarbeit (!) einfach nach
> eigenen Hobbyprojekten anmelden, die so gut wie keinen
> wissenschaftlichen Anspruch haben?

Längst nicht jede Diplomarbeit hatte früher einen hoch 
wissenschaftlichen Anspruch. Die Masterarbeiten heute werden da auch 
nicht viel anders sein. Dafür gibt es einfach zu viele "Masteranden" und 
zu wenige Forschungsfelder, auf denen jemand mit Anfang/Mitte 20 
wirklich neue Erkenntnisse zu liefern vermag.

Abgesehen davon: Es muss natürlich immer einen Professor geben, der die 
Arbeit betreut. Wenn der mit dem Thema einverstanden ist, dann kann es 
auch so durchgeführt werden. Wissenschaftlicher Anspruch hin oder her.

: Bearbeitet durch User
von Rolf S. (audiorolf)


Lesenswert?

Mark B. schrieb:
> Längst nicht jede Diplomarbeit hatte früher einen hoch
> wissenschaftlichen Anspruch.

Sehe ich auch so. Schließlich geht es um den Eintritt in das 
Ingenieurleben und was da gemacht wird, ist auch meistens nicht 
wissenschaftlich, sondern es geht um die Nutzung wissenschaftlicher 
Erkenntnisse und Realisation.

Die Frage ist, ob man dann nicht auch mal was bauen sollte, was modern 
ist, also sozusagen on top.

Was ist momentan in der Audiotechnik hipp?

Du studierst in Darmstadt am "Etit"?

Schau Dir mal an, was an den einschlägigen Hochschulen im Bereich Audio 
bzw am ETI in Detmold und der UDK Berlin diesbezüglich gerade gemacht 
wird.

Was Du vorhast, ist alles schon 1000mal da. Bis vielleicht auf den "Sub 
harmonic Synthesizer" dessen Funktion mir in einem Audioprozessor nicht 
ganz einleuchtend ist.

von egal (Gast)


Lesenswert?

Halt wo ist denn die Rede davon dass er in Darmstadt studiert??

Wenn das der Fall ist und er ist an der TU, dann melde dich mal bei 
Prof. Henning, der Audiosignalverarbeitung macht.

So Sachen wie Noice-Cancelation mit Wiener Filter und so ist interessant 
und ein Thema was relativ aktuell ist oder gerichtetes Hören bei 
Hörgeräten.


Den ersten Audio DSP den ich hatte war ein Dynacord dsp224. Baujahr 94.
Das Thema ist echt durch.

von Rolf S. (audiorolf)


Lesenswert?

Google liefert unter ETIT ein Elektrotechnik-Institut in Darmstadt. Ich 
hatte es zudem als Frage formuliert. Liege ich richtig?

von Etit-Student (Gast)


Lesenswert?

Danke für die Beiträge. Ja, es handelt sich um die TU-Darmstadt ;-) Ob 
der zukünftige Betreuer meinen Projektvorschlag so hinnimmt werde ich 
natürlich sehen müssen. Eventuell soll ich mich doch eher mit aktuellen 
Themen beschäftigen. Alles bringt mir am Ende Erfahrung ein, sei es nun 
ein Projekt aus dem aktuellen Forschungsgebiet oder etwas, das seit 20 
Jahren schon tausende Male gemacht wurde. Deswegen ist der Anspruch für 
mich persönlich ja nicht geringer.

Ich verstehe nur eure Aussagen zur Machbarkeit noch nicht ganz. Ich 
wüsste nun wirklich nicht was ich mehrere Jahre bräuchte um einem 
lauffähigen Prototypen eines DSP-Systems mit einfacher digitaler 
Filteranwendung zu erschaffen. Mit einem TI F28069 Piccolo controlSTICK 
habe ich innerhalb von 2 Wochen auch schon mal eine Frequenzbeschränkung 
realisiert. Hier belief sich die Arbeit zugegeben nur auf Einarbeitung 
in den Prozessor, ein bisschen Copy&Paste, was den Code angeht, und die 
Infrastruktur, sprich Platine usw. war auch schon vorhanden. Aber 
angenommen ich fange mit einem Demoboard an und beschränke mich während 
der Masterarbeit erst mal auf die Programmierung und implementiere so 
viel, wie ich schaffe (kann man ja sicher mit dem Betreuer noch 
absprechen). Hinterher kann ich immer noch eine eigene Platine 
etnwickeln. Ich will ja kein professionelles vermarktungsfähiges Gerät 
komplett fertigentwickeln sondern etwas in der DSP-Technik lernen und 
mich damit beschäftigen. Ich denke da über meine Masterarbeit hinaus, 
ich will nachhaltig einarbeiten.

OK, ich sehe es ein, ich schraube meine Ansprüche runter! Für den Anfang 
muss es natürlich kein komplizierterer Prozessor sein als für die 
Berechnung von einigen Filtern mit ein wenig Rechenreserve für ein paar 
weitere DSP-Effekte tatsächlich notwendig ist. 4-Kanal Out reicht ja 
auch. Natürlich wäre es schön, wenn man gleich ein System nimmt bei dem 
die Rechenkapazität quasi unbeschränkt ist, aber nur unter der 
Voraussetzung, dass man sich damit nicht unnötig das doppelte an Aufwand 
aufhalst.

Mal aus Interesse: Wie viel Rechenleistung kann ich von einem STM32F4 
erwarten? Reicht der für 24bit/96kHz Signalverarbeitung oder wird der 
von der Leistung schon arg dünn? Wie kann ich lernen, so was 
abzuschätzen?

von Egal (Gast)


Lesenswert?

Hey melde dich mal bei mir!!!

Ich mache auch grad meinen Master an der TUD und bin ein Audio-Nerd.

Habe aktuell hobbymäßig Projekte in der Richtung am Laufen.

Vlt können wir uns ja mal morgen Nachmittag an der Rennbahn treffen

von derguteweka (Gast)


Lesenswert?

Moin,

Etit-Student schrieb:
> sondern etwas in der DSP-Technik lernen und
> mich damit beschäftigen. Ich denke da über meine Masterarbeit hinaus,
> ich will nachhaltig einarbeiten.

Keine gute Idee, find' ich. Das sind 2 voellig verschiedene Baustellen. 
Mach als Masterarbeit irgendwas eher "simpleres", irgendwas wo das 
Ergebnis fuer dich besser berechenbarer/einschaetzbarer ist als 
irgendwas ganz neues.
Die Note der Masterarbeit wirst du - wenns irgendwie gehakt hat - in 
jeder Bewerbung nach dem Studium erklaeren duerfen. Also sollte da nix 
haken.

"Daheim" kannste dann immernoch vorneweg, neben- und hinterher deinen 
DSP-Kram machen.

Etit-Student schrieb:
> Mal aus Interesse: Wie viel Rechenleistung kann ich von einem STM32F4
> erwarten? Reicht der für 24bit/96kHz Signalverarbeitung oder wird der
> von der Leistung schon arg dünn? Wie kann ich lernen, so was
> abzuschätzen?

Kommt halt immer drauf an, was du machen willst. 24bit/96 kHz, das 
heisst dann aufm ARM: 32bit Datenbreite. Wenn deine CPU mit 100MHz 
laeuft und pro Clockcycle eine Instruktion abarbeitet und es keine 
Waitstates beim Zugriff auf den Speicher gibt, dann hast du also fuer 
deine Verarbeitung eines Samples rund 1000 Takte = 1000 
Assemblerinstruktionen "Zeit". ICh denk' mal - fuer eine popelige 
Frequenzweiche wirds locker reichen. Bei irgendwas mit Korrelationen 
ueber X Samples berechnen, Gleichungssysteme aufloesen um 
Filterkoeffizienten rauszukriegen, mit denen man dann filtern will - da 
koennt's schon enger werden.
Dann ist auch noch interessant, was an Peripherie (I2S Interfaces, 
McBSP, oder wie's auch immer heisst) bei dem Baustein dabei ist - ob die 
das auch unterstuetzt, was du haben willst.


Gruss
WK

von Hobby-Progger (Gast)


Lesenswert?

Mit einem DSP schafft man normal FIR-Addition mit wenigstens einem 
Viertel der Taktfrequenz. Also reicht es für 4 Filter mit z.B. 512 TAPs. 
Das geht bei Audio.

von MaWin (Gast)


Angehängte Dateien:

Lesenswert?

Etit-Student schrieb:
> OK, ich sehe es ein, ich schraube meine Ansprüche runter

Warum solltest du, die waren eh gering.

Stereo rein und 6 Ausgänge raus ist ein dBx driverack.
Dort natürlich professionell mit XLR.

Das Ding tut das alles

"Im DSP sollen dann 2- oder 3-Wege Stereo-Frequenzweiche,
Parametrische Equalizer, Kompressor, Limiter und
Subharmonic synthesizer implementiert werden"

aber noch viel mehr: Es schützt die Lautsprecher vor Überlastung in dem 
es die Belastung mitrechnet und mit Grenzwerten je nach Lautsprecher 
vergleicht.

Es misst die Anlage und den Raum in dem sie steht mit einem Messmikro 
aus und passt Frequenzweiche und Filter an die Kennwerte der verwendeten 
Lautsprecher automatisch an.

Genau wie du "vergessen" hast eine Laufzeitkorrektur einzuplanen, hat 
auch das kleine Modell keine Laufzeitkorrektor, aber das grosse.

http://www.pfleid.de/

Etit-Student schrieb:
> Dementsprechend muss der DSP natürlich genug Leistungsreserven haben um
> bei 24bit/96khz all diese Verarbeitungsalgorithmen auf 4 Kanälen
> bereitstellen zu können. Zum gegenwärtigen Zeitpunkt habe ich noch
> überhaupt keine Vorstellung, wie viel Rechenleistung dafür in der Praxis
> tatsächlich notwendig ist.

Es tun die "erstzunehmenden" DSP von TI oder AD.

Das

Strubi schrieb:
> gutes altes Blackfin BF533 EZKIT

wäre eine gute Basis (da dir Chinch reicht).

Ich würde mich auf die Software beschränken, das fertige Board nehmen.

Richtige VU-Meter sind übrigens auch nicht ganz simpel:
http://www.sengpielaudio.com/VU-MeterEinmessen.pdf

http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.30.2

von Mixing Engineer (Gast)


Lesenswert?

Auf der Webseite finde ich dazu nichts. Ist das board im Vld vom user zu 
programmieren?

von Robert (Gast)


Lesenswert?

Also falls es wen interessiert, ich bin gerade dabei einen Audio-DSP mit 
4*in und 4*out zu machen.

Das wird ein Stm32F407 und zwei SGTL5000 Codecs die Full-Duplex an den 
zwei I2S Ports betrieben werden.


Kann ja dann mal berichten, bin gerade am Routen der Platine...
So wie es aussieht kommte ich sogar mit zwei Layern aus

von Robert (Gast)


Lesenswert?

Hallo,

kurzes Update:

Ich habe heute mal ein STM32F4 Discovery-Board genommen (mit dem 
f407vgt6 drauf) und habe daran das audio-shield des teensy 3.x dran 
gemacht (da ist ja ein SGTL5000) drauf.

Habe dann den Startup-Code von der Teensy-Lib genommen und für den STM 
umgeschrieben.

Habe es immerhin jetzt schon soweit dass ein einfaches Audio-Loopback 
funktioniert (durch den STM32 hindurch).

Wie ich das dann hinbekomme dass ich die zwei Hardware-I2S Synchron 
bekomme wenn dann mal zwei von den SGTL5000 im Spiel sind... Mhhh mal 
schauen...

Werde jetzt die kommende Woche hoffentlich mal dazu kommen das Board zu 
machen.

von Robert (Gast)


Lesenswert?

Wenn das aber mal alles hinhaut auf jeden Fall eine interessante 
LowCost-DIY DSP Plattform mit sehr ordentlicher Audioqualität für ca 20 
Euro Bauteilkosten..

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Robert schrieb:
> Wie ich das dann hinbekomme dass ich die zwei Hardware-I2S Synchron
> bekomme wenn dann mal zwei von den SGTL5000 im Spiel sind

Das ist hardwareseitig kein Problem, einfach den zweiten als Slave 
konfigurieren, und BCLK und LRCLK mit dem ersten verbinden.

von Robert (Gast)


Lesenswert?

Ja das mit der sclk und der lrclk habe ich so gemacht.

Ich meinte eher weil ich die zwei i2s Blöcke ja nicht direkt parallel 
anschalten kann und sich die buffer intern dann leicht zeitlich 
verzögert füllen. Das läuft ja via DMA und löst immer nach halb voll und 
komplett voll jeweils ein Interrupt aus und die sind dann nicht 
synchron.

Die Platine ist gemacht und bei elecrow gerade in der mache. Die 
Bauteile sind alle da.

von J. S. (engineer) Benutzerseite


Lesenswert?

Robert schrieb:

> Die Platine ist gemacht und bei elecrow gerade in der mache. Die
> Bauteile sind alle da.

Und was wird das System können?

von Robert (Gast)


Lesenswert?

Jürgen S. schrieb:
> Robert schrieb:
>
>> Die Platine ist gemacht und bei elecrow gerade in der mache. Die
>> Bauteile sind alle da.
>
> Und was wird das System können?

Wollte hauptsächlich Audio-Routing und paar IIR Filter für jeden Kanal 
und ein Limiter am Ende.

Steuerbar über Uart von außen


So zumindest mein Plan. Vermutlich wird es wegen Faulheit bei mir auf 
hardcoding rauslaufen.

von Robert (Gast)


Lesenswert?

Mal kurzes Update:

Platine von Elecrow immer noch nicht da, habe mir aber mit der cmsis-dsp 
library schon was sehr gut funktionierendes zusammengebastelt 
(allerdings nur für zwei kanal in und out).

Habe jetzt schon mehrere hintereinander geschaltete Biquads auf Basis 
von 1.31 Bit FixedPoint Arithmetik am laufen und funzt super bisher.

von J. A. (gajk)


Lesenswert?


von J. S. (engineer) Benutzerseite


Lesenswert?

Ja, das Mini-DSP oder auch Hypex. Für semiprofessionelle Anwendungen 
sehr gut geeignet. Die Profis vermissen da ein paar Dinge.

von Paul H. (powl)


Lesenswert?

Es gibt auch noch den freeDSP. http://www.freedsp.cc/
Benutzt die gleiche Technik wie der MiniDSP aber ist offener.

Den werde ich wohl für meine Audioprojekte in Zukunft nutzen.
Leider geht damit nur blockschaltbildartiges Zusammenklicken der 
DSP-Funktionen, lässt sich aber per SPI/I2C auch gewissermaßen 
fernsteuern.

Wer die volle Kontrolle über den Datenstrom haben möchte, für den ist 
das aber eher nix.

: Bearbeitet durch User
von Robert (Gast)


Lesenswert?

Ja die ADAU Serie hatte ich auch schon ins Auge gefasst bevor ich 
anfing, aber ich fande das System dort sehr komisch wie man Paramter von 
außen zur Laufzeit ändern kann / muss , weil er z.B. IIR-Paramter mehr 
oder wenig zufällig auf irgendwelche Speicherstellen mappt und da auch 
keinen direkten Zugriff auf den Audiostream hat.

Aber ich wollte, auch wegen dem Lerneffekt, es einfach mal klassisch 
aufbauen.

von Robert (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich bin es mal wieder:


Platine von Elecrow ist inzwischen gekommen, habe ich natürlich sofort 
bestückt.

Die gute Nachricht: Der STM ist via STLink erreichbar und lässt sich 
debuggen. Auch der I2C Bus zu den Audio-Codecs scheint zu funktioniert, 
zumindest läuft die Routine sauber durch ohne Fehler.

Leider hat der Code den ich für das Evaluation-Board gemacht habe, nicht 
auf Anhieb funktioniert.
Ich hatte jetzt heute Abend nicht mehr viel Zeit. Ich werde aber morgen 
die Platine mal mit dem Oszi unter die Lupe nehmen.

Falls sich jemand fragt wegen dem Namen auf der Platine: Ich heiße nicht 
wirklich "Robert (Gast)" ;-)

Grüße

von Robert (Gast)


Lesenswert?

Ich bins wieder und habe leider ein Problem bei dem ich nicht weiter 
weiß:

Ich hatte das Board vorgestern soweit komplett laufen. Hatte einen 
Audio-Playthrough geschrieben dass alles was an Input X reinkommt an 
Output X rauskommt. Hat mit allen vier Kanälen einwandfrei funktioniert.

Hatte sogar schon meine Lötausrüstung weggeräumt und dann ist folgendes 
passiert.

Ich hatte die Spannungsversorgung kurz weggenommen und wieder dran 
gemacht und wollte das Debugging starten -> kein Ton.

Über das Oszi stellte sich dann heraus, dass die I2C Kommunikation von 
den SGTL5000 blockiert wird und der STM32 dann nach dem Timeout eben 
aufhört.

Spannungsversorgungen (analog 3v3, digital 3v3 und digital 1v8 passt 
alles habe ich nachgemessen)

Also gut, zwei neue SGTL5000 aufgelötet.
I2C Kommunikation läuft wieder, aber immer noch kein Ton raus.
I2S Kommunikation passte auch laut Oszi.
Aber es kam beim Kopfhörer nix raus.

Bei den 220uF Kondensatoren habe ich auf Seite der AudioCodecs immer so 
ca 1.5 V Offset gemessen. Die waren nun nicht mehr da.

Was da los ist wieso da nix mehr ging... Keine Ahnung.

Also die zwei Stück auch wieder runtergelötet (einen hatte ich ja noch 
da)
I2C und I2S Kommunikation passte auch wieder, Ton war ganz leicht hörbar 
im Kopfhörer. Wenn ich im debugging Pause klickte, hörte man ganz lautes 
surren (wie es am Anfang auch war wie es noch funktionierte).


Nun bin ich aktuell ziemlich deprimiert weil ich 5 von den Audio ICs 
habe die Augenscheinlich kaputt sind und jeder weitere den ich drauf 
löte wahrscheinlich auch nicht geht.

Vielleicht hat einer von euch Tipps wie ich weiter machen soll.
Nochmal komplett neuen Prototypen aufbauen?

Danke!

von Michael B. (laberkopp)


Lesenswert?

Wie hast du denn AGND und DGND verbunden ?

von Robert (Gast)


Lesenswert?

Vor allem frage ich mich wie es dazu kommen konnte dass die Platine 
einen Schaden nur dadurch abbekam dass ich nur die Spannungsversorgung 
mal trennte und wieder dran machte (der ST-Link und Audio In-Out war zu 
dem Zeitpunkt aktiv als ich die Versorgung wegnahm).

Ich dachte das Netzteil produziert evtl. Überschwinger beim ein und 
ausstecken oder so, aber der anstieg auf 5V und von 5v runter waren 
eigentlich sehr sauber (habe ich auch mit Oszi nachgemessen).

Vielleicht hat ja der STM irgendwie einen Schaden. Komisch aber dass das 
Debugging, der I2C und I2S läuft also denke ich eher der ist es nicht.

von Robert (Gast)


Lesenswert?

AGND und DGND habe ich über einen 0805 Ferrite Bead verbunden.

von Martin K. (mkmannheim) Benutzerseite


Lesenswert?

Paul H. schrieb:
> Den werde ich wohl für meine Audioprojekte in Zukunft nutzen.
> Leider geht damit nur blockschaltbildartiges Zusammenklicken der
> DSP-Funktionen, lässt sich aber per SPI/I2C auch gewissermaßen
> fernsteuern.

Wie macht man das real?

von Robert (Gast)


Lesenswert?

Hallo,

ich wollte mal kurz wieder eine Rückmeldung zu meinem STM32-Audio DSP 
geben. Habe die letzten Tage wieder viel Zeit reingesteckt.

Mit der Firmware bin ich jetzt fast fertig.
Es können intern zwei Summen gebildet werden, freies Routing, über den 
SGTL5000 kann der Gain Analog an den Eingängen und Ausgängen geregelt 
werden (digitaler Gain geht natürlich auch), pro Kanal bis zu 10 
Biquads, Signal Invertieren und Delay sind möglich.

Gesteuert wird der DSP über einfache Befehle die man per Uart reinsendet 
z.B. "Filter#EQ#0#100#5#0.7" für einen EQ auf Kanal 0 bei 100 Hz mit 5 
dB Gain und Q von 0.7
Außerdem kann man sich über Uart die aktuelle CPU Auslastung zurückgeben 
lassen und sich live die Pegel auf den Kanälen In1-4, SumA, SumB und 
Out1-4 zurück geben lassen.

Einstellungen speichert der STM intern in dem er sie in seinen Flash 
schreibt.

Gebaut habe ich das alles auf Fixed-Point Basis unter Zuhilfenahme der 
CMSIS-DSP Library.

Überrascht bin ich doch etwas über die Rechenpower die der STM doch hat 
nach ein paar Optimierungen jetzt.
Im Leerlauf (also einfach nur Playthrough) ca 2%.
Mit jedem weiteren Biquad ca +1%.
Also es lassen sich schon recht komplexe Audioverarbeitungen realisieren 
drauf.

Was ich jetzt noch machen will ist einen Audiolimiter zu implementieren 
und danach noch eine PC-Software um das ganze "angenehm" zu 
konfigurieren.

Danach will ich evtl. nochmal die Hardware nochmal neu machen mal 
schauen.

von Paul H. (powl)


Lesenswert?

Robert schrieb:
> Überrascht bin ich doch etwas über die Rechenpower die der STM doch hat
> nach ein paar Optimierungen jetzt.
> Im Leerlauf (also einfach nur Playthrough) ca 2%.
> Mit jedem weiteren Biquad ca +1%.
> Also es lassen sich schon recht komplexe Audioverarbeitungen realisieren
> drauf.

In der Tat. Dagegen klingen alle bisherigen Meldungen über die 
Performance des STM32 geradezu fürchterlich Pessimistisch.

Hast du vor dein Projekt zu veröffentlichen? :)

von Thomas K. (thomas_k502)


Lesenswert?

Eine kleine Dokumentation würde mich auch interessieren, da ich ein 
ähnliches Projekt im Visier habe ;)

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.