首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用matlab中的滤波器去除ecg.wav格式的心电信号中的噪声?

如何利用matlab中的滤波器去除ecg.wav格式的心电信号中的噪声?
EN

Stack Overflow用户
提问于 2012-03-18 02:24:00
回答 2查看 4.5K关注 0票数 0

如何利用matlab中的滤波器去除ecg.wav格式的心电信号中的噪声?

有没有人知道如何读取ecg.wav文件,以及如何使用滤波器去除噪声,从而获得纯净准确的心电信号。现在我给你发送一个链接youtube.com/watch?v=ddCwIirqJcI请访问那个视频,然后你就会明白我说的是哪种类型的陷波过滤。我获取了他在示波器上显示的信号,但我不知道如何对噪声信号进行滤波,以获得纯粹的ecg信号,就像他在视频中用matlab所做的那样。这是我们获取的upload-mp3.com/files/338583_1f7te/Video0016.3gp的噪声信号

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-18 02:30:03

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

你必须在决定你想要什么样的过滤器之后才能编写代码。

票数 0
EN

Stack Overflow用户

发布于 2012-03-18 02:30:43

您可以使用

代码语言:javascript
复制
[x,fs]=wavread('ecg.wav');

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

在我们提供详细的帮助之前,您必须更详细地了解噪声是什么。我在网上找到的标准ECG示例通常包括滤除电源噪声的陷波。

您可以像这样在Maltlab中生成一个陷波滤波器

代码语言:javascript
复制
[b,a]=butter(2,[35 75]/(fs/2), 'stop')

然后查看频率响应,看看它是否是您想要的东西,如下所示

代码语言:javascript
复制
freqz(b,a,2^13,'half',fs)

然后像这样过滤你的信号

代码语言:javascript
复制
x = filter(b,a,x);

无论如何,我希望这能帮助你开始。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9752591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档