Add files via upload
This commit is contained in:
42
3D_app/filtrage.py
Normal file
42
3D_app/filtrage.py
Normal file
@ -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
|
||||
|
19
3D_app/selection_filtre.py
Normal file
19
3D_app/selection_filtre.py
Normal file
@ -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
|
Reference in New Issue
Block a user