基于MIT数据集ECG信号的QRS波定位并绘制出轨迹的Python代码
时间: 2024-05-08 17:16:11 浏览: 223
以下是基于MIT数据集ECG信号的QRS波定位并绘制出轨迹的Python代码:
```python
import wfdb
import numpy as np
import matplotlib.pyplot as plt
# 读取MIT-BIH数据集中的ECG信号
record = wfdb.rdrecord('100', sampfrom=0, sampto=10000, channels=[0])
signal = record.p_signal.flatten()
# 定义QRS波定位函数
def qrs_detect(signal, threshold=0.5, window_size=50):
qrs = []
for i in range(window_size, len(signal) - window_size):
if signal[i] > threshold and signal[i] == max(signal[i - window_size:i + window_size]):
qrs.append(i)
return qrs
# 执行QRS波定位
qrs = qrs_detect(signal)
# 绘制ECG信号和QRS波轨迹
plt.figure(figsize=(20, 5))
plt.plot(signal)
plt.scatter(qrs, signal[qrs], c='r')
plt.title('ECG Signal with QRS Detection')
plt.xlabel('Sample Point')
plt.ylabel('ECG Signal')
plt.show()
```
解释一下代码的主要部分:
- 通过`wfdb.rdrecord`读取MIT-BIH数据集中的ECG信号。
- 定义`qrs_detect`函数实现QRS波的定位。该函数基于移动窗口,每次取出一个窗口内的数据,如果窗口内的最大值超过阈值,则将该点视为QRS波的位置。
- 执行`qrs_detect`函数,得到QRS波的位置。
- 绘制ECG信号和QRS波轨迹。使用`plt.plot`绘制ECG信号,使用`plt.scatter`绘制QRS波。
阅读全文