diff --git a/mysignal/__init__.py b/mysignal/__init__.py index df9144c..10939f0 100644 --- a/mysignal/__init__.py +++ b/mysignal/__init__.py @@ -1 +1 @@ -__version__ = '0.1.1' +__version__ = '0.1.2' diff --git a/mysignal/phasefreq.py b/mysignal/phasefreq.py index b9f8869..6e95106 100644 --- a/mysignal/phasefreq.py +++ b/mysignal/phasefreq.py @@ -9,7 +9,7 @@ from scipy.stats import linregress 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. @@ -68,16 +68,17 @@ def filter_signal_by_modes(time, signal, num_modes=1, bandwidth_factor=0.1): lowcut = freq - bandwidth highcut = freq + bandwidth - # Éviter les fréquences négatives ou supérieures à la fréquence de Nyquist - nyq = 0.5 * fs - if lowcut <= 0: - lowcut = 0.01 - if highcut >= nyq: - highcut = nyq - 0.01 - - # Créer le filtre Butterworth - low = lowcut / nyq - high = highcut / nyq + if nyquist: + # Éviter les fréquences négatives ou supérieures à la fréquence de Nyquist + nyq = 0.5 * fs + if lowcut <= 0: + lowcut = 0.01 + if highcut >= nyq: + highcut = nyq - 0.01 + + # Créer le filtre Butterworth + lowcut = lowcut / nyq + highcut = highcut / nyq b, a = butter(4, [low, high], btype='band') # Appliquer le filtre (filtfilt pour éviter le déphasage)