1.介绍

什么是陷波器?

其实就是一直特殊的带通滤波器,只不过一般它的频带极窄,可以理解为就是滤除某种特定频率的滤波器。

为什么心电图ECG需要陷波器?

由于我们所处的环境,到处都有50/60Hz的交流电,所以采集的人体心电信号常常伴有50/60Hz频率的信号干扰,也就是常说的工频干扰,常规的低通滤波器很难完全把干扰滤除,这个需要设定一个针对特定频率50/60Hz有很强的滤除作用的滤波器。

2.滤波器实现

这里我们直接使用IIR滤波,来设计陷波器,使用的是直接型 II结构。

使用matlab的fdatool工具设计滤波器参数(这里只以50Hz为例,其它频率同理),经过反复测试,最终设计参数如下

图1 50Hz陷波器

接下来是滤波器的输入/输出函数模型,熟悉的话,可以直接用IIR滤波直接型 II结构的数学模型,这里我们使用matlab推导,导出刚刚设计的滤波器的Realize mode,如下:

图2 陷波器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的干扰后,几乎把信号全部淹没了,但经过陷波器滤波后,信号又恢复了原样,说明滤波效果良好。

图3 滤波形性能验证

4.评价

本章节,我们借助matlab设计了一个陷波器,并推导了滤波器的输入/输出数学模型,最后使用一个实例验证了滤波器的性能。本章节是使用IIR滤波来设计陷波器,其实目前这个陷波器滤波效果还不是最好的,目前可以使用另一种更高效的方式实现陷波器,就是使用自适应滤波器来实现,具体细节在其它章节会详细讲解。

心电图ECG常用滤波器之陷波器相关推荐

  1. 50hz 60hz 级联 陷波器,心电信号50Hz陷波器的FPGA实现

    收稿日期: 2009 - 03 - 23 心电信号 50 Hz 陷波器的 FPGA 实现 林 霖 , 张志德 (南方医科大学 生物医学工程学院 , 广东广州 510515) [中图分类号]TH772 ...

  2. c语言实现陷波器算法,50Hz数字陷波器的设计.doc

    50Hz数字陷波器的设计.doc 四川理工学院毕业设计(论文) 50Hz数字陷波器的设计 学 生:孙全成 学 号:04021030312 专 业:通信工程 班 级:2004.3 指导教师:徐永俊 四川 ...

  3. 使用数字陷波器滤除工频信号

    在实际测量时经常会受到工频信号(交流50Hz)的干扰,有时干扰还很大,有用信号完全被淹没了.可以应用数字陷波器来消除工频信号的干扰. 数字陷波器函数如下: 函数:iirnotch 功能:数字陷波器设计 ...

  4. 滤波器基础03——Sallen-Key滤波器、多反馈滤波器与Bainter陷波器

    滤波器基础系列博客,传送门: 滤波器基础01--滤波器的种类与特性 滤波器基础02--滤波器的传递函数与性能参数 滤波器基础03--Sallen-Key滤波器.多反馈滤波器与Bainter陷波器 滤波 ...

  5. 基础补充——什么是陷波器?作用是什么?

    在伺服控制系统中,常因为机械安装等因素导致系统出现振动,甚至有时候在电气控制频率与机械谐振频率相等时,会出现发散性震荡,损坏设备,造成严重的经济损失.目前常用的解决措施是在系统中加入一个与谐振频率对应 ...

  6. 陷波器介绍_50Hz工频信号陷波器设计

    文章目录 学习目标: 基本概念: 基本原理: 参数的具体计算及选择: 具体计算 # 陷波器的意义 学习目标: 了解陷波器的基本概念 掌握50HZ工频陷波器的基本电路图 基本概念: 提示:这里可以添加要 ...

  7. matlab 陷波器,陷波滤波器—matlab实现

    个人在处理工程信号的时候,会遇到电信号50Hz及其倍频干扰特别强的情况,如何直接滤掉这些特定信号,而不影响周边有用信号呢,下面,就给大家推荐一个能精确剔除掉指定频率的滤波器--陷波滤波器. input ...

  8. 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 ...

  9. MATLAB设计指定频率的陷波器

    下面来介绍一下如何在MATLAB中编程实现陷波器,具体如下: 1.首先在MATLAB的主界面编辑器中写入下列代码: clf;clear; %设置初值 f0=70; %频率为70HZ Ts=0.001; ...

最新文章

  1. 数学分析高等代数考研试题荟萃[更新至2017年10月1日]
  2. 每个程序员都必须知道的8种数据结构
  3. python与excel的应用-python怎样在excel中应用?
  4. ai描边工具怎么打开_ai切片工具怎么用?ai切片工具使用教程
  5. 腾讯加速推进防沉迷新规:新增21款产品 微信/QQ小游戏接入
  6. 运行eclipse java virtual machine launcher 什么错误
  7. pdf电脑地址转网络地址.txt
  8. Camtasia混音教程
  9. java过滤器验证app用户token_SpringCloud笔记之Zuul过滤器PreFilter实现token校验(简单样例)...
  10. 科创板已开板 区块链离科创板还远吗?
  11. IDEA2019版下载和安装
  12. 阿里云商标自助注册申请快速入门(详细步骤和教程)
  13. 基于单片机的智能家居环境监控系统的设计
  14. jpg、png、jpeg区别与压缩等知识总结 —— 性能优化篇
  15. 51单片机ADDA数模转换
  16. C.就来谈谈深搜与广搜
  17. 关联分析python代码
  18. util.promisify
  19. 浏览器+js实现超强的搜索访问功能
  20. C++“读取“大量数据时--快读

热门文章

  1. Unity3D游戏开发最佳实践技巧
  2. 视频教程-用project做项目计划及总结报表-研发管理
  3. Day23(CopyFile,InputStreamReader,OutputStreamWruiter,Buffered,BufferedInputStream,BufferedOutputStr)
  4. HTC 8X电信版连接WIN7电脑的真正解决办法
  5. c语言时间函数状态,C语言的时间函数
  6. 病毒也遵循二八法则?超级传播者背后的科学道理
  7. 《k3s 源码解析4 ---- k3s重要数据结构》
  8. 2021年最新最全面的Java视频教程!!!
  9. 3Com发展史(摘录)
  10. 利用vscode调试vue代码