MATLAB多尺度散布熵(MDE)简明实现与应用

简介: 多尺度散布熵(Multiscale Dispersion Entropy, MDE)通过多尺度粗粒化和散布熵(DE) 分析时间序列复杂度

一、核心原理

多尺度散布熵(Multiscale Dispersion Entropy, MDE)通过多尺度粗粒化散布熵(DE) 分析时间序列复杂度,步骤如下:

  1. 多尺度粗粒化:对原始信号用不同尺度因子s(窗口大小)进行滑动平均,得到降采样序列;

  2. 单尺度散布熵(DE):对粗粒化序列,通过嵌入映射、模式量化、概率统计计算熵值,量化信号随机性。

二、MATLAB核心代码实现

1. 单尺度散布熵(DE)计算

function de = dispersionEntropy(x, m, c, tau)
    % 输入:x(序列), m(嵌入维度), c(类别数), tau(延迟时间,默认1)
    % 输出:de(散布熵值)
    x = x(:)'; N = length(x);
    if N < m*tau, error('序列过短!'); end

    % 1. 嵌入映射(m维向量)
    Y = zeros(N - (m-1)*tau, m);
    for i = 1:m
        Y(:,i) = x(1 + (i-1)*tau : N - (m-i)*tau);
    end

    % 2. 散布模式量化(映射到1~c类)
    ymin = min(x); ymax = max(x);
    if ymax == ymin, de = 0; return; end  % 常数序列熵为0
    Z = ceil(c*(Y - ymin)/(ymax - ymin));  % 量化到[1,c]
    Z(Z>c) = c; Z(Z<1) = 1;  % 边界修正

    % 3. 统计模式概率(字符串编码模式)
    patterns = cell(1, size(Z,1));
    for i = 1:size(Z,1)
        patterns{
   i} = sprintf('%d', Z(i,:));  %[1,3,2]"132"(紧凑编码)
    end
    [unique_pats, ~, ic] = unique(patterns);
    prob = histcounts(ic, 1:length(unique_pats)+1)/length(patterns);  % 概率分布

    % 4. 计算熵值(避免log(0))
    de = -sum(prob .* log(prob + eps));  % eps防数值溢出
end

2. 多尺度粗粒化

function y = coarseGrain(x, s)
    % 输入:x(原始序列), s(尺度因子)
    % 输出:y(粗粒化序列,窗口平均)
    x = x(:)'; N = length(x);
    y = zeros(1, floor(N/s));  % 粗粒化后长度
    for k = 1:floor(N/s)
        y(k) = mean(x((k-1)*s + 1 : k*s));  % 窗口[s(k-1)+1, sk]平均
    end
end

3. 多尺度散布熵(MDE)主函数

function mde = multiscaleDE(x, s_max, m, c, tau)
    % 输入:x(原始序列), s_max(最大尺度), m(嵌入维度), c(类别数), tau(延迟时间)
    % 输出:mde(1×s_max向量,mde(s)为尺度s的DE值)
    mde = zeros(1, s_max);
    for s = 1:s_max
        xs = s==1 ? x : coarseGrain(x, s);  % s=1为原始序列,否则粗粒化
        mde(s) = dispersionEntropy(xs, m, c, tau);
    end
end

三、应用示例:合成信号分析

1. 生成测试信号(低频趋势+正弦波+噪声)

fs = 1000; t = 0:1/fs:10; N = length(t);  % 10秒,1000Hz采样
x = 0.5*t + 2*sin(2*pi*2*t) + 0.8*randn(1,N);  % 趋势+2Hz正弦+噪声

2. 计算MDE并可视化

% 参数设置
s_max = 10;  % 最大尺度(1~10)
m = 2;       % 嵌入维度(模式长度)
c = 5;       % 散布类别数(1~5)
tau = 1;     % 延迟时间

% 计算MDE
mde = multiscaleDE(x, s_max, m, c, tau);

% 可视化
figure;
subplot(2,1,1); plot(t, x); 
xlabel('时间(s)'); ylabel('幅值'); title('原始信号(趋势+正弦+噪声)');
subplot(2,1,2); plot(1:s_max, mde, 'ro-', 'LineWidth', 1.5);
xlabel('尺度s'); ylabel('MDE值'); title('多尺度散布熵曲线');
grid on;

参考代码 matlab多尺度散布熵 www.youwenfan.com/contentalh/51172.html

四、结果解读

  • 小尺度(s=1~2):噪声主导,模式复杂→MDE值高;

  • 中尺度(s=3~6):正弦波周期性凸显→MDE值下降;

  • 大尺度(s>6):趋势主导,模式简单→MDE值稳定(低)。

五、参数选择建议

参数 推荐取值 说明
嵌入维度m 2~5 m过大增加计算量,过小丢失信息
类别数c 3,5,7(奇数) 类别过多抗噪差,过少分辨率低
尺度s_max floor(N/10)(N为序列长) 避免粗粒化后序列过短(至少含m个点)
延迟τ 1(默认) 非均匀采样时可调整(如τ=2)

六、工程应用注意事项

  1. 抗噪处理:信号含强噪声时,先小波去噪或中值滤波;

  2. 常数序列:若序列为常数(ymax=ymin),DE=0(无需计算);

  3. 实时性:序列较长时,用histcounts替代unique+strcmp加速统计。

相关文章
|
12天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
11398 121
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
2天前
|
人工智能 JSON 监控
Claude Code 源码泄露:一份价值亿元的 AI 工程公开课
我以为顶级 AI 产品的护城河是模型。读完这 51.2 万行泄露的源码,我发现自己错了。
2984 7
|
21小时前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
1292 1
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
12天前
|
人工智能 IDE API
2026年国内 Codex 安装教程和使用教程:GPT-5.4 完整指南
Codex已进化为AI编程智能体,不仅能补全代码,更能理解项目、自动重构、执行任务。本文详解国内安装、GPT-5.4接入、cc-switch中转配置及实战开发流程,助你从零掌握“描述需求→AI实现”的新一代工程范式。(239字)
7172 139
|
1天前
|
云安全 供应链 安全
Axios投毒事件:阿里云安全复盘分析与关键防护建议
阿里云云安全中心和云防火墙第一时间响应
1073 0
|
2天前
|
人工智能 自然语言处理 数据挖掘
零基础30分钟搞定 Claude Code,这一步90%的人直接跳过了
本文直击Claude Code使用痛点,提供零基础30分钟上手指南:强调必须配置“工作上下文”(about-me.md+anti-ai-style.md)、采用Cowork/Code模式、建立标准文件结构、用提问式提示词驱动AI理解→规划→执行。附可复制模板与真实项目启动法,助你将Claude从聊天工具升级为高效执行系统。
|
2天前
|
人工智能 定位技术
Claude Code源码泄露:8大隐藏功能曝光
2026年3月,Anthropic因配置失误致Claude Code超51万行源码泄露,意外促成“被动开源”。代码中藏有8大未发布功能,揭示其向“超级智能体”演进的完整蓝图,引发AI编程领域震动。(239字)
2047 9
|
10天前
|
人工智能 并行计算 Linux
本地私有化AI助手搭建指南:Ollama+Qwen3.5-27B+OpenClaw阿里云/本地部署流程
本文提供的全流程方案,从Ollama安装、Qwen3.5-27B部署,到OpenClaw全平台安装与模型对接,再到RTX 4090专属优化,覆盖了搭建过程的每一个关键环节,所有代码命令可直接复制执行。使用过程中,建议优先使用本地模型保障隐私,按需切换云端模型补充功能,同时注重显卡温度与显存占用监控,确保系统稳定运行。
2503 9