Forum: Digitale Signalverarbeitung / DSP / Machine Learning Wiener Filter


von Matthias (Gast)


Lesenswert?

Hallo!

Ich komme beim Wr.Filter nicht weiter und finde auch nichts Nützliches 
was mir weiterhilft im Internet dazu...

Wie setzt man einen FIR Wiener Filter um?

Wie legt man die Anzahl an Koeffizienten fest?
Funktioniert die Schätzung auch bei Bias oder wird die Lösung dann 
einfach komplizierter? Oder müsste man den Bias schätzen lassen in 
irgendeiner Form? Wenn der Bias konstant ist, handelt es sich um einen 
stationären Prozess... von dem her müsste es gehen, oder?


Würde es an sich dann genügen wenn man AKF und KKF hat, dass man wie 
dort [1] den Koeffizientenvektor berechnet?

Ich verstehe unter anderem zB nicht wie ich in Echtzeit die 
Korrelationen berechnen soll. "Fahre" ich dann einfach (bei KKF) mit 
meinem gemessenen noisy Signal über mein bekanntes Referenzsignal? Wie 
gehe ich mit den Werten um die ich noch nicht gesampled habe? Werden 
diese zu 0 gesetzt oder berechnet man die AKF und KKF leicht 
zeitversetzt?

Dankbar für Tipps oder gute Links,

Matthias

[1] 
http://en.wikipedia.org/wiki/Wiener_filter#Finite_impulse_response_Wiener_filter_for_discrete_series

von Matthias (Gast)


Lesenswert?

Hallo.

Ich habe mir das nochmal angesehen und schon halbwegs 
offline-Ergebnisse...
Vll kann jemand meine Annahmen/Aussagen bestätigen oder beschreiben wie 
es sonst gemacht wird:

Matthias schrieb:
> Wie setzt man einen FIR Wiener Filter um?

Ich habe ein Referenzsignal und das noisy verwendet.
Ich habe blockweise AKF und KKF berechnet. Es gibt zwar verschiedene 
Formeln, die sich bezüglich den Indizes der AKF unterscheiden 
(vorzeichen), das ist aber egal da die AKF eine gerade Funktion ist und 
daher AKF(-1)=AKF(1).

Verwirrt hat mich auch die Korrelationszeit. ich habe jetzt beider 
Korrelation immer den Block von Samples quasi schon im Minusbereich 
drüber gezogen, sodass AKF(0) der Max-Wert ist.

> Wie legt man die Anzahl an Koeffizienten fest?

Je mehr desto besser wurde es. 8 Taps oder so waren zu wenig. viel 
besser wurde es bei 128...

> Funktioniert die Schätzung auch bei Bias oder wird die Lösung dann
> einfach komplizierter? Oder müsste man den Bias schätzen lassen in
> irgendeiner Form? Wenn der Bias konstant ist, handelt es sich um einen
> stationären Prozess... von dem her müsste es gehen, oder?

Wr Filter kann den Bias wegschätzen.

> Würde es an sich dann genügen wenn man AKF und KKF hat, dass man wie
> dort [1] den Koeffizientenvektor berechnet?

Ja.

> Ich verstehe unter anderem zB nicht wie ich in Echtzeit die
> Korrelationen berechnen soll. "Fahre" ich dann einfach (bei KKF) mit
> meinem gemessenen noisy Signal über mein bekanntes Referenzsignal? Wie
> gehe ich mit den Werten um die ich noch nicht gesampled habe? Werden
> diese zu 0 gesetzt oder berechnet man die AKF und KKF leicht
> zeitversetzt?

Immer blockweise verarbeitet. der optimale Filter hinkt dann zwar immer 
ein bissl nach, was aber egal ist solange sich die noise-charakteristik 
nicht zu schnell ändert.

Ich hoffe, dass meine Schlüsse einigermaßen passen. Eine Frage hätte ich 
noch:
Sollte man eigentlich eine Art overlap&add-methode verwenden?

Für Testzwecke habe ich noch folgenden Code gefunden:
http://www.mit.edu/~gari/CODE/FILTERS/wienerFilter.m

Sollte der wrFIR bei mir mal passen, werde ich ihn auch da reinstellen.

LG, M

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.