J'ai besoin de concevoir un filtre à moyenne mobile qui a une fréquence de coupure de 7,8 Hz. J'ai déjà utilisé des filtres à moyenne mobile, mais pour autant que je sache, le seul paramètre qui peut être introduit est le nombre de points à faire la moyenne ... Comment cela peut-il être lié à une fréquence de coupure?
L'inverse de 7,8 Hz est de ~ 130 ms, et je travaille avec des données échantillonnées à 1000 Hz. Cela signifie-t-il que je devrais utiliser une taille de fenêtre de filtre moyenne mobile de 130 échantillons, ou y a-t-il autre chose qui me manque ici?
moving-average
CaptainProg
la source
la source
Réponses:
Le filtre à moyenne mobile (parfois appelé familièrement filtre à wagon couvert ) a une réponse impulsionnelle rectangulaire:
Ou, autrement dit:
En se rappelant que la réponse en fréquence d'un système à temps discret est égale à la transformée de Fourier à temps discret de sa réponse impulsionnelle, nous pouvons la calculer comme suit:
Pour simplifier cela, nous pouvons utiliser la formule connue pour la somme des premiers termes d'une série géométriqueN :
Ce qui nous intéresse le plus dans votre cas, c'est la réponse en amplitude du filtre,. En utilisant quelques manipulations simples, nous pouvons obtenir cela sous une forme plus facile à comprendre:| H( ω ) |
Cela peut ne pas sembler plus facile à comprendre. Cependant, en raison de l'identité d' Euler , rappelez-vous que:
Par conséquent, nous pouvons écrire ce qui précède comme:
Comme je l'ai déjà dit, ce qui vous préoccupe vraiment, c'est l'ampleur de la réponse en fréquence. Donc, nous pouvons prendre l'ampleur de ce qui précède pour simplifier davantage:
Remarque: Nous pouvons supprimer les termes exponentiels car ils n'affectent pas l'ampleur du résultat; pour toutes les valeurs de . Depuispour deux nombres complexes finis et , nous pouvons conclure que la présence des termes exponentiels n'affecte pas la réponse d'amplitude globale (au lieu de cela, ils affectent la réponse de phase du système).ω | x y | = | x | | y | x y| ej ω| =1 ω | xy| = | x | | y| X y
La fonction résultante à l'intérieur des crochets de magnitude est une forme de noyau Dirichlet . Elle est parfois appelée fonction sinc périodique , car elle ressemble quelque peu à la fonction sinc en apparence, mais elle est plutôt périodique.
Quoi qu'il en soit, comme la définition de la fréquence de coupure est quelque peu sous-spécifiée (point -3 dB? Point -6 dB? Premier lobe latéral nul?), Vous pouvez utiliser l'équation ci-dessus pour résoudre tout ce dont vous avez besoin. Plus précisément, vous pouvez effectuer les opérations suivantes:
Ensembleà la valeur correspondant à la réponse du filtre que vous souhaitez à la fréquence de coupure.|H( ω ) |
Définissez égal à la fréquence de coupure. Pour mapper une fréquence à temps continu au domaine à temps discret, n'oubliez pas que , où est votre fréquence d'échantillonnage.ω = 2 π fω fsω = 2 πFFs Fs
Trouvez la valeur de qui vous donne le meilleur accord entre les côtés gauche et droit de l'équation. Cela devrait être la longueur de votre moyenne mobile.N
la source
Si est la longueur de la moyenne mobile, alors une fréquence de coupure approximative (valable pour ) en fréquence normalisée est:FN N>=2F=f / fsFc o N> = 2 F= f/ fs
L'inverse de ceci est
Cette formule est asymptotiquement correcte pour les grands N et a une erreur d'environ 2% pour N = 2 et inférieure à 0,5% pour N> = 4.
PS: Après deux ans, voici enfin quelle a été l'approche suivie. Le résultat était basé sur l'approximation du spectre d'amplitude MA autour de tant que parabole (Série de 2ème ordre) selonF= 0
qui peut être rendu plus exact près du passage par zéro de en multipliant par un coefficientMA ( Ω ) - 2√2 Ω
obtentionMA(Ω)≈1+0.907523(124−N224)Ω2
La solution de donne les résultats ci-dessus, où .2πFco=ΩcoMA(Ω)−2√2=0 2πFco=Ωco
Tout ce qui précède concerne la fréquence de coupure de -3 dB, le sujet de cet article.
Parfois, bien qu'il soit intéressant d'obtenir un profil d'atténuation en bande d'arrêt qui soit comparable à celui d'un filtre passe-bas IIR de premier ordre (LPF unipolaire) avec une fréquence de coupure de -3 dB donnée (un tel LPF est également appelé intégrateur qui fuit, ayant un pôle pas exactement à DC mais près de lui).
En fait, le MA et le LPF IIR de premier ordre ont une pente de -20 dB / décade dans la bande d'arrêt (on a besoin d'un N plus grand que celui utilisé dans la figure, N = 32, pour le voir), mais alors que MA a des valeurs nulles spectrales à et une enveloppe , le filtre IIR n'a qu'un profil .1 / fF=k/N 1/f 1/f
Si l'on veut obtenir un filtre MA avec des capacités de filtrage du bruit similaires à ce filtre IIR et que les fréquences de coupure 3dB sont identiques, en comparant les deux spectres, il se rendrait compte que l'ondulation de la bande d'arrêt du filtre MA finit ~ 3 dB en dessous de celui du filtre IIR.
Afin d'obtenir la même ondulation de bande d'arrêt (c'est-à-dire la même atténuation de puissance de bruit) que le filtre IIR, les formules peuvent être modifiées comme suit:
la source