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波的峰值點。