Forum: Digitale Signalverarbeitung / DSP / Machine Learning DSP Eistieg mit Matlab


von Mathias M. (mathias_m)


Lesenswert?

Hallo zusammen!
Für mich ist das Thema DSP ganz neu, doch es ist schwierig den Einstig 
zu schaffen. An der Fachhochschule lernte ich einiges über die Digitale 
Signalverarbeitung, jedoch haben wir nie einen DSP gebraucht. Wir haben 
alles mit MATLAB oder Octave problemlos erledigen können. Nun will ich 
in meiner Diploparbeit, das ganze wissen eimal in Hardware umsetzen. 
Matlab/Octave kenn ich inzwischen gut, daher hat mir der Dozent 
empfohlen erstmal mit eiem Floating-Point DSP zu beginnen, da Matlab 
auch FloatingPoint verwendet, und ich mir so erste Probleme erspare. Ich 
habe mich ein bisschen umgesehen auf dem Internet bei Matlab und 
TexasInstruments. Ich stiess dabei auf das Modell: TMS320C6713 DSP 
Starter Kit (DSK), dass aber schon etwas alt sei. Ich will mit Filter 
herumspielen, FFT und IFFT machen und adaptive Filterungen einbauen. Nun 
hab ich keine Ahnung, was ich alles dazu brauche. Hatt jemand von euch 
dies schonmal gemacht?-> Per Matlab einen Code geschrieben, und diesen 
auf ein DSP geladen? Was brauche ich alles dazu? Kann mir jemand ein 
Starterkit empfehlen, bei dem alles dabei ist? Oder muss man sich den 
Compiler auch noch kaufen, nebst dem Starterkit? Wenn ich all die 
Herstellerseiten durchlese, sehe ich was die Dinger alles können, aber 
nirgens sehe ich einen Leitfaden, was man benötigt um da einzusteigen. 
Danke für eure Hilfe!

von Michael W. (Gast)


Lesenswert?

Mathias M. schrieb:
> jedoch haben wir nie einen DSP gebraucht. Wir haben
> alles mit MATLAB oder Octave problemlos erledigen können.

Worauf laufen denn dann eure für MATLAB entwickelten Algorithmen? Auf 
PCs?

von Mathias M. (mathias_m)


Lesenswert?

genau! wir haben Signale meist mit Matlab selber generiert, und danach 
diese augewertet. Oder wir haben die Daten aus einer Datei geladen, und 
ausgewertet. Resultate waren jeweils Plots oder numerische Daten.
Mein Ziel ist es, diese Algorithmen nun ohne PC erledigen zu können.

von Michael W. (Gast)


Lesenswert?

Ganau dafür wirst Du einen DSP nehmen müssen oder irgendetwas anderes 
REALES :-)

von Uwe (Gast)


Lesenswert?

In die Digitale Signalverarbeitung steigt man erst mal mit einem c(++) 
compiler ein (auch für den PC).
>Oder muss man sich den Compiler auch noch kaufen, nebst dem Starterkit?
Da steht auf der Seite von TI:

Both experienced and novice designers can get started immediately with 
innovative product designs with the DSK´s full featured Code Composer 
Studio™ IDE and eXpressDSP™ Software which includes DSP/BIOS and 
Reference Frameworks.

und:

The full contents of the kit include:

    C6713 DSP Development Board with 512K Flash and 16MB SDRAM
    C6713 DSK Code Composer Studio™ IDE including the Fast Simulators 
and
              access to Analysis Toolkit on Update Advisor

und:

 What's Included
    Target board specific Code Composer Studio development tools

von Mathias M. (mathias_m)


Lesenswert?

Danke für die Antworten. Das klingt schon mal nicht schlecht. Verbrachte 
nun schon Stunden auf dem Netz um herauszufinden wie ich da vorgehe. Hab 
mir nun ein EvaluationsBoard von AnalogDevice bestellt (ADSP-21369 SHARC 
EZ-KIT Lite Evaluation Kit) ->Das aufgelistete TI-Board unterstützt kein 
neues Betriebsystem mehr. Kostete halt etwa 500Euro. Soweit ich gelesen 
habe, sollte Matlab einen Code für die SHARC Prozessoren generieren 
können. Ich hoff ich hab das richtig gelesen, sonst hab ich dann ein 
Problem. Ich bin gespannt was mich erwartet. Werde danach schreiben wo 
ich stolperte, falls jemand einmal das selbe Problem hat wie ich.. :)

