Forum: Digitale Signalverarbeitung / DSP / Machine Learning Matlab FIR Filter 8 Taps Wiener Lösung gesucht


von henning_hansen (Gast)


Lesenswert?

Hallo,

ich hab mit einem DSP einen LMS Algorithmus realisiert und will nun die
Ergebnisse mit Ergebnissen aus Matlab vergleichen.
Es handelt sich um einen FIR Filter mit 8 Filter Koeffizienten.
Die Koeffizienten werden adaptiv vom DSP eingestellt, als Eingang
dienen die Signale von zwei Mikrofonen. Eins nur Störlärm eins
Störlärm+Sprache. Nun werden die Filter so eingestellt das im besten
Fall der Störlärm rausgerechnet werden kann. Das funktioniert alles,
ich möchte jetzt jedoch wissen wie ungenau die Filter Koeffizienten des
LMS im Vergleich mit der Wiener Lösung abschneiden. Die Wiener Lösung
ergibt die optimalen Filter Koeffizienten eines FIR Filters.


die Wiener Lösung lautet wie folgt

w = p * R^-1

in Worten

optimale Filter Werte Vektor  = Kreuzkorrelationsvektor * inverse
Autokorrelation

ich kenn mich mit Mathe leider nicht so gut aus und ich check nicht wie
ich in Matlab aus zwei wav-Dateien die mehrere 1000 Samples haben mit
obiger GLeichung nur 8 Zahlen ausrechen kann?
Adaptiv mit dem DSP kein Probelm da hab ich alles fertig, aber die
optimalen Koeffizeinten mit einem Rechenschritt herauszufinden schafff
ich nicht.

Ziel ich würde gerne
8 Zahlen herausbekommen ; optimale Filter Koeffizienten mit der Wiener
Formel ausrechnen

Eingang
Zwei Wav-Datein in Matlab einladen und mit den die Autokorrelation und
Kreuzkorrelationsvektor erzeugen und dann als Ergebniss einen 8 Zahlen
großen Ergebnisvektor haben.

ich denke ja das bei der Größe der dimension der Autokorrelation und
des Kreuzkorrelationsvektors kein Ergebnisvektor rauskommen kann der
eine andere Dimensiom = 8 hat.

Bin für jeden Tipp dankbar
bin ein wenig am verzweifeln hat den niemand inner uni aufgepasst(hab
bei matlabcentral mehrfach gepostet aber immer null response).
thx 4 help
Henning

leider nur auf english was gefunden
http://en.wikipedia.org/wiki/Wiener_filter

von Michael P. (Gast)


Lesenswert?

Sorry mir ist dein Aufbau nicht klar. Du hast zwei Microfone, ein
Adaptives Filter und ein Lautsprecher. Wie wird jetzt der Fehlervektor
für das Adaptive Filter berechnet? Male doch einfach mal ein
Blockschaltbild deines Algorithmus, dann dann ich dir vieleicht auch
sagen wie dieser in Matlab aufzubauen ist.

Mfg Michael

von henning_hansen (Gast)


Angehängte Dateien:

Lesenswert?

anhang ein schema des Fitlers.

der d eingang ist der eingang der das mixed signal enthält sprich das
signal das aus störlärm und sprache besteht. das x signal ist das
"reine" störlärm signal und e ist das eigendliche ausgangssignal
sprich das signal das dann am lautsprecher ausgegeben wird und im
optimalen fall nur sprache ist. Sorry das das au der zeichnung etwas
anders aussieht aber so wie ich es hier schreibe ist es
x störlärm der so gefiltert wird, das er möglichst genau so ist wie der
anteil in d und von d abgezogen dann nur noch der sprachanteil übrig
bleibt.
die adaption geht über den LMS Algorithmus

die neuen gewichte werden über
h(neuk)= h(altk) + x(k)*mue*e(k)
ermittelt.
-------------------------------------
Darum geht es aber nun gar nicht.
-------------------------------------
Ich wollte nur wissen wie man die optimalen Filterwerte 8 an der Zahl
für den Filter ausrechnet ohne  das ganze adaptiv zu machen.
Dazu benutzt man die Wiener-Hopf Gleichung wie im ersten Posting steht.
DA hab ich das Problem das ich nciht weiss wie man bei der Dimension die
die Autokorrelation hat einen nur 8 stellen großen ergebnisvektor
herausbekommt.
Auch wenn das nur 8 Tap große FIR Filter nicht ausreicht den Störlärm
zu beseitigen muss es doch optimale filter koeffizienten geben die das
Filter so einstellen, das der Lärm minimiert wird diese Koeffizienten
möchte ich ausrechnen.

Danke für Eure Hilfe Henning

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.