【复现文献】 Automatic Analysis of Single-Channel Sleep EEG: Validation in Healthy Individuals

一、预处理

1、读取数据

数据来源:https://www.physionet.org/content/sleep-edf/1.0.0/

读取方法:用读edf文件的方法来读取文件,即用“edfread.m”,具体见↓↓↓

将“edfread.m”和数据放在一个文件夹里

[head, label] = edfread('sc4002e0.hyp');      % 读标签,舍弃最后一个标签(9)
[header, recorddata] = edfread('sc4012e0_1.0.0.rec');   % 各通道的数据

label:睡眠阶段W、1、2、3、4、R、M和“未得分”在文件中编码为0、1、2、3、4、5、6和9

data:

1)sc群体:recorddata从上到下为:'EEGFpzCz' 'EEGPzOz' 'EOGhorizontal'            (100 Hz)

            'Resporonasal' 'EMGSubmental'(st*-100 Hz) 'Tempbody' 'Eventmarker'      (1 Hz)

2)st群体:recorddata从上到下为:'EEGFpzCz' 'EEGPzOz' 'EOGhorizontal' 'EMGsubmental' 'IDSyncError'

2、分频带

将FpzCz通道信号分成30s的epoch,再对每个epoch进行分频带操作,分完频带为“二、分析”做准备

%% 画频谱
Fs = 100;                     % Sampling frequency 
T = 1/Fs;                     % Sample time 
N = size(recorddata,2);       % Length of signal 
t = (0:N-1)/Fs;               % Time vector  

xx1=abs(fft(eeg)); 
xx2=fftshift(abs(fft(eeg)));

% figure 
% subplot(4,1,1) 
% plot(eeg); 
% title('eeg'); 
% subplot(4,1,2) 
% plot(xx1); 
% title('abs(fft(eeg))'); 
% subplot(4,1,3) 
% plot(xx2); 
% title('fftshift(abs(fft(eeg)))'); 
% subplot(4,1,4) 
plot((1:N/2-1)*Fs/N,xx1(1:N/2-1)*2/N);
title('plot((1:N/2-1)*Fs/N,xx1(1:N/2-1)*2/N)结果图');
%% 滤波,分频
       
f = (0:N-1)*Fs/N;              %频率序列
Wn_Delta = [0.1*2 4*2]/Fs;     %设置通带为0.1-4Hz Delta波
Wn_Theta = [4*2 8*2]/Fs;       %设置通带为4-8Hz Theta波
Wn_Alpha = [8*2 12*2]/Fs;      %设置通带为8-12Hz Alpha波
Wn_Beta_1 = [16*2 18*2]/Fs;    %设置通带为16-18Hz Beta_1波
Wn_Beta_2 = [18*2 49.9*2]/Fs;    %设置通带为18-50Hz Beta_2波

[k,l] = butter(2,Wn_Beta_2);    %4阶IIR滤波器,可改频带
result = filtfilt(k,l,eeg);
tmp = fft(result);
eeg_IFFT = ifft(tmp);          %滤完波后的信号

figure,
subplot(211),plot(f(1:N/2),abs(tmp(1:N/2)*2/N));title('滤波后频谱结果,频率:0.1-4Hz');axis([0,100,-inf,inf])
subplot(212),plot(eeg_IFFT);title('脑波滤波后结果图像');

for i=1:length(eeg_IFFT)/3000    %wpcoef(wpt1,[n,i-1])是求第n层第i个节点的系数
    E_Beta_2(i)=norm(eeg_IFFT(3000*(i-1)+1:3000*(i-1)+3000),2);   % norm(A,2) = sum(abs(A).^p)^(1/p)
end
save('E_Beta_2.mat');

 3、使用非均匀滤波

 

二、分析

这个分析步骤还包括觉醒和快速眼动的粗略时间定位

由于静息觉醒的特征通常是丰富的alpha频率和稀少的delta频率,ASEEGA计算一个定义为的对比函数: Cw(x)=Pα(x)Pβ1(x)/Pδ(x)

同样,在REM睡眠期,我们利用theta以及low delta power来定义对比函数: CREM(x)=Pθ(x)Pβ2(x)/ Pδ(x)

%% 特征提取

for i=1:length(E_Delta)
    Cw(1,i) = E_Alpha(1,i) * E_Beta_1(1,i) / E_Delta(1,i);
    CREM(1,i) = E_Theta(1,i) * E_Beta_2(1,i) / E_Delta(1,i);
end

三、分类

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值