C#中的ECG数字信号处理

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

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

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

以下是各种filter的C示例 ,以帮助您了解您需要做什么。

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

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

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

这应该是一个很好的入门者(用C ​​++编写,但你可以很容易地将语法转换为C#) – http://www.codeproject.com/KB/cpp/ecg_dsp.aspx

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

如果您的ECG采样率很低,我建议您在应用滤波器之前首先使用波形整形算法在C#侧获得平滑信号。