This commit is contained in:
François Boulogne 2025-08-29 18:42:03 +02:00
parent e1ae1c6236
commit a7d664f21a

View file

@ -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,required_cycles=40):
"""
Filtre un signal pour extraire ses composantes fréquentielles dominantes.
@ -76,11 +76,11 @@ def filter_signal_by_modes(time, signal, num_modes=1, bandwidth_factor=0.1):
lowcut_norm = lowcut / nyq
highcut_norm = highcut / nyq
print(f"Filtrage à {freq:.2f} Hz: [{lowcut_norm:.3f}, {highcut_norm:.3f}] (normalisé)")
print(f"Filtrage à {freq:.2f} Hz, bande : [{lowcut_norm:.5f}, {highcut_norm:.5f}] (normalisé)")
# Vérifier si le signal est suffisamment long
period = 1 / lowcut if lowcut > 0 else 0
required_cycles = 40 # Vous avez mentionné 30 cycles
#required_cycles = 40 # Vous avez mentionné 40 cycles
min_length = required_cycles * period * fs
if len(signal_clean) < min_length: