Was ist die Grenzfrequenz eines Filters mit gleitendem Durchschnitt?

18

Ich muss ein Filter für den gleitenden Durchschnitt mit einer Grenzfrequenz von 7,8 Hz entwerfen. Ich habe zuvor Filter für gleitende Durchschnittswerte verwendet, aber meines Wissens ist der einzige Parameter, der eingegeben werden kann, die Anzahl der zu mittelnden Punkte ... Wie kann dies mit einer Grenzfrequenz zusammenhängen?

Die Inverse von 7,8 Hz ist ~ 130 ms, und ich arbeite mit Daten, die mit 1000 Hz abgetastet werden. Bedeutet dies, dass ich ein Filterfenster mit gleitendem Durchschnitt von 130 Samples verwenden sollte, oder fehlt hier noch etwas?

CaptainProg
quelle
Sie sollten zuerst Ihr Verständnis von "Cut-Off" definieren. Wenn es die letzte Frequenz ist, oberhalb (unterhalb) der die Antwort eines Filters Null ist, dann wäre die Antwort "keine", da der Kern eines Filters mit gleitendem Durchschnitt eine endliche Unterstützung hat und endliche Wavelets in unendliche Fourier-Bilder transformiert werden.
Mbaitoff
Der Filter für den gleitenden Durchschnitt ist der Filter, der im Zeitbereich zum Entfernen des hinzugefügten Rauschens und auch zum Glätten verwendet wird. Wenn Sie jedoch denselben Filter für den gleitenden Durchschnitt im Frequenzbereich für die Frequenztrennung verwenden, ist die Leistung am schlechtesten Verwenden Sie in diesem Fall Frequenzdomänenfilter

Antworten:

27

Das Moving Average-Filter (manchmal umgangssprachlich als Boxcar-Filter bezeichnet ) hat eine rechteckige Impulsantwort:

h[n]=1Nk=0N-1δ[n-k]

Oder anders ausgedrückt:

h[n]={1N,0n<N0,Andernfalls

Wenn wir uns daran erinnern, dass der Frequenzgang eines zeitdiskreten Systems gleich der zeitdiskreten Fouriertransformation seiner Impulsantwort ist, können wir ihn wie folgt berechnen:

H(ω)=n=-x[n]e-jωn=1Nn=0N-1e-jωn

Um dies zu vereinfachen, können wir die bekannte Formel für die Summe der ersten Terme einer geometrischen Reihe verwendenN :

n=0N-1e-jωn=1-e-jωN1-e-jω

Was uns für Ihren Fall am meisten interessiert, ist die Größenantwort des Filters. Mit ein paar einfachen Manipulationen können wir dies in einer leichter verständlichen Form erreichen:|H(ω)|

H(ω)=1Nn=0N1ejωn=1N1ejωN1ejω=1NejωN/2ejω/2ejωN/2ejωN/2ejω/2ejω/2

Dies scheint möglicherweise nicht einfacher zu verstehen zu sein. Bedenken Sie jedoch aufgrund der Identität von Euler Folgendes:

Sünde(ω)=ejω-e-jωj2

Daher können wir das Obige schreiben als:

H(ω)=1Ne-jωN/2e-jω/2j2Sünde(ωN2)j2Sünde(ω2)=1Ne-jωN/2e-jω/2Sünde(ωN2)Sünde(ω2)

Wie ich bereits sagte, sind Sie wirklich besorgt über die Größe des Frequenzgangs. Wir können also die Größenordnung des Obigen heranziehen, um es weiter zu vereinfachen:

|H(ω)|=1N|Sünde(ωN2)Sünde(ω2)|

Hinweis: Wir können die Exponentialterme streichen, da sie die Größe des Ergebnisses nicht beeinflussen. für alle Werte von . SeitFür zwei beliebige endliche komplexe Zahlen und können wir den Schluss ziehen, dass das Vorhandensein der Exponentialterme die Gesamtamplitudenantwort nicht beeinflusst (stattdessen beeinflussen sie die Phasenantwort des Systems).ω | x y | = | x | | y | x y|ejω|=1ω|xy|=|x||y|xy

Die resultierende Funktion in den Größenklammern ist eine Form eines Dirichlet-Kernels . Es wird manchmal als periodische Sinc- Funktion bezeichnet, da es der Sinc-Funktion im Aussehen etwas ähnelt , sondern stattdessen periodisch ist.

Wie auch immer, da die Definition der Grenzfrequenz etwas unterbestimmt ist (-3 dB Punkt - -6 dB Punkt - erste Nebenkeule Null), können Sie die obige Gleichung verwenden, um das zu lösen, was Sie benötigen. Im Einzelnen können Sie Folgendes tun:

  1. Setzeauf den Wert, der der gewünschten Filterantwort bei der Grenzfrequenz entspricht.|H(ω)|

  2. Stellen Sie gleich der Grenzfrequenz ein. Denken Sie daran, dass , wobei Ihre Abtastrate ist, um eine zeitkontinuierliche Frequenz auf die zeitdiskrete Domäne abzubilden .ω = 2 π fω fsω=2πffsfs

  3. Suchen Sie den Wert von , der die beste Übereinstimmung zwischen der linken und der rechten Seite der Gleichung ergibt. Das sollte die Länge Ihres gleitenden Durchschnitts sein.N

Jason R
quelle
Nach meiner Einschätzung ist das ein "Ja"? Soweit ich das beurteilen kann, scheinen 130 Stichproben zu N mit ω = 7,8 zu passen, aber ich bin kein Mathematiker.
CaptainProg
@CaptainProg: Nur Sie können sicher sagen; Ich bin mir nicht sicher, wie hoch die Grenzfrequenz sein soll.
Jason R
1
Könnten Sie definieren, was n und N sind? Ein Beispiel mit einer vorgegebenen Abtastfrequenz wäre ebenfalls sehr hilfreich. Das mag einfach klingen, aber diese Frage ist das beste Ergebnis für die "gleitende durchschnittliche Grenzfrequenz". Ich bin mir also sicher, dass es viele andere Zuschauer geben wird, die sich nicht mit der Mathematik hinter Filtern auskennen.
FvD
@FvD ist der Abtastwertindex für das Signal , wie er typischerweise für zeitdiskrete Signale verwendet wird. ist in der obigen ersten Gleichung definiert. Wenn ich die Chance bekomme, kann ich ein Beispiel hinzufügen, aber ich vermute, dass jeder, der sich dafür entscheidet, einen Filter zu entwerfen, der einer bestimmten Grenzfrequenz entspricht, der Mathematik folgen kann. x [ n ] Nnx[n]N
Jason R
10

Wenn die Länge des gleitenden Durchschnitts ist, dann ist eine ungefähre Grenzfrequenz (gültig für ) in der normalisierten Frequenz :F c o N > = 2 F = f / f sNFcON> =2F=f/fs

FcO=0,442947N2-1

Das Gegenteil davon ist

N=0,196202+FcO2FcO

Diese Formel ist asymptotisch korrekt für großes N und hat einen Fehler von ungefähr 2% für N = 2 und weniger als 0,5% für N> = 4.

PS: Nach zwei Jahren, hier endlich, wie es weiterging. Das Ergebnis basierte auf der Approximation des MA - Amplitudenspektrums um als Parabel (2. Ordnung) nachf=0

MEIN(Ω)=Sichn(ΩN/2)Sichn(Ω/2)

MEIN(Ω)1+(124-N224)Ω2

Dies kann in der Nähe des Nulldurchgangs von werden, indem mit einem Koeffizienten multipliziert wirdMEIN(Ω)-22Ω

α=0.95264

Erhalt von MEIN(Ω)1+0,907523(124-N224)Ω2

Die Lösung von ergibt die obigen Ergebnisse, wobei .MEIN(Ω)-22=02πFcO=ΩcO

Alle obigen Angaben beziehen sich auf die Grenzfrequenz von -3 dB, die Gegenstand dieses Beitrags ist.

Manchmal ist es jedoch interessant, ein Dämpfungsprofil im Sperrbereich zu erhalten, das mit dem eines IIR-Tiefpassfilters 1. Ordnung (einpoliger LPF) mit einer vorgegebenen Grenzfrequenz von -3 dB vergleichbar ist (ein solcher LPF wird auch als Leaky Integrator bezeichnet). eine Stange nicht genau am Gleichstrom haben, sondern in der Nähe davon).

