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

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

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

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

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

Matlab 复制代码
%% 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等。

相关推荐
机器之心5 分钟前
刚刚,Grok4跑分曝光:「人类最后考试」拿下45%,是Gemini 2.5两倍,但网友不信
人工智能
wei_shuo7 分钟前
飞算 JavaAI 开发助手:深度学习驱动下的 Java 全链路智能开发新范式
java·开发语言·飞算javaai
熊猫钓鱼>_>7 分钟前
用Python解锁图像处理之力:从基础到智能应用的深度探索
开发语言·图像处理·python
小小小小王王王16 分钟前
求猪肉价格最大值
数据结构·c++·算法
GO兔18 分钟前
开篇:GORM入门——Go语言的ORM王者
开发语言·后端·golang·go
蹦蹦跳跳真可爱58921 分钟前
Python----大模型(使用api接口调用大模型)
人工智能·python·microsoft·语言模型
小爷毛毛_卓寿杰22 分钟前
突破政务文档理解瓶颈:基于多模态大模型的智能解析系统详解
人工智能·llm
Mr.Winter`23 分钟前
障碍感知 | 基于3D激光雷达的三维膨胀栅格地图构建(附ROS C++仿真)
人工智能·机器人·自动驾驶·ros·具身智能·环境感知
好开心啊没烦恼32 分钟前
Python 数据分析:numpy,抽提,整数数组索引与基本索引扩展(元组传参)。听故事学知识点怎么这么容易?
开发语言·人工智能·python·数据挖掘·数据分析·numpy·pandas
磊叔的技术博客38 分钟前
LLM 系列(六):模型推理篇
人工智能·面试·llm