论文阅读和复现:去除PPG运动伪影的IEEE论文

这篇具有很好参考价值的文章主要介绍了论文阅读和复现:去除PPG运动伪影的IEEE论文。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

论文阅读和代码复现:
《Combining Nonlinear Adaptive Filtering and Signal Decomposition for Motion Artifact Removal in Wearable Photoplethysmography》

基本介绍:

由于手腕运动造成的噪声:运动伪影,使得PPG方法的心率监测不准,去除运动伪影噪声在智能手表中是一个难点。

论文中使用的开源数据:PPG database used in 2015 IEEE Signal Processing Cup[1]

[1]Pace and Bricout, “Low Heart Rate Response of Children with Autism Spectrum Disorders in Comparison to Controls during Physical Exercise,” Physiology & Behavior, vol.141, pp.63-68, 2015.

目前已经有的研究:

  • 使用独立成分分析ICA

ICA有一个关键的统计独立或不相关假设[11]。因此,在许多实际场景中,将MA与PPG信号分离的结果并不令人满意。

[11]J. Yao and S. Warren, “A short study to assess the potential of independent component analysis for motion artifact separation in wearable pulse oximeter signals,” in Proc. 27th Annual Conf IEEE Engg. Medicine and Biology, pp. 3585-3588, 2005.

  • 使用自适应滤波

通过适当设计参考信号,在某些情况下可以达到令人满意的效果。然而,一个设计不好的参考信号会导致较差的MA去除性能。此外,原始PPG信号中的MA与参考信号之间的关系可能不是线性相关的,而是非线性相关的,当选择同步加速度信号作为参考信号时。

[12] Comtois Gary, Yitzhak Mendelson, and Piyush Ramuka, “A Comparative Evaluation of Adaptive Noise Cancellation Algorithms for Minimizing Motion Artifacts in a Forehead-Mounted Wearable Pulse Oximeter,” 29th Annual International Conference of the IEEE Engineering in Medicine and Biology Society, pp.1528-1531, 2007.
[13] A. B. Barreto, L. M. Vicente, and I. K. Persad, “Adaptive Cancellation of Motion Artifact in Photoplethysmographic Blood Volume Pulse Measurements for Exercise Evaluation,” Engineering in Medicine and Biology Society, IEEE 17th Annual Conference, vol.2, pp.983-984. 1995.
[14] Ram, M. Raghu, et al. “A novel approach for motion artifact reduction in PPG signals based on AS-LMS adaptive filter.” IEEE Transactions on Instrumentation and Measurement, pp. 1445-1457, 2012.
[15] Hyonyoung Han and Jung Kim, “Artifacts in wearable photoplethysmographs during daily life motions and their reduction with least meansquare based active noise cancellation method,” Computers in Biology and Medicine 42, pp. 387-393, 2012.
[16] Asada, H. Harry, Hong-Hui Jiang, and Peter Gibbs, “Active noise cancellation using MEMS accelerometers for motion-tolerant wearable bio-sensors,” Engineering in Medicine and Biology Society, 2004. IEMBS’04. 26th Annual International Conference of the IEEE. vol. 1, 2004.

  • 使用信号分解

信号分解[17],[18]最近被证明是一种有效的去除MA的方法。例如,在[17]中,作者使用奇异谱分析(SSA)将原始PPG分解为多个分量,然后使用同步加速度信号的信息来识别与MA相关的分量。去除这些分量后,利用剩余分量重构PPG信号,得到更清晰的PPG信号。同样,在[18]中,使用经验模态分解(EMD)将一个原始PPG信号分解为许多分量,并使用同步加速度信号的频谱进行频谱减法去除与MA相关的分量。然而,信号分解通常具有较大的计算量,这可能会阻碍其在低功耗可穿戴设备中的应用。

[17] Z. Zhang, Z. Pi, and B. Liu, “TROIKA: A general framework for heart rate monitoring using wrist-type photoplethysmographic signals during intensive physical exercise,” IEEE Transactions on Biomedical Engineering, vol. 62, no. 2, pp. 522-531, 2015.

[18] Y. Zhang, B. Liu, Z. Zhang, “Combining Ensemble Empirical Mode Decomposition with Spectrum Subtraction Technique for Heart Rate Monitoring Using Wrist-Type Photoplethysmography,” Biomedical Signal Processing and Control, vol. 21, pp. 119-125, 2015.

论文的算法方案

论文阅读和复现:去除PPG运动伪影的IEEE论文,信号处理算法,论文阅读,RLS滤波,信号处理,PPG运动伪影,心率估计

基本步骤:

1、PPG传感器和加速度传感器同时采集原始数据;并且对数据进行带通滤波处理,PPG数据的通带选择0.4-5.0 HZ;

2、A:Volterra RLS 非线性滤波算法处理PPG数据,其中的加速度数据作为Volterra RLS的参考信号;

3、判断Volterra RLS滤波结果是否满足要求,根据相关性的阈值进行判断;

