一维时间序列突变检测方法(小波等,MATLAB R2021B)

ops/2024/11/15 4:46:59/

信号的突变点检测问题是指在生产实践中,反映各种系统工作状态的信号,可能因为受到不同类型的噪声或外界干扰而发生了信号突变,导致严重失真的信号出现,因此必须探测突变出现的起点和终点。研究目的在于设计出检测方案,可以最快地检测出系统中信号非正常变化的时刻,作出后续处理,以减小损失。目前在国内,信号的突变点检测课题在滚动轴承、水利水电、智能空间行为识别等许多工程实践和科学研究领域已得到广泛研究。

自上世纪经典DSP方法提出并被逐渐成熟地应用以来,信号的突变点检测问题一直是一个较热的研究课题。对于信号突变点检测问题,目前已经提出了许多有效的经典DSP方法,例如经典的基于信号能量的检测法,然而其易于受噪声干扰且需要延迟一段时间以计算能量,因此发展了不少改进方法,比如基于累积和CUSUM的方式因具有良好的性能而得到广泛应用。CUSUM具有递归形式能够进行实时更新操作,计算效率比较高。虽然最初提出CUSUM来处理单个数据流,但是目前基于CUSUM的检测算法大多利用了来自多个传感器的信息。CUSUM通常需要信号突变前和突变后的统计信息作为检测的前提,在某些情形下,信号发生突变后的分布模型的统计信息是可以获得的,但在更一般场景中,由于突变原因多样且往往未知,变更后的模型发生了根本改变,突变后的统计信息是无法获得或预知的。又有科研人员提出了突变信息快速检测方法,快速检测方法旨在仅仅利用少量突变后的数据来进行训练,以得到信号突变后的模型,以此来最大程度地减少检测延迟。放眼许多应用场景,信号突变以后的分布模型可能来自一组潜在的可能模型,换句话说,变更后模型有多种假设。例如,检测风机轴承故障时,引起该故障的原因故障可能是外圈故障或内圈故障、滚子缺陷或和保存架故障等。在快速检测方法中,贝叶斯方法的效果比较好,本质上该方法就是提出了信号突变后的几种备选模型,然后通过算法来估计出最优的突变后的信号分布情况,进行进一步处理,从一定意义上放宽了很多场景中对突变后信号信息的依赖,但依然是治标不治本。

鉴于此,采用小波分析等方法对一维时间序列进行突变检测,运行环境为MATLAB R2021B。


function residue = cpnochange(x, statistic)
% compute total residual error in the absence of changes
n = size(x,2);
if n==0residue = NaN;
elseif strcmp(statistic,'mean')residue = n*sum(var(x,1,2));
elseif strcmp(statistic,'rms')residue = sum(n*log(sum(x.^2,2)/n));
elseif strcmp(statistic,'std')residue = sum(n*log(var(x,1,2)));
elseif strcmp(statistic,'linear')residue = sum(n*var(x,1,2) - sum((x-mean(x,2)).*((1:n)-mean(1:n)),2).^2 / (n*var(1:n,1)));
完整代码可通过知乎学术咨询获得:https://www.zhihu.com/consult/people/792359672131756032?isMe=1
end

图片

图片

图片

图片

图片

图片

图片

图片

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


http://www.ppmy.cn/ops/47655.html

相关文章

安全风险 - 检测设备是否为模拟器

在很多安全机构的检测中,关于模拟器的运行环境一般也会做监听处理,有的可能允许执行但是会提示用户,有的可能直接禁止在模拟器上运行我方APP 如何判断当前 app 是运行在Android真机,还是运行在模拟器? 可能做 Framework 的朋友思…

k8s群集调度之 pod亲和 node亲和 标签指定

目录 一 调度约束 1.1K8S的 List-Watch 机制 ⭐⭐⭐⭐⭐ 1.1.1Pod 启动典型创建过程 二、调度过程 2.1Predicate(预选策略) 常见的算法 2.2priorities(优选策略)常见的算法 三、k8s将pod调度到指定node的方法 3.1指…

【C#】中托管与非托管对象区别、托管与非托管DLL区别

C 中的托管与非托管的区别_托管程序和非托管程序-CSDN博客 C# 中托管与非托管对象区别 在C#中,托管对象和非托管对象的主要区别在于内存管理和执行环境: 托管对象 (Managed Objects) 内存管理:托管对象的内存由.NET运行时(CLR…

植物大战僵尸杂交版2.0.88最新版+防闪退工具V2+修改工具+高清工具

植物大战僵尸杂交版,不仅继承原作的经典玩法,而且引入了全新的植物融合玩法,将各式各样的植物进行巧妙的杂交,孕育出前所未有、功能各异的全新植物。 创新的杂交合成系统 游戏引入了创新的杂交合成系统,让玩家可以将不…

跟着Nature学分析:R语言ggplot2包绘制高端组合图

数据和代码获取:请查看主页个人信息!!! 大家好,今天我将介绍高分杂志组合图绘制,图形来源于Nature的一篇文章: 该图展示了转录组多样性的主成分(PCs)与基因组&#xff08…

【全开源】在线题库微信小程序系统源码(ThinkPHP+FastAdmin+UniApp)

打造个性化学习平台 一、引言:在线学习的未来趋势 在数字化时代,线上学习已逐渐成为主流。随着移动互联网的普及,小程序以其轻便、快捷、无需安装的特点,成为用户日常学习的新选择。为了满足广大用户对于在线学习的需求&#xf…

大归纳!!教你使用<string.h>的字符函数与字符串函数!!☑

这篇博客为你归纳了所有的字符函数和最常用的字符串函数,以及对应的模拟实现!!你可以直接循着目录跳到你需要的段落哦!!😍 目录 字符函数 字符分类 字符判断函数 islower——判断小写字母 isupper——…

【Sklearn | 2】sklearn 高级教程

在上一篇基础教程中,我们介绍了 sklearn 的基础使用方法。本文将进一步深入,介绍一些高级功能和技巧,包括管道、特征工程、模型选择与评估、以及集成方法等。 管道(Pipeline) 在实际项目中,数据预处理和模…