from scipy import signal
import numpy as np
import cProfile, pstats
def sin_noise(arr):
return np.sin(arr) + np.random.rand(len(arr))
def filterSignal(b,a,x):
return signal.filtfilt(b, a, x, axis=-1)
def main():
# generate data:
x = np.linspace(0,30,1e4)
y = sin_noise(x)
b, a = signal.butter(5, 0.02, "lowpass", analog=False)
ff = filterSignal(b,a,y)
cProfile.runctx('filterSignal(b,a,y)',globals(),{'b':b,'a':a,'y':y},filename='profileStatistics')
p = pstats.Stats('profileStatistics')
printFirstN = 5
p.sort_stats('cumtime').print_stats(printFirstN)
if __name__=="__main__":
main()