心电信号QRS波特征提取matlab代码
时间: 2023-07-02 16:04:53 浏览: 166
以下是一个简单的心电信号QRS波特征提取的Matlab代码示例:
```matlab
% 导入心电信号数据
ecg = load('ecg_signal.mat');
ecg = ecg.ecg;
% 滤波器设计
Fs = 360; % 采样率
N = 3; % 阶数
Wn = [5 15]/(Fs/2); % 截止频率
[b,a] = butter(N,Wn,'bandpass'); % 带通滤波器
% 滤波
ecg_filtered = filtfilt(b,a,ecg);
% QRS波检测
[qrs_amp_raw,qrs_i_raw,delay,~] = pan_tompkin(ecg_filtered,Fs,0);
% QRS波特征提取
[qrs_amp,qrs_width,qrs_i,~,~,~] = ecg_qrs_feature(ecg_filtered,qrs_i_raw,Fs);
% 显示结果
figure;
subplot(2,1,1);
plot(ecg);
title('原始心电信号');
xlabel('样本');
ylabel('幅度');
subplot(2,1,2);
plot(ecg_filtered);
hold on;
plot(qrs_i_raw,qrs_amp_raw,'r.');
title('滤波后QRS波检测结果');
xlabel('样本');
ylabel('幅度');
legend('滤波后的信号','QRS波位置');
```
该代码使用带通滤波器滤波心电信号,然后使用Pan-Tompkins算法检测QRS波,最后提取QRS波的幅度和宽度。你可以根据自己的实际需求修改和扩展该代码。
阅读全文