鲁棒局部均值分解 (RLMD)(Matlab代码实现)

news2024/11/17 1:46:01

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现

💥1 概述

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<3
            %             opt_IterNum = min(j-2, opt0);
        otherwise
            error('No specifications for sifting_stopping_mode.');
    end
    
    ams(i, :) = a_ij(opt_IterNum, :); % save each amplitude modulation function in ams.
    fms(i, :) = s_j(opt_IterNum, :); % save each pure frequency modulation function in fms.
    pfs(i, :) = ams(i, :).*fms(i, :); % gain Product Funcion.
    xs = xs-pfs(i, :); % remove PF just obtained from input signal;
    
    iterNum(i) = opt_IterNum; % record the iteration times taken by of each PF sifing.
    
end % main loop

pfs(i+1, :) = xs; % save residual in the last row of PFs matrix.
ams(i+1:end,:) = []; fms(i+1:end,:) = []; pfs(i+2:end,:) = []; fvs(i+1:end,:) = [];
ort = io(x, pfs);

% Output visualization
if display == 1
    lmdplot(pfs, ams, fms, smooth_mode);
end

end

%--------------------------- built-in functions ---------------------------
% initialize signal and options
function [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)

% option fields(i.e. name)
optn_fields = {'display', 'stop_thre', 'sifting_stopping_mode',  'max_iter',...
    'max_pfs', 'smooth_mode', 'ma_span', 'ma_iter_mode','extd_r', 'fix','fix_h'};

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1] 刘志亮, 金亚强, 左明军, 冯志鹏.基于鲁棒局部均值分解的时频表示,用于多分量AM-FM信号分析。机械系统和信号处理。95: 468-487, 2017.
[2] Smith J S. The local mean decomposition and its application to EEG perception data[J]. Journal of the Royal Society Interface, 2005, 2(5): 443-454.
[3] G. Rilling, P. Flandrin and P. Goncalves. On empirical mode decomposition and its algorithms. IEEE-EURASIP Workshop on Nonlinear Signal and Image Processing NSIP-03, Grado (I), June 2003

🌈4 Matlab代码实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/11993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在Ubuntu 22.04使用wine安装windows版本微信

继上篇《如何在 Ubuntu 22.04 上安装 最新版本Wine》成功安装wine。使用以下命令安装&#xff1a; $ sudo dpkg --add-architecture i386 && sudo wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add - && sudo apt-add-repository…

从零开始学前端:json对象,对象的序列化和反序列化 --- 今天你学习了吗?(JS:Day16)

从零开始学前端&#xff1a;程序猿小白也可以完全掌握&#xff01;—今天你学习了吗&#xff1f;&#xff08;JS&#xff09; 复习&#xff1a;从零开始学前端&#xff1a;购物车和鲜花价格排序 — 今天你学习了吗&#xff1f;&#xff08;JS&#xff1a;Day15&#xff09; 文…

JVM基础

JVM简介 JVM是java虚拟机简称&#xff0c;JVM是一种用于计算设备的规范&#xff0c;它是一个虚构出来的计算机&#xff0c;是通过在实际计算机上仿真模拟各种计算机功能来实现的。也正式因为有了它&#xff0c;java才具有了跨平台特性&#xff0c;”一次编译&#xff0c;到处运…

隐私计算行业应用情况和标准化现状

开放隐私计算 2022-11-16 19:17 发表于浙江 开放隐私计算 开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神&#xff0c;专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播&#xff0c;愿成为中国 “隐私计算最后一公里的…

如何利用快解析实现个人私有云

个人云盘曾火爆一时&#xff0c;原因有二&#xff0c;一是国内可选择的网盘越来越少&#xff0c;自建网盘无疑是一个不错的选项&#xff0c;毕竟网盘是数据存在别人那&#xff0c;始终让人心里不安&#xff0c;如同车辆一样&#xff0c;云盘就是公交车&#xff0c;私有云盘就是…

Matlab:在文本和值之间转换datetimeduration

Matlab&#xff1a;在文本和值之间转换datetimeduration将值转换为文本datetimeduration将数组转换为字符串数组指定输出文本的格式指定输出文本的区域设置将文本转换为值datetime解释输入文本的格式将文本转换为值duration解释输入文本的格式从文件中读取日期和时间此示例演示…

面试经常问的Linux进程到底是什么呢?1W字从0到1详解进程的所有细节!

目录 1.冯诺伊曼体系 2.操作系统 3.进程 4.进程的三种状态 4.1概念 4.2Linux中不同进程状态 5.进程的优先级 6.进程的几个其它概念 7.进程的切换 8.环境变量 8.1环境变量的概念 8.2常见的环境变量 8.3和环境变量相关的命令 8.4查看环境变量的方法 8.5通过代码获取环境变量的方式…

微信小程序 webview组件内嵌H5二维码识别

