基于最大重叠离散小波变换的PPG信号降噪(MATLAB 2018)

光电容积脉搏波PPG信号结合相关算法可以用于人体生理参数检测,如血压、血氧饱和度等,但采集过程中极易受到噪声干扰,对于血压、血氧饱和度测量的准确性造成影响。随着当今社会医疗保健技术的发展,可穿戴监测设备对于PPG信号的质量提出了更高要求,一些信号传统的处理方式,如傅里叶变换、自适应滤波、独立分量分等信号研究在处理效果方面已逐渐无法满足目前的需求,因此进一步探寻更加准确的信号分析方法变得尤为重要。

获取PPG信号只需要特定的光源和相关检测传感器,适用于日常的穿戴式人体生理信息监测系统,体积较小且成本低,通过便携式检测装置使用者可以随时了解到自身的特定生理参数变化,在很大程度上能够预防慢性疾病。此外阶段性生理数据也便于进行医疗诊断,对临床诊断方面也具有极为重要的意义。

光电容积脉搏波信号的噪声消除已经成为基于PPG信号进行生理参数检测的难点和重点,并且利用PPG信号采集设备进一步搭建可穿戴系统相对比一般的监测仪器更安全稳定。连续无创的检测方式使得诊断过程更加简便,在一定程度上减轻患者的检查治疗痛苦,国家对于可穿戴式的监测设备、统的发展也是大力支持,并且该领域目前社会关注程度也较高,随着电子产品趋于微型化、低功耗方向发展,实现便携式生理信号无创连续监测已经成为健康监护的最新方向。

鉴于此,提出一种基于最大重叠离散小波变换的PPG信号降噪方法,运行环境为MATLAB 2018。

%% Method 1: apply lowpass filter
[b,a] = butter(demod_lpf_ord,0.24,'low');
y = filtfilt(b,a,mcu_adc_raw);% Plotting
plot(mcu_adc_raw,'r-')%% Method 2: apply lowpass filter
% Decompose Signal using the MODWT
% Generated by MATLAB(R) 9.10 and Wavelet Toolbox 5.6.
% Logical array for selecting reconstruction elements
levelForReconstruction = [true, true, true, true, true, false, false, false, false, false, false, false, false, false, true];
% Perform the decomposition using modwt
wt = modwt(y, 'sym4', 14);
% Construct MRA matrix using modwtmra
mra = modwtmra(wt, 'sym4');
% Sum along selected multiresolution signals
mcu_adc_raw1 = sum(mra(levelForReconstruction,:),1);outputcsv = fopen('reconstructed_stream_raw.csv', 'w');
mcu_adc_raw1 = mcu_adc_raw1';
fprintf(outputcsv,'%f\n',mcu_adc_raw1(:,:));hold all;grid on;
plot(mcu_adc_raw1, 'b');
ylabel('magnitude');
legend('original ppg','filtered ppg','Location','southeast');
%完整代码:https://mbd.pub/o/bread/mbd-ZZealpdw
xlabel('time');

图片

图片

工学博士,担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/22639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

卷积学习笔记

上下采样: 上采样(Upsampling)和下采样(Downsampling)是图像处理和信号处理中常用的两种技术,它们分别用于增加或减少数据的分辨率或采样率。 下采样(Downsampling) 定义&#xf…

【Kubernetes】k8s集群的污点、容忍、驱逐 以及排障思路

污点和容忍以及驱逐 一、污点(Taint) 污点介绍 节点亲和性,是Pod的一种属性(偏好或硬性要求),它使Pod被吸引到一类特定的节点。Taint 则相反,它使节点能够排斥一类特定的 Pod。 Taint 和 Tol…

Word忘记保存?请使用Word隐藏备份文件

大家用Word写材料时,如果忘记保存,可以使用Word隐藏备份文件找回未保存的文件。(仅供参考) Windows7、8、10、11系统的设置如下: 执行上述操作,可以在word文件菜单中信息项的自动保存中找到了。上述内容…

Java中的接口与抽象类:区别与联系

Java中的接口与抽象类:区别与联系 在Java中,interface(接口)和abstract class(抽象类)是两种重要的抽象类型,用于定义对象的抽象行为和结构。虽然Java 8之后接口引入了默认方法和静态方法&…

Mac保姆级配置jdk环境

1.找到下载的jdk环境 通常是这个。留作备用 /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/bin 然后新开一个终端下执行以下命令 sudo vim ~/.bash_profile 进入编辑模式后 按 i 开始添加内容结束编辑模式按 ESC结束后保存输入 :wq!不保存输入 :q! 注意…

索引函数失效场景如何配置避免失效

1、全表扫描: 1、场景: 当查询条件没有使用索引,或者索引没有被正确使用时,数据库可能会进行全表扫描,导致索引失效。 2、避免方法: (1)确保查询条件中的字段已经被索引。 &…

理解NSCopying协议

NSCopying 协议用于让对象能够被复制。实现这个协议的类需要定义如何创建该对象的副本。这个副本是独立的,不会与原对象共享内存地址。 为什么需要 NSCopying 协议? 当你需要复制对象时,例如将对象存储到一个集合(如数组、字典&…

使用若依框架RuoYi前后端分离版+运行+自动生成页面进行导入进行开发+工具(完整版)

若依后台预览 摘要: 随着前后端分离开发模式的流行,越来越多的开发者开始将项目的前端和后端分离开发,以提高开发效率和项目的灵活性。若依框架作为一款优秀的开源后台管理系统,提供了强大的权限管理和代码生成功能,非常适合前后端分离开发。 一、若依框架介绍 若依框架…

C++中的deque详解

1. 引言 在C标准模板库(STL)中,deque(双端队列)是一个非常重要的容器,它支持在序列的两端进行快速插入和删除操作。与vector不同,deque不需要在内存中连续存储元素,因此它对于需要在序列中间进行大量插入和…

06.docker容器管理

docker的容器管理 创建并且启动一个nginx容器 docker run -d -p 80:80 nginx:latest run(创建并运行一个容器) -d 放在后台 -p 端口映射 -v 源地址(宿主机):目标地址(容器)创建一个centos系统的容器,并且进入到系统里面 nginx docker镜…

C++大型项目管理:通用CMake框架的架构奥秘

往期本博主的 C 精讲优质博文可通过这篇导航进行查找: Lemo 的C精华博文导航:进阶、精讲、设计模式文章全收录 前言 在当今的软件开发环境中,随着 C 项目的不断扩大和变得越来越复杂,有效地管理这些项目成为了一个重要的挑战。 C…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第35课-3D互动教材

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第35课-3D互动教材 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎&am…

Zero Infinity原理

如上图,一次加载一个layer的一个weights分片(一层的1/DP的参数量),Broadcast至所有rank,计算各自的梯度,再Reduce至其中一个负责的rank,offload存放至CPU Memory,释放GPU里的weights…

i.MX8MP平台开发分享(TMU驱动及用户接口篇)

概念 thermal zone 温度控制区域。sensor 获取温度。trip points 温度跳变点,或者是温度阈值。cooling device Thermal Cooling Device 是可以降温设备的抽象,能降温的设备比如风扇,这些好理解,但是像CPU、GPU 这些 Cooling devi…

探究Spring中的Controller:单例、多例及其并发安全性

1. Spring框架的简介 Spring是一个开源的Java平台,用来简化企业级应用程序的开发。Spring框架提供了一整套统一的编程模型,使得开发人员能够更加专注于业务逻辑,而不必去处理复杂的技术细节。Spring包含多个模块,其中最常使用的就…

cesium Material的理解与使用

1.简介 材质Material可以是比较简单的,比如直接将一张图片赋予表面,或者使用条纹状、棋盘状的图案;也可以使用Fabric和GLSL,重新创建一个新的材质或者组合现有的材质。例如,我们可以通过程序生成的纹理(procedural bri…

el-input实现后缀图标和clearable的兼容,调整el-input clearable与自定义图标展示位置问题

背景:常见的输入框存在两个图标的展示效果都是清空在前搜索或其他图标在后 常见以及最终实现效果(清空图标在前,搜索图标在后) BUG以及el-input默认效果 问题排查 通过控制台审查元素能够发现,默认的效果是自定义图标…

pyautogui模拟鼠标拖动选中文字的基本知识(附Demo)

目录 前言1. Demo1.1 特定窗口点击拖动1.2 屏幕中间点击拖动 2. 基本知识 前言 相关知识推荐阅读: 详细分析Python中的Pyautogui库(附Demo)详细分析PyAutoGUI中的locate函数(附Demo) 1. Demo 先给出一部分代码展示…

银河麒麟操作系统安装conda

参考: https://blog.csdn.net/Andy_shenzl/article/details/136294743 查看系统版本 uname -m 下载对应版本 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?CM&OD 安装 bash Anaconda3-2023.09-0-Linux-aarch64.sh 刷新环境 source ~/.bashrc 查看…

基于C#的计算机与安捷伦34970A通信方法

概述 安捷伦34970A采集数据,34970A支持RS232接口,但是如果直接用winform自带的seriaport类基本是没必要使用的,安捷伦等仪表通讯需要用到VISA的库。 库的获取 1. 是德科技的IO Library. 2. NI下载NI-VISA. 两者用法接近. 代码如下 using…