I am working on an EEG Signal analysis problem with python. I need to remove the recordings below 1st minute and above 6th minute of the signal in edf format which is loaded using MNE, and pass it through a bandpass filter. I am not familiar with MNE so used scipy for trimming and filtering after converting it into raw NumPy array format. The code is given below. Since the sampling rate is 100 Hz, I assumed first minute will contain 6000 samples and next five minutes will contain 30000 more samples which is why I am only taking raw_data[i][6000:36000].
filtered_data[i] = butter_bandpass_filter(raw_data[i][6000:36000], lowcut, highcut, fs, order=5)
butter_bandpass_filter is defined as follows
def butter_bandpass(lowcut, highcut, fs, order=5):
nyq = 0.5 * fs
low = lowcut / nyq
high = highcut / nyq
b, a = butter(order, [low, high], btype='band',analog=True)
return b, a
def butter_bandpass_filter(data, lowcut, highcut, fs, order=5):
b, a = butter_bandpass(lowcut, highcut, fs, order=order)
y = lfilter(b, a, data)
return y
But I don't feel like this is the correct method. Is there a way to do the above mentioned task using MNE-Python instead of converting it to ndarray or using scipy?