近似熵(Approximate Entropy,ApEn)是一种用来衡量时间序列复杂度的统计量,它通过度量信号中产生新模式概率的大小来衡量信号序列的复杂性,即越复杂的时间序列对应的近似熵越大,越规则的时间序列的近似熵则越小。如,脑电图中,它量化了自发脑电波动,揭示了以突然、不成比例和不可预测的变化,可以用于研究时间序列的复杂性/不规则性的量化。
对于近似熵的计算:
a)matlab中有相应的函数approximateEntropy;
b)EntropyHub中有ApEn函数;
a)approximateEntropy函数计算:
% approximateEntropy 函数:默认的 m=2;r=0.2*sqrt(trace(cov(data))) = 0.2*std(data);
% m 是嵌入维度,r为容忍度
clc;clear;close all;
a = load('EEG111802.mat'); % 加载数据
data = a.EEG.data; % 提取数据data
data = data(1:64,:,1); % 取1到32通道的一个trial数据
channels = size(data,1); % 通道数
% 初始化
apen = zeros(channels,1);
% 计算近似熵
for i = 1:channels
apen(i,:) = approximateEntropy(data(i,:));
end
% 简单画图
figure;
bar(apen);
xlabel('通道编号','FontSize',15);
ylabel('apen数值','FontSize',15);
title('apen','FontSize',20);
只是简单的画图显示结果,后续还可以根据需要进行统计分析等
b)ApEn函数计算,此方法,见另一篇笔记,写在一起比较长!!!