mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Acoustic feedback cancellation


Autor: Mario Zechner (badlogic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo beisamen,

ich hätte eine wohl etwas blauäugige Frage bzw. Problem. Auch muss ich 
vorrausschicken dass ich nur wenig DSP Erfahrung habe (ein wenig 
Audioprogrammierung aber nichts grandioses).

Dazu mein Szenario: handelsübliches Mobiltelefon mit Speaker. Abstand 
von Mikrofon und Speaker sind naturgemäß extrem klein. Das Telefon soll 
als real-time Vocoder verwendbar sein, d.h. reinsprechen, samples 
manipulieren und Ausgabe über Speaker. Natürlich kommt es da zu einem 
akkustischen Feedbackloop (außer man verwendet Kopfhörer). Klassische 
Lösungen wie man sie aus dem Musikbereich kennt sind nicht anwendbar da 
Mikrofon und Speaker ihren Platz und ihre Ausrichtung nicht ändern 
können.

Ich habe nun schon etwas länger recherchiert und alle möglichen Lösungen 
scheinen eine Form von adaptiven Filter zu sein mit normalized LMS 
gradient descent. Diese scheinen eine (kurze) Trainingsphase zu 
benötigen.

Würde ein solcher NMLS Filter bei meinem Feedback Problem helfen? Ich 
habe das ungute Gefühl dass das Problem nicht (so einfach) lösbar ist.

Bevor ich also Zeit in das Verstehen und Implementieren eines solchen 
Systems investiere wollte ich noch die Meinung von Experten einholen. 
Ist so ein System machbar?

Danke für alle Hinweise,
Mario

Autor: Denglisch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schreib deinen Beitrag doch gleich komplett auf Englisch, dann wirkt es 
nicht mehr ganz so lächerlich.

Zum Thema: Wie groß darf bzw. muss die Zeitverzögerung zwischen Ein- und 
Ausgabe sein?

Du schreibst von Samples, möchtest du also soetwas:
Aufnehmen -> Filter einstellen -> Bearbeiten -> Ausgeben ?

Dann hättest du überhaupt keine Probleme, während der Aufnahme könntest 
du deinen "Speaker" einfach abschalten.

Alles andere wäre IMHO kaum sinnvoll auf einem Mobiltelefon umsetzbar.

Eine Echtzeit-Stimmenverfremdung (können manche Karnevalsmasken z.B.) im 
Handy stelle ich mir extrem schwer benutzbar vor.
Dir selber mit verfremdeter Stimme und ggf. Zeitverzögerung zuhören wird 
wohl nette Kopfschmerzen hinterlassen.

Einfach "nur" die Stimme zu verfremden wird auch schwer möglich sein, 
eben aufgrund des geringen Abstand Mikrofon->Lautsprecher.
Die kleinen Lautsprecher können einen sprechenden Menschen doch kaum 
übertönen, ohne selbst schon wunderbare Verzerrungen zu produzieren.
Noch dazu, wo der "Output" vom Handy so nah an deinem "Output" ist.

Autor: badlogic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tut mir leid wenn die englischen Begriffe auf dich laecherlich wirken. 
Nachdem all die Literatur die ich dazu gelesen habe auf englisch war 
dachte ich es waere angebrachter dieses Vokabular zu verwenden. Und IMHO 
wie von dir verwendet hat doch sicherlich auch ein deutsches Pendant 
nehme ich an oder?

Unter Samples haette ich weniger eine mehrere Sekunden lange Aufnahme 
verstanden sondern eher jeweils die Amplitude zu einem Abtastzeitpunkt. 
D.h. das ganze soll in nahezu Echtzeit passieren (plus natuerlich der 
Latenz der Hardware selbst).

Die Sinnhaftigkeit des ganzen entzieht sich auch meinem Verstaendnis 
etwas. Wie du bereits angemerkt hast ist der Lautstaerkenpegel des 
Telefons viel zu schwach um die Stimme zu uebertoenen. Meinen 
potentiellen Auftragsgeber waere das jedoch anscheinend egal.

Danke fuer die Hinweise!

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mario Zechner schrieb:
> Würde ein solcher NMLS Filter bei meinem Feedback Problem helfen?

Prinzipiell ja, aber:

> Ich habe das ungute Gefühl dass das Problem nicht (so einfach) lösbar ist.

Da könntest du recht haben. Ich sehe folgende Probleme:
- API: du brauchst samplesynchronen Zugriff auf Mikrofon- und 
Lautsprechersignal.
- Nichtlinearität: wenn du den Handylautsprecher gut aussteuerst wird 
das vermutlich nichtlineare Verzerrungen zur Folge haben, die du mit 
einem linearen Filter nicht kompensieren kannst.
- Direktes Sprachsignal und Lautsprechersignal treten in deinem Fall 
immer gleichzeitig auf. Bei normaler Echokompensation wird die 
Filteradaption angehalten sobald ein lokaler Sprecher aktiv ist (double 
talk detection), das geht bei dir nicht. Das macht es dem NLMS sehr viel 
schwieriger zu konvergieren.

Abgesehen von den technischen Problemen glaube ich aber auch dass so ein 
Verzerrer im Handy nicht gut benutzbar ist.

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.