matlab 去噪,matlab去噪函数

  matlab 去噪,matlab去噪函数

  【信号去噪】基于sparrow算法优化VMD用matlab代码实现信号去噪_ MATLAB仿真博客的技术博客_博客

  1.介绍了一种基于SSAVMD算法的信号去噪方法。具体来说,根据麻雀优化算法的数学模型,进行参数初始化,在取值范围内初始化麻雀的位置向量,根据位置向量对原始振动信号进行VMD分解,然后计算每个麻雀位置的平均包络熵;更新最小平均包络熵,即获取当前种群中最佳个体的位置,更新当前麻雀个体的空间位置;输出最佳麻雀个体的位置向量,得到VMD的分解参数组合;根据得到的分解参数组合,对分解后的IMF分量求和,得到重构信号,得到去噪信号。本发明解决了现有技术中原有的VMD算法的分解参数需要根据经验手动确定,从而无法获得最佳的分解结果,影响信号去噪效果的问题。

  第2部分代码功能[sampen]=sampen (series,dim,r)

  control=~ isempty(series);

  assert(control,用户必须引入一个时间序列(first inpunt)。);

  control=~ isempty(dim);

  assert(control,用户必须引入一个嵌入维度(第二个输入)。);

  control=~ isempty(r);

  assert(control,用户必须引入一个tolerance:r(第三个输入)。);

  级数=(级数-均值(级数))/标准差(级数);

  N=长度(系列);

  结果=零(1,2);

  对于j=1:2

  m=dim j-1;

  模式=NaN(m,N-m ^ 1);

  count=NaN(1,N-m);

  如果m==1

  模式=系列;

  其他

  因为i=1:m

  patterns(i,)=series(I:N-m I);

  目标

  目标

  对于i=1:N - m

  如果m==1

  temp=ABS(patterns-repmat(patterns(:I),1,N-m 1));

  其他

  temp=max(ABS(patterns-rep mat(patterns(:I),1,N-m 1));

  目标

  bool=(temp=r);

  count(I)=(sum(bool)-1);

  目标

  count=count/(N-m-1);

  结果(j)=平均值(计数);

  目标

  SampEn=log(结果(1) /结果(2));

  目标

  3运行结果

  4参考文献

  原创作品来自matlab研究助手,

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: