資源簡介
樣本熵的matlab程序,親測可用。編寫簡單易于理解,尤其對于初學者很好。

代碼片段和文件信息
function?saen?=?SampEn(?dim?r?data?tau?)
%?SAMPEN?Sample?Entropy
%???calculates?the?sample?entropy?of?a?given?time?series?data
%???SampEn?is?conceptually?similar?to?approximate?entropy?(ApEn)?but?has
%???following?differences:
%???????1)?SampEn?does?not?count?self-matching.?The?possible?trouble?of
%???????having?log(0)?is?avoided?by?taking?logarithm?at?the?latest?step.
%???????2)?SampEn?does?not?depend?on?the?datasize?as?much?as?ApEn?does.?The
%???????comparison?is?shown?in?the?graph?that?is?uploaded.
%???dim?????:?embedded?dimension
%???r???????:?tolerance?(typically?0.2?*?std)
%???data????:?time-series?data
%???tau?????:?delay?time?for?downsampling?(user?can?omit?this?in?which?case
%?????????????the?default?value?is?1)
%
%---------------------------------------------------------------------
%?coded?by?Kijoon?Lee??kjlee@ntu.edu.sg
%?Mar?21?2012
%---------------------------------------------------------------------
if?nargin?4?tau?=?1;?end
if?tau?>?1?data?=?downsample(data?tau);?end
N?=?length(data);
correl?=?zeros(12);
dataMat?=?zeros(dim+1N-dim);
for?i?=?1:dim+1
????dataMat(i:)?=?data(i:N-dim+i-1);
end
for?m?=?dim:dim+1
????count?=?zeros(1N-dim);
????tempMat?=?dataMat(1:m:);
????
????for?i?=?1:N-m
????????%?calculate?Chebyshev?distance?excluding?self-matching?case
????????dist?=?max(abs(tempMat(:i+1:N-dim)?-?repmat(tempMat(:i)1N-dim-i)));
????????
????????%?calculate?Heaviside?function?of?the?distance
????????%?User?can?change?it?to?any?other?function
????????%?for?modified?sample?entropy?(mSampEn)?calculation
????????D?=?(dist?????????
????????count(i)?=?sum(D)/(N-dim);
????end
????
????correl(m-dim+1)?=?sum(count)/(N-dim);
end
saen?=?log(correl(1)/correl(2));
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1785??2018-04-23?16:47??SampEn.m
?????目錄???????????0??2018-05-05?01:08??__MACOSX\
?????文件?????????605??2018-04-23?16:47??__MACOSX\._SampEn.m
評論
共有 條評論