人体睡眠分期-预处理(Ⅰ 数据标签)

本文档介绍了如何处理physionet的Sleep-EDF睡眠数据库,通过整理Hypnogram文件并使用MATLAB更新30秒间隔的睡眠阶段标签。步骤包括文件内容整理、标签转换及使用`eeg_edf_datatransfer`函数进行细化。实验涉及EEG、EOG、EMG和体温数据,以及睡眠分期的标准化。
摘要由CSDN通过智能技术生成

目录

1.数据来源

2.更新标签

1.以记事本方式打开Hypnogram文件

2.整理文件内容

3.在matlab中更新标签

附录:标签更新函数


1.数据来源

本实验数据来自physionet中的Sleep-EDF睡眠数据库,包含197个整夜多导睡眠图(PSG)数据。地址如下:

Sleep-EDF Database Expanded v1.0.0

数据库截图:

其中PSG为受试者整夜多导睡眠图记录,包括Fpz-cz和Pz-oz两个通道的EEG、EOG、EMG和体温数据;Hypnogram为专家对受试者睡眠分期的结果

2.更新标签

原数据标签是按照阶段变化进行分期,不便于后续处理,因此对该数据标签按30s时间间隔进行更新。

1.以记事本方式打开Hypnogram文件

2.整理文件内容

将‘’替换为‘ ’,‘Sleep stage W’替换为‘0’,‘Sleep stage 1’替换为‘1’,‘Sleep stage 2’替换为‘2’;‘Sleep stage 3’替换为‘3’,‘Sleep stage 4’替换为‘4’,‘Sleep stage R’替换为‘5’;‘Sleep stage ?’替换为‘ ’,并删除该阶段前两个数据。

 

整理完后,将数据另存为.txt格式文件。

3.在matlab中更新标签

>> label=importdata('C:\Users\Administrator\Desktop\脑电信号处理\预处理\贴标签\Hypnogram(.txt)\SC4001EC-process.txt');

>> label_new=eeg_edf_datatransfer(label);

>> save('C:\Users\Administrator\Desktop\脑电信号处理\预处理\贴标签\label(.mat)\SC4001EC_label.mat','label_new');

附录:标签更新函数

% 将Sleep-EDF中的Hypnogram标签按每30s为间隔时间进行标签细化
% Hypnogram格式为当前时刻时间(s),该时期持续长度(s),该时期专家分类结果(0~5)
function eeg_stage = eeg_edf_datatransfer( eeg_data )

clc = length(eeg_data)/3-1;                            % matlab索引从0开始

eeg_duration(1:clc) = 0;                               % 不同时期持续时长
eeg_annotation_data(1:clc) = 0;                        % 不同时期标签数据

% 处理原标签中每个时期 
for i = 0:1:clc                                      
    eeg_duration(i+1) = eeg_data(2 + 3*i);             % 第i个时期持续时长,为2+3*i(s)
    eeg_annotation_data(i+1) = eeg_data(3 + 3*i);      % 第i个时期标签,为3+3*i(s)
end

eeg_duration_div = eeg_duration ./ 30;                 % 将每个时期按30s一段划分

eeg_annotation_data_len = length(eeg_annotation_data); % 原标签数

eeg_stage_i = 0;                                       % 新标签 

%为新时期添加标签
for eeg_stage_j = 1:1:eeg_annotation_data_len
    eeg_stage(1,eeg_stage_i + 1:eeg_duration_div(eeg_stage_j) + eeg_stage_i) = eeg_annotation_data(eeg_stage_j); 
    eeg_stage_i = eeg_stage_i + eeg_duration_div(eeg_stage_j);
end

#以上代码来自研19黄永庆师兄

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值