当前位置: 首页 > news >正文

CEEMDAN-CPO-VMD二次分解(CEEMDAN+冠豪猪优化算法CPO优化VMD)

CEEMDAN-CPO-VMD二次分解(CEEMDAN+冠豪猪优化算法CPO优化VMD)

目录

    • CEEMDAN-CPO-VMD二次分解(CEEMDAN+冠豪猪优化算法CPO优化VMD)
      • 效果一览
      • 基本介绍
      • 程序设计
      • 参考资料

效果一览

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

基本介绍

首先运用CEEMDAN对数据进行一次分解,之后运用冠豪猪优化算法(CPO)优化VMD对一次分解结果的第一个高频分量进行分解,充分提取信息。
实现平台:Matlab,中文注释清晰,非常适合科研小白
冠豪猪优化器(Crested Porcupine Optimizer,CPO)于2024年1月发表在中科院1区SCI期刊Knowledge-Based Systems上。
模型运行步骤:
1.利用冠豪猪优化算法优化VMD中的参数k、a,分解效果好,包含分解效果图、频率图、收敛曲线等图等。
2.冠豪猪优化算法CPO是24年最新提出的新算法
3.相较一次分解,二次分解更能准确提取数据信息,可用于更高精度的预测或分类
3.附赠测试数据 直接运行main即可一键出图

在这里插入图片描述

程序设计

  • 完整源码和数据获取方式私信回复Matlab基于CEEMDAN-CPO-VMD二次分解(CEEMDAN+冠豪猪优化算法CPO优化VMD)。
clear all
close all
clc
warning off
%% ceemdan分解
% 加载信号
signal=xlsread('data.xlsx');
%% 分解
addpath(genpath(pwd)) % 添加路径
D_num =5; 
IMF = decomposition_compilations(signal,D_num); % imf格式为:模态个数 x 数据长度rmpath(genpath(pwd)) % 移除路径
%% 绘图-最后一个imf可视为残差% plot_func(signal, IMF)%% 二次分解 CPO-VMD分解
%% 参数设置
data=IMF(1,:);
len=length(data);
f=data(1:len);% alpha = 2000;        % moderate bandwidth constraint
tau = 0;            % noise-tolerance (no strict fidelity enforcement)
% K = 4;              % 4 modes
DC = 0;             % no DC part imposed
init = 1;           % initialize omegas uniformly
tol = 1e-7;%% 普通VMD分解
%[u, u_hat, omega] = VMD(f, alpha, tau, K, DC, init, tol);
% 分解
[u1, u_hat1, omega1,curve,Target_pos] = WLVMD(f, tau, DC, init, tol);
figure
plot(curve,'linewidth',1.5);
title('收敛曲线')
xlabel('迭代次数')
ylabel('适应度值')
grid on%分解
figure
subplot(size(u1,1)+1,1,1);
plot(f,'k');grid on;
title('原始数据');
for i = 1:size(u1,1)subplot(size(u1,1)+1,1,i+1);plot(u1(i,:),'k');
enddisp(['最优K值为:',num2str(Target_pos(2))])
disp(['最优alpha值为:',num2str(Target_pos(1))])
disp(['最优综合指标为:',num2str(min(curve))])
%% 计时结束
%% 频域图

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/129215161
[2] https://blog.csdn.net/kjm13182345320/article/details/128105718

http://www.lryc.cn/news/498866.html

相关文章:

  • 图论理论基础和存储方式的实现
  • 【实分析】【二】2.2 (c)自然数的序
  • STM32串口接收与发送(关于为什么接收不需要中断而发生需要以及HAL_UART_Transmit和HAL_UART_Transmit_IT的区别)
  • k8s 之storageclass使用nfs动态申请PV
  • vue移动端实现下载(截图)功能
  • 【Golang】Golang基础语法之面向对象:结构体和方法
  • 【西门子PLC.博途】——在S71200里写时间设置和读取功能块
  • 位运算(一)位运算简单总结
  • 工厂方法模式的理解和实践
  • C# 设计模式--观察者模式 (Observer Pattern)
  • 【开发语言】层次状态机(HSM)介绍
  • 03-13、SpringCloud Alibaba第十三章,升级篇,服务降级、熔断和限流Sentinel
  • 【k8s 深入学习之 event 聚合】event count累记聚合(采用 Patch),Message 聚合形成聚合 event(采用Create)
  • leetcode104.二叉树的最大深度
  • 蓝桥杯2117砍竹子(简单易懂 包看包会版)
  • LCD与lvgl
  • SpringBoot 赋能:精铸超稳会员制医疗预约系统,夯实就医数据根基
  • android studio 读写文件操作(应用场景二)
  • 小尺寸低功耗蓝牙模块在光伏清扫机器人上的应用
  • 防火墙有什么作用
  • MongoDB-BSON 协议与类型
  • 学习threejs,使用VideoTexture实现视频Video更新纹理
  • 怎么获取键值对的键的数值?
  • 数据结构排序算法详解
  • 在Linux设置postgresql开机自启动,创建一个文件 postgresql-15.service
  • 【kafka】消息队列的认识,Kafka与RabbitMQ的简单对比
  • ProjectSend 身份认证绕过漏洞复现(CVE-2024-11680)
  • Android笔记(三十四):onCreate执行Handler.post在onResume后才能执行?
  • 关闭模组的IP过滤功能
  • 算法分析与设计复习笔记