Ich möchte hier meine Erfahrungen zu hintereinander geschalteten Moving-Average-Filtern (MAV) darlegen. Vieleicht hilft es ja anderen. - Problem: Tiefpass mit Mikrocontroller, der möglichst schnell berechnet werden kann, also hohe Samplingraten ermöglicht. -> Ein einzelner MAV hat eine geringe Sperr-Dämpfung. Wenn man jedoch mehrere MAVs so hintereinander schaltet, dass deren Nullstellen möglichst gleich verteilt zwischeneinander liegen, bekommt man ein recht gutes Tiefpassverhalten bei sehr kleiner Rechenzeit. Die Nullstellen liegen bei Omega= 1/N, 2/N, ... (N ist Mittelwertanzahl) Beispiel für dreistufigen MAV (N1= 19, N2= 15, N3= 12): -3dB-Grenzfrequenz ist 1/60 Samplingfrequenz Dann hat die erste Sidelobe -46dB, die folgenden bleiben unter -51dB. Und ab F= 7,7 * Grenzfrequenz bleibt er unter -60dB - bis zur Nyquistfrequenz. Auf 120MHz-SAM4S braucht der Filter 0,5µs zum berechnen. Allgemein 3-er-Kaskade: N1 gegeben; dann N2 = N1 / 1,22; N3 = N1 / 1,58 Die Werte sind natürlich zu runden. Für mehr als 3 MAVs ändern sich die N1/Nx-Verhältnisse entsprechend und die Sperrdämpfung wird noch besser. Nachteile der MAVs sind - die größere Verzögerungszeit gegenüber richtigen FIRs - der frühere Abfall im Durchlassbereich gegenüber richtigen FIRs, dafür kein Überschwingen in Sprungantwort
Sollte das eine Abhandlung werden? Ist ein wenig oberflächlich. Hast du das nun selber rausbekommen und warst überrascht, weil du uns das mtteilen möchtest? Du hast überwiegend bekannte Fakten zitiert. Kaskadierte Mittelwertfilter sind so alt, dass sie schon Staub angesetzt haben und aufgrund der heute verfügbaren Rechenleistung / Cent praktisch keine Rolle mehr spielen. Alex schrieb: > Allgemein 3-er-Kaskade: Nennen wir im Allgemeinen CIC. Alex schrieb: > die größere Verzögerungszeit gegenüber richtigen FIRs Das solltest du mal näher ausführen, wann CIC wirklich mehr verzögern. Letztenendes kommt es auf die Zeit an, die nach dem letzten berücksichtigten Datum vergeht und da der CIC recheneffektiver ist, kann das nur weniger sein! Alex schrieb: > dafür kein Überschwingen in Sprungantwort Ein FIR-Filter, dessen Koeffizienten so eingestellt sind, dass der Frequenz gang dem entspricht, was auch der CIC bringt, gibt es kein Überschwingen. Wo hast du das denn her?
Moin, N paar Bilder mit Frequenzgaengen (und beschrifteten Achsen) wuerden mir gefallen. Gruss WK
@Dergute W. OK, gerne. Ich habe die Diagramme für 60kSPS beschriftet PS: Die Signalverzögerung bis 0% bis 50% beträgt (N1+N2+N3)/2
Was ist denn jetzt hier die genaue Aussage? Gibt es da etwas Neues zu berichten? Auf den ersten Blick sieht man, warum diese Filter nicht viel taugen: 1) Schon bei 1kHz ist -3dB erreicht. Ende des nutzbaren Filterbereiches. Mit Schärfung, die du dir ansehen könntest, kann man es Faktor 2 heben. 2) Noch bei dem 10-fachen der Nutzfrequenz rumpeln ganzzahlig passende Frequenzen durch den Filter hindurch.
@Bär: Du scheinst wenig Ahnung von Digitalfiltern zu haben ;-) - Dieser Filter (Tiefpass!!!) wurde extra auf 1kHz Grenzfrequenz ausgelegt - Wie jeder(!) Digitalfilter ist der Frequenzgang symmetrisch zur Nyquistfrequenz, in meinem Fall also bei 30kHz - Mit den hier vorgeschlagenen MAV-Längen ist der Frequenzgang optimiert bei geringer Gruppenlaufzeit Aber ich habe nichts anderes erwartet, dass hier nur rumgemäkelt wird. Und tschüss...
Alex schrieb: > Du scheinst wenig Ahnung von Digitalfiltern zu haben ;-) Deine voreilige Schlussfolgerung. Für deinen 1k-Fall mag das noch ganz gut gehen, weil die Abtastfrequenz sehr weit oberhalb liegt, konkret bei Faktor 30. Jetzt denke dir einen Fall mit 10kHz. Dann lässt dein Filter soviel Oberwellen und Alias durch, dass er nicht mehr zu gebrauchen ist. Das sind Fakten, die seit langem bekannt sind und auch du nicht ändern kannst. So ein MAF bearbeitet schon Frequenzen oberhalb 10% Nyquist nicht mehr richtig! Mit einem ordentlichen FIR und gewichteten Koeffizienten lassen sich dagegen Bänder bis hin zu 80% der Nyquistfrequenz nutzen. P.S. Du solltest eventuell auch noch einmal erklären, wie du auf die Abkürzung "MAV" für deine "neuen" Filter kommst. Die heißen im englisch z.B. SMA etc...
Ich verstehe diesen Post nicht ganz. Das sind einfache Mittelwertfilter, die sind allseits bekannt. Alex schrieb: > Wenn man jedoch mehrere MAVs so hintereinander schaltet, dass deren > Nullstellen möglichst gleich verteilt zwischeneinander liegen, > bekommt man ein recht gutes Tiefpassverhalten bei sehr kleiner > Rechenzeit. Wenn du die Nullen wirklich ideal gleichverteilt haben möchtest, baust du dir einen SMA-Filter mit Länge N1+N2+N3-2. Dann hast du aber natürlich wieder einen simplen SMA-Filter, der einfach nur länger ist.. > Die Nullstellen liegen bei Omega= 1/N, 2/N, ... (N ist Mittelwertanzahl) > Beispiel für dreistufigen MAV (N1= 19, N2= 15, N3= 12): > -3dB-Grenzfrequenz ist 1/60 Samplingfrequenz > Dann hat die erste Sidelobe -46dB, die folgenden bleiben unter -51dB. > Und ab F= 7,7 * Grenzfrequenz bleibt er unter -60dB - bis zur > Nyquistfrequenz. > Auf 120MHz-SAM4S braucht der Filter 0,5µs zum berechnen. > Allgemein 3-er-Kaskade: N1 gegeben; dann N2 = N1 / 1,22; N3 = N1 / 1,58 > Die Werte sind natürlich zu runden. Da du effektiv die unterschiedlichen SMA-Filter miteinander faltest, bekommst du allmählich etwas Gauß-ähnliches heraus. Die Impulsantwort sieht also zumindest Gauß-änhlich aus.. Entsprechend gestaltet sich der Frequenzgang abhängig der gewählten SMA-Längen. > Nachteile der MAVs sind > - die größere Verzögerungszeit gegenüber richtigen FIRs > - der frühere Abfall im Durchlassbereich gegenüber richtigen FIRs, Auch das hier sind "richtige" FIRs.. Es ist nur ein spezielles Design mit Vor- / Nachteilen. > - Mit den hier vorgeschlagenen MAV-Längen ist der Frequenzgang optimiert > bei geringer Gruppenlaufzeit Entsprechend gilt auch das hier nicht wirklich. Worauf hast du denn "optimiert"? Kann man so pauschal nicht sagen. Alex schrieb: > - Wie jeder(!) Digitalfilter ist der Frequenzgang symmetrisch zur > Nyquistfrequenz, in meinem Fall also bei 30kHz Diese Symmetrie gilt nur für reell-wertige digitale Filter. Das ist nicht allgemein gültig.
L. schrieb: > Mittelwertfilter, > die sind allseits bekannt. ... und hinreichend diskutiert :-) > einen SMA-Filter mit Länge N1+N2+N3-2. Dann hast du aber > natürlich wieder einen simplen SMA-Filter, der einfach nur länger ist.. ... der aber andere Eigenschaften hat, als eine klassische Kaskade Zu den gewählten Werten: Man kann für kaskadierte / parallelisierte Filter auch Primzahlen verwenden. und ja, man kann sie auch schärfen. Der Punkt ist nur: Je mehr man sich von ganzahligen, identischen und bestenfalls noch binären Werten entfernt, desto geringer ist der Vorteil der einfachen und effektiven Berechnung der Filterwerte. Der reine Hogenauer-Filter ist nach wie vor im Einsatz, aber eben für den erwähnten Zweck bei hohen Überabtastverhältnisse zur Dezimation, z.B. bei Delta-Sigma-Wandlern.
L. schrieb: > Das sind einfache Mittelwertfilter, > die sind allseits bekannt. Beitrag "Eigenschaften des Moving Avarage Filters"
Dergute W. schrieb: > N paar Bilder mit Frequenzgaengen Der Frequenzgang eines Filters ist doch bekannt und berechenbar. Eigentlich müssten sich dann andere Filter durch Multiplikation direkt überlagern lassen.
Ich hätte eine kurze Rückfrage an den TE: Sind die kaskadierten Filter einfach nur hintereinander geschaltet und arbeiten mit der gleichen Abtastrate, oder sind es wirkliche CIC-Strukturen? Diese haben bekanntlich intern reduzierte Raten (für den Integratorzweig). Hier scheint mir das nicht so.
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.