多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

第六章 伪迹排除与校正+第七章 傅里叶分析与滤波基础

第六章 伪迹排除与校正+第七章 傅里叶分析与滤波基础 1 本章概述ERP实验中记录的信号是由EEG加上多种并非源自神经活动的噪声组成。这些噪声主要来自实验环境中的感应电信号以及生物电信号如眨眼、眼动、肌肉活动和皮肤电位。所有这些非EEG信号都被称为伪迹。有些伪迹幅值比较小且恒定但另一些伪迹复制较大的瞬态信号组成例如眨眼和眼动。对于幅值较大的瞬态伪迹我们可以将被污染的试次从记录中去除以消除其对EEG的影响。而对于幅值较小但恒定的伪迹由于它们出现于所有的实验试次中因此我们需要运用校正程序来予以减轻例如迭加平均和滤波。EEG中的伪迹会带来三种问题。首先伪迹会降低迭加平均后ERP波形的信噪比从而降低再实验组间或条件之间发现显著差异的可能性。第二一些类型的伪迹可能不是随机的而是i同性出现的。它们可能更多出现在某些实验条件下并且至少在一定程度上是与刺激锁时的从而导致它们无法被迭加平均消除。这类伪迹可能会导致我们对实验效应做出错误的结论。第三ERP实验中最常见的伪迹是由眨眼和眼动引起的眼部伪迹而它们都会改变感官输入。减轻伪迹干扰效应主要有两类方法。第一类方法是对于较大的伪迹我们可以从EEG中检测到它们并将被污染的试次从迭加平均的波形中排除这被称为伪迹排除。第二类方法是估计伪迹对ERPs的影响然后运用校正程序来减除估计出的伪迹成分这被称为伪迹校正。伪迹排除和校正是有代价的。尽量减少实验中出现的伪迹总是要好于大量依赖伪迹排除和校正。本章对伪迹校正将进行相对理论化的阐述。这一方面是由于伪迹校正的方法有很多因此逐一讨论所有方法是不切实际的。另一方面是因为我的首选伪迹校正复杂且快速发展的方法。2 伪迹排除的基本过程在最早期的ERP研究中伪迹排除就已经被用来减少伪迹的干扰效应。但是伪迹排除有一个显而易见的弊端丢弃一定比例的试次将导致能够被用于迭加平均的试次数量减少从而导致数据噪声在一些实验条件或分组中更大有关不同试次数量的影响。但是在大多数情况下伪迹排除都是一个简单有效的步骤并且它的益处是远甚于弊端的。伪迹的检测本质上是信号检测问题其中伪迹被视作将被检测的信号。信号检测理论是了解人类心智如何运作的基本理论框架并且对理解伪迹排除也大有裨益。信号检测论Signal Detection TheorySDT是一种心理物理法研究在不确定情境下的决策机制属于信息论分支体系。该理论将刺激变量视为信号感知过程中的随机变化视为噪声通过区分信号加噪声SN与噪声N进行统计分析。理论内涵包含两个常态分布假设信号与噪声在感觉连续体上呈现重叠分布通过判断标准β划分反应类型击中、漏报、虚报、正确拒斥。辨别力指标d反映信号强度接受者操作特征曲线ROC显示判断标准变化对反应率的影响其中d保持稳定而β随奖惩条件改变。在ERPLAB工具包中我们区分伪迹检测和伪迹排除。检测是指判断伪迹是否存在的过程。即当算法判定某一EEG分段epoch超出伪迹排除的阈值该分析就被标记下来。在迭加平均时被标记的分段则不被用于生成ERP波形除非用户另有设置。含有伪迹的分段并没有被永久删除这使得我们能够轻易改变伪迹的参数并重新进行伪迹排除。然而ERPLAB也提供伪迹排除的工具。这些工具将包含伪迹的分段从数据中删除。大多数人用排除来表示检测伪迹并将它们排除于迭加平均之外。伪迹实际上并没有从EEG数据文件中删除它们只是在ERP迭加平均时排除在外了。在大多数系统中只要在任何通道导联中检测到伪迹该试次的所有通道都被丢弃。这是合理的因为伪迹存在于多个导联的但在有些导联里可能相对更难被检测到。2.1 选择伪迹测量方法许多ERP分析系统仅提供一种原始的方法用来排除包含伪迹的试次当脑电分段中的电压超出用户设定的阈值例如±75微伏时则将该试次排除。本质上这种方法是用分段中最大电压的绝对值来测量伪迹如果电压超出这一阈值则排除试次。如何区分包含于不包含眨眼的分段该方法被称为滑动窗峰-峰振幅方法。在这种方法中用户定义窗的宽度例如200ms。该算法将窗置于分段的起始并在窗内计算峰-峰振幅。然后窗以用户定义的量向右移动并在新的窗内计算峰-峰振幅。该过程一直持续到整个分段都被测试完或分段中任何用户想测试的部分。然后我们将最大的峰-峰振幅与排除阈值进行比较。由于该方法使用每一窗内电压最高点与最低点之间的差异它对分段中总体的电压偏移是完全不敏感的。它对慢电压漂移也相对不敏感。2.2 选择排伪阈值当选定一个适当的伪迹测量方法后你必须选择一个好的阈值来权衡漏报与误报。一种方式是基于经验或以前的实验来选择一个阈值并将其运用于所有被试。如果你为每名被试单独设置排伪参数最好的方法通常是对原始EEG进行肉眼检查。你可以按照以下步骤来完成。首先根据以往的经验或发表的数值来选定一个初始阈值。然后让软件包使用这些参数执行初步的伪迹检测。这可以使你直观地判定含有伪迹的试次是否未能被排除或者不含伪迹的试次是否被排除了。但是你需要能够通过肉眼检查来确定伪迹是否存在。在大多数情况下这是很简单的并且我在下一节中也将给出一些提示。在测试了这个初始阈值的效果之后你可以调整阈值并重新尝试伪迹排除。你可以重复以上步骤直到能够将所有含有明显伪迹的试次排除而且不排除过多的不含伪迹试次。一些伪迹会在迭加平均波形中留下独特的”特征“因此也有可能在数据迭加平均之后再来评估所用阈值是否充分排除含有伪迹的试次。2.3 肉眼检查3 特定类型伪迹的最小化与检测3.1 眨眼深入理解眨眼在头皮上记录到的源自该偶极子的电压被称为眼电图。减少眨眼的出现减少伪迹的出现总是要优于排除包含伪迹的试次有几种方法可以减少眨眼的次数。1可以要求那些通常佩戴眼镜的被试佩戴框架眼镜来代替隐形眼镜因为隐形眼镜会引起大量眨眼2实验使用1-2分钟的短时次组块也是有帮助的因为这样可以为被试提供频繁的休息时间以供它们眨眼。一些实验设计允许被试在试次间时间间隔中某个明确的时间段内眨眼。但有两个潜在问题其一如果注视点在感兴趣刺激之前不久才出现的由注视点诱发的ERP会与感兴趣刺激之前不久才出现由注视点诱发的ERP会与感兴趣刺激诱发的ERP重叠。其二如果大部分试次中眨眼都在刺激之前即刻发生那么虽然由眨眼引起的电压偏移可能小到不需要被排除但是仍足以污染数据。检测眨眼单试次中的眨眼是相对容易检测的。滑动窗峰-峰振幅测量方法则非常有效因此我强烈推荐。此外还要一个另一个测量方法——阶跃函数法该方法对于眨眼检测也近乎完美。我从未对这两种方法做过正式的比较但我觉得阶跃函数法比滑动窗峰-峰振幅法可能更好一点。3.2 眼动眼动是由眼外肌收缩引起的。这种肌肉收缩主要发生在眼球运动起始时一旦眼跳结束保持眼球的位置几乎不需要肌肉活动。因此一个眼外肌活动尖峰经常出现在眼动起始时。这个伪迹通常不是一个严重的问题但它会在时频分析中产生gamma频段的诊断。需要注意的是上述方法对于检测眼跳是有效的但通常不适用于检测眼睛位置的缓慢移动或评估眼睛的绝对位置。3.3 皮肤电位与其他慢电压漂移电压漂移也可以由电极位置的微小变化引起。这通常是因为被试移动所致。电极位置的改变往往会导致阻抗的变化从而引起电压的持续性漂移。这类伪迹可以通过确保被试的舒适度从而不产生太大的移动来减少。若电极位置在枕叶区位点则被试不应将头的后部靠在椅背上。如果电压漂移较小并且是缓慢与随机的它们应该不会引起迭加平均ERP的较大失真因而没有必要为此排除试次。3.4 放大器及模数转换器的饱和与阻塞慢电压漂移有时会引起放大器或模数转换器DC饱和导致EEG在一段时间内称为平线。alpha波大约10hz的EEG振荡通常在后部电极位点上最大并常发生在被试疲劳或闭上眼睛时。减少alpha波的最好方法是要求被试在实验前休息好并让它们做有趣的任务但有些被试即使在完全警觉时也有较大的alpha波。当刺激以恒定的速率呈现时alpha波可能会特别成问题。由于此时alpha节律可能会与刺激同步因此无法通过迭加平均来削弱alpha波。因此在试次间时间间隔上使用至少±50毫秒的抖动是很有用的。3.5 肌肉与心脏活动肌肉收缩过程所产生的电势被称为肌电图。3.6 与说话相关的伪迹舌头在嘴中上下移动——舌电伪迹3.7 不明来源的偶发性伪迹打哈欠伸展清嗓子4 关于伪迹排除的几点实用建议首先肉眼检查第二检查迭加平均的ERP以确定伪迹排除是否有效。仅用包含伪迹的试次来迭加平均也是有用的。这将允许你观察到伪迹在不同实验条件下的差异从而帮助你推测未被检测到的伪迹如何影响数据。第三不要担心排除含有伪迹的试次会降低信噪比除非你摒弃了超过20的试次。如第5章所述,平方根定律(square root law)意味着试次数目减少20%仅会导致信噪比降低11%。第四对于特定的伪迹在最容易观测到它们的导联中进行检测(例如在VEOG导联中检测眨眼在HEOG导联中检测眼动)。此外,可通过设置较高的排伪标准在所有导联中检测C.R.A.P(例如使用200微伏阈值的滑动窗峰一峰值检测)。第五记录每名被试中被排除试次的百分比并在你的期刊文章中汇报这一点。我偏向于列出所有被试的平均百分比和范围(在适当情形下为每一实验分组分别汇报)。在大多数情况下你可以合并实验条件来汇报这些百分比。但在那些剩余试次数目可能很小的实验中(例如婴儿的认知研究)你可能需要对每一种实验条件分别汇报这些信息。最后对于那些大量试次都被排除的被试你可能希望将这些被试完全排除但你应该注意避免在结果中引起偏差。例如你偶尔会遇到几乎在每个试次中都眨眼的被试。当我的实验室遇到这种情况时我告诉我的学生应该在实验完成之前就让被试回家这样该被试就自动被排除在最终数据集之外。然而若眨眼发生在试次间时间间隔中但污染了基线你仍有可能会排除90%的试次。显然你不希望将这样的被试纳入最终数据分析中。但如果你排除了80%的试次呢?抑或是60%、30%或者5%?为避免该问题我强烈建议采用一种标准来排除被试并以鲜艳发方式将其应用于你的所有实验。5 伪迹校正基础5.1 伪迹校正为什么有用伪迹排除是一个相对原始的操作因为它将一部分试次完全排除在ERP迭加平均之外。正如GrattonColes 和Donchin(1983)所论述的,排除包含眼部伪迹的试次会存在三个潜在问题。第一在某些情形下摒弃包含眨眼或眼动的试次可能会导致试次样本失去代表性(例如你有可能会最终只纳入当被试处于某种警觉状态的试次)。第二有几类被试(例如儿童和精神病患者)无法很好地控制眨眼和眼动从而很难获取足够数量的无伪迹试次。第三在一些实验范式中眨眼和眼动是任务不可或缺的一部分排除含有这些伪迹的试次将适得其反。在这些情况下减去由眨眼和眼动引起的电压变化相比排除包含这些伪迹的试次要更为有用。5.2 伪迹校正的一般方法伪迹校正程序可分为三类1基于回归的程序2偶极子定位程序3统计成分分离程序。Gratton等人(1983)开发了一种基于回归的校正程序用来估计眨眼和眼动产生的伪迹电位并从EEG中减去它们。其基本思想是眼睛产生的伪迹以非常可预测和可量化的方式传播到各个头皮位点。在给定电极位点上记录到的伪迹电压即等于在眼睛处记录到的伪迹大小乘以一个传输因子。因此为了校正眼睛产生的伪迹你可以估计眼睛和每个头皮电极之间的传输因子并从各个头皮位点的ERP波形中减去相应比例的在眼睛处记录到的EOG活动。例如Lins等人(1993a)发现双极EOG记录中47%的电压传播到Fpz电极18%传播到Fz电极8%传播到Cz电极。若要从这些电极位点的迭加平均ERP波形中减去EOG的贡献,则需在Fpz电极上减去47%的EOG波形在Fz电极上减去18%的EOG波形,在Cz电极上减去8%的EOG波形。虽然开发该校正程序是向前迈出的重要一步但它也有一个重大缺陷。具体来说EOG记录除了包含真正的眼部活动以外还包括大脑活动因此减法程序在减去眼部伪迹的同时也会减去一部分大脑的响应(例如见LinsPictonBergScherg,1993b; Plochl et al. 2012). 因此,我不建议使用 Gratton等人(1983)的方法或类似基于回归的方法。自该方法问世以来已过去了三十年如今更好的技术已经被广泛普及。第二种方法是使用偶极子模型来对伪迹及其在头部的传导建立更详细的生物物理模型(Berg Scherg1991a1991b)。虽然我通常对偶极子模型并不十分热衷(见在线第14章)但眼部偶极子的位置是已知的因此消除了偶极子模型中通常涉及的不确定性。然而要想准确地使用该方法仍需要耗费相当大的努力。例如Lins等人(1993b)建议应至少从七个位于眼睛附近的电极进行记录且必须对每名被试进行校准。此外该方法通常假定垂直眼动和眼睑划过眼睛的效应具有相同的头皮分布但事实并非如此(例如见Plochl et al.2012)。第三种方法是利用数据的统计特性来识别出一组成分每个成分都具有特定的头皮分布然后使用这些成分分离并减去与伪迹相关的电压波动。可以采用不同的统计方法来估计这些成分它们包括主成分分析(principal componentanalysis, PCA),独立成分分析(independent component analysis, ICA)以及二阶盲识(second-order blind inference, SOBI).这些方法假设在给定被试中每个伪迹都有固定的头皮分布。例如眼睑闭合会有一个头皮分布眼动有另一个头皮分布而EKG则又会有其自己的头皮分布以此类推。该假设对于很多伪迹是正确的。EEG在任何时刻的头皮分布可被假设为由伪迹与其他大脑信号的头皮分布的加权和所构成。通过检查每个电极位点以及每个时间点上电压的关系这些方法能够找出少量头皮分布它们相加之和能够解释每个时间点上的EEG。ICA已成为这些统计方法中最常用的主要原因是它的普及性而且相对容易在免费的EEGLAB工具箱软件包中实现(DelormeMakeig2004)。第六章的在线补充材料中包括了一个针对基于ICA的伪迹排除的详细论述以及一个来自真实实验的示例。这些方法并不局限于眼部伪迹。它们可以校正任何具有一致性头皮分布的伪迹包括EKG伪迹以及来自附近电器设备的工频噪声。然而这些方法并不适用于具有可变头皮分布的伪迹(如皮肤电位以及运动伪迹)。5.3 伪迹校正的潜在不足和一般性建议不足没有任何伪迹校正技术被证明能够在所有情况下都完美运行一种验证伪迹校正的方法是将伪迹校正与伪迹排除进行比较。若两种方法得到的数据很相似——尽管伪迹排除后试次数目的减少导致噪声变大——则校正程序可能没有造成很大的数据失真。第二个潜在不足便是即使伪迹校正完美运行它也无法校正由眨眼和眼动引起的感官输入变化。显然该问题的一个解决方案便是在伪迹校正之前排除那些在刺激呈现的几百毫秒内发生眨眼或眼动的试次。另一种解决办法是证明在这段时间内几乎没有眨眼或眼动发生。虽然这些解决方案看似很显而易见但我很少看到有发表的研究处理了眨眼改变感官输人的问题。这可能在一定程度上反映了一个事实即在商业ERP分析软件中并不容易同时兼顾伪迹校正与伪迹排除。当我们在设计开发ERPLAP工具箱时(它依靠EEGLAB来进行基于ICA的伪迹校正),我们的目标之一是使这成为可能。你应该使用伪迹校正还是应该坚持传统的伪迹排除方法呢?我在本书第一版中曾说过:“我建议不要使用伪迹校正程序除非实验或被试的性质导致不可能进行伪迹排除。”自那以来我的实验室在一些实验中使用了基于ICA的伪迹校正我们对其结果进行了仔细观察以寻找其中的问题。结果就是我已经改变了我的建议。我认为使用新的校正技术来校正几乎所有实验中的眨眼都是合理的。眨眼伪迹很大因此这些方法效果很好。我尚未见到有任何证据表明基于ICA的眨眼校正会造成数据实质性的失真。有三种情况我建议谨慎使用眨眼校正。第一种情况是当你的实验效应为类似于眨眼头皮分布的微小效应且具有相对较长的持续时间(200毫秒)时。在该情况下由眨眼校正算法引起的微小失真可能会带来难以检测到的问题。第二种情况是当眨眼的时间高度一致时(例如当被试在反应或强刺激呈现时眨眼);在这种情况下检测眨眼相关活动的统计方法可能会将大脑活动与眨眼混为一谈。如果你不处于上述任何情形之中你可尝试使用伪迹校正但请非常仔细地测试是否有迹象表明它引起了数据失真(例如通过比较伪迹排除与伪迹校正)。第三种需要谨慎使用眨眼校正的情况同时也是更为常见的情况便是当眨眼在不同的实验分组或条件之间有显著差异时特别是在发现显著ERP效应的时间段内。那么如何判断是否处于这种情况呢?一种判断方法是执行与伪迹校正相反的操作:你不移除与眨眼相关的成分而是移除其他所有的成分。若在这之后再对数据进行迭加平均则生成的波形将显示每个实验分组和条件之中与伪迹相关的活动。这似乎是每个使用伪迹校正的实验都应该做的一项工作。若你发现伪迹在不同实验分组和条件之间确实存在差异你则要更详细地查看数据以确定实验的主效应可否由伪迹校正的误差来解释。对于这类方法是否足以去除EMG伪迹目前仍存在争议(例如见McMenamin, Shackman, Maxwell, Greischar, . Davidson, 2009; McMenamin etal. , 2010; Olbrich, Jodicke, Sander, Himmerich, Hegerl, 2011). 问题可因为EMG伪迹的头皮分布不够稳定特别是当涉及多个肌肉群时。与此类似皮肤电位也可能没有一致的头皮分布导致它们难以被这些方法校正。工频噪声与EKG伪迹在我看来会相对容易校正并且之前的研究已经为此提供了一些证据(Jung et al. , 2000; Ille, Berg, . Scherg, 2002)。第七章 傅里叶分析与滤波基础1.本章概述在本章中我将首先简述傅里叶分析然后介绍基于傅里叶分析的EEG和ERP数据常规滤波方法。之后我将再介绍一种数学上等效的滤波方法。该方法完全基于时域通常更适合EEG和ERP数据。最后我将阐述滤波器如何引起数据失真并且我将就如何以及何时使用滤波器给出一些具体的建议。我将运用很少的数学推理来呈现这些内容(除了简单的算术和迭加平均以外)。我的目标是阐述概念以帮助理解基于频域的表达与滤波并且给出关于数据滤波的实用建议。2 傅里叶分析基础傅里叶变换对于每个时间窗口内的EEG信号我们可以使用快速傅里叶变换FFT来将时域信号转换为频域信号。这样可以得到每个时间窗口内的功率谱密度信息。2.1 将ERPs变换为频域表达一种叫傅里叶变换(Fouriertransform)的数学方法可被用于确定重构一给定波形时所需要叠加正弦波的频率、振幅和相位1。例如图7.1B显示了将傅里叶变换应用于图7.1A中ERP波形的结果。这被称为将数据从时域(X轴为时间)转换至频域(X轴是频率)。图7.1B所示的频域表达显示了每个频率的正弦波在重构图7.1A所示ERP波形时所需的振幅。每个频率也有一个相应的相位值(未在图中显示)。假若你选取具有如图7.1B所示频率与振幅(以及适当的相位)的一组正弦波并把它们加起来你将得到与图7.1A所示完全相同的波形。如果你这样做你实际上是在进行傅里叶逆变换(inverse Fourier transform),也就是将频域描述转换回时域描述的数学过程。2.2 简单方波的傅里叶变换图7.2显示了一个简单时域波形(周期性方波)的傅里叶变换。你也许会认为不可能用一组平滑的正弦波来重构一个由直线和尖锐拐角组成的方波。然而这个例子表明事实上你可以用正弦波来重构方波只要你愿意累加足够多的正弦波。与图7.1中的ERP波形不同的是方波的傅里叶变换仅需一组特定频率的正弦波而重构ERP波形则需要许多连续频率的正弦波。具体来说如果方波以每秒F次的频率重复则重构方波所需要的正弦波频率为F、3F、5F、7F等而不需要任何之间的频率。这些频率被称为基频(fundamental frequency;F)和奇次谐波(oddharmonics; 3F、5F、7F等).2.3 傅里叶变换的真正含义傅里叶分析的本质是任何波形都可由一组正弦波的累加来重构然而这并不代表该波形实际上是由一组正弦波组成。频域分析的基本原理:在给定频率上存在的功率并不意味着大脑在该频率上进行振荡。3 频域滤波基础3.1 为什么滤波器是必要的本章的一个关键信息是滤波器可以造成数据显著失真。因此我们有必要问问为什么使用滤波器仍然是值得的。这个问题有两个答案第一个答案与奈奎斯特定理(见第五章)有关。该定理指出当数字化的采样率是模拟信号中最高频率的两倍以上时就可以将该连续的模拟信号(如EEG)转换成一组离散样本且不损失任何信息。这意味着我们可以合理地将EEG信号以一组离散样本的形式存储到计算机上。然而该定理也指出如果原始信号中包含了超出采样频率一半的频率成分*那么这些高频会以伪低频的形式出现在数字化以后的数据中(这被称作混叠)。因此EEG记录系统中都使用基于硬件的抗混叠滤波器来抑制数据中的高频成分这些滤波器通常被设置为消除数据中大于或等于奈奎斯特频率(采样频率的一半)的成分。例如典型的认知ERP实验可能使用250Hz的采样频率因此有必要确保一切大于或等于125Hz的频率成分都被消除。滤波的第二个主要目标是降低噪声而这相比第一点来说要复杂得多。其基本思想是EEG由信号加上一些噪声组成其中一些噪声可通过削减特定频率来抑制。例如在典型的认知神经科学实验中ERP波形中的大部分有关成分由大约0.1Hz至30Hz之间的频率组成而肌电活动主要由100Hz以上的频率组成;因此抑制100Hz以上的频率将极大地减少肌电活动而与此同时它对EEG的影响很小。然而若信号与噪声的频率成分很相似则很难在不使信号产生显著失真的前提下抑制噪声。例如alpha波是ERP分析中相当大的噪声源但由于它在ERP的频率范围内因此很难对其进行滤波而又不在ERP波形中产生显著失真。除了抑制高频大多数实验中也运用滤波器来衰减极低频这些低频通常产生自电极和皮肤而非源自大脑(如第五章所讨论的)。使用滤波器抑制低于0.1Hz的频率成分通常可以有效去除这些慢电压漂移。当数据采集自病人或儿童时这一点便尤为重要因为头部和身体的移动是导致这些持续性电压漂移的一个常见原因。你可以通过使用更高的截止频率(如0.5或1.0Hz)来进一步减轻慢电压漂移但这些频带也是ERP波形的重要组成部分。使用如此高截止频率的滤波可能会引起ERP波形的严重失真并可能降低统计功效(如本章后面所述)。3.2 滤波作为频域内的乘法滤波器的效应通常用滤波器的频率响应函数来表示其描述了滤波器如何影响每个频率成分。通常我们关注的是滤波器如何改变每个频率上的振幅这是由每个频率上的增益所决定的。增益是一个乘法因子;滤波器输人中的每个频率都与将该频率上的增益相乘。增益为1.0表示滤波器不改变该频率上的振幅。增益为0.25则表示振幅将乘以0.25,因此减小75%。增益为1.5表示振幅将乘以1.5,从而增加50%。在用于EEG/ERP信号的典型滤波器中每个频率的增益都在0到1之间。图7.1C显示了一个典型低通滤波器的频率响应函数。当频率低于10Hz时其增益在1附近因此这些频率不会受到该滤波器的较大影响。当频率超过80Hz时其增益接近于零因此该滤波器将几乎完全消除这些频率。该滤波器的增益在5至80Hz之间逐渐下降这些频率将部分被抑制部分被通过。在60Hz处的增益约为0.10,因此90%的60Hz噪声将被滤波器抑制。当我们以这种方式将滤波概念化时滤波的实际过程其实非常简单。原始ERP波形(图7.1A)通过傅里叶变换被转换到频域(图7.1B)。然后在数据的频域表达中将每个频率上的振幅乘以滤波器频率响应函数(图7.1C)中相应的增益值便得出滤波后频域中的数据(图7.1D)。最后滤波后的频域数据通过傅里叶逆变换被转换回时域从而得出滤波后的时域ERP波形(图7.1E)。如果比较原始和滤波后的频域数据(图7.1B与D),可以看到它们在低频(低于10Hz)的振幅非常相似。这是因为滤波器在这些频率上的增益接近1.0。然而,因为滤波器在60Hz处的增益约为0.10,出现在滤波前数据中(图7.1B)的60Hz尖峰在滤波后的数据中(图7.1D)几乎被完全去除。因此滤波前ERP波形中(图7.1A)的快速振荡噪声在滤波后的ERP波形中基本上被去除了(图7.1E)。你可以使用任何函数作为频率响应函数。例如你可使用这样一个函数它在0到50Hz之间的每个频率上增益为1,而对于50Hz以上的频率增益为0。你可能会认为这是一个更好的频率响应函数因为它不会造成如图7.1中滤波器在中间频率上的部分衰减。然而正如我稍后将更详细阐述的这种频率响应函数中非常突然的过渡可能会带来一些不良的副作用。3.3 二次滤波滤波只是把这个运算重复可进行两次。但是有一种更简便的方式来理解二次滤波。具体来说你可以将两个滤波器的频率响应函数相乘便得到使用两个滤波器时所对应的频率响应函数。图7.4显示了两个滤波器的频率响应函数分别标记为“滤波器A”和“滤波器B”。对数据进行两次滤波一次使用滤波器A一次用滤波器B等效于用两个滤波器的频率响应函数相乘所得到的频率响应函数滤波一次。即使其中一个滤波器是在硬件上实现的而另一个是在软件中实现的该描述也成立。你可能会认为使用完全相同的滤波器进行第二次滤波不会改变数据。毕竟如果你已经去除了某频率怎么可能通过第二次滤波改变这个频率呢?但是第二次滤波确实是会改变数据的。例如设想我们使用图7.4中的滤波器A滤波两次。该滤波器在38Hz处的增益约为0.80。在第一次滤波时我们将在38Hz处去除20%的信号。而第二次滤波时我们将在38Hz的剩余信号中再去除20%。类似地滤波器A在41Hz处的增益约为0.71。如果用该滤波器进行两次滤波则在41Hz处二次滤波的增益为0.5(因为0.71X0.710.5)。因此虽然滤波器A的半振幅截止频率大约在50Hz,用该滤波器进行两次滤波的半振幅截止频率却大约为41 Hz.3.4相移如图7.1B所示当我们用傅里叶变换建立频域表达时在每个频率上都存在相位与振幅(虽然相位经常在图中被省略且本书也如此)。类似地频率响应函数对每个频率都指定一个增益和相移。在大多数离线(软件)滤波器中每个频率上的相移都为零因此在使用这些滤波器时不需要担心相位问题。然而硬件滤波器总是存在相移它以复杂的方式将ERP波形向右移动。对于大多数截止频率相对较高的抗混叠滤波器来说其相移是可忽略不计的所以你无须担心相移。但若使用的硬件滤波器具有相对较低的截止频率(例如低于50Hz)则可能会产生有实际意义的潜伏期漂移。这也是为什么尽量进行离线滤波且使用不产生相移或潜伏期漂移的滤波器的原因之一。滤波器通过计算周围时间点的加权组合以求出给定时间点上的滤波值。多数离线滤波器以对称的方式来实现即对当前时间点之前与之后的时间点赋予相等的权重。因此他们不会产生相移。相反硬件滤波器只“知道”过去的时间点因为未来的时间点还未发生因此只能使用过往的电压在给定时间点上计算滤波值。在给定时间点上的电压将影响后续时间点上的电压值其结果是将该电压值在时间上“推迟从而导致相移。这类滤波器被称为因果(causal)滤波器因为它们遵循因果关系的基本原则即过去可以影响未来但未来不能影响过去。离线滤波器使用先前和后续的电压来计算给定时间点的滤波值。因此它们违背了时间的单向性因而被称为非因果(non-causal)滤波器。虽然使用不符合基本因果原则的滤波器听起来像是个坏主意但在实践中这通常并不是一个问题。在几乎所有情况下你都希望在离线滤波中使用非因果滤波器以避免潜伏期漂移。3.5 截止频率、滚降与斜率在ERP研究中滤波器通常仅以它的半振幅截止频率来描述即振幅减低至50%的频率。然而这对于描述整个频率响应函数是远远不够的。例如图7.5展示了两个频率响应函数它们都具有30Hz的半振幅截止频率。子图A中的函数在10至80Hz之间非常缓慢地下降而子图B中的函数在0至25Hz之间非常平坦在25至35Hz之间迅速下降之后又非常平坦。增益下降的陡峭程度被称为滤波器的滚降它通常由截止频率处频率响应函数的斜率(slope)来量化。图7.5A中的频率响应函数滚降较平缓而图7.5B中的频率响应函数则有较陡峭的滚降。斜率通常以对数尺度的分贝/倍频程(dB/octave)来表示。一个3dB的下降即代表功率减弱50%,6dB的下降则代表振幅减小50%。一个倍频程(octave)代表频率的加倍。因此一个半振幅截止频率为30Hz且斜率为6dB/octave的滤波器将使20至40Hz之间(一个倍频程)的振幅下降50%(6dB)2。需要注意的是截止频率有时是根据功率而不是振幅来指定的。半振幅截止频率是指增益降低6dB的点而半功率截止频率是增益仅降低3dB的点。我们可以这样描述半功率截止频率:“数据经低通滤波(一3dB于30Hz)。”在功率降低了50%的频率点上振幅只降低了29%。如果滤波器的斜率相对较小则半功率截止点可能与半振幅截止点相差很大。例如一个半功率截止频率为30Hz、斜率为12dB/octave的滤波器其半振幅截止频率约为46Hz。其半振幅截止频率高出半功率截止频率50%!方框7.1简要说明了在撰写论文时详细描述滤波器的重要性。3.6 高通滤波器与时间常数至此我们主要考虑了低通滤波器。在大多数认知实验中低通滤波器有助于减少电感应噪声与EMG噪声。高通滤波器可用来减少由皮肤电位引起的慢电压变化以及其他的慢电压偏移从而提高统计功效。图7.6给出了高通滤波器被应用在一段30秒连续EEG的例子。未经滤波的数据在该时间段内有明显的向上漂移这种漂移由一个半振幅截止频率为0.1Hz且斜率为24 dB/octave的高通滤波器消除。如果你只查看较短的EEG分段(例如5秒或更短的时间),你甚至可能不会注意到漂移。所以你应该查看更长的时间段(例如60秒或更长),这样才可以检测到数据中的缓慢漂移。如本章末尾的“什么时候应该滤波?”一节所讨论的高通滤波器通常用于连续EEG,而不是用于EEG分段或迭加平均后的ERPs。高通滤波器有时是以时间常数而不是半振幅截止频率来描述。如图7.7所示如果给高通滤波器输入一恒定电压则滤波器的输出将以此电压为起始点然后逐渐降至零。滤波器的时间常数是指其导致电压下降的速率。滤波器的输出电压随时间呈指数下降即在给定长度的时间段内电压在该时段的起始与结束之间将下降一个特定的百分比(例如在一个8秒时间段的开始和结束之间电压下降50%,而在下一个8秒时间段中电压在剩余电压基础上继续下降50%)。因为一个时间段内的电压下降总是该时段起始电压的一个百分比所以电压永远不会降至零。因此时间常数则被表示为滤波器输出下降至起始值的某一特定比例(1/e或37%)所需的时间。其之所以被称为“常数”是因为对于任何起始电压值电压都会在这段时间内下降到起始值的1/e。当半振幅截止频率提高时时间常数就会减小。若已知高通滤波器的半功率截止频率(fc即滤波器输出降低3dB的频率),则时间常数可由1/(2Πfc)求出。4 时域滤波基础4.1 使用滑动平均滤波器进行低通滤波直观上来看滑动平均滤波器非常适合用于减少随机噪声我们能够感受到通过滑动平均数据变平滑了。数字滤波算法一——滑动平均滤波算法-CSDN博客4.2 与频域滤波的关系滑动平均滤波器的频率响应函数有些奇怪因为它有许多上下起伏。但是我们只需对滑动平均滤波器稍作修改就可以得到一个更好的单调递减的频率响应函数。这个改动还解决了滑动平均滤波器的时域奇异性。具体来说当我们用13点滑动平均滤波器计算给定时间点的滤波值时我们对当前时间点两侧的所有6个点赋予相等的权重。一个可能更明智的做法是对更接近当前点的时间点赋予更高的权重。例如对于一个三点滑动平均滤波器我们可以对当前点赋予0.5的权重而对其两侧的点赋予0.25的权重。因此在68毫秒处的滤波值则为0.25乘以64毫秒处的电压加上0.5乘以68毫秒处的电压再加上0.25乘以72毫秒处的电压。通过选择一组适当的权重你可以得到一个具有单调递减频率响应函数的“加权”滑动平均滤波器。事实上通过选取适当的权重你可以创建任何你想要的频率响应函数。4.3 滤波与时间拖尾当使用滑动平均滤波器进行滤波时很明显我们会失去一些时间上的分辨率。也就是说由于在给定时间点上滤波后的电压是其周围时间点的平均值因此滤波值代表在某一时间点范围内的平均活动而并非代表单个时刻上的活动。图7.9B显示了当我们将13点滑动平均滤波器应用于一个仿真波形(从100毫秒开始的单周期10Hz正弦波)时的情形。滤波后的波形振幅总体上比原始波形的振幅要低,这是合理的因为由图7.9A所示的频率响应函数可见,该滤波器在10Hz处的增益远低于1.0。然而在滤波后的波形中最需要注意的是它相比原始波形具有更早的起始时间(以及更晚的结束时间)。考虑到滑动平均的计算方式这也是合理的。例如在92毫秒处的滤波值是68到116毫秒之间电压的平均值(这是13个时间点假设每4毫秒有一个采样点)。因为原始波形在该时间范围内开始上升至零以上所以这些电压的平均值将大于零。这导致92毫秒处的滤波值大于零即便原始波形在100毫秒之后才从零偏移。4.4 使用滑动平均滤波器进行高通滤波ERP波形等效于其低频与高频信息的总和而经低通滤波后的波形仅包含低频信号。若我们从原始波形中(包含高频以及低频)减去低通滤波后的波形(仅含低频)其结果便是一个仅包含高频信息的波形。换句话说我们可以通过从原始数据中减去经低通滤波的波形以得到高通滤波后的波形。图7.8D显示了从原始波形中减去7点滑动平均滤波器的输出后所得到的波形。如果仔细观察经高通滤波的波形中每一个小的上下起伏都与原波形中小的上下波动相对应。这个由7点滑动平均所得到的高通滤波器具有很高的半振幅截止频率因此在ERP研究中不会被用到。然而你可以减去一个经过101点滑动平均滤波的波形便能得到一个更有用的半振幅截止频率。5 由滤波引起的失真虽然滤波器是非常有用的但它们实际上是一种系统性的失真。对数据使用的滤波越多数据的失真就越严重。由滤波所造成的失真可以用一个关键原则来总结滤波的基本原理时域的精度与频域的精度成反比。换句话说你对ERP波形的频率约束越严格(即滤除一窄频带以外的所有频率或使用陡峭的滚降)ERP波形在时间上就变得越发散。相反当时间精度越高时数据中的频率范围也会越宽。鉴于时间分辨率是ERP技术的主要优点之一该原理清楚地表明如果我们试图在频域中达到很高的精度我们则会放弃很多。5.1 真的要使用高通滤波器吗在大多数实际情况下高通滤波器比低通滤波器更有可能导致错误的结论。这是因为由低通滤波器产生的在起始和结束时间上的扩散是相对适度的(只要截止频率不是太低)并且通常对所有实验分组与条件有着同等的影响。换言之实验效应的绝对起始时间可能会稍稍提早但这种时移在同一研究中的所有波形上都类似。相反高通滤波器在使用时若截止频率选择不当则更有可能导致明显的失真并且能在波形中产生虚假的峰。因此你可能在想是否应该避免使用高通滤波器。如果使用一个半振幅截止频率为0.1Hz或更低的高通滤波器则该滤波器不太可能会引起任何明显的失真并且它可能会大幅提高统计功效尤其是当研究相对较晚的成分时如P3和N400。图7.11B中显示了Emily Kappenman用图7.10A中 P3数据进行的一组蒙特卡罗仿真的结果(Kappenman .Luck2010)。不足为奇的是统计功效(当真实效应存在时获得统计显著性的概率)随着每个被试中试次数量的增加而增加。但关键的发现是在给定数目的试次下通过使用一个半振幅截止频率为0.1Hz的高通滤波器相较于更低的截止频率(0.01Hz)或未经滤波的数据(该图中未显示),可以显著提高统计功效。统计功效在更高的截止频率下(0.5或1.0Hz)甚至更好。但是这些更高的截止频率导致了波形的严重失真(如图7.11A所示*)。因此在P3波形的统计功效与波形失真之间0.1Hz似乎是最佳的平衡点。6 关于滤波的一些建议在开始对数据进行滤波之前你须谨记Hasen原理干净的数据是无可替代的。在数据采集时进行一些轻微的滤波是必要的离线分析时进行适量的额外滤波通常也会有帮助。然而如果你的数据由于被试或试次间的变异性或由于迭加平均时纳入的试次数量过少等原因而存在噪声那么滤波器也无能为力。滤波器可使这些情况下的数据看起来更好但这可能只是一种错觉并且会导致你得出错误的结论。6.1 对于在线滤波的建议一般来说你应该只进行极少的在线滤波(即在数据采集时进行的硬件滤波)。你总是可以对数据进行更多的离线滤波但是你却无法“复原”已经滤波的数据。此外应用于软件中的离线滤波器要优于在线滤波器(例如在线滤波器会产生潜伏期漂移但大多数离线滤波器则不会)。无论使用何种EEG记录系统你都必须在数据采集过程中使用低通滤波器以防止混叠。滤波器的半振幅截止频率应该在采样率的1/3至1/5之间以使频率响应函数在奈奎斯特频率(采样频率的一半)处的增益接近于零。很多系统会根据你选择的采样率来自动选择合适的抗混叠滤波器。在许多情况下我建议抗混叠滤波器是唯一被使用的在线滤波器。一些系统为了便于在数据采集时对数据进行观测允许你使用额外的EEG滤波器而并非将这些滤波器应用于最终保存的数据上。这是一个非常好的选择因为如果观测滤波后的数据你将更容易监视数据中的伪迹或连接问题。但是在软件中离线进行最终的滤波总是更好的选择。如果你的系统具有该功能我建议在观测EEG时可使用0.1一30Hz的带通(即半振幅截止频率为0.1Hz的高通加上半振幅截止频率为30Hz的低通滤波)。你也应偶尔查看未经滤波的数据以得知是否有很大的皮肤电位、线路噪声或EMG活动。如果你的数据采集系统的分辨率小于20位你应该在数字化之前使用硬件高通滤波器(有关原理见第五章)。否则较大的电压偏移(由皮肤电位和运动伪迹等引起)可能会导致系统饱和。如果发生这种情况你应该将滤波器的半振幅截止频率设置在0.01与0.1Hz之间。假如你的被试容易产生皮肤电位和运动伪迹(例如儿童或神经科病人),我建议采用0.1Hz的截止频率以避免过多的数据损失。对于高度配合的被试(例如健康的年轻人),我建议采用0.01Hz的截止频率(离线时再进行额外的高通滤波)。如果你的数据采集系统不允许在保存未经滤波数据的同时查看滤波后的数据你可能需要在工频频率(50或60Hz,取决于你的居住地)上应用陷波滤波器(notch filter)。陷波滤波器并不理想但如果线路噪声很大没有陷波滤波器可能会使你无法充分对EEG进行监测。当然最好是尽量减少环境中的电噪声源这样EEG就不会受到线路噪声的污染(如在线第十六章所述)。然而这并非总是可行的例如如果你在医院的病床旁边记录。6.2 对于离线滤波的建议的实验我建议在必要时可使用离线滤波器并最终达到约0.1一30Hz的带通滤波。即你应该以半振幅截止频率为0.1Hz的高通来衰减皮肤电位和其他慢电压变化并以半振幅截止频率为30Hz的低通来衰减线路噪声和肌电噪声。你不需要使用与这里完全相同的截止频率;任何下限在0.05至0.2Hz之间上限在20至50Hz之间的数值都可以。我建议滤波器斜率在12.到24 dB/octave之间(对于低通滤波器更陡峭的斜率通常是可接受的而对于高通滤波器则不行)。如前所述对于离线滤波你应该使用非因果滤波器(而不是因果滤波器)以避免潜伏期漂移。我想再次强调你不应该使用比这更窄的带宽除非你真正知道自己在做什么。否则你可能会得出不合理的结论(如方框7.2中所述的研究)。如果你在数据采集时使用了大约0.1一30Hz的带通滤波器你则无需再次进行离线滤波。然而如果你在数据采集时使用了更宽的带通(例如0.01一100Hz),你则可以再次进行离线滤波以实现0.1一30Hz的最终带通滤波。当然任何规则都有例外以下是针对我的基本滤波器建议的一些常见例外:·如果你在研究非常缓慢或晚期的成分例如CDA或LPP传统的建议是将高通滤波器截止设置在一较低的频率(如0.01Hz),以避免衰减你试图测量的成分振幅。然而滤除低频噪声对于这些晚期成分的益处也是很大的而信号的适度衰减可能会被噪声的大幅衰减所抵消。因此虽然你可能想尝试使用较低的截止频率但我怀疑最终你会发现0.1Hz(或0.05Hz)是信号衰减和降噪之间的最佳折衷方案。·如果你通过测量至少50毫秒时间窗中的平均振幅来量化ERP成分的振幅(例如用300至500毫秒之间的平均电压作为P3振幅),你则无需在测量之前使用低通滤波器。使用较宽的测量窗已经衰减了高频噪声(详见第9章)。如果你测量ERP成分的起始潜伏期(或一些其他易受噪声影响的波形特征),你可能需要一个具有更低截止频率的低通滤波器(例如10Hz)。然而在你对滤波有一个更全面的理解之前(例如通过阅读在线第12章以及对一些人工生成的波形进行滤波)请勿这样做。如果你对刺激呈现后50毫秒以内的快速感官响应感兴趣(例如听觉脑干响应)你则需要使用具有更高截止频率的低通和高通滤波器。为了选择准确的截止频率。6.3 什么时候应该滤波(2 封私信 / 8 条消息) Neuron文章解读 | 数据处理之滤波 - 知乎本书的附录中充分阐释了这一原则(包括线性运算的含义)。其基本思想是对于一些数学运算程序无论它们被应用的顺序如何其最终结果都相同。例如(A十B)十C与A十(B十C)是完全等同的。对于诸如滤波等一些更复杂的运算如果其仅涉及线性运算则运算的顺序对结果没有任何影响。例如如果X和Y都是线性运算则可将运算X先应用于ERP波形然后将所得波形作为运算Y的输人其产生的结果将与先对ERP波形进行Y运算再将所得波形作为X运算的输入时所生成的结果完全一致。许多应用于EEG和 ERP数据的滤波器是有限冲激响应滤波器(finiteimpulseresponsefilters)它们都是线性的。另一些滤波器被称作无限冲激响应滤波器(infinite impulse response filters;例如巴特沃斯滤波器),它们则是非线性的。然而当无限冲激响应滤波器的通带比较宽且斜率比较平缓时它们是近似线性的。因此如果你遵循我对滤波的建议你能够以任何顺序进行滤波和其他线性运算并得到完全(或几乎完全)相同的结果。该原则的一个非常简单的例子便是对数据进行两次滤波。在图7.4所示的例子中无论先使用滤波器A再使用B,或是先使用滤波器B再使用A都无关紧要。无论使用哪种顺序其结果都等价于使用一个频率响应函数为滤波器A和B的频率响应函数乘积的滤波器。类似地无论你先进行低通滤波再进行高通滤波还是先进行高通滤波再进行低通滤波都无关紧要。并且依次使用低通和高通滤波器等效于使用一个带通滤波器。迭加平均也是一种线性运算。因此无论在迭加平均之前对EEG进行滤波还是在迭加平均之后对ERP进行滤波结果都不会有区别。重参考也是一种线性运算(除了一些不常见的情形)因此你可在重参考之前或之后进行滤波。相反伪迹排除是一种非线性运算因此先对EEG滤波再进行伪迹排除其结果与先进行伪迹排除再滤波时的结果会不同。一个简单的原则是如果滤波使伪迹检测更容易则应该在伪迹排除之前进行滤波但如果滤波使伪迹检测更加困难则滤波应该在伪迹排除之后进行。例如如果数据中存在大量60Hz噪声这可能使利用绝对电压阈值法或滑动窗峰一峰振幅等方法检测眨眼时变得困难(见第6章)。在这种情况下你可以在伪迹排除之前使用一个半振幅截止频率为30Hz的低通滤波器。假若你的数据比较干净则在伪迹排除之前或之后滤波所得到的结果会相同(或几乎相同)。6.4 边缘伪迹关于操作顺序有一种重要的例外情形即当滤波器被用于很短的数据分段时(例如分段后的EEG或迭加平均后的ERP波形)可能无法正常运作。特别是滤波器可能在波形的最开始或最末端产生边缘伪迹(edge artifacts)。该类伪迹的出现是因为给定时间点上的滤波值是用其周围时间点来计算得到的;对于在波形开始和结束处的时间点其周围的一些时间点可能不存在从而可能导致滤波器无法正常工作。我们已经在介绍滑动平均滤波器时讨论了该问题但同样的原则也适用于任何滤波器(无论是在时域还是在频域)。该问题在当截止频率较低(对于低通和高通滤波器)和滤波器滚降较陡峭时尤为严重因为这时滤波器需要使用更多的时间点来计算滤波后的数据。一个截止频率为30Hz,斜率为12dB/octave的滤波器不需要使用当前时间点周围的很多个时间点来进行滤波而一个截止频率为0.1Hz且斜率为48dB/octave的滤波器则需要很多时间点。此外很难在较短的时间段中精确地估计低频信号。例如在1000毫秒的迭加平均ERP波形中只包含半个周期的0.5Hz正弦波从而难以从数据中准确地估计和去除该频率。因此你应避免使用具有较低截止频率的滤波器对短数据分段进行滤波。在EEG分段或迭加平均的ERP上进行低通滤波通常是可行的但高通滤波器则应被用于连续的EEG。一般情况下我建议使用0.1Hz的高通滤波器对连续EEG进行滤波然后在迭加平均后使用30Hz的低通滤波器。在持续时间较长的连续EEG上使用低截止频率的效果相对较好这是因为EEG波形的开始和结束仅代表整个信号的一小部分并且信号中的低频成分也将有许多周期。例如如果你对一段5分钟的连续EEG进行滤波(即在一个试次组块中记录的EEG)那么任何边缘伪迹都只是整个EEG中很小的一部分。为了格外小心我建议在试次组块开始前20秒左右时开始记录EEG并在试次组块结束后20秒左右时结束记录(并确保在这两个时段内没有太多运动以及其他伪迹)。这样任何边缘伪迹都将出现在没有任何事件编码的时段因此不会对ERP造成影响。无限冲激响应滤波器(例如巴特沃斯滤波器)不需要像有限冲激响应滤波器那样使用很多时间点来计算滤波值。因此当你对EEG分段或迭加平均的ERP数据进行滤波时使用无限冲激响应滤波器是有优势的。为此ERPLAB工具箱中主要实现的是巴特沃斯滤波器。
返回列表