Calcul de la dérivée lissée d'un signal en utilisant la différence avec un pas plus grand = convolution avec fenêtre rectangulaire

9

J'ai un signal échantillonné à où i = 0..n-1. Je veux trouver la dérivée première du signal: f '(t).Δt:fi(ti=iΔt)

Ma première pensée a été d'estimer cela par une différence centrale:

f(ti)=f(ti+1)f(ti1)2Δt

Cependant, le signal peut avoir beaucoup de bruit haute fréquence qui peut provoquer des fluctuations rapides de f '. Je suppose que la bonne chose pourrait être de lisser le signal en convoluant avec une fonction de fenêtre, par exemple Hann, puis de trouver la dérivée des différences.

Un collègue a suggéré un moyen plus rapide de trouver une estimation lissée de la dérivée: utiliser une différence centrale sur 2n échantillons, où n >> 1:

f(ti)=f(ti+n)f(tin)2nΔt

Ce serait bien sûr plus rapide que la première convolution avec une fonction de fenêtre, mais est-ce une bonne solution?

Si nous formons la somme:

S=2Δt[f(tin+1)+f(tin+2)+..+f(ti+n1)]

Δt

S=f(tin+2)f(tin)+f(tin+3)f(tin+2)+..+f(ti+n)f(ti+n2)

tous les termes sauf deux annulent:

S=f(ti+n)f(tin)=2nΔtf(ti)

Donc:

f(ti)=1n[f(tin+1)+f(tin+2)+..+f(ti+n1)]

Donc, prendre la différence centrale sur 2n échantillons est équivalent avec d'abord convolution par une fenêtre rectangulaire de taille 2n - 2 et ensuite prendre une différence centrale sur +/- 1 échantillon.

À quel point est-il «mauvais» de lisser avec une fenêtre rectangulaire?

Si nous prenons la FFT, cela provoquera une "sonnerie", mais nous n'avons pas besoin de prendre la FFT.

Merci d'avance pour n'importe quelle réponse!

Andy
la source

Réponses:

4

C'est une question difficile à traiter en général. Le lissage avec une fenêtre rectangulaire est utilisé tout le temps (souvent appelé "moyenne mobile"), ce n'est donc pas nécessairement un problème. Je ne sais pas de quelle sonnerie vous parlez, peut-être les lobes latéraux de la réponse en fréquence de la fenêtre rectangulaire.

La différenciation est intrinsèquement une opération passe-haut; le différentiateur à temps continu idéal a une fonction de transfert de:

H(s)=s

Pour que sa réponse en magnitude soit:

|H(jω)|=ω

Le gain d'un différenciateur augmente donc de façon monotone avec la fréquence. Si votre signal contient du bruit haute fréquence, il peut être amplifié en appliquant un différenciateur. Pour lutter contre cela, deux approches apparaissent:

  • Concevez un filtre différenciateur plus sophistiqué qui a la réponse d'amplitude linéaire souhaitée sur la partie de la bande qui couvre votre signal d'intérêt, puis atténue fortement les fréquences plus élevées. Vous pouvez concevoir un tel filtre en utilisant des méthodes des moindres carrés ou la méthode d'échantillonnage de fréquence, par exemple.

  • Utilisez une approche en cascade où vous supprimez d'abord tout le bruit haute fréquence que vous pouvez utiliser avec un filtre passe-bas, puis suivez avec le différenciateur. La couverture en fréquence du différenciateur n'a pas besoin d'être aussi serrée car le filtre passe-bas éliminera le bruit hors bande.

Les méthodes doivent être à peu près équivalentes si vous utilisez des filtres linéaires; on pourrait penser que la première approche à filtre unique n'est qu'une cascade d'un différenciateur et d'un filtre passe-bas. Comme vous l'avez noté, l'approche de la différence centrale peut être modélisée de cette façon. Il est difficile pour quiconque de dire que c'est "mauvais" sans aucune connaissance de votre application. Ma principale pensée serait qu'il est "mauvais" si l'opération de lissage atténue de manière tangible votre signal d'intérêt, de sorte que l'estimation dérivée n'est plus utile. Cependant, si les paramètres du signal sont tels que vous pouvez atténuer le bruit sans déformer sensiblement le signal (c'est-à-dire si le signal est bien suréchantillonné), alors ce pourrait être une victoire.

Jason R
la source