• 【信号去噪】基于鲸鱼算法优化VMD实现信号去噪附matlab代码


    1 内容介绍

    一种基于WOAVMD算法的信号去噪方法,具体为:根据鲸鱼优化算法分别建立目标包围,发泡网攻击以及猎物搜寻的数学模型,然后进行初始化参数,在取值范围内初始化鲸鱼的位置向量,根据位置向量对原始振动信号进行VMD分解,然后计算每个鲸鱼位置下的平均包络熵;更新最小平均包络熵,即获得当前群体中最佳个体的位置更新当前鲸群个体的空间位置;输出最佳鲸鱼个体的位置向量,即得VMD的分解参数组合;根据所得到的分解参数组合对信号进行VMD分解,将分解出IMF分量相加得到重构信号,即得去噪后的信号.本发明解决了现有技术中存在的原始VMD算法的分解参数需要根据经验进行人工确定,导致无法得到最优分解结果,从而影响信号的去噪效果的问题.​

    2 仿真代码

    function ret = select(individuals, sizepop)

        fitness1 = 1 ./ individuals. fitness;

        sumfitness = sum(fitness1);

        sumf = fitness1 ./ sumfitness;

        index = [];

        for i = 1:sizepop

            pick = rand;

            while pick == 0

                pick = rand;

            end

            for i = 1:sizepop

                pick = pick - sumf(i);

                if pick < 0

                    index = [index, i];

                    break;

                end

            end

        end

        individuals. chrom = individuals. chrom(index, :);

        individuals. fitness = individuals. fitness(index);

        ret = individuals;

    end

    3 运行结果

    4 参考文献

    [1]刘嘉敏, 彭玲, 刘军委,等. 基于遗传算法的VMD参数优化与小波阈值的轴承振动信号去噪分析[C]// 第二十七届全国振动与噪声应用学术会议论文集. 2016.

    [2]李辉, 范邦稷, 翟芳,等. 一种基于WOA-VMD算法的信号去噪方法:, CN112597930A[P]. 2021.

    博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

    部分理论引用网络文献,若有侵权联系博主删除。

  • 相关阅读:
    java中的static关键字几个注意点
    C++敲桌子游戏
    Go语言函数基础
    (附源码)计算机毕业设计ssm《Python程序设计》教辅系统
    代码还原之 函数
    唤醒手腕 Matlab 游戏编程常用技术知识点详细教程(更新中)
    PIL中的P模式、P模式转为L模式
    【Python&GIS】基于Python实现栅格转面、面转栅格(栅格、矢量互转)
    【无标题】灵遁者沉思:每个人都有“第三只眼睛”
    计算机毕业设计SSM电影售票管理系统【附源码数据库】
  • 原文地址:https://blog.csdn.net/qq_59747472/article/details/126673536