Beziehungen zwischen einem MA-Filter (FIR, N-1 Nullen) und einem 1-poligen IIR LPF

Tatsächlich haben sowohl der MA als auch der IIR LPF 1. Ordnung eine Steigung von -20 dB / Dekade im Stoppband (man benötigt ein größeres N als das in der Figur verwendete, N = 32, um dies zu sehen), wohingegen MA spektrale Nullen hat Bei und einer Evelope hat der IIR-Filter nur ein Profil.F=k/N1/f1/f

HichichR=1-Exp(-ΩcO)1-Exp(-ΩcO)Exp(jΩ)

Wenn man ein MA-Filter mit ähnlichen Rauschfilterfähigkeiten wie dieses IIR-Filter erhalten möchte und die Grenzfrequenzen von 3 dB als gleich anpasst, würde man beim Vergleichen der beiden Spektren erkennen, dass die Sperrbandwelligkeit des MA-Filters endet ~ 3 dB unter dem des IIR-Filters.

Um die gleiche Stop-Band-Welligkeit (dh die gleiche Rauschleistungsdämpfung) wie beim IIR-Filter zu erzielen, können die Formeln wie folgt geändert werden:

FcO,ichichR=0,32N2-1

N=0,1024+FcO,ichichR2FcO,ichichR

Massimo
quelle
Ich habe deine Formel in das Latex-Format geändert. Bitte überprüfen und bestätigen Sie, dass beide korrekt sind. Vielen Dank.
Lennon310
Ich habe hier eine Ableitung dieser Näherung hinzugefügt. Dsp.stackexchange.com/a/28186/15347
Olli Niemitalo
2
Soweit ich mich erinnere, habe ich diese Formel unter Berücksichtigung pragmatischer Gesichtspunkte mit Hilfe numerischer Methoden (entweder NSolve in Mathematica oder etwas Ähnliches in Matlab) abgeleitet, die für großes N asymptotisch korrekt sein sollten Ich bin mir also nicht sicher, was ich sagen soll.
Massimo
1
@ Massimo Wir haben viel an dieser und anderen Annäherungen in der anderen Frage gearbeitet. Wenn Sie jemals mehr Dezimalstellen benötigen, ist dies Ihre magische Nummer: 0.442946470689452340308369
Olli Niemitalo
1
MEIN(Ω)=Sichn(ΩN/2)/Sichn(Ω/2)OmeGein=2πFMEIN(F)N+1/6F2(N-N3)π21/2