matlab编的有关EMD去噪的程序,处理的是核磁共振测井信号,

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/08 06:44:33
matlab编的有关EMD去噪的程序,处理的是核磁共振测井信号,

matlab编的有关EMD去噪的程序,处理的是核磁共振测井信号,
matlab编的有关EMD去噪的程序,处理的是核磁共振测井信号,

matlab编的有关EMD去噪的程序,处理的是核磁共振测井信号,
function imf = emd(x,n);%%最好把函数名改为emd1之类的,以免和Grilling的emd冲突
%%n为你想得到的IMF的个数
c = x('; % copy of the input signal (as a row vector)
N = length(x);-
% loop to decompose the input signal into n successive IMFs
imf = []; % Matrix which will contain the successive IMF,and the residuefor t=1:n
% loop on successive IMFs
%-------------------------------------------------------------------------
% inner loop to find each imf
h = c; % at the beginning of the sifting process,h is the signal
SD = 1; % Standard deviation which will be used to stop the sifting process
while SD > 0.3 % while the standard deviation is higher than 0.3 (typical value) %%筛选停止准则
% find local max/min points
d = diff(h); % approximate derivative %%求各点导数
maxmin = []; % to store the optima (min and max without distinction so far)
for i=1:N-2
if d(i)==0 % we are on a zero %%导数为0的点,即”驻点“,但驻点不一定都是极值点,如y=x^3的x=0处
if sign(d(i-1))~=sign(d(i+1)) % it is a maximum %%如果驻点两侧的导数异号(如一边正,一边负),那么该点为极值点
maxmin = [maxmin,i]; %%找到极值点在信号中的坐标(不分极大值和极小值点)
end
elseif sign(d(i))~=sign(d(i+1)) % we are straddling a zero so%%如y=|x|在x=0处是极值点,但该点倒数不存在,所以不能用上面的判
断方法
maxmin = [maxmin,i+1]; % define zero as at i+1 (not i) %%这里提供了另一类极值点的判断方法
end
end
if size(maxmin,2) < 2 % then it is the residue %%判断信号是不是已经符合残余分量定义
break
end
% divide maxmin into maxes and mins %% 分离极大值点和极小值点
if maxmin(1)>maxmin(2) % first one is a max not a min
maxes = maxmin(1:2:length(maxmin));
mins = maxmin(2:2:length(maxmin));
else % is the other way around
maxes = maxmin(2:2:length(maxmin));
mins = maxmin(1:2:length(maxmin));
end % make endpoints both maxes and mins
maxes = [1 maxes N];
mins = [1 mins N];
%------------------------------------------------------------------------- % spline interpolate to get max and min envelopes; form imf
maxenv = spline(maxes,h(maxes),1:N); %%用样条函数插值拟合所有的极大值点
minenv = spline(mins,h(mins),1:N); %%用样条函数插值拟合所有的极小值点
m = (maxenv + minenv)/2; % mean of max and min enveloppes %%求上下包络的均值
prevh = h; % copy of the previous value of h before modifying it %%h为分解前的信号
h = h - m; % substract mean to h %% 减去包络均值
% calculate standard deviation
eps = 0.0000001; % to avoid zero values
SD = sum ( ((prevh - h).^2) ./ (prevh.^2 + eps) ); %% 计算停止准则
end
imf = [imf; h]; % store the extracted IMF in the matrix imf
% if size(maxmin,2)

matlab编的有关EMD去噪的程序,处理的是核磁共振测井信号, 谁可以给我一个emd分解的matlab程序.只需要emd分解的. 求一个关于风电功率序列处理的emd程序(基于matlab),最好附上使用说明, 求教emd分解程序的用法……作为一个matlab初学者 对这些程序理解真的不深.emd程序中emd(x) ,我对所要分析的系统建立了数学模型,但要怎么和emd程序关联起来呢 EMD分解的matlab实现必须要用EMD工具箱么,可以给发一份么 Undefined function or method 'emd' for input arguments of type 'double'.是不是我的matlab没有EMD工具箱?现在要做信号EMD特征研究的课题,我想要个可以实现的EMD分析matlab程序,要出每次分解的图证,最好有解释, 有限元法解常微分方程的程序(最好用MATLAB编) y=cos(10*t*pi)+cos(40*t*pi);t属于[0,1],求这个函数的EMD分解matlab程序,画出图来 求解二维抛物线型偏微分方程matlab程序方程如下:求h,需要编出求解的matlab程序, MATLAB中提取EMD分解后的每个IMF图像,并导出每个IMF数据EMD分解程序我就不给了,网上都是一样的.例:M = length(imf);N = length(x);c = linspace(0,(N-1)*Ts,N);for k1 = 0:4:M-1 figure for k2 = 1:min(4,M-k1), subplot(4,1, 求下题的MATLAB程序 最小二乘法的matlab程序 求下式的Matlab程序 高斯列主元消元法的matlab程序 使用Matlab输入下面方程,求所编程序和其输出的图像. 用matlab工具进行最小二乘法圆拟合的程序怎么编? matlab有emd函数吗 simpson公式的matlab程序