def bandPass(df , fmin = None, fmax = None , unit = "Hz" ) :
"""
Return filtered signal
"""
from scipy.fftpack import rfft, irfft, rfftfreq #Warning convention of scipy.fftpack != numpy.fft !!!
if type(df) == pd.Series :
df = pd.DataFrame(df)
ise = True
else :
ise = False
filtered = pd.DataFrame( index = df.index )
W = rfftfreq( df.index.size, d = dx( df ) )
for col in df.columns :
tmp = rfft(df[col])
if fmin is not None :
tmp[ ( W < fmin) ] = 0
if fmax is not None :
tmp[ ( W > fmax) ] = 0
filtered[col] = irfft(tmp)
if ise :
return filtered.iloc[:,0]
else :
return filtered
评论列表
文章目录