如何利用matlab中的滤波器去除ecg.wav格式的心电信号中的噪声?
有没有人知道如何读取ecg.wav文件,以及如何使用滤波器去除噪声,从而获得纯净准确的心电信号。现在我给你发送一个链接youtube.com/watch?v=ddCwIirqJcI请访问那个视频,然后你就会明白我说的是哪种类型的陷波过滤。我获取了他在示波器上显示的信号,但我不知道如何对噪声信号进行滤波,以获得纯粹的ecg信号,就像他在视频中用matlab所做的那样。这是我们获取的upload-mp3.com/files/338583_1f7te/Video0016.3gp的噪声信号
发布于 2012-03-18 02:30:03
您可能需要一个IIR (infinite impulse response)过滤器。具体来说,对于简单的答案,单极低通滤波器可能会完成这项工作;如果要获得更复杂的答案,请使用巴特沃斯滤波器之类的东西。
你必须在决定你想要什么样的过滤器之后才能编写代码。
发布于 2012-03-18 02:30:43
您可以使用
[x,fs]=wavread('ecg.wav');...to将数据放入工作区(假设它是一个常规的音频文件),其中x是信号,fs是采样率。
在我们提供详细的帮助之前,您必须更详细地了解噪声是什么。我在网上找到的标准ECG示例通常包括滤除电源噪声的陷波。
您可以像这样在Maltlab中生成一个陷波滤波器
[b,a]=butter(2,[35 75]/(fs/2), 'stop')然后查看频率响应,看看它是否是您想要的东西,如下所示
freqz(b,a,2^13,'half',fs)

然后像这样过滤你的信号
x = filter(b,a,x);无论如何,我希望这能帮助你开始。
https://stackoverflow.com/questions/9752591
复制相似问题