Fichier:Comparaison filtres median savitzky golay butterworth fft scipy.svg

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Un livre de Wikilivres.

Fichier d’origine(Fichier SVG, nominalement de 900 × 540 pixels, taille : 100 kio)

Description

Description
Français : Comparaison des filtres médian, de Savitzky-Golay, de Butterworth et de Fourier avec la bibliothèque SciPy de Python.
English: Comparison between the median filter, Savitzky-Golay filter, Butterworth filter and Fourier filter with the SciPy library for Python.
Date
Source Travail personnel
Auteur Cdang
W3CiLe code de ce fichier SVG n'est pas valide en raison de 10 erreurs.
 
Cette représentation graphique W3C-invalide a été créée avec Matplotlib.
 
Le code de ce fichier SVG n'est pas valide en raison de 10 erreurs.
 
Cette image vectorielle W3C-invalide a été créée avec Python par cdang

Code source

InfoField

Python code

import numpy as np
import scipy.signal as signal
import scipy.fft as fft
import matplotlib.pyplot as plt

# **************
# * Constantes *
# **************

epsilon = 0.1 # amplitude du bruit

# ******************************************
# * Génération d'un signal gaussien bruité *
# ******************************************

x = np.linspace(0, 4, 80) # points d'abscisse

y = 0.1*np.exp(-(10*(x - 1)*x + 0.125)) + epsilon*np.random.normal(x)

# ***********
# * Lissage *
# ***********

# filtre médian
ylissemf = signal.medfilt(y, 7)

# filtre de Savitzky-Golay
ylissesg = signal.savgol_filter(y, 7, 3)

# filtre de Butterworth
(b, a) = signal.butter(1, 5, fs=50) # caractéristiques du filtre
zi = signal.lfilter_zi(b, a) # conditions initiales du filtre
ylisseb = signal.lfilter(b, a, y, zi=zi*y[0]) # application du filtre

# filtre de Fourier
L = len(y) # longueur de signal
ff = fft.fftshift(fft.fft(y, fft.next_fast_len(L, real=True))) # calcule la transformée de Fourier rapide de manière optimisée
# en ajoutant des 0 en queue de signal, et ordonne les coefficients
ff[-25:] = 0 # atténuation du spectre aux extrémités
ff[:25] = 0
ylissef = fft.ifft(fft.ifftshift(ff))[:L] # réordonne les coefficients et calcule transformée de Fourier inverse,
# et élimine les 0 ajoutés artificiellement pour optimiser

# *************
# * Affichage *
# *************

fig, liste_axes = plt.subplots(2, 2, constrained_layout=True, figsize = [10, 6])

# filtre médian
liste_axes[0, 0].plot(x, y, "b.")
liste_axes[0, 0].plot(x, ylissemf, "k-", linewidth="0.5")
liste_axes[0, 0].set_title("scipy.signal.medfilt(y, 7)")

# filtre de Savitzky-Golay
liste_axes[0, 1].plot(x, y, "b.")
liste_axes[0, 1].plot(x, ylissesg, "k-", linewidth="0.5")
liste_axes[0, 1].set_title("scipy.signal.savgol_filter(y, 7, 3)")

# filtre de Butterworth
liste_axes[1, 0].plot(x, y, "b.")
liste_axes[1, 0].plot(x, ylisseb[0], "k-", linewidth="0.5")
liste_axes[1, 0].set_title("Butterworth (2, 0.3)")

# filtre de Fourier
liste_axes[1, 1].plot(x, y, "b.")
liste_axes[1, 1].plot(x, ylissef, "k-", linewidth="0.5")
liste_axes[1, 1].set_title("Filtre de Fourier")

plt.savefig("comparaison_filtres_median_savitzky_golay__butterworth_fft_scipy.svg", format="svg")

Conditions d’utilisation

Moi, en tant que détenteur des droits d’auteur sur cette œuvre, je la publie sous la licence suivante :
w:fr:Creative Commons
paternité partage à l’identique
Vous êtes libre :
  • de partager – de copier, distribuer et transmettre cette œuvre
  • d’adapter – de modifier cette œuvre
Sous les conditions suivantes :
  • paternité – Vous devez donner les informations appropriées concernant l'auteur, fournir un lien vers la licence et indiquer si des modifications ont été faites. Vous pouvez faire cela par tout moyen raisonnable, mais en aucune façon suggérant que l’auteur vous soutient ou approuve l’utilisation que vous en faites.
  • partage à l’identique – Si vous modifiez, transformez, ou vous basez sur cette œuvre, vous devez distribuer votre contribution sous la même licence ou une licence compatible avec celle de l’original.

Légendes

Comparaison des filtres médian, de Savitzky-Golay, de Butterworth et de Fourier avec la bibliothèque SciPy de Python.

image/svg+xml

3ede1e5600e60a6e889e94692f1189a88d34da34

102 290 octet

540 pixel

900 pixel

Historique du fichier

Cliquer sur une date et heure pour voir le fichier tel qu'il était à ce moment-là.

Date et heureVignetteDimensionsUtilisateurCommentaire
actuel12 mai 2023 à 10:59Vignette pour la version du 12 mai 2023 à 10:59900 × 540 (100 kio)CdangUploaded own work with UploadWizard

Métadonnées