我是信号处理的新手,我知道这个问题可能太广泛了。但是我仍然想听听专家的提示。
我被教导要使用butter
(设计巴特沃思滤波器,又称最大平坦幅度滤波器)和filtfilt
(零相位数字滤波)功能离线(即完成记录后)在MATLAB中对EEG(脑电图)信号进行带通滤波。这样,您可以避免由数字滤波器(即零相位滤波)引起的不可避免的“延迟”。
然后,有人问我为什么我们不能使用fft
(快速傅立叶变换)获取信号的频域表示,然后将不想要的频率的功率设置为零,然后进行ifft
(快速傅立叶逆变换)以及时恢复滤波后的数据出于相同的目的。对我来说,这种在频域上的操作听起来更简单合理,我无法真正回答为什么。
使用简单fft/ifft
方法进行带通滤波的优点和缺点是什么?为什么人们更喜欢使用FIR或IIR数字滤波器?
例如,fft/ifft
与已建立的数字滤波器相比,该方法是否更容易产生频谱泄漏或波纹?该方法还会遭受相位延迟吗?有没有一种方法可以可视化此滤波方法的脉冲响应以进行比较?