• 大小: 5KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-12-10
  • 语言: Matlab
  • 标签: matlab  心电信号  

资源简介

利用matlab对心电信号进行分析,具体为:读取,插值,滤波,时域波形和频域波形分析

资源截图

代码片段和文件信息

%4.1.1 提取txt格式心电信号
fid=fopen(‘122.txt‘); 
C=textscan(fid‘%8c %f %*f‘‘headerlines‘2); 
fclose(fid); 
a=C{1}; 
y=C{2}; 
 k=length(a) 
for i=1:k 
c(i)=strread(a(i:)‘%*s %f‘‘delimiter‘‘:‘); 
end 
x=c‘; 
plot(xy) 

%4.1.2对原始信号进行线性插值
t=0:0.001:2.5; 
F=interp1(xyt); 
F=F‘; 
t=t‘; 
plot(tF)

%4.1.3把数据读到txt中 fid = fopen(‘t.txt‘‘wt‘); 
fid = fopen(‘t.txt‘‘wt‘);
fprintf(fid‘%g\n‘t);        
fclose(fid); 
fid = fopen(‘F.txt‘‘wt‘); 
fprintf(fid‘%g\n‘F);        
fclose(fid); 
%4.1.4插值前后波形比较 
subplot(221) 
plot(xy) 
title(‘初始信号时域波形‘) 
axis([0 2.5 -2 1]) 
subplot(222) 
fs=1000; 
N=length(y) 
n=1:N; 
f1=n*fs/N; 
Y1=fft(y); 
plot(f1abs(Y1)) 
title(‘初始信号频谱‘) 
axis([0 1000 0 200]) 
subplot(223) 
plot(tF) 
title(‘差值后信号时域波形‘) 
axis([0 2.5 -2 1]) 
M=length(F); 
m=1:M; 
f2=m*fs/M; 
Y2=fft(F); 
subplot(224) 
plot(f2abs(Y2)) 
title(‘插值后信号频谱‘) 
axis([0 1000 0 200]) 
%4.1.5模拟低通滤波器 
wp=60*2*pi;ws=99*2*pi;Rp=1;As=40; 
[Nwc]=buttord(wpwsRpAs‘s‘) 
[BA]=butter(Nwc‘s‘) 
k=0:511;fk=0:1000/512:1000;wk=2*pi*fk; 
Hk=freqs(BAwk); 
plot(fk20*log10(abs(Hk))); 
%4.1.6模拟高通滤波器 
wp=0.7*2*pi;ws=0.25*2*pi;Rp=0.1;As=40; 
[Nwc]=buttord(wpwsRpAs‘s‘) 
[B0A0]=butter(Nwc‘s‘); 
wph=2*pi*0.25;hk=freqs(B0A0wph); 
[BHAH]=lp2hp(BAwph); 
[hw]=freqs(BHAH); 
plot(w20*log10(abs(h))); 
axis([01-805]); 
%4.1.7滤波前后图形对比 
t=0:0.001:9.997; 
F=interp1(xyt); 
F=F‘; 
t=t‘; 
figure(1) 
subplot(311); 
plot(1000*tF); 
wp=0.7*2*pi;ws=0.25*2*pi;Rp=0.1;As=40;T=1; 
[Nwc]=buttord(wpwsRpAs‘s‘) 
[BA]=butter(Nwc‘s‘); 
[ba]=imp_invr(BAT) 
[dbmagphaw]=freqz_m(ba); 
y1=filter(baF); 
subplot(312);plot(y1); 
title(‘高通滤波后‘) 
wp1=2*pi*60;ws1=2*pi*99;Rp1=0.1;As1=40;T1=1000; 
OmegaP1=wp1/T1;OmegaS1=ws1/T1; 
[cs1ds1]=afd_butt(OmegaP1OmegaS1Rp1As1); 
[b1a1]=imp_invr(cs1ds1T) 
[db1mag1pha1w1]=freqz_m(b1a1); 
y2=filter(b1a1y1); 
subplot(313);plot(y2); 
title(‘低通滤波后‘) 
M=length(F); 
m=1:M; 
fs=1000; 
f2=m*fs/M; 
F1=fft(F); 
Y1=fft(y1); 
Y2=fft(y2) 
figure(2) 
subplot(311) 
plot(f2abs(F1)) 
axis([010000200]) 
title(‘原始信号频谱_{9.997}‘) 
subplot(312) 
plot(f2abs(Y1)) 
axis([010000200]) 
title(‘高通滤波后

评论

共有 条评论