一维时间序列信号的小波模极大值分解与重建(matlab R2018A)

数学上称无限次可导函数是光滑的或没有奇异性,若函数在某处有间断或某阶导数不连续,则称函数在此处有奇异性,该点就是奇异点。奇异性反映了信号的不规则程度,因为信号的奇异点和突变部分往往携带者重要信息,因此信号的奇异性检测非常有必要。信号的奇异性由Lipschitz指数来描述和衡量。

通常情况下,信号的奇异性可分为两种情况:一种是信号在某一时刻,其幅值发生突变,引起信号的不连续性,另一种是信号外观上光滑,其幅值没有突变,但是在信号的一阶微分上有突变产生。Fourier变换是研究函数奇异性的基本工具,但它只能确定信号是否具有奇异性和奇异性的强弱,而不能确定奇异点的分布情况及奇异点的位置。由于小波变换理论在时域和频域良好的局部化或近似局部化性质,因此小波变换作为检测信号奇异性的工具,较好地解决了信号奇异检测的问题。

当小波函数可看做某一平滑函数的一阶导数时,信号小波变换模的局部极值点对应于信号的突变点(或边缘),因此,采用检测小波变换系数模的过零点和局部极值点的方法可以检测信号的突变点。

鉴于此,采用小波模极大值分解与重建对一维时间序列信号进行处理,运行环境为matlab R2018A,主运行代码如下:

%% 小波模极大值重构是采用的交替投影法
close all;
points = 1024;   % 所处理数据的长度
level = 6;       % 分解的级数 
sr = 360;        % 抽样率, P gama投影要用的
num_inter = 6;   % 迭代次数  
wf='db3';      % 小波名称       
[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters(wf);% 得到小波变换要用的滤波器
%ecgdata = load('ecg.txt');  %需要分析的信号
%signal = ecgdata(1:points,3)';% 取第3列,不懂可以打开ecg.txt看一下
                              % 这个信号是可以换的,做过一个信号文件就可以。
%signal = signal * 300;        % 乘以300,数据大一点显示出来漂亮一点,不为什么
%调用wave_peak进行小波变换,计算小波分解系数和模极大序列
signal = signal_fig1;
[swa,swd,ddw,wpeak] = wave_peak(signal,level,Lo_D,Hi_D);
% signal:  原始信号;       swa:小波概貌;  swd:小波细节;
% ddw:     局部极大位置; wpeak:小波变换的局部极大序列]
% 作图:左列为各层的概略信号,右列为各层的细节信号(即小波变换)
figure;
subplot(level,1,1); plot(real(signal)); grid on;axis tight;
title('original signal(Upper)、wavelet transform (Lower left)and modulus maxima(Lower right)');
for i=1:level
    %概略信号
    subplot(level+1,3,3*(i)+1);
    plot(swa(i,:)); axis tight; grid on; xlabel('time');
    ylabel(strcat('a   ',num2str(i)));
    %小波变换
    subplot(level+1,3,3*(i)+2);
    plot(swd(i,:)); axis tight;grid on;
    ylabel(strcat('d   ',num2str(i)));
    %模极大值
    subplot(level+1,3,3*(i)+3);
    plot(wpeak(i,:)); axis tight;grid on;
    ylabel(strcat('j=   ',num2str(i)));
end

pswa = swa(level,:);  % pswa: 第level层的概略信号仍然保留为重构用
wframe = (wpeak~=0);  % wframe 中的1标明wpeak非零的位置,即模极大值的位置
%迭代初始化
w0=zeros(1,points);   % 重构信号初始值设为0
[a,d]=swt(w0,level,Lo_D,Hi_D);   % 做一次稳定小波变换,结果在a和d里面,层数level不变
w2=d;                            % w2为待重建小波,上一行和这一行好像可以省去
    for j=1:num_inter            % 循环重构,d -> w2 -> w0 -> d -> w2 -> w0 -> d
       w2=Py_Pgama(d,wpeak,wframe,1,sr);  % 先进行Py投影和 Pgama投影
       w0=iswt(pswa,w2,Lo_R,Hi_R);         % 再进行Pv投影(小波逆变换)
       [a,d]=swt(w0,level,Lo_D,Hi_D);      % Pv
    end
