Guten Tag, ich habe hier die Suche und ja, ich habe auch google bemüht. Aus diesem Grund eröffne ich nun hier diese Frage. Ich möchte in die Welt der DSP's einsteigen. Bisher bin ich mit C-Programmierung auf AVR Prozessoren vertraut. Mein erster DSP wird ein dsPic der Firma Microchip. Ich möchte mit diesem Gerät ein von einem Mikrofon aufgenommenes Sprachsignal (ca. 200 bis 3500 Hz) an dem Lautsprecher wieder ausgeben. Natürlich soll es dabei nicht zu Rückkopplungen der Lautsprecher wiedergabe auf das Mikrofon kommen. Nun gut. Sprachsignal also schön mit mindestens doppelter Aptastfrequenz sampeln (10 bit?!) und dann irgendwie Puffern. Den Puffer dann am Lautsprecher wieder DigialAnalog gewandelt ausgeben. Der Puffer muss natürlich vorher überprüft werden ob das Signal vom eigenem Lautsprecher stammt oder "neu" ist. Denke das Prinzip müsste es sein. Jedoch finde ich im I-net kaum gescheite Anleitungen was für Filter dies genau sind. Es gibt zwar Firmen die sagen das Ihr Algorithmus das macht, aber das Prinzip... mmh. Ich würde das Thema gern besser verstehen um dann so was selbst auf die Beine stellen zu können. Kann mir irgendwer erklären was genau digital ablaufen muss?
Skittler Bruce schrieb: > Der Puffer muss natürlich vorher überprüft werden ob das Signal vom > eigenem Lautsprecher stammt oder "neu" ist. Ist leider nicht so ganz trivial. Das Prinzip bei der so genannten "Echo cancellation" ist, das man den akustischen Kanal zwischen Lautsprecher und Mikrofon elektronisch nachbildet. Damit "weiss" man sozusagen, was von dem mittels Mikrofon aufgenommenen Signal vom eigenen Lautsprecher stammt, und kann es von dem Mikrofon-Signal abziehen. Das "Nachbilden" des akustischen Kanals passiert z.B. mit einem sog. FIR Filter. Die Dauer des Echos (Nachhalles) bestimmt dabei die notwendige Größe des FIR Filters. Je nach Raum ist es durchaus schon eine Herausforderung, diesen auf einem DSP zu implementieren - manchmal verwendet man auch dedizierte Hardware. So ein großer FIR Filter hat in der Größenordnung von mehreren 100 bis 1000e Parametern. Die Herausforderung ist nun diese aufgrund des akustischen Signals zu schätzen. Echo cancellation Algorithmen schätzen diese Parameter fortwährend, denn es kann ja sein, dass der akustische Kanal sich ändert (z.B. Nutzer das Handy relativ zum Kopf bewegt). Da das ganz ja ein Rückgekoppeltes System ist muss man auch darauf Acht geben, dass es nicht zu schwingen anfängt. Eine einfachere Möglichkeit die Parameter zu schätzen könnte es sein, ein Stossantwort aufzunehmen. Im Prinzip erzeugt man einen "Knall", und nimmt den entstehenden Nachhall auf. So zumindest die Theorie. Ob das auch praktisch funktioniert - keine Ahnung. Also gar nicht so einfach. Vielleicht als Einstieg stattdessen einfach mal einen Hall (Reverb) implementieren ? Es gibt im Internet zum Teil "Impulsantworten" von realen Gebäuden zu finden. Damit könnte man dann zum Beispiel die Akustik einer Kathedrale simulieren. Wenn es unbedingt Echo Cancellation sein muss: Vielleicht hilft auch ein Trick, z.B. das Signal einfach einige 100ms (?) verzögern, das verringert auf jeden Fall die Rückkoppelung. Ich denke ein zusätzlicher (digitaler) Tiefpass kann auch nicht schaden. ZigZeg
Das Problem (feedback cancellation) ist noch ein bisschen schwieriger als "nur" echo cancellation. Bei echo cancellation adaptiert man das Modellfilter nur wenn gerade keine andere Quelle aktiv ist, so kann man den Echopfad relativ problemlos identifizieren. Bei Feedback klappt das nicht mehr so einfach, weil permanent der Sprecher selbst als "Störquelle" in dem Mikrofonsignal enthalten ist. Um Feedback zu reduzieren gibt es noch ein paar einfachere Verfahren, die z.B. in diesem Buchkapitel beschrieben werden: http://books.google.de/books?id=57XmRUhcdIQC&lpg=PP1&dq=acoustic%20echo%20and%20noise%20control&pg=PA129#v=onepage&q&f=false Allerdings habe ich auch so meine Zweifel ob das als Einsteigerprojekt taugt.
In der Elektor wurde das vor einiger zeit so gelöst, dass das Sprachsignal um einige 100Hz raufgemischt wurde. Vielleicht ist das auch ein brauchbarer Ansatz.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.