• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

基于matlab对ECG信号进行滤波处理

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

 

由单片机采集心率数据,截取部分数据处理如下 :

前提:根据采样定理,心率信号采样频率为50hz  (大于心率的频率两倍),得带数据信号数据源“B.TXT”文件。

1. 原始数据的采集截取有效部分分析。

2.数据滤波(50Hz的工频干扰以及放大器本身的漂移),要根据频谱具体分析

3.FDA数字滤波器设计,相应系数的得到(本设计2.5HZ滤波高通滤波器(设计的不合理,只做实验测试) )

4.滤波数据的显示

PS:虽然滤波后数据还是有一点不规律,但是已经相对原始数据好看很多,也还有很多不足之处。
————————————————

clc;
clear all;

A=importdata(\'b.TXT\') ;
L=length(A);
data=A(3900:4200);
figure
% subplot(311)
% plot(A(3900:4200));grid on;
subplot(312)
plot(data);grid on;
title(\'数据库数据\')

FS=50;T=1/FS; %50HZ
L=length(data);
t=(0:L-1)*T;

NFFT = 2^nextpow2(L)
Y = fft(A,NFFT)/L;
f = FS/2*linspace(0,1,NFFT/2+1);
subplot(313);
plot(f,2*abs(Y(1:NFFT/2+1)));grid on;


IIR_B = [
0.7294407226391, -2.188322167917, 2.188322167917, -0.7294407226391];

IIR_A= [
1, -2.374094743709, 1.929355669091, -0.5320753683121
];
w01=0;
w02=0;
w03=0;
w04=0;
y0=zeros(1,300);
for i=1:300
w01=data(i)-IIR_A(2)*w02-IIR_A(3)*w03-IIR_A(4)*w04;
y0(i)=IIR_B(1)*w01+IIR_B(2)*w02+IIR_B(3)*w03+IIR_B(4)*w04;
w04=w03;
w03=w02;
w02=w01;
end
subplot(311)
plot(y0);

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap