ECG信号提特征

process ecg data by neurokit

下面展示一些 内联代码片

// A code block

// An highlighted block
# -*- coding: utf-8 -*-
"""
Created on 
@author: Administrator
"""
import neurokit as nk
import numpy as np
import pandas as pd
from scipy.io import loadmat
import os
import sys
from neurokit import ecg_process
import matplotlib.pyplot as plt

def extract_feature(ecg_path,sampling_rate):
    feature_path = r'F:\emotionpdf\Data\ECGLFeature\1'
    signal_dir = os.listdir(ecg_path)
#    j = 0
    for i in signal_dir:
        signal_Path = ecg_path + '\\' + i        #拼接完整路径
        ecg_signal = np.load(signal_Path)
        print(signal_Path)
        print(type(ecg_signal))
        print(np.shape(ecg_signal))
        ecg_feature = ecg_process(ecg=ecg_signal, sampling_rate=sampling_rate,
                             quality_model='default', 
                             hrv_features=['time', 'frequency','nonlinear'])
        print(type(ecg_feature))
        
        data = ecg_feature['ECG']['HRV']
        HRV = [data['CVSD'],
               data['DFA_1'] if 'DFA_1' in data else 0, data['DFA_2'] if 'DFA_2' in data else 0,
               data['Entropy_Multiscale_AUC'], data['Entropy_SVD'], data['Entropy_Spectral_VLF'],
               data['Entropy_Spectral_LF'], data['Entropy_Spectral_HF'],
               data['FD_Higushi'], data['FD_Petrosian'], data['Fisher_Info'],
               data['HF'], data['HF/P'], data['HFn'], data['LF'], data['LF/HF'], data['LF/P'], data['LFn'],
               data['RMSSD'], data['Sample_Entropy'], data['Shannon'], data['Shannon_h'], data['Total_Power'],
               data['Triang'],
               data['ULF'], data['VHF'], data['VLF'], data['cvNN'], data['madNN'], data['mcvNN'], data['meanNN'],
               data['medianNN'], data['n_Artifacts'],
               data['pNN20'], data['pNN50'], data['sdNN'],
               ecg_feature['ECG']['Average_Signal_Quality']]
        
        for x in range(len(HRV)):
            if np.isnan(HRV[x]) | np.isinf(HRV[x]):
                HRV[x] = 0
        print(type(HRV))
        HRV_feature = np.array(HRV).reshape(1, -1)
        print(type(HRV_feature))
        np.save('%s.npy'%(feature_path+'\\'+ i), HRV_feature)
#        j += 1
        print(feature_path+'\\'+ i)
       
#main函数     
if __name__=='__main__':   
    ecg_path = r'F:\emotionpdf\Data\ECGLData\1'
    feature_path = r'F:\emotionpdf\Data\ECGLFeature\1'
#    extract_feature(ecg_path,128)
    f = np.load(r'F:\emotionpdf\Data\ECGData\1\0.npy')
    print(type(f))
#    feature, info = ecg_process(ecg = f,sampling_rate=128)
    k = np.load(r'F:\emotionpdf\Data\ECGLData\1\0.npy')
    print(type(k))
#    feature = ecg_process(ecg = k,sampling_rate=128)
    df = loadmat(r'F:\emotionpdf\Data\Data_Preprocessed\Data_Preprocessed_P01.mat')
    print(df.keys())
    joined_data = df['joined_data']
    j = joined_data[0,0][:,14:16]
    
    np.array(j).reshape(2,-1)
    print(type(j))
    print(np.shape(j))
    print(j[0])
#    feature = ecg_process(ecg =j,sampling_rate=128)

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值