---
# System prepended metadata

title: 【論文閱讀】Generalized Deep Neural Network Model for Cuffless Blood Pressure Estimation with Photoplethysmogram Signal Only
tags: [PaperSurvey]

---

# 【論文閱讀】Generalized Deep Neural Network Model for Cuffless Blood Pressure Estimation with Photoplethysmogram Signal Only

## Abstract
這篇論文提出一個僅僅使用光電容積脈搏波 (Photoplethysmogram, PPG) 信號，來訓練深度學習的模型，用於無袖帶血壓 (Blood Pressure, BP) 估計。模型從 PPG 信號中提取 **32 個特徵**，並神經網絡進行 SBP (收縮壓) 和 DBP (舒張壓) 的預測。評估使用 RMSE、MAE、AAMI 和 BHS 標準，結果顯示 SBP 的 RMSE 為 4.643 mmHg、DBP 為 3.307 mmHg，且 80.63% 的 SBP 絕對誤差低於 5 mmHg、90.19% 的 DBP 低於 5 mmHg，符合 BHS Grade A 標準，優於先前僅使用 PPG 的模型。此方法強調 PPG 的低成本與易用性，有助於心血管疾病 (CVD) 的預防與即使監測

* 分病人，切成 Beat 再分割，代表 Intra-Subject ( 內樣本訓練，表示訓練與測試資料中有同一位病人的 )，大致上已經沒什麼參考價值了，一樣有作弊嫌疑
* 32個特徵怎麼取，會根據篩選指標來篩出來，接著特徵一樣會做 Z-Score 正規化

## Introduction & Related Work
* 心血管疾病是全球主要死亡原因，2016 年造成 1790 萬人死亡，高血壓監測至關重要
* 傳統袖帶式血壓計耗時 (1-2 分鐘)、不舒適，且無法連續監測，使用 $\text{ECG} + \text{PPG}$ 的模型雖準確，但增加成本與複雜度
* PPG 是一種非侵入性技術，透過光學測量微血管血容量變化，適合穿戴式裝置，但先前模型多需額外信號或手動特徵提取
* 開發僅 PPG 的通用模型，基於脈波速度 (PWV) 理論，縮短測量時間至 10 秒內，提升可及性


## Intro

