Guest User

Untitled

a guest
Nov 24th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. #for filter
  2. from scipy.signal import butter, buttord, lfilter, freqz
  3. from scipy.signal import freqs
  4.  
  5. def lowpass_filter(integer_data, sample_framerate, sample_bitwidth,threshold):#works with cutoff from 400 and higher
  6.  
  7. def butter_lowpass(cutOff, fs, order):
  8.  
  9. nyq = 0.5 * fs
  10. normalCutoff = cutOff / nyq
  11. b, a = butter(order, normalCutoff, btype='low', analog = False)
  12. return b, a
  13.  
  14. def butter_lowpass_filter(data, cutOff, fs, order):
  15. b, a = butter_lowpass(cutOff, fs, order=order)
  16. y = lfilter(b, a, data)
  17. return y
  18.  
  19. result=butter_lowpass_filter(integer_data, threshold, sample_framerate, order=4)#what is order?
  20. result=truncate_if_outside(result, sample_bitwidth)
  21. return result
  22.  
  23. def sweep_filter(integer_data, start_freq, end_freq, sample_framerate, sample_bitwidth, slice_width):
  24. num_slice= int(len(integer_data)/ float(slice_width))
  25. print "nombre de tranche dans cette durée :",num_slice
  26. new_data=[]
  27. diff_cutoff=end_freq-start_freq
  28. for i in range(num_slice):
  29. current_cutoff=start_freq+((i/float(num_slice))*diff_cutoff)
  30. print "cutoff",current_cutoff
  31. print "start:",i*slice_width
  32. offset_first_sample=(i*slice_width)-1
  33. offset_last_sample=((i*slice_width)+slice_width)-1
  34.  
  35. slice_data=integer_data[offset_first_sample:offset_last_sample]
  36. slice_data=lowpass_filter(slice_data, sample_framerate, sample_bitwidth, current_cutoff)
  37. for j in range(len(slice_data)):
  38. new_data.append(slice_data[j])
  39. return new_data
Add Comment
Please, Sign In to add comment