Forum: Digitale Signalverarbeitung / DSP / Machine Learning DSP - wie anfangen


von killer89 (Gast)


Lesenswert?

Hi,
um meine Elektronikkenntnisse zu verbessern, möchte ich DSP näher 
behandeln. Doch wie fangt man hier am besten an, welche Starter Kits 
gibt es (Piccolo, TMS320 F28, ..)
Welche Bücher/Internetseiten könnt ihr mir empfehlen?
mfg

von friedrich (Gast)


Lesenswert?

Hallo killer89,

>meine Elektronikkenntnisse zu verbessern

Wie weit sind denn Deine Elektronikkenntnisse? Kannst Du mit einfachen 
Microcontrollern (8bit) und den Entwicklungsumgebungen umgehen, kannst 
Du in C programmieren?

Grüße

von killer89 (Gast)


Lesenswert?

Hey
ja C beherrsche ich ziemlich gut und mit Mikrocontrollern kenne ich mich 
auch gut aus. Verwende zurzeit das AVR Studio.
mfg

von Thomas (Gast)


Lesenswert?

Du brauchst keine Hardware für den DSP Einstieg.

Besorg dier eine MATLAB Raubkopie.
Alternativ tuts auch Scilab:
* http://www.scilab.org/
Oder Python mit NumPy / SciPy:
* http://www.python.org/
* http://numpy.scipy.org/
* http://www.scipy.org/

Dann brauchst du ein gutes Buch:
* Understanding Digital Signal Processing
* http://www.dspguide.com/ (kostenlos online)

Die Algorithmen kannst du dann leicht in MATLAB testen und plotten.
Du kannst auch "Real World" Daten (Biler, Sound, Messdaten) importieren 
und damit spielen.

Erst wenn du das alles drauf hast ist Hardware angesagt.
Simulieren tust du das meiste auch später noch vor der Implementierung.

Viel Spaß!

von friedrich (Gast)


Lesenswert?

Hallo killer89,

wenn Du Hardware möchtest: Da gibts bei den einschlägigen Herstellern 
(AD, TI, Arizona Micro, Freescale,...) Eval-Boards mit dem Chip und 
meist mit Peripherie-Anschlussmöglichkeit. Der Debugger ist auch meist 
dabei wie auch eine IDE. Die Kosten fangen bei 29EUR an und hören bei 
500EUR noch nicht auf.

Wichtig ist dass Du Dir dazu Gedanken machst, in welche Richtung Du 
weiterarbeiten möchtest: Einige DSPs sind in Richtung Audio ausgelegt 
(I2S, Codec-Interfaces, ...), die anderen in Richtung Maschinensteuerung 
(Timer, schnelle 10/12bit AD, Wandler, CAN, ...).

Grüße

von Wolfgang B. (Firma: Wolftec GmbH) (wbeppler)


Lesenswert?

hallo,
ich hab mit dsp noch nie was gemacht, doch ne frage, ich mache derzeit 
mit nem NE555 impule im 1 MHz bereich (+- paar %) und brauche 
impulslange von 61 ns und der rest zum 1 MHz pause.

ist so was mit dsp machbar ?

welchen chip brauch ich dazu ?

gibt es da irgendwo was an fertigem code ? eventuell von einem anderen 
anfaenger hier ? womit ich das schnell mal ausprobieren kann ?

ich hab arduino im einsatz, also C waehr schon toll

danke vorab !!!

gruss

w

von friedrich (Gast)


Lesenswert?

Hallo wbeppler,

dazu brauchst Du keinen DSP sondern einen ausreichend genauen Zähler in 
einem Microcontroller. 61ns ist ein bischen unorthodox zusammen mit der 
Bedingung 1MHz. Wenn es aber 60ns sein dürfen geht das relativ einfach. 
Was brauchst Du:
a) einen uC deiner Wahl mit 16MHz oder vielfachen davon
b) einen Timer darin der auch mit der Taktfrequenz (siehe a) laufen kann
c) ein Vergleichsregister (meit Compare.... genannt)

Der Timer wird auf Teilerfaktor 16 (oder passend zur Taktfrequenz) 
eingestellt damit er alle 1,0us auf 0 zurückgesetzt wird. Das 
Comparregister wird so eingestellt dass es bei Timerrücksetzen den 
Ausgang auf 1 setzt und beim Vergleichswert auf 0 setzt. Als 
Vergelichswert wird 1 eingestellt.

Diese Funktion erfüllen die mir bekannten STM32 (STM) und C2000 (TI) 
Architekturen, sicher auch andere.

Grüße

von friedrich (Gast)


Lesenswert?

Hallo wbeppler,

Mit einer Einschränkung

von friedrich (Gast)


Lesenswert?

Hallo wbeppler,

Mit einer Einschränkung: Hab mich verrechnet, es kommen dann 66,6 ns 
raus. Wenn's genau 60ns werden müssen musst du mit 50MHz takten, 
Zählerüberlauf auf 50, Comparregister auf 3 einstellen.

Grüße

von Wolfgang B. (Firma: Wolftec GmbH) (wbeppler)


Lesenswert?

danke fuer den tip,
da hab ich mich auch schon mal versucht
ich hab nen atmel mit 16 MHz genommen und ben auch bischen rumprobiert 
und die taktfrequenz verbogen, das ging prinzipiell ganz gut, nur dass 
ich am ausgang keine saubere flanke hatte sondern einen graesslichen 
verschnitt.

es war eie arduino platine, da ist ja nix an den ausgaengen dran, doch 
mein oszi zeigte zwar richtiges timing, doch wenn ich mich rcht erinnere 
kam der ausgang grad mal auf 2V innerhalb der 60 ns.

also warum ich die 60 ns brauche kann ich auch noch erklaeren.
ich pumpe in ne 10 uH Spule und schalte ab. damit bekomme ich die 
notwndige spannung nen 1 MHz piezo-schwinger zu erregen.

nun habe ich mit der NE555 schaltung immer den aufwand abzugleichen und 
ich haab eh nen atmel an bord. und wenn ich die 61 ns noch +-10 oder 20 
% variieren koennte, und somit vieleicht die leistung noch beeinflussen. 
das mache ich derzeit mit 2 verschiedenen endstufenschaltungen.

ich bin fuer jeden tip dankbar, vor allen wuerde mich interessieren ob 
es normel ist was ich an meinem atmel gemessen hab oder ob der schnelle 
anstiegsflanke zeigen muesste. ebenso wuerde ich auch gerne mal wissen 
ob eben mit einem DSP so was machbar ist und falls ja mit welchem ?

gruss und dank

wolfgang :-)

von friedrich (Gast)


Lesenswert?

Hallo wbeppler,

>und wenn ich die 61 ns noch +-10 oder 20% variieren koennte

Ich sehe, die 61ns scheinen doch recht kritisch zu sein.
Dazu brauchst Du einen PWM Timer mit besserer Auflösung. Mir ist da nur 
von der C2000 Serie der in Erinnerung der im Prinzip eine Aufklösung von 
150ps hat, Real wirst Du damit die 1ns schaffen. Die Platform (sind 
"DSPs", eigentlich Microcontroller mit DSP ähnlicher Architektur und 
Peripherie) ist proprietär, Entwicklungswerkzeuge sind in den Eval-Kits 
mit drinnen, EVAL-Kits ab 29USD direkt bei TI.
Um das Ausgangssignal zu verstärken solltest Du einen entsprechenden 
Schalter bauen (Du sprichts von Endstufe) oder - was vielleicht auch 
ausreicht - einen 74ACT/F/AS04 Inverter nachschalten. Die haben 
normalerweise eine sehr hohe Strombelastbarkeit.