4、第3步的判断满足要求YES,则进入到步骤6,谱峰追踪算法;No则进入步骤5;

5、SSA进行进一步处理PPG数据,去除运动伪影;

6、谱峰追踪,原因是即使进行运动伪影的处理,在FFT算法处理PPG信号后,得到的频谱的最大幅值对应的频率不一定是心率值,运动伪影太强会导致出现多个谱峰,而且运动伪影造成的谱峰比心率峰值还要大的现象。这里需要使用机器学习算法或专家经验(例如两个时间窗之间的心率不会突变)进行谱峰选取;

7、最终计算得到心率值;

Volterra-RLS去除运动伪影算法原理

论文阅读和复现:去除PPG运动伪影的IEEE论文,信号处理算法,论文阅读,RLS滤波,信号处理,PPG运动伪影,心率估计

如图所示。基于RLS volterra的非线性自适应滤波系统框图。它有两个输入。一个是原始PPG信号s(k),包含感兴趣的信号s1(k)和加上干扰n(k)。另一个输入是加速度数据xk。对噪声进行过滤,以产生与n(k)尽可能接近的副本的输出n(k)。这个输出从主要输入s(k)中减去,得到系统输出ε(k)。

代码基本实现Volterra-RLS算法去除运动伪影:

算法流程参考:
Paulo S. R. Diniz (auth.) - 《Adaptive Filtering_ Algorithms and Practical Implementation》-Springer US (2013)

论文阅读和复现:去除PPG运动伪影的IEEE论文,信号处理算法,论文阅读,RLS滤波,信号处理,PPG运动伪影,心率估计

根据作者介绍可知,Volterra RLS算法和传统的RLS算法的区别就是输入 x ( k ) \pmb{x}(k) x(k)。其中 x ( k ) \pmb{x}(k) x(k)如下所示:其中N是指滤波器的阶数。

论文阅读和复现:去除PPG运动伪影的IEEE论文,信号处理算法,论文阅读,RLS滤波,信号处理,PPG运动伪影,心率估计文章来源地址https://www.toymoban.com/news/detail-661048.html

# -*- coding: utf-8 -*-
#
# Copyright (C) 2022 Emperor_Yang, Inc. All Rights Reserved 
#
# @CreateTime    : 2022/12/31 8:00
# @Author        : Emperor_Yang 
# @File          : volterra_rls.py
# @Software      : PyCharm

import numpy as np
import queue


class PPGAccData(object):
    def __init__(self):
        self._ppg = []
        self._acc = []

    def push_data(self, ppg_data, acc_data):
        assert (len(ppg_data) == len(acc_data))  # 保证ppg和acc数据是长度一致的
        self._ppg.append(ppg_data)
        self._acc.append(acc_data)

    def get_data(self, data_len):
        ppg_data = []
        acc_data = []
        current_ppg_data_len = len(self._ppg)
        if len(self._ppg) > data_len:
            ppg_data = self._ppg[-data_len: -1]
            acc_data = self._acc[-data_len: -1]
        else:
            for i in range(data_len - current_ppg_data_len):
                ppg_data.append(0)
                acc_data.append(0)
            ppg_data.append(self._ppg)
            acc_data.append(self._acc)
        return np.array(ppg_data), np.array(acc_data)


N = 10  # 滤波算法的阶数
delta = 10  # signal power
matrix_size = (N + 1) * (N + 1) + (N + 1)
S_D_init = delta * np.ones((matrix_size, matrix_size))
x_init = np.zeros((matrix_size, 1))
w_init = np.zeros((matrix_size, 1))
lambda_value = 0.1  # (0, 1)

ppg_acc_data = PPGAccData()
ppg_data, acc_data = ppg_acc_data.get_data(N)
x = x_init
S_D = S_D_init
w = w_init

stop_flag = True  # 假设这个是数据采集标志位

d = acc_data  # 参考加速度信号

while stop_flag:
    e = d - np.transpose(x) @ w
    pha_matrix = S_D @ x
    S_D = 1 / lambda_value * (
                S_D - (pha_matrix @ np.transpose(pha_matrix) / lambda_value + np.transpose(pha_matrix) @ x))
    w = w + e @ S_D @ x
    y = np.transpose(w) @ x
    delta_vector = d - y
    ppg_data, acc_data = ppg_acc_data.get_data(N)
    # 构造x的数组
    index = 0
    for i in range(N):
        x[index] = ppg_data[-1 - i]
        index += 1
    for i in range(N):
        for j in range(N):
            x[index] = ppg_data[-1 - i] * ppg_data[-1 - i - j]
            index += 1
    # 构造d数组
    d = acc_data

