鲁棒局部均值分解 (RLMD)(Matlab代码实现) |
您所在的位置:网站首页 › matlab经验模态分解得到各阶imf分量 › 鲁棒局部均值分解 (RLMD)(Matlab代码实现) |
👨🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭:行百里者,半于九十。 📋📋📋本文目录如下:🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 ![]() RLMD 是一种改进的局部均值分解,由一组优化策略提供支持。优化策略可以处理LMD中的边界条件、包络估计和筛选停止准则。它同时从混合信号中提取一组单分量信号(称为乘积函数)及其相关的解调信号(即AM信号和FM信号),与其他自适应信号处理方法(如EMD)相比,这是最吸引人的特征。RLMD可用于时频分析。 📚2 运行结果 部分代码: [x, display, stop_thre, sifting_stopping_mode, max_iter, max_pfs, smooth_mode,... ma_span, ma_iter_mode, extd_r, x_energy, pfs, ams, fms, iterNum, fvs]... = initial(x,varargin{:}); % Initialize main loop i = 0; xs = x; % copy x to xs for sifting process, reserve original input as x. nx = length(x); while i < max_pfs && ~stoplmd(xs, x_energy) % outer loop for PF selection i = i+1; % initialize variables used in PF sifting loop a_i = ones(1,nx); s_j = zeros(max_iter,nx); a_ij = zeros(max_iter, nx); % PF sifting iteration loop j = 0; stop_sifting = 0; s = xs; while j < max_iter && ~stop_sifting % inner loop for sifting process j = j+1; [m_j, a_j, n_extr] = lmd_mean_amp(s, smooth_mode, ma_span, ma_iter_mode,... extd_r); % force to stop iter if number of extrema of s is smaller than 3. if n_extr < 3 break; end h_j = s-m_j; % remove mean. s = h_j./a_j; % demodulate amplitude. a_i = a_i .* a_j; % mulitiply every ai a_ij(j, :) = a_i; s_j(j, :) = s; [stop_sifting,fvs(i,:)] = is_sifting_stopping(a_j, j, fvs(i,:), sifting_stopping_mode, stop_thre); end % sift iteration loop switch sifting_stopping_mode case {'liu'} [~, opt0] = min(fvs(i,1:j)); % ***Critical Step*** opt_IterNum = min(j, opt0); % in case iteration stop for n_extr |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |