使用带通滤波器处理EEG信号出现异常失真,可能原因是什么?
前额EEG信号带通滤波后失真问题
我正在对采集自前额的EEG信号进行带通滤波处理,无特殊操作但滤波后信号出现明显失真。采样率为250Hz,截止频率设置为2.5Hz和120Hz。已分别在Matlab与Python中测试,得到相同结果。
Matlab实现代码
data = load("rawdata.mat"); data = data.data; figure bandpass(data,[2.5 120],250)
滤波后时域图像:Matlab滤波后数据波形
Python实现代码
Fs = 250 lowcut = 2.5 highcut = 120 order=5 plotbutterworth(lowcut, highcut, Fs, order) plt.figure() fr, y_m = Fourier(250, data) plt.stem(fr, y_m, use_line_collection = True) plt.title('Freq CH7') plt.xlabel("Frequency (Hz)") plt.ylabel("Amplitude (microvolts)") filtered = butter_bandpass_filter(data, lowcut, highcut, Fs, order) plt.figure() fr, y_m = Fourier(250, filtered) plt.stem(fr, y_m, use_line_collection= True) plt.title('Freq CH7 -- without EKG') plt.xlabel("Frequency (Hz)") plt.ylabel("Amplitude (microvolts)") plt.figure() plt.plot(data) plt.plot(filtered) plt.xlabel("Time") plt.ylabel("Amplitude (microvolts)") plt.legend(['original','filtered'],loc='best')
相关分析图像:
- 巴特沃斯带通滤波器幅频响应
- 原始数据FFT频谱
- 滤波后数据FFT频谱
- 时域原始与滤波后数据对比
已尝试微调截止频率(如设置为5Hz和110Hz),但未观察到明显改善。
内容的提问来源于stack exchange,提问作者Iluv BCI
相关产品推荐
相关产品推荐

