资源简介
这是CEEMD的MATLAB代码,经过上传者测试,该代码可用,与大家共享
代码片段和文件信息
function [imftresidtspecwaddmeancountimfnresidn] = ceemdnew(xthrshsthreshNalpha)
x = transpose(x(:));
imf = [];
k=0;
xt=x;
if nargin<5
% alpha=.1*std(xt);
alpha=0.5*std(xt);% 按照需要修改,huang的建议是0.1,但是0.1会造成端点噪声大。
end
cx=0;
s=0;
i=1;
lim=1;
imfprev=[];
while i if i~=1
Noise=alpha.*randn(size(xt));
else
Noise=0;
end
for t=1:lim
count=0;
x=xt+(-1)^t*Noise;
while ~ismonotonic(x)
count=count+1;
if i==1
k=k+1;
imf{count}=zeros(size(x));
meancount(k)=0;
end
x1 = x;
VA = Inf;
cn=0;
while (VA > thrsh) | ~isimf(x1)
cn=cn+1;
s1 = getspline(x1);
s2 = -getspline(-x1);
x2 = x1-(s1+s2)/2;
VA = var((s1+s2)./(2*x1));
x1 = x2;
if i==1 cx=cx+1; elseif cn>cx*2 break; end
if i==1 && cx>numel(xt)/2
s=s+1;
if s>sthresh
x1=xt+alpha.*randn(size(xt));
s=0;
cx=0;
disp(‘Restarting Sifting‘);
end
end
end
% if cn>cx*2 && i~=1
% disp(‘Too long for ensemble member breaking count‘)
% flag=1;
% break;
% else
% flag=0;
% end
if count<=k
if i==1
imf{count} = x1+imf{count};
else
imf{tcount}=x1+imf{tcount};
end;
else
break;
end
x=x-x1;
end
if i==1
resid=repmat(x21);
imf=repmat(imf21);
% elseif flag==0
else
resi
- 上一篇:MATLAB实现AM调制
- 下一篇:通信网理论爱尔兰公式仿真
相关资源
- MATLAB实现AM调制
- 太阳能电池matlabm模型
-
LQG主动悬架 maltab simuli
nk实现 - 双门限法语音信号端点检测matlab可实
- 基于遗传神经网络的图像分割MATLAB源
- 用MATLAB生成OFDM信号
- matlab生日祝福音乐动画
- 浮点转定点原理及Matlab例码
- matlab下小波图像融合几种代码
- 提取圆matlab (算法是改进后的霍夫曼
- 基于元胞自动机的Matlab单双道交通流
- matlab实现汉明编码
- 四阶超混沌映射matlab代码
- 双向全桥DC-DC双重移相控制matlab仿真
- 用matlab实现汉字的笔画细化算法.zip
- matlab数学规划常见题目代码.zip
- 图像增强源代码Matlab实现
- Matrix completion & Tensor completion经典算法
- matlab实现RGB、HSI、YCbCr之间的转换以及
- matlab圈出照片中人脸和五官的位置
- matlab之循环卷积自写
- 用MATLAB实现遗传算法程序
- MATLAB实现卷积码编译码
- 基于matlab的蚁群算法和仿真结果图
- matlab实现ASK调制解调
- 云模型的matlab程序
- PSCAD与MATLAB的在线连接仿真
- 雷达回波仿真 matlab源程序
- matlab求已知数据点的拉格朗日插值多
- 遗传算法优化的BP神经网络 - MATLAB源码
评论
共有 条评论