心电信号QRS波特征提取代码
时间: 2023-07-02 17:04:53 浏览: 64
以下是一个基于Python的QRS波特征提取代码示例:
```python
import numpy as np
import scipy.signal as signal
# 读取心电信号数据
signal_data = np.loadtxt('ecg_signal.txt')
# 滤波处理,去除噪声
fs = 1000 # 采样频率
lowcut = 5 # 低通滤波截止频率
highcut = 15 # 高通滤波截止频率
b, a = signal.butter(2, [lowcut/(fs/2), highcut/(fs/2)], 'bandpass')
signal_data = signal.filtfilt(b, a, signal_data)
# QRS波检测
qrs_locs, _ = signal.find_peaks(signal_data, distance=100, height=0.5)
# 计算QRS波宽度
qrs_widths, _ = signal.peak_widths(signal_data, qrs_locs)
# 计算QRS波幅度
qrs_amplitudes = signal_data[qrs_locs]
# 输出结果
print('QRS波位置:', qrs_locs)
print('QRS波宽度:', qrs_widths)
print('QRS波幅度:', qrs_amplitudes)
```
需要注意的是,在运行代码之前需要先将心电信号数据保存在名为 `ecg_signal.txt` 的文本文件中。在代码中,我们首先对心电信号进行了带通滤波处理,然后使用 `signal.find_peaks` 函数来检测QRS波位置,使用 `signal.peak_widths` 函数来计算QRS波宽度,并直接从滤波后的信号数据中获取QRS波幅度。