【信号去噪】基于EEMD算法实现信号去噪附matlab代码

简介: 【信号去噪】基于EEMD算法实现信号去噪附matlab代码

 1 简介

为了抑制经验模态分解中出现的端点效应和模态混叠现象,利用白噪声辅助数据分析方法——集合经验模态分解构造一个自适应滤波器组,对原信号进行各级滤波,最终得到纯净的信号.然后与小波阈值去噪方法进行比较,通过仿真可以看出,集合经验模态分解构造的滤波器组滤波效果比较理想.

2 部分代码

% 这是一个用于显著性检验的实用程序.

%

%   function [spmax, spmin, flag]= extrema(in_data)

%

% INPUT:

%       in_data: Inputted data, a time series to be sifted(被筛选);

% OUTPUT:

%       spmax: The locations (col 1) of the maxima and its corresponding

%              values (col 2)

%       spmin: The locations (col 1) of the minima and its corresponding

%              values (col 2)

%

% References can be found in the "Reference" section.

%

% The code is prepared by Zhaohua Wu. For questions, please read the "Q&A" section or

% contact

%   zwu@fsu.edu

%

function [spmax, spmin, flag]= extrema(in_data)

flag=1;

dsize=length(in_data);

spmax(1,1) = 1;

spmax(1,2) = in_data(1);

jj=2;

kk=2;

while jj<dsize

   if ( in_data(jj-1)<=in_data(jj) && in_data(jj)>=in_data(jj+1) )

       spmax(kk,1) = jj;

       spmax(kk,2) = in_data (jj);

       kk = kk+1;

   end

   jj=jj+1;

end

spmax(kk,1)=dsize;

spmax(kk,2)=in_data(dsize);

if kk>=4

   slope1=(spmax(2,2)-spmax(3,2))/(spmax(2,1)-spmax(3,1));

   tmp1=slope1*(spmax(1,1)-spmax(2,1))+spmax(2,2);

   if tmp1>spmax(1,2)

       spmax(1,2)=tmp1;

   end

   slope2=(spmax(kk-1,2)-spmax(kk-2,2))/(spmax(kk-1,1)-spmax(kk-2,1));

   tmp2=slope2*(spmax(kk,1)-spmax(kk-1,1))+spmax(kk-1,2);

   if tmp2>spmax(kk,2)

       spmax(kk,2)=tmp2;

   end

else

   flag=-1;

end

msize=size(in_data);

dsize=max(msize);

xsize=dsize/3;

xsize2=2*xsize;

spmin(1,1) = 1;

spmin(1,2) = in_data(1);

jj=2;

kk=2;

while jj<dsize

   if ( in_data(jj-1)>=in_data(jj) && in_data(jj)<=in_data(jj+1))

       spmin(kk,1) = jj;

       spmin(kk,2) = in_data (jj);

       kk = kk+1;

   end

   jj=jj+1;

end

spmin(kk,1)=dsize;

spmin(kk,2)=in_data(dsize);

if kk>=4

   slope1=(spmin(2,2)-spmin(3,2))/(spmin(2,1)-spmin(3,1));

   tmp1=slope1*(spmin(1,1)-spmin(2,1))+spmin(2,2);

   if tmp1<spmin(1,2)

       spmin(1,2)=tmp1;

   end

   slope2=(spmin(kk-1,2)-spmin(kk-2,2))/(spmin(kk-1,1)-spmin(kk-2,1));

   tmp2=slope2*(spmin(kk,1)-spmin(kk-1,1))+spmin(kk-1,2);

   if tmp2<spmin(kk,2)

       spmin(kk,2)=tmp2;

   end

else

   flag=-1;

end

flag=1;

3 仿真结果

image.gif编辑

image.gif编辑

image.gif编辑

4 参考文献

[1]周先春, and 嵇亚婷. "基于EEMD算法在信号去噪中的应用." 电子设计工程 22.8(2014):3.

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

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

相关文章
|
2月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
212 0
|
2月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
113 0
|
2月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
|
2月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
109 0
|
2月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
144 8
|
2月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
142 8
|
2月前
|
机器学习/深度学习 数据采集 测试技术
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
|
2月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
158 8
|
2月前
|
机器学习/深度学习 供应链 算法
【电动车】基于削峰填谷的电动汽车多目标优化调度策略研究(Matlab代码实现)
【电动车】基于削峰填谷的电动汽车多目标优化调度策略研究(Matlab代码实现)
|
2月前
|
传感器 机器学习/深度学习 算法
【无人机协同】动态环境下多无人机系统的协同路径规划与防撞研究(Matlab代码实现)
【无人机协同】动态环境下多无人机系统的协同路径规划与防撞研究(Matlab代码实现)
162 0

热门文章

最新文章