以下是G. Rilling版本的EMD代码中,抑制端点效应的镜像延拓MATLAB代码注释。
镜像延拓左端延拓的情况下:
(1)第一个极值是极大值,并且第一个采样值大于第一个极小值,则以第一个极大值点为对称中心。
(2)第一个极值是极大值,而第一个采样值小于第一个极小值,则认为第一个采样点为极小值点,以该点为对称中心。
(3)第一个极值是极小值,并且第一个采样值小于第一个极大值,则以第一个极小值点为对称中心。
(4)第一个极值是极小值,且第一个采样值大于第一个极大值,则认为第一个采样点为极大值点,以该点为对称中心。
右端延拓的情况下:
(1)最后一个极值是极小值,并且最后一个采样值小于最后一个极大值,则以最后一个极小值点为对称中心。
(2)最后一个极值是极小值,且最后一个采样值大于最后一个极大值,则认为最后一个采样点为极大值点,以该点为对称中心。
(3)最后一个极值是极大值,并且最后一个采样值大于最后一个极小值,则以最后一个极大值点为对称中心。
(4)最后一个极值是极大值,而最后一个采样值小于最后一个极小值,则认为最后一个采样点为极小值点,以该点为对称中心。

%BOUNDARY_CONDITIONS_EMD  extends an extrema set to limit edge effects on the interpolations
%延拓极值点
%
% [TMIN,TMAX,ZMIN,ZMAX] = BOUNDARY_CONDITIONS_EMD(INDMIN,INDMAX,T,X,Z,NBSYM)
%
% inputs:
%   - INDMIN, INDMAX: indices of minima and maxima in the real signal X
%   信号的极大极小值点的角标
%   - T: sampling times  采样时间
%   - X: real signal in which INDMIN and INDMAX are the indices of extrema
%   实际信号
%   - Z: signal which values are interpolated in the final envelope
%   最后包络中需要插值的数据
%   - NBSYM: number of points added to each end两端需要延拓的极值点数
%
% outputs:
%   - TMIN, TMAX: extended sampling times 延拓出来的采样点数
%   - ZMIN, ZMAX: extended "extrema" set  延拓出来的极值点集
%
% use:
%   - for a real signal X:
%     [TMIN,TMAX,ZMIN,ZMAX] = BOUNDARY_CONDITIONS_EMD(INDMIN,INDMAX,T,X,X,NBSYM)
%   - for a complex signal Z and a direction PHI:
%     X = exp(-i*PHI)*Z;
%     [TMIN,TMAX,ZMIN,ZMAX] = BOUNDARY_CONDITIONS_EMD(INDMIN,INDMAX,T,X,Z,NBSYM)
%
% rem: it has to be noted that this function was originally written for the
% classical EMD and adapted to the bivariate case without a proper study of its
% effects. The edge effects problem for the bivariate EMD has not been studied yet.
%需要注意的是,这个函数最初是为经典EMD编写的,并在没有适当研究其影响的情况下适应了
%二元情况。双变量EMD的边缘效应问题尚未得到研究。
% See also
%  extr
%
% G. Rilling, last modification 3.2007
% gabriel.rilling@ens-lyon.fr
function [tmin,tmax,zmin,zmax] = boundary_conditions_emd(indmin,indmax,t,x,z,nbsym)lx = length(x);if (length(indmin) + length(indmax) < 3)error('not enough extrema')end   %若原始序列极值点小于三个则报错% boundary conditions for interpolations :if indmax(1) < indmin(1)%若第一个极值点是极大值if x(1) > x(indmin(1))%若x(1)大于第一个极小值,则镜面在第一个极大值点处lmax = fliplr(indmax(2:min(end,nbsym+1)));%极大值点lmin = fliplr(indmin(1:min(end,nbsym)));%极小值点lsym = indmax(1);else  %若x(1)小于第一个极小值,则镜面在第一个极小值点处lmax = fliplr(indmax(1:min(end,nbsym)));lmin = [fliplr(indmin(1:min(end,nbsym-1))),1];lsym = 1;endelseif x(1) < x(indmax(1)) %第一个极值是极小值,并且第一个采样值小于第一个极大值,则认为第一个采样点为对称中心。lmax = fliplr(indmax(1:min(end,nbsym)));lmin = fliplr(indmin(2:min(end,nbsym+1)));lsym = indmin(1);else  %第一个极值是极小值,且第一个采样值大于第一个极大值,则以第一个极小值点为对称中心。lmax = [fliplr(indmax(1:min(end,nbsym-1))),1];lmin = fliplr(indmin(1:min(end,nbsym)));lsym = 1;endendif indmax(end) < indmin(end)%最后一个极值是极小值,并且最后一个采样值小于最后一个极大值,则以最后一个极小值点为对称中心。if x(end) < x(indmax(end))rmax = fliplr(indmax(max(end-nbsym+1,1):end));rmin = fliplr(indmin(max(end-nbsym,1):end-1));rsym = indmin(end);else %最后一个极值是极小值,且最后一个采样值大于最后一个极大值,则认为最后一个采样点为极大值点,以该点为对称中心。rmax = [lx,fliplr(indmax(max(end-nbsym+2,1):end))];rmin = fliplr(indmin(max(end-nbsym+1,1):end));rsym = lx;endelseif x(end) > x(indmin(end))%最后一个极值是极大值,并且最后一个采样值大于最后一个极小值,则以最后一个极大值点为对称中心。rmax = fliplr(indmax(max(end-nbsym,1):end-1));rmin = fliplr(indmin(max(end-nbsym+1,1):end));rsym = indmax(end);else %最后一个极值是极大值,而最后一个采样值小于最后一个极小值,则认为最后一个采样点为极小值点,以该点为对称中心。rmax = fliplr(indmax(max(end-nbsym+1,1):end));rmin = [lx,fliplr(indmin(max(end-nbsym+2,1):end))];rsym = lx;endendtlmin = 2*t(lsym)-t(lmin);tlmax = 2*t(lsym)-t(lmax);trmin = 2*t(rsym)-t(rmin);trmax = 2*t(rsym)-t(rmax);% in case symmetrized parts do not extend enough以防对称部分延拓的不够if tlmin(1) > t(1) || tlmax(1) > t(1)if lsym == indmax(1)lmax = fliplr(indmax(1:min(end,nbsym)));elselmin = fliplr(indmin(1:min(end,nbsym)));endif lsym == 1error('bug')endlsym = 1;tlmin = 2*t(lsym)-t(lmin);tlmax = 2*t(lsym)-t(lmax);end   if trmin(end) < t(lx) || trmax(end) < t(lx)if rsym == indmax(end)rmax = fliplr(indmax(max(end-nbsym+1,1):end));elsermin = fliplr(indmin(max(end-nbsym+1,1):end));endif rsym == lxerror('bug')endrsym = lx;trmin = 2*t(rsym)-t(rmin);trmax = 2*t(rsym)-t(rmax);end zlmax =z(lmax); zlmin =z(lmin);zrmax =z(rmax); zrmin =z(rmin);tmin = [tlmin t(indmin) trmin];tmax = [tlmax t(indmax) trmax];zmin = [zlmin z(indmin) zrmin];zmax = [zlmax z(indmax) zrmax];
end

