基於心電訊號時空特徵的QRS波檢測演算法matlab模擬

可编程芯片开发發表於2024-09-18

1.課題概述

透過提取ECG訊號的時空特徵,並使用QRS波檢測演算法提取ECG訊號的峰值,並在峰值點標記峰值資訊。

2.系統模擬結果

3.核心程式與模型

版本:MATLAB2022a

clc;
clear;
close all;
warning off;
addpath(genpath(pwd));
rng('default')

load ECG.mat
Fs = 360;          

[loc,time] = func_QRS(dat,Fs,Time);

figure;
plot(Time,dat)
hold on
plot(time, dat(loc),'b^',...
    'LineWidth',1,...
    'MarkerSize',8,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.9,0.5]);
legend('ECG訊號','QRS檢測');
xlabel('Time(s)')
xlim([0,30]); 
10

  

4.系統原理簡介

基於心電訊號時空特徵的QRS波檢測演算法是一種利用訊號處理技術對心電訊號進行自動分析,檢測其中的QRS波群的方法。QRS波群是心電訊號中最為明顯的特徵之一,其準確檢測對於心臟疾病的診斷和治療具有重要意義。

4.1心電訊號預處理

在進行QRS波檢測之前,需要對心電訊號進行預處理,以去除噪聲和基線漂移等干擾。常用的預處理方法包括濾波、歸一化等。這個過程可以用數學公式表示為:

濾波:H(f) = (f^2 + (f0/Q)^2) / (f^2 + (f0/Q)^2 + (f0^2))

其中,H(f)為濾波器的傳遞函式,f為頻率,f0為截止頻率,Q為品質因數。透過設定合適的f0和Q值,可以去除心電訊號中的低頻噪聲。

4.2 QRS波檢測演算法

基於心電訊號時空特徵的QRS波檢測演算法主要包括以下幾個步驟:

特徵提取:提取心電訊號的時空特徵,包括幅度、斜率、曲率等。這些特徵可以透過計算訊號的一階導數和二階導數來得到。常用的特徵提取方法有差分法、小波變換等。

特徵選擇:從提取的特徵中選擇對QRS波檢測最有用的特徵。這個過程可以透過機器學習演算法或統計分析方法來實現。常用的特徵選擇方法有主成分分析、支援向量機等。

閾值設定:根據選擇的特徵,設定合適的閾值,用於判斷是否為QRS波。閾值的設定需要考慮訊號的噪聲水平和QRS波的形態特徵。常用的閾值設定方法有自適應閾值法、固定閾值法等。

QRS波檢測:根據設定的閾值,對心電訊號進行逐點判斷,檢測出其中的QRS波。這個過程可以透過比較訊號的特徵值和閾值來實現。常用的QRS波檢測方法有滑動視窗法、模板匹配法等。這個過程可以用數學公式表示為:

如果|x(n)| > Threshold 並且 slope(x(n)) > 0 並且 curvature(x(n)) < 0,則判斷x(n)為QRS波的峰值點。

其中,x(n)為心電訊號,Threshold為設定的閾值,slope(x(n))為訊號的斜率,curvature(x(n))為訊號的曲率。這個公式的意義是,如果訊號的幅度超過閾值,並且斜率為正,曲率為負,則判斷該點為QRS波的峰值點。

相關文章