From d4983f45f255324b76446c3a349184a7239a447c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Boulogne?= Date: Fri, 29 Aug 2025 16:45:25 +0200 Subject: [PATCH] upd --- mysignal/__init__.py | 2 +- mysignal/phasefreq.py | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) 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)