This commit is contained in:
François Boulogne 2025-08-29 16:45:25 +02:00
parent 6b66a2f3da
commit d4983f45f2
2 changed files with 13 additions and 12 deletions

View file

@ -1 +1 @@
__version__ = '0.1.1' __version__ = '0.1.2'

View file

@ -9,7 +9,7 @@ from scipy.stats import linregress
from scipy.optimize import curve_fit from scipy.optimize import curve_fit
def filter_signal_by_modes(time, signal, num_modes=1, bandwidth_factor=0.1): def filter_signal_by_modes(time, signal, num_modes=1, bandwidth_factor=0.1, nyquist=False):
""" """
Filtre un signal pour extraire ses composantes fréquentielles dominantes. Filtre un signal pour extraire ses composantes fréquentielles dominantes.
@ -68,16 +68,17 @@ def filter_signal_by_modes(time, signal, num_modes=1, bandwidth_factor=0.1):
lowcut = freq - bandwidth lowcut = freq - bandwidth
highcut = freq + bandwidth highcut = freq + bandwidth
# Éviter les fréquences négatives ou supérieures à la fréquence de Nyquist if nyquist:
nyq = 0.5 * fs # Éviter les fréquences négatives ou supérieures à la fréquence de Nyquist
if lowcut <= 0: nyq = 0.5 * fs
lowcut = 0.01 if lowcut <= 0:
if highcut >= nyq: lowcut = 0.01
highcut = nyq - 0.01 if highcut >= nyq:
highcut = nyq - 0.01
# Créer le filtre Butterworth
low = lowcut / nyq # Créer le filtre Butterworth
high = highcut / nyq lowcut = lowcut / nyq
highcut = highcut / nyq
b, a = butter(4, [low, high], btype='band') b, a = butter(4, [low, high], btype='band')
# Appliquer le filtre (filtfilt pour éviter le déphasage) # Appliquer le filtre (filtfilt pour éviter le déphasage)