File Exchange

image thumbnail

Sample Entropy

version 1.1.0 (302 KB) by Víctor Martínez-Cagigal
A bearable and vectorized implementation of Sample Entropy (SampEn).

61 Downloads

Updated 09 Nov 2018

View License

This function computes the Sample Entropy (SampEn) algorithm according to the Richman, J. S., & Moorman, J. R. (2000) recommendations. The script is bearable, compressed and vectorized. Therefore, the computation cost is minimal.

Furthermore, extraordinary cases when SampEn is not defined are considered:
- If B = 0, no regularity has been detected. A common SampEn implementation would return -Inf value.
- If A = 0, the conditional probability is zero (A/B = 0), returning an Inf value.

According to Richman & Moorman, the upper bound of SampEn must be A/B = 2/[(N-m-1)(N-m)], returning SampEn = log(N-m)+log(N-m-1)-log(2). Hence, whenever A or B are equal to 0, that is the correct value.

Input parameters:
- signal: Signal vector with dims. [1xN]
- m: Embedding dimension (m < N).
- r: Tolerance (percentage applied to the SD).
- dist_type: (Optional) Distance type, specified by a string. Default value: 'chebychev' (type help pdist for further information).

Output variables:
- value: SampEn value.

Example of use:
signal = rand(200,1);
value = sampen(signal,1,0.2)

Cite As

Víctor Martínez-Cagigal (2018). Sample Entropy. Mathworks.

Comments and Ratings (8)

sen tian

Daniele Padovano

Very clear and clean code, congratulations!

xiaoxiao wang

How to draw a figure like yours

Vinh Loc Le

Eva

Fernando Vaquerizo

Good script. Very well optimized!

Eduardo Santamaria

MATLAB Release Compatibility
Created with R2018b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!