MATLAB心电信号代码
时间: 2023-06-23 08:10:32 浏览: 53
以下是一个简单的 MATLAB 心电信号处理代码示例:
```matlab
% 导入数据
data = load('ecg_data.txt');
% 绘制原始心电图形
plot(data);
title('原始心电图形');
xlabel('时间');
ylabel('幅度');
% 降噪处理
filtered_data = medfilt1(data, 200);
% 绘制降噪后的心电图形
figure;
plot(filtered_data);
title('降噪后的心电图形');
xlabel('时间');
ylabel('幅度');
% 滤波处理
[b, a] = butter(2, [0.5, 40]/(1000/2), 'bandpass');
filtered_data = filtfilt(b, a, filtered_data);
% 绘制滤波后的心电图形
figure;
plot(filtered_data);
title('滤波后的心电图形');
xlabel('时间');
ylabel('幅度');
% 检测心跳
peaks = pan_tompkins(filtered_data, 1000);
% 绘制心跳检测结果
figure;
plot(filtered_data);
hold on;
plot(peaks, filtered_data(peaks), 'ro');
title('心跳检测结果');
xlabel('时间');
ylabel('幅度');
```
这里使用了 MATLAB 自带的中值滤波函数(medfilt1)、巴特沃斯滤波函数(butter)和心跳检测算法(pan_tompkins)。注意,这里的数据格式为一维数组,每个元素表示一个采样点的幅度。