system: [SYSTEM]

user: 2. 方法 根据算法实现原理，心电信号高斯模型拟合主要分为三部分如图2。 图2. 心电信号高斯拟合流程框图 2.1. 小波变换处理 在信号处理中，傅里叶变换在处理非平稳信号及刻画信号在时域中的局部特性上具有局限性。由此衍生出了小波变换。小波分解采用有限时间分布且衰减的函数作为基，使得小波变换具有了傅里叶变换没有的时频分析能力，其原理如公式(1)所示。 C φ = ∫ − ∞ + ∞ | φ ^ ( w ) | 2 | w | d ω < + ∞ (1) 小波变化广泛应用在信号处理、数字图像处理。为了实现很好的处理效果，在实际应用中，学者在傅里叶变换基础上衍生出许多小波，其中dB小波具有正交性、指数多项式消失距和连续紧支性等特性，因此本研究采用Daubechies小波作为母小波进行小波变换。研究 [ 10 ] 表明心电信号基线频率段为0.15~0.3 Hz，鉴于此本研究根据心电信号特征选用dB8小波对心电信号处理，心电信号原始波形如图3所示，其去除基线漂移效果如图4所示。 2.2. 心电信号的切割 第二步中，算法通过定义一组规则来识别和定位感兴趣的点。如R峰峰值位置、P波起始点、T波终点等。在MIT-BIH心电信号数据库中，每组数据都经过两位心电图专家独立对信号进行标注，标注内容包括信号质量、节律变化、节拍局部说明及每个心电节拍的类型。其中每个心电节拍的类型都准确地标注在该节拍的R波波峰位置，方便了广大研究人员进行研究分析。本文就以注释位置为标准，每个RR间隔的2:1划分每个心电节拍 [ 11 ]，避免心律不齐信号切分的完整性，保证了切割后的心电节拍中都包含有P波、QRS复合波和T波等主要波形。对心电波形图(图5)心拍分割处理的两个阶段及实验结果如图6，图7所示。该切割方法在心律失常的情况下依然可以按要求将心电节拍切割。 图3. 心电信号原始波形图 图4. 心电信号去除基线漂移图 2.3. 建立高斯模型 高斯函数可用式(2)表示，式中 y 0 为峰高， μ 为峰的中心， σ 为高斯曲线的峰宽。高斯函数是非线性函数，对公式(3)取对数将其线性化，最终得式(4)线性函数表达式 y = y 0 e − ( x − μ ) 2 2 σ 2 (2) (3) ln y = ln y 0 − μ 2 2 σ 2 + 2 μ x 2 σ 2 − x 2 2 σ 2 (4) 将函数系数分别计为出 c 1 ， c 2 ， c 3 ，则 c 1 = ln y 0 − μ 2 2 σ 2 ，     c 2 = μ σ 2 ，     c 3 = − 1 2 σ 2 (5) 图5. 心电信号原波形图 图6. 心电信号R峰定位图 图7. 心电信号分割图 公式(4)可以表示为 ln y = [ 1 x x 2 ] [ c 1 c 2 c 3 ] ，对于单高斯函数拟合，可以计为 Y = A 1 × 3 C 3 × 1 对于多高斯函数公式(6)所示 f ( y ， n ) = ∑ m = 1 n y m 1 2 π σ m e − ( x − μ m ) 2 2 σ m 2 (6) 其y为长度为n，对应的公式(4)可以表示为 [ ln y 1 ⋮ ln y n ] = [ 1 x 1 x 1 2 ⋮ ⋱ ⋮ 1 x n x n 2 ] [ c 1 c 2 c 3 ] (7) 简记为 Y n = A n × 3 C 3 × 1 ，计算可得 C = ( A T A ) − 1 A T Y 。数组C中都可以由参数 y 0 ， μ ， σ 计算出来。但由于多峰的复杂性， y 0 ， μ ， σ 只是估计值因此要采用最小二乘 [ 12 ] 拟合求出最优的高斯函数参数。高斯函数拟合转化为了非线性最小二乘问题，最小二乘问题可分为线性和非线性两类。线性最小二乘问题的解是封闭式的确定性的，即 。对于非线性最小二乘问题通常采用迭代法求解，在计算中，有许多优化算法用于处理最小二乘问题，使用较少的计算量达到很好的结果。比如梯度下降算法、高斯–牛顿算法、共轭梯度法、列为伯格–马夸尔特算法和信赖域算法等。心电信号的高斯拟合是非线性的最小二乘问题，目标函数可以表示为 F ( x ) = ∑ i = 1 m f i 2 ( x ) (8) 其中 x = ( x 1 ， x 2 ， x 3 ， ⋯ ， x n ) T ，通过优化使 F ( x ) 最小化，本实验选用了在曲线拟合中应用广泛的列为伯格–马夸尔特算法和信赖域算法进行实验并对比二者结果。 2.3.1. 列为伯格–马夸尔特算法 列为伯格–马夸尔特算法(简称LMA或LM)，也称为阻尼最小二乘(DLS)。它是建立在高斯牛顿算法和梯度下降算法之间的优化算法，在许多情况下，即使初始值距离最终的最小值很远，它也可以找到解决方案。LM算法是解决非线性最小二乘问题的重要算法，主要应用于曲线拟合问题。LM算法流程如下：把目标函数式(8)在 x k 处一阶泰勒展开，用 ϕ i ( x ) 表示可 (9) 则 ψ ( x ) = ∑ i = 1 m ϕ i 2 ( x ) = ( [ ∇ f 1 ( x k ) T ⋮ ∇ f m ( x k ) T ] x + [ ∇ f 1 ( x k ) T x k − f 1 ( x k ) ⋮ ∇ f m ( x k ) T x k − f m ( x k ) ] ) T ( [ ∇ f 1 ( x k ) T ⋮ ∇ f m ( x k ) T ] x + [ ∇ f 1 ( x k ) T x k − f 1 ( x k ) ⋮ ∇ f m ( x k ) T x k − f i m ( x k ) ] ) (10) 用 ψ ( x ) 近似表示 进每一步迭代。 令 A k = [ ∇ f 1 ( x k ) T ⋮ ∇ f m ( x k ) T ] ， B = [ ∇ f 1 ( x k ) T x k − f 1 ( x k ) ⋮ ∇ f m ( x k ) T x k − f i m ( x k ) ] ， f k = [ f 1 ( x k ) ⋮ f m ( x k ) ] 。式(10)可以用式(11)表示 ψ ( x ) = ( A k x − B ) T ( A k x − B ) (11) 求导并令导数为零 A k T A k x = A k T ( A k x k − f k ) ，将一个正定对角矩阵加入到 A k T A k 中，步进增量式变为下面形式 x − x k = − ( A k T A k + λ I ) − 1 A k T f k 。其中I是一个单位矩阵， λ 是一个正实数，当 λ = 0 时，LM算法即为高斯牛顿算法。当 λ 很大时， x − x k ≈ − A k T f k ，LM算法就变成了梯度下降算法。 的值会在优化中不断变化，控制着x的前进方向，也控制着x每次变化的量。在优化前期类似梯度下降算法使x快速收敛到极值点附近；在优化后期类似高斯牛顿算法，x变化速度逐渐变小，使x稳定收敛达到最优，LM算法在每次迭代中不仅要和高斯牛顿算法一样更新m个函数 f i ( x k ) 的函数值和一阶偏导数，还要更新 λ 。 2.3.2. 置信域算法 置信域算法(Trust-region methods) [ 13 ]，它于1970年由Powell提出。该方法从给定初始解出发，迭代计算，直至达到满意的结果为止。对于 f ( x ) 是在 R n 上的二阶连续可微函数，定义现在点的邻域 Ω k Ω k = { x ∈ R n | ‖ x − x k ‖ ≤ Δ k } (12) 在式(12)中， Δ k 为置信域半径，在这个邻域中极小化目标函数的近似二次模型，得到近似极小点 S k ，其中 。置信域方法的子模问题是 (13) 其中， s = x − x k ， g k = ∇ f ( x k ) ， B k 是一个对称矩阵。 Δ k 根据 q ( k ) ( s ) 对目标函数 f ( x ) 的拟合程度来调整置信域，对于 S k ，定于以下两个参量 A r e d k = f ( x k ) − f ( x k + s k ) ，     P r e d k = q ( k ) ( 0 ) − q ( k ) ( s k ) ，     r k = A r e d k P r e d k (14) 其中 A r e d k 为目标函数下降量为实际下降量， Pred k 为函数模型的下降量记为预测下降量。 r k 用来衡量目标函数与实际函数的一致性程度。计算步骤如下： 1) 给出初始值 x 0 ，置信域半径 Δ ¯ ， ， ε ≥ 0 ， ， 0 < γ 1 < 1 ， 2) 如果 ‖ g k ‖ ≤ ε ，则停止计算。 3) 求模型子问题，得到 S k 4) 计算 f ( x k + s k ) 和 r k 其中 x k + 1 = { x k + s k ，     r k ≥ η 1 x k ，                 r k < η 1 (15) 5) 按照下列规则校正置信域半径， Δ k + 1 ∈ [ 0 ， γ 1 Δ k ] ，       r k < η 1 (16) Δ k + 1 ∈ [ γ 1 Δ k ， Δ k ] ，     r k ∈ [ η 1 ， η 2 ) (17) (18) 6) 得出 B k+1 ，修正 q ( k ) ， k = k + 1 ，循环第2步。