mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Filter auf Dsp, Einsteigerfrage


Autor: Ferdinand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo erstmal,

ich hätte eine Frage bzw den Wunsch nach einem Tip:
Mein Problem ist das folgende: Ich habe in sowohl in Labview als auch in 
Matlab einen FIR Filter entwicklet, der auch mittels Soundkarte etc auf 
dem PC soweit nett funktioniert. Jetzt würde ich gerne einen DSP dazu 
überreden an die Stelle des PC´s zu treten, um zum einen eine gewisse 
Echtzeitfähigkeit zu erreichen und zum anderen ein Standalonegerät zu 
haben, welches die gewünschte Filterung ausführt.
Jetzt würde ich mich freuen wenn ihr da einen Tip hättet, wie ein 
nächster Schritt aussehen sollte also auch welche Hardware geeignet 
wäre. Ich habe mich natürlich auch hier im Forum schon umggeguckt und 
kann mir denken einge werden mir sicherlich eines der diversen 
Evalborads empfehlen. Würde ich mir wahrscheinlich selber auch, nur ist 
die sache, dass ich wie gesagt, das Endprodukt weiter verbauen möchte, 
was ja nicht wirklich sinn und zweck eines evalboards ist.

Nochmal in kürze und ohne gelaber:
- geg. filterkoeffizienten, anwendungsgebiet audio
- ges. passende (s.o.) Hardware und nützliche Tips :-)

Also schon mal vielen dank für eure Mühe :-)

Autor: Ferdinand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keiner einen Tip für mich? :-((

Autor: Patric (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Prinzipiell sind floating point DSPs einfacher zu programmieren als 
fixed point; mit fixed point ist das immer ein ziemliches Gefrickel. Als 
Anfänger würd ich mir das nicht antun.
Du wirst für deinen Anwendungszweck sowohl bei TI als auch bei Analog 
fündig werden. Problem bei der Sache ist, dass die leistungsfähigeren 
DSPs in grossen BGA Gehäusen kommen und die PCBs dann auch meist 4lagig 
sind. Selbst herstellen ist fast nicht möglich. Bleibt also nur die 
Möglichkeit ein fertiges Board zu kaufen. Da liegt der Hase im Pfeffer: 
Die Dinger sind nicht billig. Das C6713 Evalboard von TI kostet glaube 
ich 400$ und das ist eines der günstigeren.

Die Frage ist nun was willst du machen? Einen DSP für diese eine 
Anwendung für möglichst wenig Geld oder doch lieber was "Grösseres" zum 
experimentieren? Wenn du eine Platine selbst entwickeln willst brauchst 
du auch immer noch die Entwicklungsumgebung (CodeComposer Studio bei TI) 
, die auch nicht billig ist. CC Studio glaube ich an die 4000$.

Zum Experimentieren würd ich das C6713 Evalboard empfehlen. Da ist alles 
komplett, auch mit CC Studio. Sind halt auch 400$.

Autor: ??? (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal auf

www.xilinx.com

nach. Dort findest du verschiedene Entwicktungsboards und du kannst eine 
kostenlose Entwicklungssoftware downloaden.

Autor: Ferdinand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Anworten.

Also in diesem konkreten Fall, wäre ich an einen kostengünstigen und 
mehrmals reproduzierbaren Möglichkeit interessiert, da der Dsp ausser 
der Filterung nichts tun soll. Für weiteres werde ich mich dann auch mal 
nach einem evalboard umgucken, nur wie gesagt für diese konkrete 
anwendung wäre es anders besser, da ich wie beschrieben nur die 
funktionen: rein, filtern, raus benötige. Evalboards hätten ja wietaus 
mehr möglichkeiten, die ich immom nicht brauche. Vielleicht gibts da ja 
was?

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für diese Aufgabe muss man nicht unbedingt mit einem DSP daherkommen. 
Ein normaler µC packt das auch locker.

Autor: Ferdinand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie weit kann ich denn einen normalen uC nutzen? Es müssen schon eine 
ganze Menge Filterkoeffizienten (je mehr desto besser) und mit geringer 
Latenz verarbeitet werden.

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na wenn du nur eine ganze Menge Filterkoeffizienten verarbeiten musst, 
kommst du auch mit einem µC ganz schön weit. Alles klar? Nein. Werde dir 
über deine Anforderungen klar, dann kannst du entscheiden, ob ein µC 
ausreicht. Mit einem ARM7 hast du pi mal Daumen 300 - 1000 Befehle pro 
Sample. Wenn du mit einem IIR Filter leben kannst, reicht vielleicht 
auch ein AVR. Ein FIR mit ganz schön vielen Koeffizienten braucht halt 
auch ganz schön viel Rechenzeit. Das mit der Latenz überlegst du dir 
bitte nochmal genau. Das ist nämlich Nonsense. Die Arbeit wird nicht 
weniger, wenn man sie länger hinauszögert.

Autor: Ferdinand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Hinweis, wobei ich den mitschwingenden Unmut in der 
Antwort nich nachvollziehen kann, es wird niemand zum posten 
gezwungen...

Zurück zum Thema: FIR Filter und schnellstmögliche Abarbeitung sind 
notwenig, ich denke, dass das doch ne recht klare Anforderung ist. Auch 
bringt mir die Verwendung eines uC auch keine Erfahrung mit DSPs die ich 
mir auch aus dem ganzen erhoffe.
Worin liegen die konkreten Probleme eine Platine nach seinen 
Anforderungen aufzubauen? Abgesehen von den natürlich heftigen Kosten 
einer IDE. Die Einzelteile sind meinen Recherchen zufolge nich übermäßig 
teuer. Ist es die Verarbeitung?

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> FIR und schnellstmögliche Abarbeitung
ist vergleichbar mit: Bau mir das bestmögliche Auto mit vier Rädern. 
Bleibt noch die Frage, nach welchem Kriterium genau das Auto optimiert 
werden soll. Höchstgeschwindigkeit, Raumangebot, Kosten? Ah, schreibst 
du ja selbst schon:
> kostengünstigen und mehrmals reproduzierbaren Möglichkeit
Zielkonflikt.

Im Prinzip wurden hier alle relevanten Möglichkeiten genannt. PC, 
floatingpoint DSP, fixedpoint DSP, FPGA, µC. "Schnellstmöglich" sind mit 
Sicherheit die DSPs und FPGAs. Teuer allerdings auch. Bei den DSPs 
kommen schnell einige tausend Euro zusammen, weil du die 
Entwicklungswerkzeuge brauchst (und bezahlen musst). FPGA boards bekommt 
man ab ca 100 Ören, Software ist kostenlos, der Schaltungsaufwand bei 
selbst herzustellenden Platinen nicht zu vernachlässigen. Die 
Entwicklungsarbeit hat dann nur noch wenig mit programmieren zu tun. Die 
größeren und schnelleren Chips gibt es nur noch als BGA. Einen ARM7 kann 
man zur Not auch noch selbst mit einem Codec auf eine Platine pappen. 
MAC kennt er. Kommt eben auf deine Anforderungen an (die du so 
unglaublich dämlich-ungenau formulierst, daher der Unmut). Ein Parallax 
Propeller wäre sicher auch geeignet und das sogar in DIP.

Digitale Signalverarbeitung hat nicht zwangsläufig einen DSP zur Folge. 
Was du lernen sollst ist z.B. einen Filter zu entwerfen und mit den 
Problemen der Abtastung und der begrenzten Auflösung umzugehen. Die 
Implementierung unterscheidet sich nicht mehr so großartig, weil die 
Compiler mittlerweile ziemlich gut sind und es fertige Funktionen gibt. 
Da muss man auf einem µC fast mehr von Hand machen.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi habe eure Diskussion verfolgt und leider haben sich mir nun mehr 
Fragen gestellt als Antworten gegeben :-(.
Aber ich habe ja auch selber zwei Hände um nachzufragen:

- Gibt es keine andere Möglichkeiten z.B. einen TI Dsp zu programmieren 
als mit Code Composer Studio oder entsprechend bei anderen Herstellern?

- Hab ich richtig verstanden, dass es schwieriger ist, einen DSP zu 
verbauen als einen µC? Wenn ja warum?

- Worin bestehen die konkreten Probleme eine eigene Platine mit 
Prozessor, Wandler und Stromversorgung zu ertstellen? Eine Prototyp 
Platine ist ja für unter 100€ erhältlich, sodass das ätzen als ggf 
Problem entfällt.

Danke für eure Antworten und verzeiht mir, dass ich manchen Profi ggf 
die Hände überm Kopf zusammenschlagen lassen. Alles Anfang ist schwer.

Mfg Peter

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für die Blackfins von AD gibt es afaik einen GCC-port. Allerdings weiß 
ich nicht, wie gut der ist. DSPs haben gerne ihre Eigenheiten, weil sie 
auf die parallele Verarbeitung von Daten ausgelegt sind. Das ist für 
einen sehr allgemein gehaltenen Compiler wie den GCC besonders schwer. 
Ob es für die TIs auch was gibt, weiß ich nicht. Google ist dein Freund.

DSPs spielen idR in einer ganz anderen Liga als µCs. Dementsprechend 
sind die Taktraten höher, haben mehr Pins etc. Das macht die ganze Sache 
kompliziert. Es versucht ja auch niemand einen aktuellen Pentium auf 
eine Lochrasterplatine zu packen. Natürlich sind auch hier die Grenzen 
fließend. Einen TMS320 mit 60 MHz bekommt man vielleicht noch ans 
Laufen. Allerdings kann der dann auch nicht so viel mehr als ein 
schneller µC. Eine Platine für die 6000er Serie z.B. mit ca 1 GHz 
schüttelt man nicht mal eben so aus dem Ärmel.

Konkrete Probleme? Das Zeug wird unglaublich komplex. Viele Pins, DDR2 
Speicherinterfaces usw. Dazu braucht es meist noch glue-logic (CPLD, 
FPGA), um externe Wandler ansteuern zu können. Alles in allem für eine 
simple Audio-Anwendung wie oben imo völliger Overkill.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.