脑电图在线过滤器

信息处理 过滤器 过滤器设计 即时的 带通
2022-02-21 17:36:42

我的目标是为 EEG 数据构建一个实时过滤器。数据以 512Hz 记录,我希望对其进行过滤(实时,以最佳方式从 0.5Hz 到 30Hz)。

不幸的是,我不是 DSP 方面的专家,所以我不确定我应该使用哪种类型的滤波器,IIR 还是 FIR?推荐的过滤器类型butter, cheb1, 或是cheb2什么?

我所了解的是在设计过滤器时需要设置一些属性。其中包括过渡带、滤波器阶数、群延迟、吉布斯效应、线性相位等。

目前,我对这些属性列表感到非常困惑。我也相信上面提到的一些属性是相互依赖的。我在网上找不到任何“易于使用”的配方,说明如何构建此类过滤器以及构建此类过滤器时应考虑哪些因素。

1个回答

我会尽量指导你的研究,而不是给你一个直接的答案。一键式食谱不太适合获得最佳结果,这需要一些仔细的洞察力。毕竟,您正在处理生物信号。

要开发实时过滤器,您需要在下一个样本/窗口出现之前处理每个样本/窗口。您需要考虑可用于计算的 CPU 时间(取决于平台)和一次必须过滤的信号数量(当然,随后会影响已用内存)。毕竟,数字滤波器不过是一堆和和乘积。

现在您应该研究需要过滤的信号类型。您似乎正在处理从 delta 到 beta 波的频率。您需要深入了解每个信号的特征,以便在过滤后保留它们(例如,如果研究睡眠期间的大脑活动,您应该确保在第二阶段不会错过 k 复合体和纺锤体)。通过这种方式,您可以查看一些值:允许的最大带通纹波、过渡带的宽度等。

有了这些信息,经过一些研究(例如Burrus & Parks 的数字滤波器设计;Oppenheim & Schafer 的离散时间信号处理),您可以选择您需要的滤波器类型,并进一步了解实施细节。

幸运的是,通过一个简单的谷歌查询,你可以找到很多东西。有 Matlab 工具箱可帮助您设计滤波器:

  • FDATool , Matlab 滤波器设计工具箱。

  • 你也可以看看ERPLab,这似乎是一个很好的起点。

还有很多免费论文:谷歌查询“脑电图过滤”

过滤器的阶数越高,精度越高,但每秒需要的操作越多。所以这里的主要限制是你需要为一堆信号保持实时。