% 最后通过w2做逆小波变换得到重构信号:
pswa = iswt(swa(level,:),w2,Lo_R,Hi_R); % 计算重建信号
    
% 原信号和由模极大重建信号的比较
figure,
subplot(211);
plot(pswa(1:points));        % 重构信号描图
title('The comparation between original signal (Upper) and reconstructed signal (Lower)');
subplot(212);
plot(signal(1:points),'r');  % 原始信号描图

%分别计算重建小波以及原信号的信噪比
werr = w2 - swd; % 原信号的小波变换的细节部分和重构信号的细节部分的误差,即 
% 原信号的小波变换(swd)和重建后的小波变换(w2)的比较
figure,
wsnr = zeros(level,1);     % 存储每一层的信噪比
for m=1:level              % norm为2范数,即均方值
    wsnr(m) = 20*log10(norm(swd(m,:))/norm(werr(m,:)));
    subplot(level,1,m);
    plot(swd(m,:)),hold on,%红色的重构小波变换覆盖在原图上
    plot(w2(m,:),'r');grid on;ylabel(strcat('j=',num2str(m))),axis tight;
    if(m==1)
        title('The wavelet transform of original signal (blue) and the wavelet transform of reconstructed signal (red)');
    end
end

wsnr                                   % 小波域计算出的各层的信噪比
err = pswa(1:points)-signal(1:points); % 时域的误差信号
mse = mean(err.^2)                      % 均方误差
smse = mean(signal.^2);                 % 信号的均方值
%完整代码:https://mbd.pub/o/bread/mbd-ZZeTmZ5u
snr = 10*log10(smse/mse)                % 时域中计算的信噪比(dB值)

图片

图片

图片

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

资深人士称:AI开发游戏会降低游戏成本和体验,不会降低就业率

易采游戏网6月1日最新消息:本周在TD Cowen会议上,R星的母公司Take-Two的CEO Strauss Zelnick对于人工智能(AI)是否会影响游戏开发行业表达了自己的看法。他坚定地认为,AI绝对会改变游戏的制作方式,但不会降低游戏行业的就业水平。…

1882java密室逃脱管理系统 Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java密室逃脱管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助采用了java设计,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&…

YOLOv8 segment介绍

1.YOLOv8图像分割支持的数据格式: (1).用于训练YOLOv8分割模型的数据集标签格式如下: 1).每幅图像对应一个文本文件:数据集中的每幅图像都有一个与图像文件同名的对应文本文件,扩展名为".txt"; 2).文本文件中每个目标(object)占一行…

OCR图片转Excel表格:没结构化的弊端

随着OCR技术的不断发展,将表格图片转为excel已不再是难题,但是,目前市面上的程序还大多处于仅能将图片表格转为普通的excel格式阶段,而不能将其结构化,这样就会产生许多的弊端,具体弊端如下: &l…

6个适合在家做的副业兼职,做得好的月入过万,适合上班族和宝妈

嘿,亲爱的朋友们!是不是常常觉得钱包瘪瘪,却又因为种种原因无法外出兼职? 别急,我来为大家揭秘几个在家也能轻松赚钱的靠谱副业,让你足不出户也能月入过万,从此告别财务烦恼! 副业一…

xcode删除依赖包package,删除不必要的依赖项

点击项目,然后点击PROJECT项里面的Package DepenDependencies: 选中一个依赖项,然后点击减号,就可以把依赖项删除掉了,左侧项目下面的Package已经没有了这个依赖项 TARGET下面的package也要删除:在这里删除…

OceanBase开发者大会实录-李楠:4条路径+6大方案,关键业务系统数据库的升级之路

本文来自2024 OceanBase开发者大会,OceanBase 金融与政企事业部解决方案总监李楠的演讲实录 ——《关键业务系统分布式数据库升级路线选择和技术演进之路》。完整视频回看,请点击这里>> 大家好,我是 OceanBase 金融与政企事业部…

第一周 数据结构与算法以及复杂度分析

数据结构与算法 算法定义 算法(algorithm)是在有限时间内解决特定问题的一组指令或操作步骤,它具有以下特性。 1.问题是明确的,包含清晰的输入和输出定义。 2.具有可行性,能够在有限步骤、时间和内存空间下完成。 3.…

利用WMI横向移动

一. WMI介绍和使用 1. WMI介绍 WMI是Windows在Powershell还未发布前,微软用来管理Windows系统的重要数据库工具,WMI本身的组织架构是一个数据库架构,WMI 服务使用 DCOM或 WinRM 协议, 在使用 wmiexec 进行横向移动时,windows 操…

小白跟做江科大32单片机之对射式红外传感器计次

原理部分 1中断示意图,中断会打断主函数的执行,终端执行完成之后再返回主函数继续执行 2.STM32中断 这些灰色的是内核中断 这些白色的是普通中断 3.NVIC统一管理中断,每个中断通道都拥有16个可编程的优先等级,可对优先级进行分组…

超大功率光伏并网逆变器学习(三相)

1.超大功率用的IGBT开关频率通常很低,比如6KHz 2.线电压和相电压的关系 相电压 A AB线电压-CA线电压 相电压 B BC线电压-AB线电压 相电压 C CA线电压-BC线电压 3.坐标变换 ABC三相信号通过Clark坐标变换得到αβ两相静止信号,其中α与A相重合,β与α…

ElasticSearch教程(详解版)

本篇博客将向各位详细介绍elasticsearch,也算是对我最近学完elasticsearch的一个总结,对于如何在Kibana中使用DSL指令,本篇文章不会进行介绍,这里只会介绍在java中如何进行使用,保证你看完之后就会在项目中进行上手&am…

为何选择 MindMapper

MindMapper是一款专业的可视化思维导图软件,通过智能绘图方法,在管理信息和 处理工作流程中,帮助提高组织、审查、合作、分享和交流能力。 企业创造力 在企业界,MindMapper思维导图软件可以提高生产力和沟通效果,以及…

复试不考机试,初试300分以上,上岸稳了?东北林业大学计算机考研考情分析!

东北林业大学(Northeast Forestry University),简称东北林大(NEFU),位于黑龙江省哈尔滨市,是一所以林科为优势、林业工程为特色的中华人民共和国教育部直属高校,由教育部、国家林业局…

LIO-EKF: 运行数据UrbanNav与mid360设备详细教程

一、代码连接 代码下载连接: YibinWu/LIO-EKF: Maybe the simplest LiDAR-inertial odometry that one can have. (github.com) 编译步骤: cd srcgit clone gitgithub.com:YibinWu/LIO-EKF.gitcatkin_makesource devel/setup.bash 运行步骤: …

2024年6月1日 (周六) 叶子游戏新闻

Embracer探讨单机游戏大作涨价超过70美元的可能性在Embracer集团等待公布新公司名称的同时,他们对游戏大作的价格上涨做出了评论。几年来,游戏大作的价格已经达到了70美元的门槛。Embracer集团的CEO Lars Wingefors在采访中表示,电子游戏行业…

STM32 定时器与PWM的LED控制

学习目标: 1. 使用定时器的某一个通道控制LED周期性亮灭; 2. 采用定时器PWM模式,让 LED 以呼吸灯方式渐亮渐灭。 一、定时器 1、STM32定时器介绍 STMicroelectronics是STM32微控制器中的重要块,具有丰富的外设和功能&#xff0…

纯Java实现Google地图的KMZ和KML文件的解析

目录 前言 一、关于KMZ和KML 1、KMZ是什么 2、KML是什么 二、Java解析实例 1、POM.xml引用 2、KML 基类定义 3、空间对象的定义 4、Kml解析工具类 三、KML文件的解析 1、KML解析测试 2、KMZ解析测试 四、总结 前言 今天是六.一儿童节,在这里祝各位大朋友…

网络运维的重要性

一、介绍 网络运维,英文名为Network Operations (NetOps),指的是负责维护和管理企业或组织内部网络设备和系统的团队或个人。网络运维的主要目标是确保网络的稳定运行和高效性能,以满足企业或组织的需求。 网络运维工作涵盖了多个方面&…

5.算法讲解之-二分查找(简单易懂)

1.简介 1.二分查找的思路简单易懂,较难的是如何处理查找过程中的边界条件,当较长时间没写二分查找的时候就容易忘记如何处理边界条件。 2.只有多写代码,多做笔记就不易忘记边界条件 2.算法思路 正常查找都是从头到尾查找一个数字是否在数组中…