心电图ECG常用滤波器之陷波器
1.介绍
什么是陷波器?
其实就是一直特殊的带通滤波器,只不过一般它的频带极窄,可以理解为就是滤除某种特定频率的滤波器。
为什么心电图ECG需要陷波器?
由于我们所处的环境,到处都有50/60Hz的交流电,所以采集的人体心电信号常常伴有50/60Hz频率的信号干扰,也就是常说的工频干扰,常规的低通滤波器很难完全把干扰滤除,这个需要设定一个针对特定频率50/60Hz有很强的滤除作用的滤波器。
2.滤波器实现
这里我们直接使用IIR滤波,来设计陷波器,使用的是直接型 II结构。
使用matlab的fdatool工具设计滤波器参数(这里只以50Hz为例,其它频率同理),经过反复测试,最终设计参数如下
接下来是滤波器的输入/输出函数模型,熟悉的话,可以直接用IIR滤波直接型 II结构的数学模型,这里我们使用matlab推导,导出刚刚设计的滤波器的Realize mode,如下:
推导如下:(假设输入为x,系统输出为y)
st0 = x - a(2)*st1 - a(3)*st2;
y = st0*b(1) + st1*b(2)+st2*b(3);
st2 = st1;
st1 = st0;
其中a,b参数就是刚才设计的滤波器参数,滤波器的参数和数学模型都有了,下一章节我们将对滤波器的性能进行验证。
3.算法验证
我们这里直接使用matlab验证,导出上一章节设计的滤波器,使用一段真实的心电图,人为加上工频干扰,输入滤波器,看滤波器输出能否把干扰滤除。
导入心电图:
%0.导入原始数据
orig_x = load('D:\Documents\MATLAB\ecg_test.txt');
figure(1);
subplot(4,1,1);
plot(orig_x);
title('原始信号');
生成50Hz干扰信号:
%1.生成噪声信号
fs = 50; %频率
N = length(orig_x); %采样点数
dt = 1/250; %采样间隔
n = dt:dt:N*dt;
noise = 120*sin(2*pi*fs*n);
subplot(4,1,2);
plot(noise);
title('噪声信号');
心电图信号叠加干扰信号:
%2.信号叠加
orig_x_add_noise = orig_x + noise;
subplot(4,1,3);
plot(orig_x_add_noise);
title('叠加后的信号');
最后一步,滤波:
%3.低通滤波处理
ld = notch_50Hz_boke;
lp_output = filter(ld,orig_x_add_noise);
subplot(4,1,4);
plot(lp_output);
title('陷波滤波后的信号');
可以看到,原本心电信号是很干净的,叠加了50Hz的干扰后,几乎把信号全部淹没了,但经过陷波器滤波后,信号又恢复了原样,说明滤波效果良好。
4.评价
本章节,我们借助matlab设计了一个陷波器,并推导了滤波器的输入/输出数学模型,最后使用一个实例验证了滤波器的性能。本章节是使用IIR滤波来设计陷波器,其实目前这个陷波器滤波效果还不是最好的,目前可以使用另一种更高效的方式实现陷波器,就是使用自适应滤波器来实现,具体细节在其它章节会详细讲解。
心电图ECG常用滤波器之陷波器相关推荐
- 50hz 60hz 级联 陷波器,心电信号50Hz陷波器的FPGA实现
收稿日期: 2009 - 03 - 23 心电信号 50 Hz 陷波器的 FPGA 实现 林 霖 , 张志德 (南方医科大学 生物医学工程学院 , 广东广州 510515) [中图分类号]TH772 ...
- c语言实现陷波器算法,50Hz数字陷波器的设计.doc
50Hz数字陷波器的设计.doc 四川理工学院毕业设计(论文) 50Hz数字陷波器的设计 学 生:孙全成 学 号:04021030312 专 业:通信工程 班 级:2004.3 指导教师:徐永俊 四川 ...
- 使用数字陷波器滤除工频信号
在实际测量时经常会受到工频信号(交流50Hz)的干扰,有时干扰还很大,有用信号完全被淹没了.可以应用数字陷波器来消除工频信号的干扰. 数字陷波器函数如下: 函数:iirnotch 功能:数字陷波器设计 ...
- 滤波器基础03——Sallen-Key滤波器、多反馈滤波器与Bainter陷波器
滤波器基础系列博客,传送门: 滤波器基础01--滤波器的种类与特性 滤波器基础02--滤波器的传递函数与性能参数 滤波器基础03--Sallen-Key滤波器.多反馈滤波器与Bainter陷波器 滤波 ...
- 基础补充——什么是陷波器?作用是什么?
在伺服控制系统中,常因为机械安装等因素导致系统出现振动,甚至有时候在电气控制频率与机械谐振频率相等时,会出现发散性震荡,损坏设备,造成严重的经济损失.目前常用的解决措施是在系统中加入一个与谐振频率对应 ...
- 陷波器介绍_50Hz工频信号陷波器设计
文章目录 学习目标: 基本概念: 基本原理: 参数的具体计算及选择: 具体计算 # 陷波器的意义 学习目标: 了解陷波器的基本概念 掌握50HZ工频陷波器的基本电路图 基本概念: 提示:这里可以添加要 ...
- matlab 陷波器,陷波滤波器—matlab实现
个人在处理工程信号的时候,会遇到电信号50Hz及其倍频干扰特别强的情况,如何直接滤掉这些特定信号,而不影响周边有用信号呢,下面,就给大家推荐一个能精确剔除掉指定频率的滤波器--陷波滤波器. input ...
- matlab 陷波器,50Hz陷波器(Matlab程序)
clf;clear; %设置初值 f0=50; Ts=0.001; fs=1/Ts; NLen=512; n=0:NLen-1; %陷波器的设计 apha=-2*cos(2*pi*f0*Ts); be ...
- MATLAB设计指定频率的陷波器
下面来介绍一下如何在MATLAB中编程实现陷波器,具体如下: 1.首先在MATLAB的主界面编辑器中写入下列代码: clf;clear; %设置初值 f0=70; %频率为70HZ Ts=0.001; ...
最新文章
- 数学分析高等代数考研试题荟萃[更新至2017年10月1日]
- 每个程序员都必须知道的8种数据结构
- python与excel的应用-python怎样在excel中应用?
- ai描边工具怎么打开_ai切片工具怎么用?ai切片工具使用教程
- 腾讯加速推进防沉迷新规:新增21款产品 微信/QQ小游戏接入
- 运行eclipse java virtual machine launcher 什么错误
- pdf电脑地址转网络地址.txt
- Camtasia混音教程
- java过滤器验证app用户token_SpringCloud笔记之Zuul过滤器PreFilter实现token校验(简单样例)...
- 科创板已开板 区块链离科创板还远吗?
- IDEA2019版下载和安装
- 阿里云商标自助注册申请快速入门(详细步骤和教程)
- 基于单片机的智能家居环境监控系统的设计
- jpg、png、jpeg区别与压缩等知识总结 —— 性能优化篇
- 51单片机ADDA数模转换
- C.就来谈谈深搜与广搜
- 关联分析python代码
- util.promisify
- 浏览器+js实现超强的搜索访问功能
- C++“读取“大量数据时--快读
热门文章
- Unity3D游戏开发最佳实践技巧
- 视频教程-用project做项目计划及总结报表-研发管理
- Day23(CopyFile,InputStreamReader,OutputStreamWruiter,Buffered,BufferedInputStream,BufferedOutputStr)
- HTC 8X电信版连接WIN7电脑的真正解决办法
- c语言时间函数状态,C语言的时间函数
- 病毒也遵循二八法则?超级传播者背后的科学道理
- 《k3s 源码解析4 ---- k3s重要数据结构》
- 2021年最新最全面的Java视频教程!!!
- 3Com发展史(摘录)
- 利用vscode调试vue代码