Filtre numérique passe-bas du 1er ordre

Dans le but de filtrer les bruits d’un signal de mesure brut, on peut utiliser un filtre passe-bas dont la fonction est d’atténuer les hautes fréquences associées à ces bruits de mesure. On peut représenter le principe, dans le domaine de Laplace, à l’aide du schéma-blocs ci-dessous :

Copier et coller le code ci-dessous dans l'éditeur de Pyzo.

Étudier la fonction filtrage et comprendre la façon dont elle est mise en œuvre.

## Définition de la fonction filtrage

# Trois arguments doivent être donnés pour utiliser cette fonction : signal_brut, fc et Te

# Cette fonction aura pour rôle de retourner un tableau correspondant aux valeurs de signal_brut filtrées à la fréquence de coupure fc

def filtrage(signal_brut,fc,Te):

signal_filtre = np.copy(signal_brut) # duplication des valeurs (utile pour 1ère et dernière valeurs)

wc=2*np.pi*fc

for i in range (1,len(signal_brut)-1): # toutes les valeurs sauf la première et la dernière

signal_filtre[i+1]=(1-Te*wc)*signal_filtre[i]+(Te*wc)*signal_brut[i] # Schema d'Euler explicite

return signal_filtre

Choix de fc :

Il faut choisir fc

– supérieure à futile pour laisser passer le signal utile ;

– bien inférieure à fperturbé pour atténuer la perturbation.

Ces valeurs sont à relever sur le signal brut afin de déduire fc.

Exemple d'utilisation de cette fonction :

# X est le tableau des valeurs brutes

# X_filtre est le tableau des valeurs filtrées avec une fréquence de coupure de 6 Hz et une période d'échantionnage de 10-3 s

X_filtre = filtrage(X,6,10^-3)

Exemple :

Plus on diminue la fréquence de coupure du filtre, plus on filtre les bruits de mesures. Cela permet d'obtenir un signal plus lisse et mieux exploitable.

Cependant, l'introduction d'un filtre et l'augmentation de sa constante de temps (dont l'évolution est inversement proportionnelle à celle de sa fréquence de coupure) augmente le temps de réponse de l'ensemble « capteur + filtre », ce qui peut poser des problèmes de retard au niveau de la chaîne d'acquisition et dégrader les performances d'un asservissement qui utilise les données issues de ce capteur.

C'est ce que l'on observe ici sur le signal brut et filtré en sortie d'un capteur soumis à une entrée en échelon (capteur de pesée de l'Hémomixer sur lequel est posé brusquement une masse).