当前位置 : 主页 > 编程语言 > python >

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

来源:互联网 收集:自由互联 发布时间:2022-09-29
1 内容介绍 一种基于WOAVMD算法的信号去噪方法,具体为:根据鲸鱼优化算法分别建立目标包围,发泡网攻击以及猎物搜寻的数学模型,然后进行初始化参数,在取值范围内初始化鲸鱼的位置向

1 内容介绍

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

【信号去噪】基于鲸鱼优化算法优化VMD实现数据去噪附matlab代码_初始化

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

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 运行结果

【信号去噪】基于鲸鱼优化算法优化VMD实现数据去噪附matlab代码_初始化_03

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

4 参考文献

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

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

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

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


网友评论