Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #for filter
- from scipy.signal import butter, buttord, lfilter, freqz
- from scipy.signal import freqs
- def lowpass_filter(integer_data, sample_framerate, sample_bitwidth,threshold):#works with cutoff from 400 and higher
- def butter_lowpass(cutOff, fs, order):
- nyq = 0.5 * fs
- normalCutoff = cutOff / nyq
- b, a = butter(order, normalCutoff, btype='low', analog = False)
- return b, a
- def butter_lowpass_filter(data, cutOff, fs, order):
- b, a = butter_lowpass(cutOff, fs, order=order)
- y = lfilter(b, a, data)
- return y
- result=butter_lowpass_filter(integer_data, threshold, sample_framerate, order=4)#what is order?
- result=truncate_if_outside(result, sample_bitwidth)
- return result
- def sweep_filter(integer_data, start_freq, end_freq, sample_framerate, sample_bitwidth, slice_width):
- num_slice= int(len(integer_data)/ float(slice_width))
- print "nombre de tranche dans cette durée :",num_slice
- new_data=[]
- diff_cutoff=end_freq-start_freq
- for i in range(num_slice):
- current_cutoff=start_freq+((i/float(num_slice))*diff_cutoff)
- print "cutoff",current_cutoff
- print "start:",i*slice_width
- offset_first_sample=(i*slice_width)-1
- offset_last_sample=((i*slice_width)+slice_width)-1
- slice_data=integer_data[offset_first_sample:offset_last_sample]
- slice_data=lowpass_filter(slice_data, sample_framerate, sample_bitwidth, current_cutoff)
- for j in range(len(slice_data)):
- new_data.append(slice_data[j])
- return new_data
Add Comment
Please, Sign In to add comment