von Uwe (Gast)


Lesenswert?

> Soweit ich gelesen habe, sollte Matlab einen Code für die SHARC
> Prozessoren generieren
Also Digitale Signalverarbeitung macht man nicht mit Matlab (so kann 
das ja jeder), sondern schreibt den Algorithmus in C bzw. Assembler 
(wenn man bestimmte Dinge wie einen FFT Coprozessor benutzt). Natürlich 
ist es keine schlechte Idee dies alles vorher mit Matlab durchzurechnen. 
Auch irgendwelche Filterkoeffizienten usw. kann man  damit sehr schön 
evaluieren und das ganze System Simulieren (Sprungantwort usw.). Und 
wenn Matlab dann mal als hilfe nen Stück Code ausspucken kann ist das 
auch toll aber das ist nur als kleine hilfestellung zu verstehen.

von Michael W. (Gast)


Lesenswert?

Uwe schrieb:
> Und
> wenn Matlab dann mal als hilfe nen Stück Code ausspucken kann ist das
> auch toll
Du weisst, das MATLAB inszwischen ganze Programmpakete auspuckt? Wir 
hatten kürzlich ein Seminar in Ulm, bei der die 
Bildverarbeitsmöglichkeiten vorgestellt wurden. Da kann man ganze 
Arbeitsprozesse, also die Findung der Lösung, protokollieren und den 
erstellten MATLAB Code in C umwandeln. Dann hast Du ein lauffähiges 
Programm.

von Testi (Gast)


Lesenswert?

Heutzutage werden ganze Systeme mit Matlab generiertem C-Code befeuert.
Damit wird Firmware generiert.
Bin da aber selber nicht so überzeugt von. Denn den Code muss man selber 
wieder erstmal durschauen ob er auch das macht was er soll.. und ich 
denke so richtig auf Speed ist der auch nicht getrimmt... Dafür kann es 
halt jeder auch ohne Programmierkenntnisse.

von Strubi (Gast)


Lesenswert?

Moin,

der Ansatz des "grafischen Programmierens" bzw. der Prototyping-Toolbox 
per Matlab und Simulink ist hier ein vieldiskutierter Klassiker,
Betr. Prototyping ist dagegen ansich nix einzuwenden. Gegen den Rest 
schon. Mag jetzt etwas elitär klingen, aber die Codequalität ist bei 
keiner mir bekannten Toolbox so, dass sie den DSP-Guru ersetzen kann. 
Ist in der ganzen Verarbeitungskette ein kleiner Bug, kostet das 
Debugging ev. 10mal mehr Zeit als die Implementierung. Von der 
Wiederverwertbarkeit der Lösung ganz zu schweigen.
Apropos, zum Thema Float vs. Fixed point gibt es hier auch einige 
Threads..
Bei einer FFT macht Float u.U. Sinn, bei IIR-Filtern ist es eher mit 
Kanonen auf Spatzen und bei instabilem Verhalten wird's erst richtig 
lustig, wenn man das Dithering nicht in den Griff kriegt.
Im Endeffekt muss man sich für richtig stabile Algorithmen sowieso mit 
der entsprechenden Arithmetik beschäftigen, da sind dann die typischen 
Fixpoint-DSP-Ops (mit spezifischen Rundungsoptionen) am effizientesten. 
Da kommt man dann aber nicht darum herum, sich mit Assembler zu 
beschäftigen.

Grüsse,

- Strubi

von Michael W. (Gast)


Lesenswert?

Strubi schrieb:
> Mag jetzt etwas elitär klingen, aber die Codequalität ist bei
> keiner mir bekannten Toolbox so, dass sie den DSP-Guru ersetzen kann.
Bei den individuellen Lösungen sicher nicht, aber viele Standardlösungen 
liefert die Toolbox in perfekter C-Qualität. Da kommt man selber nicht 
ran.

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.