Forum: Digitale Signalverarbeitung / DSP / Machine Learning Orientierungshilfe: Welchen µC für Mustererkennung in Audiosignalen?


von Nils K. (piranja)


Lesenswert?

Moin zusammen.

Wie der Titel schon sagt bin ich auf der Suche nach einem µC, für die 
Mustererkennung in Audiosignalen. D.h, mein Ziel ist ein mobiles Gerät, 
dass in Echtzeit den Mikrophoneingang überwacht und beim Auftreten 
bestimmter Geräusche eine neue Aktion wie z.B. das Speichern der 
nächsten fünf Minuten durchführen soll.
Meine Suche nach dem richtigen µC wird dadurch erschwert, dass ich auf 
diesem Gebiet neu bin und daher z.B. nicht einschätzen kann wie 
Leistungsstark der µC sein muss um ein 24bit Audiosignal mit 44,1kHz 
Samplingfrequenz in Echtzeit untersuchen zu können. Da es sich um ein 
mobiles Gerät handeln soll, bräuchte ich außerdem Hilfe bei der 
Einschätzung des Stromverbrauchs.
Kann mir jemand hierbei einen guten Tipp zum weiteren Selbststudium 
geben? Wie kann ich herausfinden welcher µC der beste für dieses Projekt 
ist?

Außerdem habe ich noch eine Frage zur Programmierung des µC. Dank guter 
Matlabkenntnisse würde ich das Programm gerne in Matlab realisieren. Mit 
Hilfe des Matlab internen C-Compilers hätte ich dann die Möglichkeit das 
Programm in C zu compilieren. Der Vorteil dieses Weges ist doch, wenn 
ich das richtig verstanden habe, dass C eine High Level Language (HLL) 
ist und somit von jedem µC verstanden wird oder? Somit würde ich mir das 
Erlernen der Assamblerprogrammierung ersparen.
Muss ich dann trotzdem noch eine Software kaufen die den C-Code auf den 
µC überspielt?
Alternativ gäbe es für Simulink die Möglichkeit direkt mit den "Embedded 
Target for TI C2000 und C6000 DSP" zu Programmieren. Da müsste ich mich 
jedoch erst neu reinfuchsen und weiss auch gar nicht, ob die TI C2000 
bzw. C6000 µC. überhaupt interessant für mein Problem sind.
Klappt das so wie ich mir das denke, oder ist die Welt nicht so einfach? 
:) Muss ich also direkt in C programmieren, oder kann man das so 
generell für alle µC eh gar nicht sagen? Da sich meine 
Programmierkenntnisse auf Matlab beschränken wäre mir der Matlab Umweg 
sehr lieb :)

Da ich noch ganz am Anfang meiner Mikrocontroller Carriere stehe fehlt 
mir leider der Überblick, was ich als nächstes lesen und lernen müsste 
um bei den oben aufgeführten Fragen weiter zu kommen. Falls jemand von 
Euch hierzu einen guten Tipp hat wäre ich dafür sehr dankbar!


Vielen Dank im Voraus und besten Gruß
Nils

von der mechatroniker (Gast)


Lesenswert?

Die Aufgabe riecht nicht nach einem µC, sondern nach einem DSP. Die 
beiden genannte TI-Chips sind übrigens auch ebensolche.

von Nils K. (piranja)


Lesenswert?

hi,
danke für den Hinweis. Ich dachte DSPs wären µC mit integriertem 
AD-Wandler. Wenn das so nicht stimmt, habe ich wohl die falsche 
Terminologie verwendet.
Hier im Forum wird ja z.B. der Blackfin als günstiger DSP angepriesen. 
So wie ich das verstanden habe gibt es dafür dann aber eine teure, 
komerzielle Toolchain und eine kostenlose, die aber viel Zeit zum 
einarbeiten benötigt. Ich frage mich halt, ob ich an den Kosten, bzw. 
der Einarbeitungszeit einer Toolchain vorbeikomme in dem ich über Matlab 
in C programmiere und diesen Code dann auf den DSP flashe.
Würde das bei dem Blackfin funktionieren oder brauche ich für meine 
Ziele einen anderen DSP? Und was ist mit dem unglaublich günstigen 
Arduino? Könnte ich den mit einem AD-Wandler für meine Zwecke benutzen?

Oder allgemein gefragt, wie kann ich entscheiden ob ein DSP für mein 
Projekt passend, zu schwach oder überpowert ist?
Und stimmt es, dass ich jeden µC und DSP mit C-Code füttern kann?

Ich freue mich über jeden Hinweis :)

Vielen Dank
Nils

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Der Matlab-C-Compiler nützt dir nichts, damit kompiliert man C-Code zur 
Einbindung in Matlab. Was du bräuchtest wäre der Real-Time Workshop; 
damit ist man kostenmäßig im 5-stelligen Bereich.

Was für einen Prozessor du brauchst hängt davon ab was du unter 
Mustererkennung verstehst. Willst du einen Schwellwert erkennen, dann 
brauchst du überhaupt keinen Prozessor; willst du in einer verhallten 
Umgebung einen Sprecher identifizieren, dann kannst du damit beliebig 
viele TigerSHARC-DSPs beschäftigen. Also überlege dir erst mal was für 
einen Algorithmus du implementieren willst, und schau nach wie viele 
Rechenoperationen welcher Art du pro Sample benötigst, wie viel 
Speicher, usw.

Siehe auch den Artikel DSP, der ist dazu gedacht einen groben 
Überblick zu geben was es im Bereich der Signalverarbeitung so alles 
gibt.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Vielleicht reicht dir ja auch ein einfaches Spracherkennungsmodul, das 
du auf das zu erkennende Muster trainierst. Vielleicht einfach 
ausprobieren, ob das ein "Wort" ergibt.
Ansonsten vermute ich mal bei den angegebenen Kenntnissen, daß du die 
nächsten Jahre beschäftigt bist.

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.