www.mikrocontroller.net

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


Autor: henning_hansen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: henning_hansen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

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.