C#中的ECG数字信号处理

时间:2011-03-22 03:46:04

标签: c# .net

我正在寻找用于数字滤波(低通,高通,陷波)的C#.NET库来实时过滤ECG波形。有什么建议吗?

3 个答案:

答案 0 :(得分:3)

如果这是非商业用途,我听说过有关Signal Lab library的好消息。它是免费的非商业用途,570美元用于商业用途。如果您只需要低通,高通和带通滤波器,那就有点矫枉过正了。但它确实带有可视化数据的控件,如果你还没有。

如果您只需要过滤器,您可能只想为3个过滤器编写自己的代码。您可以在维基百科页面查看Low-pass filterHigh-pass filter的psudocode示例,我没有快速找到noch过滤器的代码示例。

Here are some C examples各种过滤器,以帮助您了解您需要做什么。

答案 1 :(得分:0)

如果您的数据是以离散块的形式到达的,我会使用Reactive Extensions。这允许输入控制接下来发生的事情(对数据做出反应)而不是使用“拉”操作。然后,您可以通过传递过滤器对此数据做出反应,然后通过显示或执行其他计算来对该数据做出反应。

如果你只需要陷波,高和低滤波器,这些都很容易写。当每个数据块到达时,您可以决定是否将其传递到下一步(或者是否先修改数据)。我想你可以使用Rx在不到20行(可能少于10行)中编写整段代码。这将为这个用例带来一些非常优雅的代码。

答案 2 :(得分:0)

据我所知,你可以写自己的,因为我做了。

这应该是一个很好的启动(用C ++编码,但你可以轻松地将语法转换为C#) - http://www.codeproject.com/KB/cpp/ecg_dsp.aspx

第三方库在滤波器方程参数上不会非常灵活。因为您只知道信号的特征(幅度,频带和采样等)

如果您的心电采样率很低,我建议首先使用波形整形算法在C#侧获得平滑信号,如果您的心电图采样率较低。