Hallo,
Ich bin zwar Programmierer (Windows), aber habe noch nie mit DSP's zu
tun gehabt. Ich habe eine Idee die ich aber gerne ohne PC umsetzen
würde. Dafür werde ich wohl mehrere DSP's benötigen und es sind ein paar
Anfängerfragen zu klären:
Was ich benötige:
- Mono Audio-Signal wandeln (A/D-Wandler, min 16 Bit)
- FFT (möglichst viele Bänder. 8000 oder mehr)
- FFT Analyse, um die lautesten 8 Frequenzen zu finden
- 8 flexible, sehr schmale Bandpass-Filter
- 8 flexible Delay-Algorithmen
- Zusammenmixen von 9 digitalen Signalquellen
- Digital-Analog Wandlung
Ich bin bereit dafür mehrere DSP's zusammenzuschalten. Wichtig ist mir
eine extrem kurze und konstante Latenz zwischen Ergebnis und Eingang.
Die Fragen:
- Welche DSP's kommen dafür in Frage?
- Wie werden diese Programmiert (Assembler, C, Basic, etc)?
- Kann mir jemand Einsteigerliteratur empfehlen?
- Gibt es passende DSP Komplettsets, die per RS232 oder USB
programmierbar sind?
- Ist das ganze Aussichtslos?
Zweitfrage:
Wo kann man sowas notfalls machen lassen bzw. wer hat das KnowHow dazu
und bietet solche Leistungen an? Was dürfte sowas kosten wenn es nur um
die Programmierung in Zusammenarbeit geht?
PS. Nein, es soll kein Feedback-Destroyer werden... ;-)
Grüsse,
Kukulkan
Kann mir niemand ein paar Tipps zu meinem Vorhaben geben?
Ich habe bei Texas Instruments und auch bei Cirrus Logic ein paar DSP's
gefunden, die speziell für Audio gemacht zu sein scheinen. Aber welcher
ist in der Lage das von mir geforderte zu tun?
Und vor allem, wer kennt eine Firma/Freelancer der sowas realisieren
kann?
Kukulkan
Das klingt so, als ob eine DSP-Steckkarte aus der Musikelektronik die
richtige Größenordnung wäre. Ich meine, da gibt es zum Beispiel
PCI-Bus-Karten mit mehreren Sharc-DSPa von Analog devices.
http://www.thomann.de/de/search.html?sw=SHARC&x=5&y=9&gk=&bn=
Oder mal einen DSP Evalkit nemhmen. Die gibts mit Tools ab 200Euro,
erlauben sich mit der Materie zu befassen und so die Bedurftnisse
abzuklaeren. Ein ASM ist in der Regel dabei, fuer einen Compiler wolles
sie die dicke Kohle sehen.
Hi Christoph,
Danke für den Tipp, aber ich möchte daraus ja ein standalone Gerät
konzipieren. Eine PC Steckkarte ist da (leider) nicht geeignet. Ich
vermute auch, dass die Latenzzeiten durch irgendwelche Treiber viel zu
hoch sind. Ich benötige absolut geringe Latenz!
Hi Sabb,
Wo kann man denn so ein DSP Evalkit in Deutschland beziehen? Ich finde
irgendwie nix bei google... Und kann man da nicht jeden C-compiler
nehmen? Oder gibt es da nicht auch freie (open Source etc.)?
Kukulkan
@ Kukulkan,
zuerst musst Du dich fuer einen DSP entscheiden. Die TexasInstruments
Dinger sind zwar wahnsinnig gut, aber auch wahnsinnig teuer. Der Trick
bei TI ist, dass die Tools fiuer den Evalkit nu an diesem arbeiten, auf
der eigenen Hardware arbeiten die nicht. Da muss man dann satt
abdruecken.
Aber zB Analog Devices : ADSP 21xx, Blackfin, bei denen kann man
zumindest mit der eigenen Hardware nachher weiterarbeiten. Der ASM ist
dabei. Ein Visual DSP++ war das letzte Mal als ich fragte bei 4000Euro.
Wenn man sich dann entschieden hat welchen DSP, kann man mal schauen, wo
man den bekommt.
Nein, irgend ein C Compiler geht nicht. Alternativ koennte man die
Funktionalitaet in einem FPGA bauen. Das ist aber auch ein grosses
Projekt.
An alle erstmal herzlichen Dank.
Ich hatte diese Idee um ein Antischall-Produkt zu entwickeln. Im ganzen
geht es mir darum die Kinderzimmer bei mir zu Hause vom Strassenlärm zu
befreien. Leider gibt es nichts vergleichbares und ich glaube mein
Ansatz wäre sehr Erfolgsversprechend. Wenn ich im Internet nach einer
solchen Applikation suche, finde ich nichts brauchbares weil entweder
mit statischen Gegenfrequenzen gearbeitet wird oder nur
situationsangepasste Speziallösungen zu haben sind. Einzige Ausnahme
sind Kopfhörer (zB Sennheiser) die damit die Umgebungsgeräusche
reduzieren. Ich bin mir sicher, dass eine Lösung, die man nur auf die
Fensterbank stellen muss, reissenden Absatz finden würde! Auch wenn das
fertige Gerät 400 EUR oder mehr kosten würde.
Wenn ich aber die 4000,- EUR und die weiteren Entwicklungskosten
zusammenrechne, dann kann ich dafür auch gute Schallschutzfenster
einbauen lassen. Eine Alternative wäre noch, jemanden oder eine Firma zu
finden, die das erforderliche Equippment bereits besitzt und Interesse
daran hat das gemeinsam mit mir zu entwickeln. Kennt Ihr jemanden der da
in Frage kommt? Bei Interesse bitte hier Kontakt aufnehmen:
http://www.inspirant.de
Ich selbst werde das Projekt mangels finanzieller Mittel aufgeben. Bin
etwas geschockt über die horrenden Preise von Development-Boards und
Entwickler-Tools. Ich hatte gehofft, dass es solche DSP's als bezahlbare
Single-Chip-Lösung oder Single-Board-Lösung gibt, die man per RS232 oder
USB in C oder Assembler programmieren kann.
Kukulkan
Es funktioniert eh nicht. Ja, in einem Kopfhoerer kann man externen
Schall ausloeschen. Ich hatte allerdings dabei ein stark erhoehtes
hoeherfrequentes Rauschen festgestellt, was mich fast mehr stoert als
der niederfrequente Laerm. Dh in der Standardanwendung, in einem
Cockpit, schaltie ich die aktive Noiseentfernung jeweils fuer mich ab.
Fuer ein ganzes Zimmer geht das nicht. Man kann an einem
Mikrophonstandort den Laerm ausloeschen, nebendran ist es dann aber
lauter. Ja, Schallschutzfenster sind sicher die bessere Investition.
Die DSP Evalkits sind im allgemeinen guenstig, koennen dann aber nur
einen akustischen Kanal, resp zwei fuer Stereo.
für diese Fälle gibts bereits Prototypen. Problem: Die Lautsprecher die
die "Gegenwelle" bilden müssen die ankommende Welle in jedem Punkt
phasenkonjugiert reproduzieren. D.h. eine Menge an Mikrophonen ist
nötig, ebenso wie eine Menge an Lautsprechern. Das unten ans Fenster zu
stellen geht deshalb aus physikalischen gründen nicht!
Da Schallwellen im Hz Bereich sind, ist das Timing keine wirklich große
Herausforderung, da kann man einfach mit dem
Lautsprecher/Mikrofonabstand bis zu einem bestimmten Grad gegenwirken.
Das kannst Du sicher auch mit ner Soundkarte (Programmierung über
DirectX) und einem PC einfach realisieren.
Mit mehr Spiellaune läßt sich das auch direkt auf dem Soundkarten DSP
programmieren. Die können nämlich auch alle 3D-sound.
Mario
Zu den Entwickler-Tools ein kurzer Kommentar: Nicht vergessen, dass es
für den Blackfin die kostenlose Toolchain gibt (blackfin.uclinux.org),
die auch prima für typische 'standalone'-DSP-Programme funktioniert,
wo's um Rechenpower bzw. I/O und nicht um Betriebssystem geht.
Mit etwas "krimineller" Energie hat man sich ein STAMP-Board von Analog
Devices bestellt und sich seine Toolchain auf einem DEBIAN-System
installiert. Damit laesst sich im Vergleich zu den offiziellen Tools
schon mal schnell und billig loslegen.
Gruss,
- Strubi