日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

matlab读取心电txt数据画图,图解MIT-BIH数据库心电数据下载和Matlab读取程序

發(fā)布時(shí)間:2024/10/8 数据库 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab读取心电txt数据画图,图解MIT-BIH数据库心电数据下载和Matlab读取程序 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

開源數(shù)據(jù)網(wǎng)站PhysioNet(https://physionet.org/)提供了諸如MIMIC、MIT-BIH等豐富的生理信號數(shù)據(jù)庫,這些數(shù)據(jù)庫對于人體生理信號的分析、數(shù)據(jù)挖掘有著非常大的作用。MIT-BIH是由美國麻省理工學(xué)院提供用于研究心率失常的數(shù)據(jù)庫,是目前國際上公認(rèn)的可作為標(biāo)準(zhǔn)的心電數(shù)據(jù)庫之一,近年來MIT-BIH數(shù)據(jù)庫應(yīng)用比較廣泛。下面以MIT-BIH數(shù)據(jù)庫為例,介紹在PhysioNet下載生理數(shù)據(jù)的方法:

一、????? 手動(dòng)下載

使用提供的PhysioBank ATM (https://physionet.org/cgi-bin/atm/ATM),可以在線地顯示選定的數(shù)據(jù),并將數(shù)據(jù)保存為txt或其他的形式。在Database下拉框中選擇MIT-BIH Arrhythmia Database:

默認(rèn)的數(shù)據(jù)顯示長度為10s,用戶也可以選擇1min、1hour顯示。在Toolbox中選擇plot waveforms:

在顯示的過程中可以點(diǎn)擊下面的進(jìn)度條,選擇顯示的區(qū)間。10s的心電數(shù)據(jù)顯示如下:

在Toolbox中選擇Show samples as test可以將顯示的波形數(shù)據(jù)顯示為txt格式,最后下載該txt文檔即可。注意下面的提醒:如果顯示數(shù)據(jù)過長(大于100000個(gè)點(diǎn)),瀏覽器可能會(huì)出現(xiàn)錯(cuò)誤。

二、????? 使用Matlab讀取整個(gè)數(shù)據(jù)文件

首先利用Toolbox中將選擇的Record打包,并下載:

下載的壓縮包有四個(gè)文件,分別是.atr、.dat、.hea、.xws格式,主要用到前三個(gè)。

MIT-BIH為了節(jié)省文件長度和存儲(chǔ)空間,使用了自定義的格式。一個(gè)心電記錄由三個(gè)部分組成:

(1)頭文件[.hea],存儲(chǔ)方式碼。

(2)數(shù)據(jù)文件[.dat],按存儲(chǔ),每三個(gè)字節(jié)存儲(chǔ)兩個(gè)數(shù),一個(gè)數(shù)12bit。

(3)注釋文件[.atr],按二進(jìn)制存儲(chǔ)。

編寫心電數(shù)據(jù)讀取和分割matlab程序,一個(gè)記錄通常有30分鐘,心電采樣率為360Hz,為了后續(xù)分析方便,程序中將讀取出來的數(shù)據(jù),以1min為間隔,將數(shù)據(jù)分段保存在30個(gè)txt文檔中,具體代碼如下(Matlab2009編譯通過):

clc;

close all;

%------ SPECIFY DATA ------------------------------------------------------

PATH= 'D:\MATLAB仿真\MIT-BIH原始數(shù)據(jù)'; % path, where data are saved

HEADERFILE= '100.hea'; % header-file in text format

ATRFILE= '100.atr'; % attributes-file in binary format

DATAFILE='100.dat'; % data-file

SAMPLES2READ=660000; % number of samples to be read

% in case of more than one signal:

% 2*SAMPLES2READ samples are read

%------ LOAD HEADER DATA --------------------------------------------------

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); %字節(jié)向右移四位,即取字節(jié)的高四位

M1H= bitand(A(:,2), 15); %取字節(jié)的低四位

M( : , 1)= bitshift(M1H,8)+ A(:,1); %低四位向左移八位

M( : , 2)= bitshift(M2H,8)+ A(:,3); %高四位向左移八位

M = (M-1024)/200;

%至此兩個(gè)通道的數(shù)據(jù)保存在數(shù)組中M中

%----------------------------將數(shù)據(jù)分割成30份,一分鐘一份---------------------------------

for t=1:9

str=num2str(t);

name=['D:\MATLAB仿真\MIT-BTH txt格式\',str,'.txt'];

fid=fopen(name,'wt');

m1=21600*(t-1)+1;

m2=21600*t;

n=2;

for i=m1:1:m2

for j=1:1:n

if j==n

fprintf(fid,'%5.3f\n',M(i,j));

else

fprintf(fid,'%5.3f \t',M(i,j));

end

end

end

fclose(fid);

end

%----------分割最后一段

t=10;

str=num2str(t);

name=['D:\MATLAB仿真\MIT-BTH txt格式\',str,'.txt'];

fid=fopen(name,'wt');

m1=21600*(t-1)+1;

m2=length(M);

n=2;

for i=m1:1:m2

for j=1:1:n

if j==n

fprintf(fid,'%5.3f\n',M(i,j));

else

fprintf(fid,'%5.3f \t',M(i,j));

end

end

end

fclose(fid);

fprintf('完成\n');

總結(jié)

以上是生活随笔為你收集整理的matlab读取心电txt数据画图,图解MIT-BIH数据库心电数据下载和Matlab读取程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。