基於matlab對ECG信號進行濾波處理


 

 

由單片機采集心率數據,截取部分數據處理如下 :

前提:根據采樣定理,心率信號采樣頻率為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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM