主要内容

离群值去除技术与流心电图信号

这个例子探讨了不同离群值去除过滤器和使用心电图(ECG)信号作为输入。

介绍

有许多不同的离群值去除技术,因为刚性的定义局外人是不存在的。

这三个技术探索在这个例子中是:

心电图信号来源

这个示例中使用的ECG信号取自MIT-BIH心律失常数据库。在360赫兹信号采样。信号转移和比例将从原始的12位ADC值的实际值。

在ECG信号的更多信息,请参见示例实时心电图QRS检测

设置

首先,创建一个使用dsp.MatFileReader从心电图信号流。接下来,创建一个可视化的原始和过滤信号范围。

Fs = 360;frameSize = 500;文件名=“ecgsig.mat”;winLen = 13;%的窗口长度的过滤器。fileReader = dsp.MatFileReader (“文件名”文件名,“VariableName”,“ecgsig”,“SamplesPerFrame”,frameSize);范围= timescope (“SampleRate”Fs,“TimeSpanSource”,“属性”,“时间间隔”2,“YLimits”(-1.5 - 1.5),“LayoutDimensions”1 [2]);范围。ActiveDisplay = 1;范围。Title =原始信号的;范围。ActiveDisplay = 2;范围。Title =“过滤信号”;

离群值删除移动平均滤波器的性能

移动平均滤波器计算指定窗口的滑动平均长度。这是一个相对简单的计算相比其他两个过滤器。然而,这将平稳信号和离群值。这导致平滑的ECG信号的峰值大约三分之一的原始大小。

movAvg = dsp.MovingAverage (winLen);~结束(fileReader) x = fileReader ();y = movAvg (x);范围(x, y);结束%清理释放(范围);重置(fileReader);重置(范围);

离群值去除中值滤波器的性能

中值滤波器有时候是一个更好的选择,因为它比移动平均滤波器不太敏感的异常值。然而,我们可以看到在下面的范围中,它可能导致“步骤”出现在极端在当地的信号值不会变。这意味着滤波器的窗口长度必须仔细考虑。

medFilt = dsp.MedianFilter (winLen);~结束(fileReader) x = fileReader ();y = medFilt (x);范围(x, y);结束%清理释放(范围);重置(fileReader);重置(范围);

离群值去除Hampel滤波器的性能

Hampel过滤器有一个额外的阈值参数,可以设置,下面是设置为1,这意味着任何样品超过一个标准偏差从当地的中位数将归类为局外人。阈值和窗口长度可以改变删除离群值从输入信号没有扭曲原始信号。

用力推= 1;hampFilt = dsp.HampelFilter (winLen、刺);~结束(fileReader) x = fileReader ();y = hampFilt (x);范围(x, y);结束%清理释放(范围);重置(fileReader);重置(范围);

结论

以上的三个过滤器可用于离群值删除。的噪声分布异常值和窗口长度影响滤波器的性能。这必须考虑当选择一个过滤器的离群值删除一个特定的应用程序。

引用

Goldberger AL、Amaral局域网、玻璃L,豪斯多夫JM,伊万诺夫PCh,马克RG Mietus我,穆迪GB,彭ck,斯坦利。“PhysioBank PhysioToolkit和生理网:组件的一个新的研究资源对于复杂的生理信号。”Circulation 101(23):e215-e220, 2000.http://circ.ahajournals.org/cgi/content/full/101/23/e215

穆迪GB,马克RG。“MIT-BIH心律失常数据库的影响”。IEEE Eng in Med and Biol 20(3):45-50 (May-June 2001).