Getting Started with FA-MVEMD
Description
The fast and adaptive multivariate empirical mode decomposition (FA-MVEMD) toolbox contains a family of functions aimed at decomposing data sets of 1, 2 and 3 dimensional nature. The algorithm is based on the work presented in M. R. Thirumalaisamy, P. J. Ansell, ‘Fast and Adaptive Empirical Mode Decomposition for Multidimensional, Multivariate Signals’, IEEE Signal Processing Letters, Vol. 25, No. 10, 2018.
System Requirements
Depending on your data set, RAM requirements can be on the order of dozens of Gigabytes. As a rough estimate, ensure that your computer has atleast 10 times the data set size in RAM. If your dataset is 100MB then your RAM should roughly be 1GB.
Dependencies
The FA-MVEMD toolbox depends on some third party functions to be able to execute. A list of these functions along with their authors are below:
- MinimaMaxima3D - (v1.0 Dec 13, 07 , Sam Pichardo)
- extrema - (2004, Carlos Adrián Vargas Aguilera)
Main Features
The different types of functions in the FA-MVEMD toolbox are classified based on their multivariate or multidimensional capabilities. The general naming convention has been:
EMDxDyV
where x represents the dimensionality and y represents the number of channels that can be handled by the code. For example, the two-dimensional trivariate code is called by the function EMD2D3V.
The list of available functions are:
1D
- EMD1D2V
- EMD1D3V
- EMD1DNV (3-16 channels)
2D
- EMD2D2V
- EMD2D3V
3D
- EMD3D2V
- EMD3D3V
- EMD3D3V_parallel (parallelised)
- EMD3D3V_parallel_var (parallelised with variable window size in each dimension)
Window Size Types:
The reference document for the definitions of window sizes is 'Fast and Adaptive Bidimensional Empirical Mode Decomposition Using Order-Statistics Filter Based Envelope Estimation, EURASIP Journal on Advances in Signal Processing, Bhuiyan et al., 2008'. In addition to the four types in the article, FA-MVEMD provides three additional filter size choices:
Type 5 - Average of Types 1-4 found in reference
Type 6 - Median extrema distance
Type 7 - Mode extrema distance
Example (3D)
In general, all functions require a similar setup of the input parameters for decomposition in addition to supplying the dataset.
%cleanup
clearvars
close all
addpath 1D; addpath 2D ;addpath 3D
%%%%%%%%%%%%%%%%%%%%%%%%%%% Parameter Set %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
param.nimfs = 3; %Maximum number of IMFs that can be stored
param.type = 6; %type of window size
param.tol = 0.05; %sifting tolerance
param.nslice = 10; %number of slices in volume plot
param.plot = 'on'; %toggle plotting (default is 'off')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%% Generating Data Set %%%%%%%%%%%%%%%%%%%%%%%%%%%
Nx = 50; %Grid size in dimension 1
Ny = 50; %Grid size in dimension 2
Nz = 50; %Grid size in dimension 3
X = linspace(0,10,Nx);
Y = linspace(0,10,Ny);
Z = linspace(0,10,Nz);
[x,y,z] = meshgrid(Y,X,Z);
uc1 = (sin(3.5*pi*x)+sin(3.5*pi*y)+sin(3.5*pi*z)); uc2 = (sin(pi*x)+sin(pi*y)+sin(pi*z)); ru = (cos(pi*x/24)+cos(pi*y/24)+cos(pi*z/24));
u = uc1 + uc2 + ru; %Signal 'u'
vc1 = (sin(pi*x)+sin(pi*y)+sin(pi*z)); vc2 = (sin(3.5*pi*x)+sin(3.5*pi*y)+sin(3.5*pi*z)); rv = (cos(pi*x/24)+cos(pi*y/24)+cos(pi*z/24));
v = vc1 ; %Signal 'v'
wc1 = (cos(pi*x/24)+cos(pi*y/24)+cos(pi*z/24)); wc2 = (sin(pi*x/5)+sin(pi*y/5)+sin(pi*z/5)); rw = (sin(pi*x)+sin(pi*y)+sin(pi*z)) ;
w = wc1 ; %Signal 'w'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Function call
Results = EMD3D3V(u,v,w,param);
Results is a MATLAB structure that contains several fields of information:
- The IMFs
- The window size type used in the decomposition
- The residue
- The index of orthogonality
- The global reconstruction error
- The window sizes
- The number of sifting iterations for each IMF