信号处理¶
生物信号 → 含噪信号 → 滤波 → 采样 → 数字信号处理
噪声¶
混在有用生物信号里的、无关或干扰成分。
基线漂移 (Baseline Wander):波形整体像海浪一样上下起伏。这通常是由于呼吸或身体晃动引起的(属于低频干扰)。
高频噪声 (High-frequency Noise):波形上有细小的锯齿。这可能是肌肉电信号 (EMG) 或设备电子噪声。
采样¶
按固定时间间隔对连续时间信号取值,把模拟信号转换为数字信号
采样定理¶
采样频率 ≥ 信号最高频率的 2 倍
否则会出现 混叠。
Nyquist 频率¶
Nyquist 频率 = 采样频率 / 2
采样系统能够无失真地还原的最高信号频率。任何高于这个频率的成分,在采样后都会发生畸变,这样的采样是无效的。因此,我们希望,被采样信号本身的最高频率成分小于 Nyquist 频率。
混叠¶
当采样频率低于信号最高频率的 2 倍时,高频成分会被错误地表现为低频成分,导致信号失真。
采样后,频谱会以 fs 为周期重复,超出 fs/2 的部分会折叠回低频。
混叠后的频率:
f(alias) = |f(实际) - k * fs|,并且要保证 f(alias) 落在 0 Hz 到 Nyquist 频率 这个范围内。
抗混叠滤波器¶
采样前加一个低通滤波器,其截止频率设定在 Nyquist 频率以下,将所有高于 Nyquist 频率的成分在采样前就彻底滤除。
滤波¶
保留感兴趣的频率成分,抑制或去除其他成分。
- 低通滤波:去高频噪声
- 高通滤波:去低频漂移
- 带通滤波:只保留某一频段
- 带阻滤波:去除特定频率
原理¶
对于单级电路(如 LC 振荡电路),带通原理来自于电感(L)和电容(C)的阻抗特性随频率变化的抵消现象:
- 感抗 (\(X_L = 2\pi fL\)):随频率升高而增大。它“讨厌”高频。
- 容抗 (\(X_C = \frac{1}{2\pi fC}\)):随频率升高而减小。它“讨厌”低频。
在某个特定的频率 \(f_0\)(谐振频率)下,感抗等于容抗。此时,电路中的虚部阻抗互相抵消,能量交换达到效率最高点。
- 低于 \(f_0\):电容占主导,阻碍大。
- 高于 \(f_0\):电感占主导,阻碍大。
- 等于 \(f_0\):阻抗最小(串联谐振)或最大(并联谐振),从而形成一个选择性的“窗口”。
滤波器设计¶
中值滤波(Median)¶
- 取一个窗口内的若干点,把数排序后取中间那个值。
- 作用:去掉“突刺/毛刺噪声”,但不会把波形边缘抹平。
- 中值滤波是滑动窗口,每次只输出窗口中心那个点的一个值。
- 例如:原序列x = [1, 2, 50, 2, 1, 3, 2]
- 窗口=5,第一次窗口是 [1,2,50,2,1] → 中值=2,输出 y[3]=2(只替换中心那个点)
- 窗口右移一格变成 [2,50,2,1,3] → 中值=2,输出 y[4]=2
均值滤波(Mean / Moving Average)¶
- 取窗口内的点求平均值。
- 作用:整体平滑高频噪声,但会让波峰变钝一点。
为什么先中值再均值?¶
- 先用中值把“单点毛刺”清掉;
- 再用均值做平滑;
- 反过来会让毛刺先污染平均值,后面中值就补不回来了。
差分方程¶
傅里叶变换¶
- 时域卷积:让原始信号与一个特定的“冲激响应”函数进行卷积运算。这个函数在数学上本质是一个震荡并逐渐衰减的波形,它能过滤掉不需要的数字波动。
- 频域相乘:
- 通过 快速傅里叶变换 (FFT) 将时域信号转为频域。
- 将通带以外的频率幅值直接置为 0(或乘以极小的系数)。
- 通过 逆傅里叶变换 (IFFT) 还原回时域。
Butterworth 滤波器¶
Butterworth滤波器的振幅平方响应由以下公式定义:
- \(n\):滤波器的阶数。阶数越高,过渡带越陡峭,越接近理想的“砖墙”过滤效果。
- \(\omega_c\):截止频率(Cut-off frequency)。在此频率点,增益下降到最大值的 \(1/\sqrt{2}\),即 -3dB 处。
- \(\omega\):信号的角频率。
峰值检测¶
一种鲁棒性更强的波峰检测方法¶
-
不用固定阈值,而是用 signalMax 和 signalMin 动态调整阈值,适应光强变化。阈值 = (signalMax+signalMin)/2,跟随信号幅度缓慢漂移。一个峰必须同时满足 3 个条件(拐点 + 超过阈值 + 距上次>固定时间(如200ms)),才算有效。
-
对于心跳峰,心率合理性过滤:由相邻两个峰值间隔算出来的 BPM 必须在 40~200 之间。如果算出来是 300 或 10,就认为是误检,不计入。
ECG¶
心脏在跳动过程中产生的电活动信号,通过贴在皮肤表面的电极采集。
- 导联:通过电极采集到的电压差。每一个导联记录的是两个特定点之间,或者一个点与一组参考点之间的电位变化。
- 周期性(与心跳一致)
- 幅值:约 0.5–5 mV
- 频率范围:0.05–150 Hz
波形¶
- P 波:心房去极化,即心房肌细胞兴奋并引发心房收缩。特点:幅度较小、频率成分较低、在 ECG 中容易被噪声掩盖。
- QRS 波群:心室去极化。特点:幅度大、上升沿陡峭、高频成分丰富(约 10–25 Hz)。
- T 波:心室复极化。特点:斜率平缓、高频成分较少、波形结束点(T 波终点)界定困难。
去噪¶
- 工频干扰(50 Hz / 60 Hz):来源于电力系统。可通过带阻滤波抑制工频干扰,但在 QRS 复合波存在时,线性滤波器可能引入失真,因此在某些情况下需要采用非线性或自适应滤波方法
- 肌电干扰:来自骨骼肌活动。利用 ECG 的周期性,对齐多个心搏后进行集合平均(ensemble averaging)可以有效降低非同步噪声成分。
- 基线漂移:来源于呼吸、体动,低频噪声,通常低于 0.5 Hz,通过高通滤波、多采样率方法或样条拟合等方式加以去除
R 峰检测¶
R 峰是 QRS 复合波中幅度最大的正峰,是心搏时间定位的基准点。ECG 中几乎所有时间参数(RR 间期、心率变异性等)都以 R 峰为参考。
心率变异性(HRV)分析¶
心电分类(正常 / 房颤 / 室早等)¶
心率¶
Heart Rate (bpm)=60/RR interval (s)
工程上我们不是直接算心率,而是先稳定地检测 R 峰,再从 RR 间期得到心率。”
EEG¶
大脑神经元群体活动产生的微弱电信号,通过头皮电极采集。
- 非平稳、随机性强
- 幅值:约 10–100 μV
- 主要频率范围:0.1–100 Hz
节律¶
| 频段 | 频率 | 含义 |
|---|---|---|
| δ(Delta) | 0.5–4 Hz | 深度睡眠 |
| θ(Theta) | 4–8 Hz | 困倦、冥想 |
| α(Alpha) | 8–13 Hz | 放松、闭眼 |
| β(Beta) | 13–30 Hz | 思考、紧张 |
| γ(Gamma) | >30 Hz | 高级认知 |
去噪¶
- 眼电(眨眼、眼动)
- 肌电(咀嚼、说话)
- 电极接触不良
时频分析(STFT / 小波)¶
特征提取(功率谱、熵)¶
脑电分类与解码¶
PPG¶
光电容积脉搏波(Photoplethysmography)是用红光/红外光照射手指,血液在每次心跳时流量变化,会导致反射/透射光强随之变化。传感器把这种光强变化转换成波形,这个波形就是PPG。
- 测心率: 血液中红细胞的血红蛋白对光的吸收率是有规律的。当心脏跳动(泵血)时,外周血管(如手指或手腕)的血液量会发生微小的周期性变化。传感器发出的光(IR通道,信噪比更高,吸收对比度更好)射入皮肤,反射回来的光强度会随血液量波动。通过处理这个波形,就能算出心跳频率。
测血氧¶
MAX30102 交替发射红光和红外光,通过计算这两种光被吸收的比例(即 \(R\) 值),就能估算出血液中的含氧量。
- 红光 (660nm): 还原血红蛋白 (\(Hb\)) 的吸收率极高。
- 红外光 (880-940nm): 氧合血红蛋白 (\(HbO_2\)) 的吸收率较高。
根据 Lambert-Beer 定律,物质对光的吸收遵循以下公式:
- \(\epsilon\):物质的摩尔消光系数(红细胞中血红蛋白的特性)。
- \(c\):物质浓度。
- \(d\):光程(光在组织中行走的路径长度)。
在人体组织中,情况变得复杂,因为光不仅被吸收,还会被散射。底层模型通常将其简化为: \(I = I_{dc} + I_{ac}\)
- DC 分量(直流): 来自皮肤、肌肉、骨骼以及非搏动性的静脉血。这部分信号相对恒定。
- AC 分量(交流): 仅来自动脉搏动引起的血液容积变化。这是我们要提取的核心。
为了消除个体皮肤厚度、肤色和传感器压力的干扰,计算 “比值的比值”(Ratio of Ratios),即 \(R\) 值:
得到 \(R\) 值后,并不能直接转换成百分比,而是通过经验公式(Lookup Table):
(其中 \(a\) 和 \(b\) 是通过人体临床实验校准出的常数。经验线性拟合,有效范围约70-100%。)
手指检测¶
- IR原始值 < 50000 → 判定无手指
- 重置所有滤波器和检测器状态,防止残留数据污染