### 基本原理
基於傳統演算法是從 **ECG訊號** 與 **PPG訊號** 取出生理訊號的參數，該方法仰賴基於 **Pulse wave velocity (PWV)** 也就是脈波傳播速率， PWV 是由心跳引起的壓力脈搏，在動脈傳播會類似在一個有帶彈性的管道傳播，所以 PWV 被視為與血壓高度相關的，該公式稱為 [**Moens–Korteweg Equation**](https://en.wikipedia.org/wiki/Moens%E2%80%93Korteweg_equation)

$$
\text{PWV} = \sqrt{\frac{Eh}{2r\rho}} \tag{1}
$$
* $r$ : 動脈半徑，單位 $m$
* $h$ : 動脈厚度，單位 $m$
* $E$ : 動脈彈性模量，單位 $\text{Pa} = \frac{N}{m^2} = \frac{kg}{m \cdot s^2}$
* $\rho$ : 血液密度，單位 $\frac{\text{kg}}{m^3}$ 

### Pulse Wave Velocity ( PWV )  
PWV 也可以可以透過感測器兩端量測到的 **Pulse Transit time (PTT)** 與兩個 Sensor 端的距離 $d$ 計算出來
:::info
Pulse Transit time (PTT) 為從 ECG 量測的脈博波從心臟傳到 PPG 訊號量測位置的時間差
:::
$$
\text{PWV} = \frac{d \ \text{距離}}{\text{PTT} \ \text{時間}} \tag{2}
$$

* $\text{PTT}$ : ECG R 波到 PPG Onset/Peak
* $d$ : 為 Sensor 兩端距離

### 彈性模量
彈性模量被假設為一個常數，需要經過實現測試出來
$$
E(P) = E_0 e^{\alpha P} \tag{3}
$$

* $E_0$ : 彈性模量在 0 mmHg 每單位血壓，實際上要測量才能得到
* $\alpha$ : 為動脈血管硬度，越大表示血管硬化越嚴重

### 最後推論

將 $(1)$ 與 $(2)$ 帶入 $(3)$ 可以知道血壓 $\text{P}$ 與 $\text{PTT}$ 是對數關係而非線性，同時包含許多參數來估計血壓
$$
P = -\frac{2}{\alpha} \ln(\text{PTT}) + \frac{1}{\alpha} \ln \left(\frac{2 r \rho}{E_0 h} d^2\right) \tag{4}
$$

$\because$ $(1)$ 與 $(2)$ 是相等的 
$$
\therefore \frac{d^2}{PTT^2} = \frac{Eh}{2r\rho}
$$
移項處理將 $E$ 移至左項並把 $PTT$ 那一樣獨立開來
$$
E = \frac{1}{PTT^2} \frac{2r \rho d^2}{h}  = E_0e^{\alpha P}
$$
先將 $E_0$ 移項後取 $\ln$
$$
P = \frac{1}{\alpha}\ln(\frac{1}{PTT^2}) + \frac{1}{\alpha}\ln(\frac{2r \rho}{E_0h}d^2)
$$
$$
P = \frac{-2}{\alpha}\ln(PTT)+ \frac{1}{\alpha}\ln(\frac{2r \rho}{E_0h}d^2)
$$

為了找到一個線性關係，我們先不將 $\ln$ 部分展開

$$
P = \frac{1}{\alpha} (\ln(\frac{1}{PTT^2}) + \ln(\frac{2r \rho}{E_0h}d^2))
$$


:::danger
$\ln(a \cdot b) = \ln(a) + \ln(b)$
$\ln(\frac{a}{b}) = \ln(a) - \ln(b)$
:::

![image](https://hackmd.io/_uploads/H1IqV4gOel.png =50%x)

* $\text{PTT}(p)$ 代表 ECG 的 R-Peak 到 PPG 的 Systolic Peak
* $\text{PTT}(d)$ 代表 ECG 的 R-Peak 到 PPG 的 Max Slope Point
* $\text{PTT}(f)$ 代表 ECG 的 R-Peak 到 PPG 的 Valley

## Matrerials and Methods
* Data Preprocesing
    PPG 訊號會先移除噪聲，接著取得其一階與二階導數
* Feature Extractor
    人工選取特徵，也會同時輸入進模型進行訓練，從 65 個候選特徵，選出 59 個，再透過篩選指標來選最佳 32 個最佳特徵
* Deep Neural Network
    * 全連接層串接，輸入為 $32$ 維度特徵，輸出就是 $2$ 個，包含 $\text{SBP}$, $\text{DBP}$
    * $70\%$ 訓練、$20\%$ 驗證、$10\%$ 測試
### Data Source
神經網路基本上都是 Data-Driven，Data 本身意義代表著一切，影響著神經網路的方方面面。
* MIMIC-II (Mutli-Parameter Inetllignet Monitoring in Intensive Care)
    * 該資料集包含 12000 獨立的 Subject 組成，包含了超過 4 百萬的 Heart Cycle
* 評估指標 
    * RMSE
    * AAMI 平均誤差小於 5mmHg、標準差小於 8mmHg
    * BHS 標準，誤差百分比分級 (Grade A: ≥60% ≤5 mmHg, ≥85% ≤10 mmHg, ≥95% ≤15 mmHg)
    * 統計分析
        * Bland-Altman 圖
        * Pearson 相關係數 $r$
### PPG Raw Data Preprocessing
1. Noise Removal
    透過 Buffterworth 來移除 $0.5 \sim 8.0 \text{ Hz}$ 頻率訊號
2. Normalization and 1st and 2nd Derivation
    執行最大最小正規化並使用在所有訊號上，包含原始訊號、一階導數、二階導數
$$
x' = \frac{x - X_m}{X_M - X_m}
$$
3. Feature Points Detection
    檢測收縮峰值檢測，起始和結束谷點檢測，最大最小斜率檢測
![image](https://hackmd.io/_uploads/rkzTJSeOxe.png =50%x)


## 結論
論文基本上可以參考部分認為**前面推導基本血壓的原理**，原因在於資料處理並不是那麼嚴謹，一樣有相同病人但是會被分割成訓練與測試集，這樣的問題被稱作 Data-Overlap，Data-Overlap 的話，訓練出來模型標準差一定是低的，這毫無意外