Filtre numérique par moyenne glissante (pour étudiants 1ère année)
Une première méthode consiste à remplacer chaque valeur du tableau par une moyenne des valeurs qui l'entourent. Cette moyenne est dite glissante (ou mobile) parce qu'elle est recalculée de façon continue, en utilisant à chaque calcul un sous-ensemble d'éléments dans lequel un nouvel élément remplace le plus ancien.
Copier et coller le code ci-dessous dans l'éditeur de Pyzo.
Étudier la fonction lissage et comprendre la façon dont elle est mise en œuvre.
## Définition de la fonction lissage
# Deux arguments doivent être donnés pour utiliser cette fonction : signal_brut et L
# Cette fonction aura pour rôle de retourner un tableau correspondant aux valeurs de signal_brut remplacées par une moyenne des 2xL valeurs qui les entourent
def lissage(signal_brut,L):
res = np.copy(signal_brut) # duplication des valeurs
for i in range (1,len(signal_brut)-1): # toutes les valeurs sauf la première et la dernière
L_g = min(i,L) # nombre de valeurs disponibles à gauche
L_d = min(len(signal_brut)-i-1,L) # nombre de valeurs disponibles à droite
Li=min(L_g,L_d)
res[i]=np.sum(signal_brut[i-Li:i+Li+1])/(2*Li+1)
return(res)
Exemple d'utilisation de cette fonction :
# X est le tableau des valeurs brutes
# X_lisse est le tableau des valeurs lissées avec une moyenne glissante de largeur 2x10
X_lisse = lissage(X,10)
Évidemment, il est possible de changer la valeur de L... (le nombre de valeurs à gauche et à droite, pour faire la moyenne).