结果 支持公众号二维码支持小程序码支持个人名片支持群聊不支持页面二维码 做法 点击图片触发previewImage预览&#xff0c;长按识别 <script type"text/javascript" src"https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>wx.p…

IT部门不想每天忙“取数”,花了几百万买系统,还是这个办法有效

待过几年中小型传统企业的应该都有这个感知&#xff1a;虽然每个月都在采购新的软件系统&#xff0c;但整个公司的数字化仍旧一团糟&#xff0c;数字化转型是越搞越回去了。 这也很好解释。 传统企业业务部门繁多&#xff0c;在搞信息化阶段采购了很多业务系统&#xff0c;比…

C++ 11

文章目录1. 列表初始化1.1 列表初始化的使用格式1.1.1 内置类型1.1.2 自定义类型的列表初始化1.2 列表初始化的本质2. 变量类型的推导2.1 auto 关键字2.2 decltype类型推导3. 范围for4. final与override5. 智能指针6. 新增容器6.1 静态数组array6.2 单向链表 forward_list6.3 u…

【问卷调查发布系统的设计与实现】

系列文章目录 在当前社会&#xff0c;随着信息化的高速发展&#xff0c;收集数据的传统方法——问卷调查法也在发生改变。此问卷调查系统&#xff0c;可以帮助用户在短时间内创建收集数据的问卷&#xff0c;目的是突出高效性、绿色性以及便捷性。在设计过程中&#xff0c;分析…

web网页设计期末课程大作业:漫画网站设计——我的英雄(5页)学生个人单页面网页作业 学生网页设计成品 静态HTML网页单页制作

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

Charles使用教程

目录预备知识1.HTTP调试代理工具原理2.Charles简介实验目的实验环境实验步骤一实验步骤二实验步骤三预备知识 1.HTTP调试代理工具原理 HTTP调试代理工具广泛应用于web程序开发、安全测试、流量分析等工作。HTTP调试代理工具工作于TCP/IP参考模型中的应用层&#xff0c;浏览器…

Docker容器的5个实用案例

Docker 是一个开源平台&#xff0c;可以轻松地为任何应用创建一个轻量级的、 可移植的、自给自足的容器。大多数 Docker 容器的核心是在虚拟化环境中运行的轻量级 Linux 服务器。 Docker Linux 容器有什么实际用例吗&#xff1f;现在让我们一探究竟。 为什么使用 Docker? D…

力扣(LeetCode)792. 匹配子序列的单词数(C++)

二分查找 直观思考&#xff0c;本题可以将 wordswordswords 中每个单词 wordwordword 依次和目标字符串 sss 比较&#xff0c;检查是否为子串。时间复杂度 n∑i0m−1wordsin\times \sum_{i0}^{m-1}words_in∑i0m−1​wordsi​ nnn 是 sss 的长度, mmm 是 wordswordswords 的长…

壁纸号的玩法,拿出来收费未免也太坑人了,所以,直接上教程。

网上关于斗音变现的攻略写得比较少&#xff0c;可以理解为目前仍是风口&#xff0c;都在闷声发大财&#xff0c;虽然我也做知识付费&#xff0c;但是这壁纸号的玩法&#xff0c;拿出来收费未免也太坑人了…… 所以&#xff0c;直接上教程…… 一、准备斗音号 这一块不用多说&…

数据结构之实现队列

文章目录前言1.队列的相关介绍1.队列的定义2.队列的实现方式2.队列具体实现1.队列声明定义2.队列的接口1.初始化接口2.数据的插入和删除3.获取队头元素和队尾元素4.获取队列元素个数和队列判空以及队列3.总结前言 之前谈到了栈的实现&#xff0c;现在来说说另一种数据结构——…

[hadoop全分布部署]虚拟机Hadoop集群配置/etc/hosts、配置无密码登录(SSH)

&#x1f468;‍&#x1f393;&#x1f468;‍&#x1f393;博主&#xff1a;发量不足 个人简介&#xff1a;耐心&#xff0c;自信来源于你强大的思想和知识基础&#xff01;&#xff01; &#x1f4d1;&#x1f4d1;本期更新内容&#xff1a;虚拟机Hadoop集群配置/etc/hosts…

Centos 7下安装php+mysql+nginx+wordpress教程新版

安装zsh+oh-my-zsh 安装zsh的原因是因为不喜欢自带的ssh工具,感觉没有这个好用,我最常用的就是记忆功能,比如输入某个字母,按上下键会自动补全已经使用过的命令,安装也很简单,一条命令搞定,他的扩展也很多,这里只讲最简单的安装,当然也可以不需要安装。 执行yum inst…

Linux基本指令

这一章我们将讲解在Linux系统下&#xff0c;一些基本指令的用法和功能. 后面有一些重要的指令我们将单独讲解. 目录 ls 指令 pwd 指令 cd 指令 touch 指令 mkdir 指令★ rmdir 指令 && rm指令★ man 指令★ cp 指令 ★ mv 指令★ cat && tac指令 e…