EMD端点效应MATLAB代码注释(G. Rilling版本)相关推荐

  1. emd 消除端点效应 matlab代码,对五种改善EMD端点效应的方法进行分析

    引言 1998年,Huang等人提出了一种新的信号处理方法:经验模态分解方法(EmpiricalModeDecomposition,EMD).它用不同特征尺度的数据序列本征模函数(IntrinsicM ...

  2. matlab代码注释技巧

    本文以matlab R2013a为例介绍相应的注释技巧,话不多说,见干货: 一.鼠标或键盘操作: 选中你要加注释的内容,右键单击选择"comment"(注释),快捷键操" ...

  3. 高斯混合模型(matlab代码+注释)

    这里我学习的是Statistical Patte7rn Recognition Toolbox中的emgmm代码,代码中的主要知识点在之前的GMM文档中基本解释清楚,包括EM算法中的两个步骤.我自己先 ...

  4. 代码注释规范-google版本

    注释 注释虽然写起来很痛苦,但对保证代码可读性至为重要,下面的规则描述了应该注释什么.注释在哪儿.当然也要记住,注释的确很重要,但最好的代码本身就是文档(self-documenting),类型和变量 ...

  5. matlab代码注释

    #matlab单行注释 代码前+%即可 #matlab多行注释 ##1.直接**%{ 代码%}** ##2.快捷键 ctirl+r 取消多行注释 ctirl+t %{ load('starData.m ...

  6. MATLAB代码中文注释乱码问题解决办法

    目录 汉字编码 乱码原因: 如何解决 经常有小伙伴莫名其妙发现自己的MATLAB打开代码后,代码中的中文注释乱码,如下图所示,然后不知道如何解决,今天就来给大家解释和解决一下这个问题! 汉字编码 首先 ...

  7. 【最优化理论】牛顿法+Matlab代码实现

    文章目录 1 牛顿法简介 2 牛顿法原理 3 牛顿法推导 4 Matlab代码实现 5 低版本Matlab报错 1 牛顿法简介 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森) ...

  8. emd,eemd,vmd,频谱图,分解图对比matlab代码

    作为自己学习的一个记录吧. 对这个信号进行实验,其中公式是截图截的,懒得改了,f1就是s1. 对这个s信号进行分解.下面开始代码操作: 原始信号生成:运行该段代码,生成一个s.mat数据,并作图. c ...

  9. 机器学习之MATLAB代码--CEEMDAN+EEMD+EMD+VMD+IMF重构络(十八)

    机器学习之MATLAB代码--CEEMDAN+EEMD+EMD+VMD+IMF重构络(十八) 压缩分量的EEMD代码 压缩分量的EEMD数据 压缩分量的EEMD结果 CEEMDAN代码 CEEMDAN ...

