资源简介
本文是用小波变换的方法,实现心电信号特征点算法的研究,算法比较复杂,
代码片段和文件信息
%以每5s为一段进行检测,阈值的确定采用前一段和本段的共同确定方法
%对ceshi.m的改进在于假阴排除采取1.66T的间隔
clc; clear all;
tic
%------ SPECIFY DATA ------------------------------------------------------
PATH=‘F:\医学信号\医学\心率失常数据库‘; % path where data are saved
HEADERFILE=‘105.txt‘; % header-file in text format
ATRFILE=‘105.atr‘; % attributes-file in binary format
DATAFILE=‘105.dat‘; % data-file
SAMPLES2READ=649800; % number of samples to be read
% in case of more than one signal:
% 2*SAMPLES2READ samples are read
%------ LOAD HEADER DATA --------------------------------------------------
fprintf(1‘\\n$> WORKING ON %s ...\n‘ HEADERFILE);
signalh= fullfile(PATH HEADERFILE);
fid1=fopen(signalh‘r‘);
z= fgetl(fid1);
A= sscanf(z ‘%*s %d %d %d‘[13]);
nosig= A(1); % number of signals
sfreq=A(2); % sample rate of data
clear A;
for k=1:nosig
z= fgetl(fid1);
A= sscanf(z ‘%*s %d %d %d %d %d‘[15]);
dformat(k)= A(1); % format; here only 212 is allowed
gain(k)= A(2); % number of integers per mV
bitres(k)= A(3); % bitresolution
zerovalue(k)= A(4); % integer value of ECG zero point
firstvalue(k)= A(5); % first integer value of signal (to test for errors)
end;
fclose(fid1);
clear A;
%------ LOAD BINARY DATA --------------------------------------------------
if dformat~= [212212] error(‘this script does not apply binary formats different to 212.‘); end;
signald= fullfile(PATH DATAFILE); % data in format 212
fid2=fopen(signald‘r‘);
A= fread(fid2 [3 SAMPLES2READ] ‘uint8‘)‘; % matrix with 3 rows each 8 bits long = 2*12bit
fclose(fid2);
M2H= bitshift(A(:2) -4); %字节向右移四位,即取字节的高四位
M1H= bitand(A(:2) 15); %取字节的低四位
PRL=bitshift(bitand(A(:2)8)9); % sign-bit 取出字节低四位中最高位,向右移九位
PRR=bitshift(bitand(A(:2)128)5); % sign-bit 取出字节高四位中最高位,向右移五位
M( : 1)= bitshift(M1H8)+ A(:1)-PRL;
M( : 2)= bitshift(M2H8)+ A(:3)-PRR;
if M(1:) ~= firstvalue error(‘inconsistency in the first bit values‘); end;
switch nosig
case 2
M( : 1)= (M( : 1)- zerovalue(1))/gain(1);
M( : 2)= (M( : 2)- zerovalue(2))/gain(2);
TIME=(0:(SAMPLES2READ-1))/sfreq;
case 1
M( : 1)= (M( : 1)- zerovalue(1));
M( : 2)= (M( : 2)- zerovalue(1));
M=M‘;
M(1)=[];
sM=size(M);
sM=sM(2)+1;
M(sM)=0;
M=M‘;
M=M/gain(1);
TIME=(0:2*(SAMPLES2READ)-1)/sfreq;
otherwise % this case did not appear up to now!
% here M has to be sorted!!!
disp(‘Sorting algorithm for more than 2 signals not programmed yet!‘);
end;
clear A M1H M2H PRR PRL;
fprintf(1‘\\n$> LOADING DATA FINISHED \n‘);
%------ LOAD ATTRIBUTES DATA ----------------------------------------------
atrd= fullfile(PATH ATRFILE); % attribute file with annotation data
fid3=fopen(atrd‘r‘);
A= fread(fid3 [2 inf] ‘uint8‘)‘;
fclose(fid3);
ATRTIME=
- 上一篇:BCH和RS码的编译码程序
- 下一篇:弹性板受激振动响应MATLAB程序
相关资源
- OFDM同步算法中的最大似然函数法程序
- 在MATLAB中采用RLS算法实现FIR自适应滤
- 进化策略算法公交车调度MATLAB
- 压缩感知MP重构算法的matlab实现
- RSSI定位算法MATLAB代码
- 增量式PID算法PDF+MATLAB源程序
- 变速积分PID控制算法PDF+MATLAB源程序
- 用MATLAB编写的贝叶斯算法程序.m
- Floyd弗洛伊德算法matlab仿真代码。
- 单目视觉的位姿估算算法
- 盲源分离JADE算法
- 重叠相加和重叠保留算法的MATLAB实现
- matlab应用于心电信号检测
- MATLAB机器人圆弧轨迹插补算法
- Kruskal算法 matlab实现
- 数字图像处理图像分割matlab算法代码
- 英国设菲尔德大学遗传算法工具箱
- 递归b样条逼近算法确定(RBA)
- 水系提取算法D8的matlab实现
- QPSK调制解调 科斯塔斯环载波同步 加
- 机载雷达STAP降维3DT算法
- 模拟退火解决tsp的Matlab程序+设计报告
- LMS算法matlab程序
- 曲率尺度空间算法检测角点matlab
- 卡尔曼滤波算法的电池SOC估计仿真模
- matlab实现google pagerank算法
- 虚拟力算法源代码
- 量子优化算法源码 史上最强合集 m
- 7种复杂网络MATLAB经典算法
- 采用PCNN算法进行边缘检测
评论
共有 条评论