Wie gut der Atmel die 55...67ns Impulse bauen kann (61ns +/-10%) kann 
ich Dir nicht sagen, vermute aber eher nicht da du dazu einen PWM 
benötigst der besser auflöst als die 16MHz. Und das geht nur bei Zählern 
die eine etwas andere Architektur haben.

Anstiegsflanke:
Die hängt normalerweise von R und C ab. Leitungswiderstand und Kapazität 
nach Masse, also Eingangskapazitzät der nachfolgenden Schaltung. Die mir 
bekannten UCs sollten aber in  der Lage sein (sofern die Ausgangspins 
nicht druch Einstellungen "bedämpft" worden sind - siehe Beschreibung 
der GPIO Pins des Prozessors, da kann schon mal eine SlewRate 
Beschränkung einschaltbar sein oder es gibt Tiefpassfunktionen [STM, 
50MHz, 10MHz]) inenrhalb von wenigen 10...100ns den Ausgang vollständig 
zu treiben. Hängt sicher auch am Ausgangsstrom.

Grüße

von friedrich (Gast)


Lesenswert?

1MHz Ultraschall - da kommt bei Gurgel nur Beauty als Applikation raus.
Korrekt?

von Wolfgang B. (Firma: Wolftec GmbH) (wbeppler)


Lesenswert?

der treiber am ende ist nicht mein probelm
da hab ich was mit vorstufe und endstufe, funtioniert hervorragend
Si4464 heisst das zauberwort und die beispielschaltung aus dem 
datenblatt

mein problem ist, dass ich IMMER 1 MHz brauch, die ceramic ist halt so.

probelm 1: die 61 ns impulsbreite muss ich immer justieren
problem 2: beim NE555 veraender ich dabei IMMER auch die 1 MHz weshalb 
der abgleich immer ne arbeit ist.
problem 3: im laufenden betrieb moechte ich zur leistungsreduzierung 
(derzeit mache ich das mit vorwiederstaenden) die impulsbreite etwas 
verkuerzen


also suche ich nen chip den ich am liebsten programmieren kann

also meine frage nochmals

GEHT SO WAS MIT DSP ??? ich hab noch nie DSP's verwendet, wenn mir einer 
von euch einfach sagen kann, so was geht, z.b. mit xxx

danke noch fuer die ratschlaege mit der filtersache bei den ausgaengen, 
das kann natuerlich schon sein, muss ich mal das datenblatt unters 
kopfkissen nehmen, danke !!

fuer tips auch hier bin ich immer dankbar

von Wolfgang B. (Firma: Wolftec GmbH) (wbeppler)


Lesenswert?

beim gurgel kommt da nicht nur beauty bei heraus.

ich hatte nen schweren unfall und ultraschall stimuliert den 
knochenwachstum, d.h. ein knochenbruch geht 30% schneller oder wie bei 
mir (ich hatte 17 brueche !!!) ich hatte an einer fixen verschraubten 
stelle (da ist kein wachstumsreitz) gar keine knochenheilung. 
nachweislich nach 10 monaten hab ich mit ultraschall begonnen und 
innerhalb 2 wochen hatte ich erste Kallusbildung

siehe
http://wolftec.biz/ultraschall/html/fraktur-verlauf.html

ich habs dokumentiert.
das ist auch ni neues, die medizin kennt das sehr gut, nur die kassen 
zahlens halt nicht, zumindest bei mir nicht, nicht privat, 2te klasse 
halt.

elektronik sinnvoll angewendet :-)

nur ist da noch viel zu beachten, ich arbeite dran, doch mein ruecken 
schmerzt nicht mehr so arg, die ultraschall-massage tut gut.

und zu beauty, ja da solls auch helfen, z.b wirkstoffe einzubringen, ich 
rate aber vor abnemhen mit ultraschall ab, falls das auch wo angepriesen 
wird, das ist quasi NF wie ultraschall zum vergaser reinigen, da 
passiert kavitation und das ist ungesunnd !

bei interesse gerne :-)

gruss und dank

wolfgang :-)

von Sebastian (Gast)


Lesenswert?

Gehen wird das sicher mit einem DSP, ist aber keine rechenaufwendige 
Anwendung, für die die DSPs gemacht sind. Ich würde, wenn's ein 
Controller sein soll, hier eher zu XMOS tendieren (spezielle 
Mikrocontroller mit enormer I/O-Performance, wenig verbreitet), oder zur 
programmierbaren Logik greifen (CPLD, ggf. FPGA). Ein CPLD mit externem 
Oszillator passender Takfrequenz löst das Problem schnell und einfach. 
Man muß nur die gewünschte Funktion in einer 
Hardwarebeschreibungssprache formulieren können (VHDL, Verilog, ggf. 
ABEL), oder, je nach Entwicklungsumgebung, aus Logikgattern 
schaltplanähnlich zusammenklicken.

von Wolfgang B. (Firma: Wolftec GmbH) (wbeppler)


Lesenswert?

hallo sebastian,

danke fuer diese hilfreichen tips
kannst du mit auch einen genauen typen sagen, also was wo ich nen 
datenblatt finde und so was z.b. beim farnell oder sonstwo bestellen 
kann ?

vielen vieln dank !

w

von Thomas (Gast)


Lesenswert?

Kann mal bitte ein Admin alle Beiträge ab:
Beitrag "Re: DSP - wie anfangen"
löschen?

Ich hasse es, wenn Threads gekapert werden!

Macht doch bitteschön euren eigenen auf.

von Wolfgang B. (Firma: Wolftec GmbH) (wbeppler)


Lesenswert?

wieso neuer thread ?

es geht immer noch um meine erste frage:

dsp ? was und wie gehts und woher krieg ich es,
viele interessiert es halt was damit angestellt wird, sorry aber die 
antwort bin ich schuldig wenn ich schon frage

hast du ein probelm damit ?
wie soll ich sonst in zukunft posten ?

gruss

w

von Thomas (Gast)


Lesenswert?

> es geht immer noch um meine erste frage:

Falsch.

Hier geht es um die Frage nach dem Einstieg in die Digitale 
Signalverarbeitung (DSP = Digital Signal Processing) von killer89.

Du suchst nach einer Lösung zu einer konkreten Aufgabenstellung, die im 
übrigen überhaupt nichts mit digitaler Signalverarbeitung zu tuen hat.

> hast du ein probelm damit ?
Nein, aber ich habe ein Problem damit, dass du plenkst !
;)

> wie soll ich sonst in zukunft posten ?
Denk dir einen adäquaten Betreff aus, und erstelle einen neuen Beitrag 
im Passenden Unterforum.
Hier würde ich z.B. "Generierung von periodischen 61ns Impulsen" im 
Unterforum "µC & Elektronik" empfehlen.

Natürlich darfst du dich auch in laufende Diskussionen einbringen.
Diskussionen dürfen auch abschweifen.
Aber einfach in eine laufende Diskussion reingrätschen und das Thema an 
sich reißen ist unhöflich, das machst du im RL auch nicht.

Gruß,
Thomas

von friedrich (Gast)


Lesenswert?

Hallo Wolfgang (Wbeppler),

CPLD/FPGA kann das sicher. Musst Du aber eben die Architektur erst bauen 
und dann ansteuern. Der C2000 (z.B. 28027) von TI hat die PWMs bereits 
die mit einer Auflösung von nominell 150ps arbeiten (Ich habe diese 
bereits verwendet). Du kannst die PWMs sowohl in der Frequenz als auch 
der Pulsbreite in diesem Raster einstellen. Ist zwar ein bischen Aufwand 
sich einzulesen, das wirst Du aber auch mit den programmierbaren HW 
Architekturen benötigen.
Eval-Kit ab 39USD "http://www.ti.com/tool/tmds28027usb"; inclusive 
Entwicklungsumgebung und Emulator.

Damit hast Du Denke ich zwei vernünftige Vorschläge. Neue Fragen dazu 
kannst Du ja in einem neuen thread (siehe Thomas) behandeln.

Und: Mein Bedauern zu dem Unfallgeschehen.

Grüße

von Transi (Gast)


Lesenswert?

Hallo zusammen,
möchte gerne noch mal auf den Einstig zurückkommen.
Kenne mich DSPs nicht wirklich aus, würde damit aber auch gerne einmal 
experimentieren.
@ friedrich
Das 29€ Kit würde mich interessieren, weil damit nicht allzu viel kaputt 
gemacht ist, wenn man scheitert. Um was für ein Kit handelt es sich denn 
da und wo bekommt man es?

Gruß
Transi

von friedrich (Gast)


Lesenswert?

Hallo Transi,

sorry, das Kit ist teurer geworden, hab's heute früh gesehen:
Eval-Kit ab 39USD "http://www.ti.com/tool/tmds28027usb"; inclusive
Entwicklungsumgebung und Emulator. Direkt bei Ti bestellen.

Grüße

von killer89 (Gast)


Lesenswert?

Hey,
danke für den Link, doch leider führt er ins Nichts. Könntest du bitte 
nochmals schauen?
lg und vielen dank

von friedrich (Gast)


Lesenswert?

Hallo killer89,

suche bei TI den Begriff "TMDS28027USB" (oben rechts), erstes Ergebnis 
des Suche.
Der Link ist direkt aus der Adresseleiste rauskopiert, scheint aber 
direkt nicht zu gehen. Wenn Du suchst kommst Du auf dem gleichen Link 
raus.

Grüße

von Martin M. (capiman)


Lesenswert?

Problem sind die ""

Hier der Link ohne ""
http://www.ti.com/tool/tmds28027usb

von TIEAP (Gast)


Lesenswert?


von friedrich (Gast)


Lesenswert?

Hallo TIEAP,

yup - haste recht.

Grüße.

von Martin Schmidlechner (Gast)


Lesenswert?

du kannst dir für deine signalerzeugung mal den AT90PWM316 anschaun 
(oder die geschwister davon): schnelle PWM-erzeugung mit über intern 
PLL-generierte 64Mhz timertakt

ich selber beginne gerade mit einem DSP56364, ist zwar veraltet, hat 
aber mehr als genug rechenleistung und mehr als 16 bit, was für audio 
vorteilhaft sein kann - leider ist das zugehörige demoboard offenbar 
nicht mehr aufzutreiben, auf mein posting in diesem forum weiter unten 
hat niemand geantwortet

von marc (Gast)


Lesenswert?

^^ das mit der "Raubkopie" sollte mann vielleicht noch mal überarbeiten 
(streich zumindest das "Raub" raus)^^

von Klaus Kaiser (Gast)


Lesenswert?

Und alternativ zu Matlab kann man auch octave nehmen.

von Test...1...2 (Gast)


Lesenswert?

Es gibt nun auch ein Launchpad mit dem Piccolo (TMS320F28027) für 
unschlagbare 17$ !
http://www.ti.com/tool/launchxl-f28027?DCMP=c2x-launchpad&HQS=c2x-launchpad-b

Ein JTAG Emulator (XDS100) sitzt schon auf dem Board mit drauf und die 
CCS5 Version ist scheinbar auch uneingeschränkt nutzbar.

Nachteil scheint zu sein, dass man den Emulator nicht abtrennen kann wie 
bei einem Discovery oder Xpresso :-(

von Spell (Gast)


Lesenswert?

Ich möchte mich da auch mal mit rein hängen und habe ein paar behämmerte 
Neuling-Fragen.
a) gibt es ein paar gute Tutorials wie man das ganze mit Matlab oder 
alternativen anfängt
b) ich hab gelesen dass es frühestens mit der Matlabversion 2008 läuft, 
ich habe hier allerdings einen hüstel etwas alten Rechner für diese 
Zwecke am laufen der durch seinen veralteten Chipsatz maximal 2007 zum 
laufen bringt. Hat jemand Erfahrungen ob es damit auch funktioniert?
c) habe ich das richtig verstanden, dass man einen kompletten DSP mit 
den Tools simulieren kann und keine Hardware benötigt? Mir ist klar dass 
ein Simulationsprogramm keine echte Hardware in Dingen Geschwindigkeit 
ect. ersetzt, es soll nur zu Lernzwecken dienen.


Mir gehts momentan nicht darum irgendein Projekt zu realisieren sondern 
einfach nur darum mal reinzuschnuppern.

von Test...1...2 (Gast)


Lesenswert?

Spell schrieb:
> a) gibt es ein paar gute Tutorials wie man das ganze mit Matlab oder
> alternativen anfängt

Empfehlen kann ich keins, aber es sollte unter den "paar" wo Guuugl 
liefert schon ein vernünftiges dabei sein:
www.google.de/search?q=matlab+tutorial+filetype%3Apdf

Spell schrieb:
> b) ich hab gelesen dass es frühestens mit der Matlabversion 2008 läuft,
> ich habe hier allerdings einen hüstel etwas alten Rechner für diese
> Zwecke am laufen der durch seinen veralteten Chipsatz maximal 2007 zum
> laufen bringt. Hat jemand Erfahrungen ob es damit auch funktioniert?

Du kannst auch ganz normal in C/C++ auf Deinem PC programmieren. Ist 
meiner Erfahrung nach sowieso performanter. Und das "bischen" sollte 
fast jeder Rechner hinbekommen, wenn Du nicht gerade in Echtzeit 
hochkomplizierte Videoverarbeitung machst. Audio geht definitiv.

Spell schrieb:
> c) habe ich das richtig verstanden, dass man einen kompletten DSP mit
> den Tools simulieren kann und keine Hardware benötigt? Mir ist klar dass
> ein Simulationsprogramm keine echte Hardware in Dingen Geschwindigkeit
> ect. ersetzt, es soll nur zu Lernzwecken dienen.

Im Normalfall tust Du NICHT einen DSP simulieren. Du rechnest nur die 
gleichen Dinge wie er auf einem PC. Du kannst z.B. einfach ein Micro an 
Deinen PC anschließen, einen Lautsprecher und dann ein Programm 
schreiben dass Dir das Micro ausliest...deine Signalverarbeitung 
durchführt und dann wieder auf den Lautsprechern ausgibt. Tataaaa, 
fertig.

Gleiches würde auch mit einer kleinen Webcam gehen, nur halt 2 
Dimensional.

Du kannst also Dinge auf dem PC ziemlich leicht testen/implementieren 
ohne Dich in eine spezielle Hardware einarbeiten zu müssen oder noch 
schlimmer entwerfen zu müssen.
Ist also gerade für einen Anfänger auf jedenfall einfacher, da es 
wirklich um die Signalverarbeitung geht und nicht darum wie ich dem ADC 
die Werte entlocke.

von Spell (Gast)


Lesenswert?

Ok, du meinst also man sollte sich erstmal auf die allgemeine Anwendung 
der Algorithmen beschränken und nicht gleich versuchen mit Spielerein 
auf einer bestimmten Hardware anzufangen. Ich hatte gehofft dass die 
Simulationssoftware sowas ähnliches wie Keil ist und spezielle DSP´s 
Emulieren kann. Ich hatte mich bisher mal bei Analog Devices umgeschaut.
Danke erstmal für deine schnelle Antwort.

von mmacs (Gast)


Lesenswert?

Wenn du specielle DSP algorithmen simulieren willst, ist der Skyeye 
simulator vielleicht interessant. Damit kannst du die Performance 
checken, ohne Hardware zu kaufen.

http://sourceforge.net/projects/skyeye/

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.