Hallo Leute, ich möchte gerne IIR Koeffizienten zur Laufzeit anpassen. Sprich Filter Grenzfrequenz ändern. Ich habe Bedenken, dass wenn ich die Koeffizienten direkt tausche es evtl. Sprünge im Ausgangssignal gibt oder Instabilitäten. Habt Ihr da eventuell Hinweise, wie man solche Funktionalität implementiert? Oder weiterführende Links? Danke und Grüße, Adib. --
Hoi, das würde ich bei einem IIR nicht machen, denn der Grund ist: du müsstest vor jeder Änderung der Koeffizienten erst prüfen, ob das Resultierende Filtee stabil sein wird. Was machst du, wenn es nicht stabil ist? Daher nimmt man für adaptive Filter FIR-Filter, weil diese immer stabil sind und du die Koeffizienten modifizieren kannst, ohne dabei in Teufels Küche zu kommen.
Hallo Tobias, Ich hatte mir gedacht zumindest aus einem Satz vordefinierter Koeffizienten zu wählen. Ich weiss aber nicht, inwiefern die Speicherelemente eine Rolle spielen. Ich würde ungern das Filter komplett "resetten". Danke, Adib. --
Ich bin nur ein Bastler und kein Profi. Daher habe ich das was Du vor hast schon mal in meinem Morsedecoder Experiment ausprobiert. > Ich weiss aber nicht, inwiefern die Speicherelemente eine Rolle > spielen. Ich würde ungern das Filter komplett "resetten". Aber genau das musst Du machen! Ich hatte das ausprobiert mit mehreren vordefinierten Parameter Sets. Bei der Umschaltung gab es immer sehr hohe Peaks, die meine Ergebnisse störten. Beim "resetten" gibt es zwar Unterbrechungen, aber bei meiner Anwendung stören die weniger oder fallen gar nicht auf. Bei einem 4-poligen IIR-Tiefpass ist die Unterbrechung ja nicht allzu groß. Eine Alternative wäre natürlich mehrere Filter parallel laufen zu lassen und dann nur die Ausgänge umzuschalten. Aber ich denke dann könnte man auch schon fast über FIR Alternativen nachdenken. Was ich nicht weiter zuende gedacht habe, ist die Möglichkeit, eine bestimmte Anzahl von Werten in einem (Ring-) Speicher aufzubewahren, um dann das neue Filter damit zu initialisieren. Das ist zwar auch nicht exakt, aber ein möglicher Kompromiss.
:
Bearbeitet durch User
Und was soll denn der Vorteil des IIR sein? Klar, man bräuchte weniger Taps, aber sämtliche Algorithmen für die Adaption der Filterkoeffizienten werden grausig kompliziert, sofern es überhaupt möglich ist. Hinzu kommt das oben erwähnte 'reseten' des Filters. Ich würde wirklich dazu raten, ein adaptives FIR-Filter mal anzuschauen. Reset entfällt, und mit dem NLMS-Algorithmus kann man eine schnelle und gute Adaption erreichen. Der Adaptionsalgorithmus ist ein Zweizeiler, wenn ich mich recht erinnere, also wirklich einfach ;-)
> Und was soll denn der Vorteil des IIR sein?
z.B. niedrige Latenz und geringe CPU-Last.
Im DSP-Buch von Grüningen gibt es ein Kapitel über abstimmbare Digitalfilter ISBN 9783905681420 ab Seite 61 Da wird teilweise mit einen einzigen Parameter abgestimmt Das Buch wird alle paar Jahre bei einem anderen Verlag wieder neu herausgebracht, mit vielen Änderungen. Das Kapitel kenne ich nur aus der Auflage. Beitrag "Re: Chorus Effekt" im DAFX-Buch könnte auch was zum Thema stehen
:
Bearbeitet durch User
Moin, Ich glaub', es ist garnicht so schlimm, wenn man bei der Variation der Filterkoeffizienzen keinen zu grossen Humbug treibt. Hoert sich zumindest in dem Dingens so an, wie ich mir's vorgestellt hab. Das ist ein Cauer 2.Ordnung mit 10dB Ripple, 40dB Sperrdaempfung, dessen Grenzfrequenz linear variiert wird, waehrend es mit einem Rechteckpuls angeregt wird. In dem Beispiel wird die Grenzfrequenz ueber einen Parameter zwischen 0..1 eingestellt. Hier wird das Filter tatsaechlich instabil, wenn ich damit nah' bei 0 oder 1 bin. Das kommt aber daher, weil ich die Filterkoeffizienten nur durch Polynome 2. Ordnung approximiere; die liegen dann bei 0 und 1 am tuechtigsten "neben" den echten Werten - da ist die Instabilitaet dann auch kein Wunder. Gruss WK
Adib schrieb: > Habt Ihr da eventuell Hinweise, wie man solche Funktionalität > implementiert? Nimm ein MF10. Dann brauchst du nur die Taktfrequenz zu ändern. http://www.ti.com/lit/an/snoa572c/snoa572c.pdf
Tobias P. schrieb: > Und was soll denn der Vorteil des IIR sein? > Klar, man bräuchte weniger Taps, aber sämtliche Algorithmen für die > Adaption der Filterkoeffizienten werden grausig kompliziert, sofern es > überhaupt möglich ist. Das muss natürlich vorher und in engen Grenzen geschehen. > Hinzu kommt das oben erwähnte 'reseten' des > Filters. Das sollte kein Problem sein. Man könnte 2 Filter nehmen und alternierend verwenden.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.