Forum: Digitale Signalverarbeitung / DSP / Machine Learning Ti DSP Frequenzweiche


von Guest (Gast)


Lesenswert?

Hallo,
ich möchte eine etwas aufwändigere Frequenzweiche für Aktivboxen 
gestalten. Dafür suche ich einen DSP welcher möglichst wenig 
infrastruktur (selfboot, etc. pp.) benötigt aber dennoch genügend 
Rechenleistung hat.
Er muss keine AD / DA wandler an bord haben, da ich dafür extra hardware 
verwenden möchte.

Gibt es da etwas ordentliches von Ti ?

Über welche schnittstelle wird dieser dann Programmiert, wo gibts den 
Programmer und die Entwicklungsumgebung.


   Grüße Johannes

P.S.: Oder Fragen wir andersrum: was ist der größte DSP von Ti welcher 
stand-alone arbeiten kann ;-)

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Ich würde dafür einen aus der C5000 Serie verwenden.
Programmiert wird der normal über JTAG. Ein Programm kann er alternativ 
auch über andere Schnittstellen laden.

Ein einfacher Einstieg ist mit dem folgenden Entwicklungsboard möglich:
http://www.mikrocontroller.net/articles/TMS320VC5505_eZDSP_USB_Stick

JTAG wird da über einen virtuellen Parallelport über USB gefahren. Die 
Entwicklungsumgebung ist dabei, bzw. kann beim Hersteller runtergeladen 
werden:
http://support.spectrumdigital.com/boards/usbstk5505/revb/

Ich gehe davon aus, dass es maximal 3 Kanäle pro Lautsprecherbox werden.
Bei ganzen Mischpulten in Software kommt man um einen C6000 nicht rum. 
Da geht dann nichts mehr ohne richtigen externen Speicher.

Grüße,

Peter

von Guest (Gast)


Lesenswert?

richtig, es sollte nur ein x-over werden, welcher bis zu 3-6 kanäle 
unterstützt. Allerdings wäre es mir der einfachheit halber sehr recht 
mit einem floatingpoint prozessor zu arbeiten.

Desweiteren sollte er double precision und am besten Samplingraten von 
bis zu 192kHz unterstützen ... (ja ich weiß, jetzt wirds esoterisch :D 
).
Spdif in wäre auch ein nice-to-have.

Ich habe mir bislang den AD SigmaDSP ausgesucht, wollte jedoch mal 
schauen was die konkurenz so kann ;-).

Das mit dem Jtag ist interessant. Wie sieht es da mit den Treibern aus, 
funktioniert das zusammen mit allen entwicklungsumgebungen, auch denen 
von AD. Dann könnte man ja auch einen Sharc verwenden (welcher ein 
quäntchen internen speicher hat).

Und noch generell: wieviele Taps darf so ein FIR filter lang werden für 
einen DSP ?!?

   grüße Johannes

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Double precision ist vollkommen übertrieben und mit ein wenig Nachdenken 
ist ein Festpunktprozessor keine Einschränkung.

In welchem Format man rechnet, sollte man erst nach einer gründlichen 
Fehlerabschätzung festlegen und nicht von vornherein sagen, dass man 
double braucht. Sonst braucht man nämlich von vornherein einen PC für 
die Berechnungen.

Samplingraten von 192 kHz sind keine hohe Anforderung. SPdif ist ja eine 
AES/EBU Schnittstelle, dafür gibt es Codecs, die an I²S betrieben 
werden, das ist kein Problem.

>Das mit dem Jtag ist interessant. Wie sieht es da mit den Treibern aus,
>funktioniert das zusammen mit allen entwicklungsumgebungen, auch denen
>von AD. Dann könnte man ja auch einen Sharc verwenden (welcher ein
>quäntchen internen speicher hat).

Der C5000 hat doch mehr als genug Speicher für eine Frequenzweiche.
Für den C5000 gibt es nur CCS als Entwicklungsumgebung, mit welchen 
sollte das sonst noch funktionieren? AD braucht ganz andere Hardware.

>Und noch generell: wieviele Taps darf so ein FIR filter lang werden für
>einen DSP ?!?

Ganz einfach: so viele, dass der Speicher und die Rechenleistung 
reicht...
In der Regel ist bei IIR-Filtern zuerst die Rechenleistung am Ende, bei 
FIR-Filtern auch manchmal zuerst der Speicher.

Wenn dir der C5000 nicht gefällt, dann schau dir auch den F28335 an, der 
hat eine Floatingpoint-Unit.

Grüße,

Peter

von Guest (Gast)


Lesenswert?

Nun gut, double precision klingt einfach (vom wort her gut).

Mit "ein wenig" nachdenken ist es glaube ich noch nicht ganz getan mit 
dem Festkommaprozessor. Ständig normieren etc. pp., im vornherein 
abschätzen wann additionen, multiplikationen überläufe erzeugen .... :S 
da grauts mir leider ein bischen davor, ich matlab verwöhnter fratz ;-).

Und nicht verwundert sein, allerdings hab ich angst um speicher, 
leistung. Kann dieser mit 4-6 FIR Filtern mit jeweils mind. 2000 taps 
umgehen? Klingt komisch, soll aber was besonderes werden ;-).

Ansonsten schon mal herzlichen danke, ich werde wohl mir mal ein sample 
des schnellsten TI C5000 holen und mir überlegen ob ich eine platine 
dazu layoute, und mich genauer mit fixed precision signal verarbeitung 
auseinander setzen.


   mfG Johannes

