如何使用matlab中的过滤器去除ecg.wav格式的ecg信号中的噪声?

时间:2012-03-17 18:24:00

标签: matlab

如何使用matlab中的过滤器删除ecg.wav格式的ecg信号中的噪音?

任何人都有一个代码如何读取ecg.wav文件以及如何使用滤波器从该信号中去除噪声以获得纯净和准确的心电图信号。 现在我发送给你一个链接youtube.com/watch?v=ddCwIirqJcI请访问该视频,而且你会更清楚我正在谈论哪种类型的陷波过滤。我获得了他在示波器上显示的那个信号,但我不知道如何对那个有噪声的信号进行滤波,以获得他在该视频中显示的matlab中所做的纯ecg信号。 这是我们收到的嘈杂信号upload-mp3.com/files/338583_1f7te/Video0016.3gp

2 个答案:

答案 0 :(得分:1)

您可以使用

[x,fs]=wavread('ecg.wav');

...将数据输入工作区(假设它是常规音频文件),其中x是信号,fs是采样率。

在我们提供详细帮助之前,您必须更加具体地了解噪音。我在网上找到的标准心电图示例通常涉及陷波滤除电源噪声。

您可以在Maltlab中生成陷波滤波器,如此

[b,a]=butter(2,[35 75]/(fs/2), 'stop')

然后查看频率响应以查看它是否是您想要的那种

freqz(b,a,2^13,'half',fs)

enter image description here

然后继续像这样过滤你的信号

x = filter(b,a,x);

我希望这无论如何都可以帮助你开始

答案 1 :(得分:0)

您可能需要IIR (infinite impulse response)过滤器。具体来说,一个简单的答案,单极点低通滤波器可以完成这项工作;要获得更复杂的答案,请使用像巴特沃斯滤波器这样的东西。

在决定使用哪种过滤器后,您必须编写代码。