diff --git a/3D_app/filtrage.py b/3D_app/filtrage.py new file mode 100644 index 0000000..c4e0ceb --- /dev/null +++ b/3D_app/filtrage.py @@ -0,0 +1,42 @@ +import pandas as pd +import numpy as np +import matplotlib.pyplot as plt +from scipy.signal import hilbert,butter, filtfilt,wiener,hamming, convolve + +#transformer du Hilbert +def transformer_hilbert(data_input): + data_output=np.abs(hilbert(data_input)) + return data_output + +#filtre de moyenne mobile +def filtre_moyenne_mobile(data_input,window_size): + data_output=pd.Series(data_input).rolling(window=window_size).mean() + return data_output + +# filtre passe bas +def filtre_passe_bas(data_input,fs,cut_off,order): + nyq=0.5*fs + normal_cut_off=cut_off/nyq + [b,a]=butter(order,normal_cut_off,btype='low', analog=False) + data_output=filtfilt(b,a,data_input) + return data_output + +#filtre adaptatif de réduction de bruit +def filtre_adaptatif(data_input): + data_output=wiener(data_input) + return data_output + +#Le filtre à réponse impulsionnelle infinie + +def filtre_RII(data_input,window_size): + b1=hamming(window_size)/np.sum(window_size) + data_output=filtfilt(b1,1,data_input) + return data_output + +# Le filtre à réponse impulsionnelle finie + +def filtre_RIF(data_input,window_size): + h=hamming(window_size)/np.sum(window_size) + data_output=convolve(data_input, h, mode='same') + return data_output + \ No newline at end of file diff --git a/3D_app/selection_filtre.py b/3D_app/selection_filtre.py new file mode 100644 index 0000000..188d727 --- /dev/null +++ b/3D_app/selection_filtre.py @@ -0,0 +1,19 @@ +from filtrage import * +def switch_case(data_input,select,fs=1,cut_off=1,order=1,window_size=1): + match select: + case 1: + return transformer_hilbert(data_input) + case 2: + return data_input + case 3: + return filtre_passe_bas(data_input,fs,cut_off,order) + case 4: + return filtre_moyenne_mobile(data_input,window_size) + case 5: + return filtre_adaptatif(data_input) + case 6: + return filtre_RII(data_input,window_size) + case 7: + return filtre_RIF(data_input,window_size) + case _: + return data_input \ No newline at end of file