kaskadierte Mittelwertfilter (MAV)

OP #7591779
Lesenswert?

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
Gast #7592214
Lesenswert?

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?

Gast #7603317
Lesenswert?

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.

OP #7603697
Lesenswert?

@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...

Gast #7603767
Lesenswert?

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...

#7604403
Lesenswert?

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.

Persönliche Seite #7605467
Lesenswert?

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.

Gast #7614126
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren