本文适合快速了解心电信号,并能够进行数据的滤波处理。


一. 心电数据预处理(消除工频干扰、基线漂移)

* 心电数据及rdmat函数见文章底部

1. 导入心电数据

## 心电图导入及读取
clc;
[TIME,M,Fs,siginfo]=rdmat('100m');# 通过读取函数ramat对心电图进行处理
Fs=1500;# 采样频率
plot(TIME,M);

2. 选取前1000个数据点进行后续处理

ecg = M(1:1000);
TIME = TIME(1:1000);
plot(TIME,ecg)

3. 去除心电信号中的50Hz频率干扰(国内通常为50Hz)——陷波滤波器

## Butterworth 陷波滤波器-去除工频干扰
# 设计滤波器
d = designfilt('bandstopiir','FilterOrder',2, ...'HalfPowerFrequency1',49,'HalfPowerFrequency2',51, ...'DesignMethod','butter','SampleRate',Fs);
#应用滤波器去除50Hz干扰
ecg_50 = filtfilt(d,ecg);

4. 去除心电信号中的低频信号(5Hz以下)——消除基线漂移

##bandpass滤波器-解决基线漂移
fmaxd_1=5;# 截止频率为5Hz
fmaxn_1=fmaxd_1/(Fs/2);
[B,A]=butter(1,fmaxn_1,'low');
ecg_low=filtfilt(B,A,ecg_50);# 通过5Hz低通滤波器的信号
ecg1=ecg_50-ecg_low; # 减去5Hz低频信号
plot(TIME,ecg1)
xlabel('t(s)');
ylabel('mv');
title('期望信号');

5. 添加随机噪声

* wgn函数:随机添加白噪声

##添加随机噪声信号
Noise_White = (0.1*wgn(1,length(TIME),2))';
plot(Noise_White)
title('噪声信号');

6. 噪声干扰后信号

##噪声干扰后信号
Mix_Signal = ecg1 + Noise_White;
plot(TIME,Mix_Signal)
xlabel('t(s)');
ylabel('mv');
title('噪声干扰后信号');

二. 滤波处理(维纳滤波)

* h为维纳滤波运行后得到的数值,运行下文中维纳滤波器设计部分可得:

一、信号处理 ——3.维纳滤波(含matlab代码)_蛮有趣的_的博客-CSDN博客

##维纳滤波
Signal_Filter = filter(h,1,Mix_Signal);# 将输入信号通过维纳滤波器
figure(1)
plot(TIME,Signal_Filter)
xlabel('t(s)');
ylabel('mv');
title('维纳滤波后信号');

三. 均方误差

* 引入噪声后信号相对原信号的统计均方误差:

mse1 = 0.0153

* 滤波后的信号相对原信号的统计均方误差:

mse2 = 0.0069

应用维纳滤波后,信号更接近于原始信号。


* 心电数据及rdmat函数

链接:https://download.csdn.net/download/qq_41958946/86841684

心电数据原始来源:MIT-BIH Arrhythmia Database(mitdb)

二、生理信号处理 ——1.心电信号(含Matlab代码及数据)相关推荐

  1. 【数字信号处理】基于DFT的滤波系列3之插值滤波(含MATLAB代码)

    四.基于DFT的(理想)滤波 例2:一个"警告" "理想DFT滤波器"虽然简单.有效,但可能会导致意想不到的问题.在博客 [数字信号处理]基于DFT的滤波系列2 ...

  2. ResNet50模型识别二维化的心电信号——以MIT-BIH心律失常数据库为例

    ResNet50模型识别二维化的心电信号--以MIT-BIH心律失常数据库为例 一维信号二维化 格拉米角场 实现步骤 马尔可夫变迁场 实现步骤 代码实现 ResNet50模型介绍 代码实现 总结 问题 ...

  3. COI实验室技能:常见的图像增强算法(含MATLAB代码)

    COI实验室技能:常见的图像增强算法(含MATLAB代码)   成像系统采集到的图片有时不一定具有很好的图像质量,往往需要进行一些图像增强的操作.本文主要整理了几种常见的图像增强算法,包括:同态滤波. ...

  4. 浣熊优化算法(COA)(含MATLAB代码)

    先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论.我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出 ...

  5. matlab去除大跳变,一种快速灰度校正算法(处理亮度不均等情况)(含MATLAB代码)...

    一种快速灰度校正算法(处理亮度不均等情况)(含MATLAB代码) 一种快速灰度校正算法(处理亮度不均等情况)(含MATLAB代码) 文章目录 前言 一.MATLAB代码 二.结果示例 总结 前言 方法 ...

  6. 回声消除AEC算法(含Matlab代码)

    基于自适应滤波器的回声消除AEC算法(含Matlab代码) 摘要 自适应滤波器 声学回波抵消 AEC算法解析 LMS算法 NLMS算法 VSNLMS算法 APLMS算法 LMS-Newton算法 PF ...

  7. 四维空间的二维线框投影可视化(附matlab代码)

    四维空间的二维线框投影可视化(附matlab代码) 1 三维空间在2维屏幕上的投影 1.1平行投影 1.2透视投影 2 四维空间在2维屏幕上的投影 2.1 四维空间与三维空间的一些区别 2.2 四维空 ...

  8. 灰狼优化(GWO)算法(含MATLAB代码)

    先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论. 文献[1]中的灰狼优化(Grey Wolf Optimizer, ...

  9. 灰狼优化(GWO)算法的8种中文变体(含MATLAB代码)

    先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论.我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出 ...

最新文章

  1. Caffe学习系列(16):各层权值参数可视化
  2. 利用python爬虫(案例6+part14)--如何爬取科研数据
  3. 魔幻艰难的2020上半年!
  4. vs 中使用32 位mysql_vs2010连接mysql数据库(含win32和x64两种平台)
  5. 初识Notification
  6. Emlog博客MetBlogm主题-博客开源主题源码
  7. 单行文本和多行文本溢出以省略号显示方法
  8. ENRIE:知识图谱与BERT相结合,为语言模型赋能助力
  9. Springboot devtools热部署Mybatis报错:Could not load [mapper/]
  10. eclipse不能自动编译生成class文件的解决办法
  11. 数学建模编程用c语言,C程序设计一百例--用c语言解决数学建模问题.doc
  12. Unity基础——List的用法
  13. CAN笔记(4) 协议基本概念
  14. 网吧无盘服务器进u盘启动,利用U盘启动在网吧免费上网
  15. 优动漫PAINT的变形文字工具教程
  16. sklearn中精确率、召回率及F1值得micro,macro及weighted算法
  17. 医疗环境电子数据交换标准HL7 v3.0的新进展
  18. 计算机毕业设计java+ssm水果商城管理系统(源码+系统+mysql数据库+Lw文档)
  19. create volume
  20. python 2 入门

热门文章

  1. Handle初解,看完你就懂了handle
  2. 解决Truffle搭建项目环境时候出现ExtendableError: Could not find suitable configuration file.
  3. LED 控制技术将日间行车灯的优势发挥到极致
  4. 生物统计学(biostatistics)学习笔记(二)
  5. 单源最短路和多源最短路
  6. form表单中onclick事件和onsubmit事件的执行顺序
  7. Inventory 物料库存 mtl_transactions_interface 开发[转]
  8. java新手工资一般多少?java程序员的薪资是多少呢?
  9. math_@多元函数求导@全微分@偏导数@复合偏导
  10. mysql 查询不等于空的数据查询