基于MIT数据集ECG信号的QRS波定位并绘制出轨迹的Python代码
时间: 2024-05-15 07:15:58 浏览: 122
以下是基于MIT数据集ECG信号的QRS波定位并绘制出轨迹的Python代码示例:
```python
import wfdb
import matplotlib.pyplot as plt
import numpy as np
# 读取MIT数据集中的ECG信号
record = wfdb.rdrecord('mitdb/100', sampto=3000)
signal = record.p_signal.T[0]
# 定义QRS波检测函数
def detect_qrs(signal, threshold=0.5):
# 计算信号的一阶差分
diff = np.diff(signal)
# 将差分信号取平方,用于增强波峰
squared_diff = diff ** 2
# 计算平均值和标准差
mean_diff = np.mean(squared_diff)
std_diff = np.std(squared_diff)
# 根据阈值检测QRS波
qrs_index = []
for i in range(1, len(squared_diff) - 1):
if squared_diff[i] > threshold * std_diff + mean_diff and squared_diff[i] > squared_diff[i-1] and squared_diff[i] > squared_diff[i+1]:
qrs_index.append(i)
return qrs_index
# 调用QRS波检测函数
qrs_index = detect_qrs(signal)
# 绘制ECG信号和QRS波轨迹
plt.figure(figsize=(10, 5))
plt.plot(signal)
for index in qrs_index:
plt.plot([index], [signal[index]], 'ro')
plt.xlabel('Sample')
plt.ylabel('Amplitude')
plt.title('ECG Signal with QRS Detection')
plt.show()
```
在上述代码中,我们首先使用`wfdb.rdrecord`函数读取MIT数据集中的ECG信号,然后定义了一个名为`detect_qrs`的QRS波检测函数,该函数实现了基于一阶差分的QRS波检测算法。最后,我们调用`detect_qrs`函数检测ECG信号中的QRS波,并使用`matplotlib.pyplot`库绘制出ECG信号和QRS波的轨迹。
阅读全文