Skip to content

Latest commit

 

History

History
181 lines (164 loc) · 3.67 KB

File metadata and controls

181 lines (164 loc) · 3.67 KB

重要参数:

record_name:存储心电信号的路径

sampfrom : 起始位置

sampto : 终止位置 单条数据650000, 到1000个点结束 sampto=1000

channels : 选择读取某个通道的数据,默认读取全部通道

n_sig : 信号个数

sig_name : 信号

sample: 每个心拍中R波的位置信息 为一个ndarry

symbol: 记录的每个心拍的标注信息,记录的是每个心拍类型 是一个字符型的ndarry

aux_note : 记录的是心率变换点的标注类型,是辅助信息

P_signal : 原始信号

d——signal : 数字信号

load file in .hea 文件名不加后缀 头文件

record_hea = wfdb.rdheader('/Users/gyw/Downloads/wfdb-python-master 2/sample-data/100')

display(record_hea.dict)

loda file in .dat 原始信号

record_dat = wfdb.rdrecord('/Users/gyw/Downloads/wfdb-python-master 2/sample-data/100')

display(record_dat.dict)

load file in .art/ in .qrs 标签文件

record_annotation = wfdb.rdann('/Users/gyw/Downloads/wfdb-python-master 2/sample-data/100', 'atr') display(record_annotation.dict)

import wfdb import matplotlib.pyplot as plt

record = wfdb.rdrecord('D:/ECG-Data/MIT-BIH-360/100', # 文件所在路径 sampfrom=0, # 读取100这个记录的起点,从第0个点开始读 sampto=1000, # 读取记录的终点,到1000个点结束 physical=False, # 若为True则读取原始信号p_signal,如果为False则读取数字信号d_signal,默认为False channel_names=['MLII']) # 读取那个通道,也可以用channel_names指定某个通道;如channel_names=['MLII']

转为数字信号

signal = record.d_signal[0:1000]

绘制波形

plt.plot(signal) plt.title("ECG Signal") plt.show()

img.png

MITDB_PSG { 'record_name': 'slp01a', 'n_sig': 4, 'fs': 250, 'counter_freq': 0.033333333, 'base_counter': 94.0, 'sig_len': 1800000, 'base_time': datetime.time(23, 7), 'base_date': datetime.date(1989, 1, 19), 'comments': [ '44 M 89 32-01-89' ], 'sig_name': [ 'ECG', 'BP', 'EEG (C4-A1)', 'Resp (sum)' ], 'p_signal': None, 'd_signal': None, 'e_p_signal': None, 'e_d_signal': None, 'file_name': [ 'slp01a.dat', 'slp01a.dat', 'slp01a.dat', 'slp01a.dat' ], 'fmt': [ '212', '212', '212', '212' ], 'samps_per_frame': [ 1, 1, 1, 1 ], 'skew': [ None, None, None, None ], 'byte_offset': [ None, None, None, None ], 'adc_gain': [ -200.0, 4.77778, -6430.0, 690.0 ], 'baseline': [ 0, -477, 0, 0 ], 'units': [ 'mV', 'mmHg', 'mV', 'l' ], 'adc_res': [ 12, 12, 12, 12 ], 'adc_zero': [ 0, 0, 0, 0 ], 'init_value': [ -17, -248, 252, -180 ], 'checksum': [ 59911, 19332, 49594, 912 ], 'block_size': [ 0, 0, 0, 0 ], 'base_datetime': datetime.datetime(1989, 1, 19, 23, 7) }

VMD分解方式

function [u, u_hat, omega] = VMD(signal, alpha, tau, K, DC, init, tol)

Variational Mode Decomposition Authors: Konstantin Dragomiretskiy and Dominique Zosso

Input Parameters: signal:要分解的时域信号 alpha: 惩罚因子,也称平衡参数 tau:噪声容忍度 K:分解的模态数 DC:直流分量 init:初始化中心频率 0 = all omegas start at 0 1 = all omegas start uniformly distributed 2 = all omegas initialized randomly tol:收敛准则容忍度;通常在1e-6左右。

Output Parameters: u:分解模式的集合 u_hat:模式的频谱 omega:估计模式中心频率