到了这里,关于论文阅读和复现:去除PPG运动伪影的IEEE论文的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MFAN论文阅读笔记(待复现)

    论文标题:MFAN: Multi-modal Feature-enhanced Attention Networks for Rumor Detection 论文作者:Jiaqi Zheng, Xi Zhang, Sanchuan Guo, Quan Wang, Wenyu Zang, Yongdong Zhang 论文来源:IJCAI 2022 代码来源:Code 一系列 基于深度神经网络 融合 文本和视觉特征 以产生多模态后表示的多媒体谣言检测器被提出,其表现

    2024年02月08日
    浏览(28)
  • FixMatch+DST论文阅读笔记(待复现)

    论文标题:FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence 论文作者:Kihyuk Sohn, David Berthelot, Chun-Liang Li, Zizhao Zhang, Nicholas Carlini, Ekin D. Cubuk, Alex Kurakin, Han Zhang, Colin Raffel 论文来源:NeurIPS 2020 代码来源:Code 半监督学习有效的利用没有标注的数据,从而提高模型的

    2024年02月08日
    浏览(30)
  • 一种具有轨迹优化的无人驾驶车实时运动规划器 论文阅读

    论文题目:A Real-Time Motion Planner with Trajectory Optimization for Autonomous Vehicles Abstract 本文的实时规划器首先将空间离散化,然后基于一组成本函数搜索出最佳轨迹。迭代优化所得到的轨迹的Path和Speed。 post-optimization计算复杂度低,能够在几次迭代内收敛到一个更高质量的解,该框

    2024年01月17日
    浏览(42)
  • 三维生成:Score Jacobian Chaining论文阅读/复现

    项目地址:Score Jacobian Chaining (ttic.edu) 论文地址:[2212.00774] Score Jacobian Chaining: Lifting Pretrained 2D Diffusion Models for 3D Generation (arxiv.org) 源码地址:GitHub - pals-ttic/sjc: Score Jacobian Chaining: Lifting Pretrained 2D Diffusion Models for 3D Generation (CVPR 2023)         (有Dreamfusion,DreamFields等相关基础

    2024年04月10日
    浏览(36)
  • 论文阅读:四足机器人对抗运动先验学习稳健和敏捷的行走

    论文:Learning Robust and Agile Legged Locomotion Using Adversarial Motion Priors 进一步学习:AMP,baseline方法,TO 介绍了一种新颖的系统,通过使用对抗性运动先验 (AMP) 使四足机器人在复杂地形上实现稳健和敏捷的行走。主要贡献包括为机器人生成AMP数据集,并提出一种教师-学生训练框架

    2024年02月21日
    浏览(37)
  • 论文阅读:MotionNet基于鸟瞰图的自动驾驶联合感知和运动预测

    MotionNet:基于鸟瞰图的自动驾驶联合感知和运动预测 论文地址: MotionNet: Joint Perception and Motion Prediction for Autonomous Driving Based on Bird’s Eye View Maps | IEEE Conference Publication | IEEE Xplore 代码地址: GitHub - pxiangwu/MotionNet: CVPR 2020, \\\"MotionNet: Joint Perception and Motion Prediction for Autonomous Dri

    2024年02月19日
    浏览(31)
  • GraphDTA论文阅读小白笔记(附代码注释和复现流程)

    具体代码复现以及代码注释可以查看https://github.com/zhaolongNCU/Demo-GraphDTA- 1.发展前景: 新药设计需要花费2.6billion,17years 药物再利用已被用于现实的疾病中 为了有效地重新调整药物的用途,了解哪些蛋白质是哪些药物的靶标是有用的 高通量筛选方法高消耗,并且彻底地完成搜

    2024年02月15日
    浏览(30)
  • Deep learning of free boundary and Stefan problems论文阅读复现

    在这项工作中,作者提出了一个基于物理信息神经网络的多网络模型,来解决一类一般的正和逆自由边界问题,称为Stefan问题。具体地说,用两个深度神经网络来近似未知解以及任何移动边界。作者提供了三个案例研究(一维一相Stefan问题,一维二相Stefan问题,二维一相Ste

    2024年02月08日
    浏览(33)
  • 【论文阅读】点云地图动态障碍物去除基准 A Dynamic Points Removal Benchmark in Point Cloud Maps

    终于一次轮到了讲自己的paper了 hahaha,写个中文的解读放在博客方便大家讨论 Title Picture Reference and prenotes paper: https://arxiv.org/abs/2307.07260 code: https://github.com/KTH-RPL/DynamicMap_Benchmark b站:地图动态障碍物去除总结 ITSC’23: A Dynamic Points Removal Benchmark in Point Cloud Maps 主要就是2019年末

    2024年02月06日
    浏览(31)
  • 【论文阅读+复现】AniPortrait: Audio-Driven Synthesis of Photorealistic Portrait Animation

    AniPortrait:音频驱动的逼真肖像动画合成。 code:Zejun-Yang/AniPortrait: AniPortrait: Audio-Driven Synthesis of Photorealistic Portrait Animation (github.com) paper:[2403.17694] AniPortrait: Audio-Driven Synthesis of Photorealistic Portrait Animation (arxiv.org) 出处:腾讯,2024.3.26 总结: AniPortrait,一个由音频和参考肖像

    2024年04月16日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包