Forum: Digitale Signalverarbeitung / DSP / Machine Learning Frage zu LMS-Filter.


von Albin Z. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Freunde,
Ich möchte die paar freien Tage jetzt nutzen und ein wenig den Stoff von 
der Uni repetieren, bald habe ich ein paar Prüfungen....
Gerade bin ich digitale Signalverarbeitung am anschauen, konkret: das 
LMS-Filter.
Während des Semesters war mir irgendwie total klar, wie das 
funktioniert, aber jetzt stehe ich total auf dem Schlauch!
Ich habe hier ein Simulink-Modell, wo dem LMS-Filter folgende Signale 
eingespiesen werden:

- als Input-Signal kommt Sprache + ein überlagerter, störender Ton.
- als Desired-Signal wählt man ein Signal mit der selben Frequenz wie 
der Störton.
- Am Error-Output kann man dann die Sprache ohne den störenden Ton 
entnehmen!

- das selbe funktioniert auch mit Rauschen anstatt dem Sinusgenerator.

Mir ist schon klar, wie das LMS-Filter funktioniert. Es ist ein 
FIR-Filter. Dann wird die Differenz vom Filterausgang und dem "Desired" 
Signal gebildet, und das ergibt den Error. Und der soll minimiert 
werden, also eigentlich soll er gegen 0 gehen. Und jetzt kommt meine 
"interessante" Frage!
Wenn das LMS-Filter doch versucht, den Fehler gegen 0 zu bringen... 
Warum kommt dann beim Error Output die Sprache raus? Eigentlich müsste 
das LMS-Filter ja dort konstant eine 0 liefern, weil es ja versucht, den 
Fehler gegen 0 zu bringen.

Da stehe ich jetzt momentan total auf dem Schlauch. Als es der Dozent 
erklärt hat, war es irgendwie klar :-) aber jetzt nicht mehr. Bitte um 
eure Hilfe! :-D

Vielen Dank & Gruss:
Albin.


P.S.: dass im Simulink-Bild das ich angehangen habe ein "normalised LMS" 
drin ist, sollte ja eigentlich nichts zur Sache tun. Einzig der 
Algorithmus zur Minimierung des Errors ist da ja ein anderer.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Albin Z. schrieb:
> Warum kommt dann beim Error Output die Sprache raus?

Die übliche Annahme ist, dass Sprache und Störung unkorreliert sind, das 
Filter kann also gar nichts von der Sprache entfernen (bzw. nur wenn 
während der Sprecheraktivität mit viel zu hoher Schrittweite adaptiert 
wird). Dein Szenario ist allerdings etwas untypisch und nicht sehr 
praxisrelevant; typisch wäre, dass der Störer ebenfalls ein Sprachsignal 
ist (Echokompensation).

von Albin Z. (Gast)


Lesenswert?

Hallo Andreas,
das Beispiel habe ich aus dem Buch "Adaptive Filter Theory" von Simon 
Haykin. Dort wird genau diese Anwendung beschrieben; die Idee ist, dass, 
falls das sinusförmige Störsignal in seiner Frequenz driftet, das 
Adaptive Filter das Signal dennoch entfernen kann, was mit einem 
gewöhnlichen, festen Notchfilter ja nicht möglich wäre.

Andere Frage: bei der Echokompensation wäre der Input des LMS-Filters 
das, was das Mikrofon meines Telefonhörers aufnimmt; das Desired-Signal 
wäre das, was zum Lautsprecher geht, und am Error-Output käme dann was 
nochmal heraus?
irgendwie blicke ich es noch nicht ganz, wie die Echokompensation 
funktionieren soll.

Gruss!

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Albin Z. schrieb:
> Andere Frage: bei der Echokompensation wäre der Input des LMS-Filters
> das, was das Mikrofon meines Telefonhörers aufnimmt; das Desired-Signal
> wäre das, was zum Lautsprecher geht, und am Error-Output käme dann was
> nochmal heraus?

Da kommt das lokale (near end) Sprachsignal ohne Echo heraus.

von Albin Z. (Gast)


Angehängte Dateien:

Lesenswert?

Hi Andreas,

super, ich beginne mich zu erinnern.
Interessant ist hier allerdings schon, dass es funktioniert, obwohl doch 
in diesem Fall das Echo und die Sprache selbst eigentlich zueinander 
korreliert sind (was ja beim Noise-Beispiel weiter oben nicht der Fall 
ist). Und noch viel Interessanter: mein LMS-Filter in dem Modell oben 
hat nur eine Länge von 50 Taps, und obwohl mein Delay 1024 Samples 
beträgt, wird das Echo recht gut entfernt.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Das stimmt so nicht. Schau dir mal ein Blockschaltbild einer 
Echokompensation an. Entfernt wird das far-end Signal, übrig bleiben 
soll das near-end Signal, und die sind unkorreliert.

von Albin Z. (Gast)


Lesenswert?

Hi Andreas,
hmm das verstehe ich jetzt nicht. Was wäre dann Input oder Desired? :o
bitte hilf mir auf die Sprünge.
Gruss!

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.