最新文章

  1. 单片机I/O控制方式(UART中断和DMA中断的区别)
  2. 软件工程---第四章---形式化分析
  3. 粉丝回馈,8000元大礼包免费相送
  4. Ruby学习笔记-循环与选择结构
  5. 暴风影音官网、App 挂了;工信部总结“携号转网”试运行情况;Zorin OS 15 Lite 发布 | 极客头条...
  6. 基于SSM的超市积分管理系统
  7. 国外网站整理出十大必须拥有的虚拟化工具
  8. 下载Google Earth的地图并用ArcMap对其georeferencing
  9. 13.节点操作上,下
  10. java多重if 嵌套if_流程控制之if、多重if、嵌套
  11. 洛谷 Floating point exception: 8 Floating-point exception. 报错
  12. 中国多媒体与网络教学学报杂志中国多媒体与网络教学学报杂志社中国多媒体与网络教学学报编辑部2022年第6期目录
  13. eNews 第二十七期/2007.08
  14. 微信小程序生成带logo二维码
  15. Nature子刊:灵活的语音皮质编码可增强与任务相关的声学信息的神经处理
  16. fatal error LNK1120: 1个无法解析的外部命令
  17. linux6.5取消屏保,怎么把wps屏保关掉
  18. 王者荣耀角色注销后我的服务器列表怎么删除,王者荣耀账号怎么注销 角色删除流程要求...
  19. 中国内地摇滚歌手及代表作
  20. 用Feed43为任意网站定制RSS feed教程~

热门文章

  1. PAT (Basic Level) Practice学到的东西C语言篇
  2. 程序员 待遇和梦想都要 提高自己
  3. 第 2 节 HTML标签(上)
  4. 此应用专为旧版本打造
  5. nomodeset,quiet和splash内核参数是什么意思?
  6. Android 按power键唤醒屏幕流程
  7. 制作一个月球车底盘【内附资料下载链接】
  8. 三星GalaxyZFold4什么时候上市 三星GalaxyZFold4配置如何
  9. gitlab重置用户密码
  10. VSCode 使用过程中 字体 画面模糊