von Guest (Gast)


Lesenswert?

Bevor ichs vergess der USBprog ( 
http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=12 
) sieht ganz schnuckelig aus. Könnte man diesen mit dem CCS als jtag 
interface verwenden?

  Grüße Johannes

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Mit der IQmath Festpunkt-Bibliothek ist Festpunktarithmetik kein großes 
Problem.

Der USB-Prog ist weder ein JTAG Interface, noch für DSPs.

Die hier sind für die Ti DSPs:
http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=103
http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=23

Warum sollen das FIR-Filter werden? Jede normale Frequenzweiche 
verwendet IIR-Filter, z.B. vom Typ Bessel. Der ist im Durchlassbereich 
auch nahezu linearphasig.

Man sollte schon 3-4 Takte pro Tap und Filter rechnen. 6 Filter * 2000 
Taps * 4 Takte sind 48000 Takte, die pro Sample gerechnet werden. Bei 
192 kHz braucht man demnach rund 9,2 GHz, wenn man nichts 
parallelisiert. Ein C6000 kann viele Arithmetikfunktionen 
parallelisieren, damit hat man vielleicht eine Chance, ansonsten einfach 
IIR-Filter verwenden.

Grüße,

Peter

von Guest (Gast)


Lesenswert?

Sorry, die Antwort kam sehr spät.
Dennoch herzlichen, herzlichen dank für den link. Das baut mich wieder 
auf :-).

Der Versuch war keine einfache, gewöhnliche Frequenzweiche, das wäre ja 
langweilig ;-) sondern noch der versuch die Impulsantwort der 
Lautsprecher zu optimieren.

Das ganze wird nicht einfach werden, gänzlich nicht, zur not kann man ja 
immernoch auf nette FIR filter zurückgreifen falls das unternehmen, wie 
vllt. von vornherein schon zu erahnen ist den bach herunter geht :-( .



    mfG Johannes

P.S.: das ganze soll natürlich mit überteuerten high end ad / da 
wandlern (hab da welche mit 123 dB SNR gefunden) und extrem rauscharmen 
op-amps realisiert werden. Der Esoterik sind da keine grenzen gesetzt 
:D.

von Mine Fields (Gast)


Lesenswert?

Deine supertolle Dynamic Range bringt dir mal gar nichs, wenn du nicht 
fähig bist, das ganze im Design&Layout auch umzusetzen. Und nein, in die 
Richtung "ich hab doch schon ein paar Atmega Platinen gemacht und schon 
etwas über sauberes Layout gelesen, ich krieg das schon hin" 
funktioniert nicht.

Zum Thema DSP: Für die Anwendung ist ein FPGA zu empfehlen.

von Peter D. (pdiener) Benutzerseite


Lesenswert?

>Der Versuch war keine einfache, gewöhnliche Frequenzweiche, das wäre ja
>langweilig ;-) sondern noch der versuch die Impulsantwort der
>Lautsprecher zu optimieren.

Du könntest für den Anfang auch einfach einen PC mit Audiointerface 
verwenden. Für jeden Kanal einfach einen eigenen Ausgang verwenden. So 
kann man recht leicht Versuche machen, ohne, dass man Hardware aufbaut, 
die am Ende eventuell ungeeignet, zu schwach oder überdimensioniert ist.

Ich würde als Interface eins von MOTU nehmen, z.B. ein 896HD, das hat 8 
Analogausgänge bei 192 kHz Samplingrate. Vorteil: Das hat auch 8 
Eingange für die dazu notwendigen Messmikrofone.

Zum Thema Esoterik: Das Motu wird dich daran nicht hindern. Ich hab das 
o.g. Gerät hier, da rauscht einfach nichts. Kurzschlussstecker in den 
Eingang und mit höchstmöglicher Verstärkung auf den Kopfhörerausgang und 
es rauscht nichts. Man hört definitiv nichts. Kann ich also wirklich 
empfehlen.

Grüße,

Peter

von Guest (Gast)


Lesenswert?

Hallo Peter,
genau diesen weg gehe ich jetzt auch. Zunächst mithilfe von Matlab 
wavfiles "bearbeiten". Diese dann einzeln abspeichern.
Daraufhin mit einem Sample wie Cubase, oder Reaper FM ein multichannel 
file erzeugen (gibt sicher auch kleinere tools dazu) und dann die 
einzelnen wege auf die lautsprecher aufteilen.

Hallo Stefan L. Auch dein Beitrag scheint sehr produktiv zu sein. Wenn 
du meine Layout "Künste" (welche natürlich, zugegebener maßen nicht sehr 
vortgeschritten sind) anzweifelst, wie kannst du mir dann zu einem FPGA 
raten? Vllt. am besten noch im BGA gehäuse?
Das FPGA's deutlich leistungsfähiger sind, ist mir bekannt, gerade was 
die parallelisierung von threads angeht.

Ich bedanke mich jedoch bei Peter sehr und hoffe doch dass das Projekt 
bald Früchte Trägt. Jedoch hab ich bislang eins in meiner Theorie 
vergessen, Lautsprecher sind stark nichtlinear ... nun gut, nochmal 
zurück in die Ideenkammer.


        Liebe grüße Johannes

von Mine Fields (Gast)


Lesenswert?

Ich habe ja nicht gesagt, dass du die Platine selbst machen sollst. Am 
besten ist immer noch, wenn man auf ein fertiges Eval-Board 
zurückgreift.

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.