资源简介
多元经验模态分解代码,在EMD基础上发展而来的可同时分解多元数据
代码片段和文件信息
function q = memd(x varargin)
%
%
% function MEMD applies the “Multivariate Empirical Mode Decomposition“ algorithm (Rehman and Mandic Proc. Roy. Soc A 2010)
% to multivariate inputs. We have verified this code by simulations for signals containing 3-16 channels.
%
% Syntax:
%
% imf = MEMD(X)
% returns a 3D matrix ‘imf(NML)‘ containing M multivariate IMFs one IMF per column computed by applying
% the multivariate EMD algorithm on the N-variate signal (time-series) X of length L.
% - For instance imf_k = IMF(k::) returns the k-th component (1 <= k <= N) for all of the N-variate IMFs.
%
% For example for hexavariate inputs (N=6) we obtain a 3D matrix IMF(6 M L)
% where M is the number of IMFs extracted and L is the data length.
%
% imf = MEMD(Xnum_directions)
% where integer variable num_directions (>= 1) specifies the total number of projections of the signal
% - As a rule of thumb the minimum value of num_directions should be twice the number of data channels
% - for instance num_directions = 6 for a 3-variate signal and num_directions= 16 for an 8-variate signal
% The default number of directions is chosen to be 64 - to extract meaningful IMFs the number of directions
% should be considerably greater than the dimensionality of the signals
%
% imf = MEMD(Xnum_directions‘stopping criteria‘)
% uses the optional parameter ‘stopping criteria‘ to control the sifting process.
% The available options are
% - ‘stop‘ which uses the standard stopping criterion specified in [2]
% - ‘fix_h‘ which uses the modified version of the stopping criteria specified in [3]
% The default value for the ‘stopping criteria‘ is ‘stop‘.
%
% The settings num_directions=64 and ‘stopping criteria‘ = ‘stop‘ are defaults.
% Thus imf = MEMD(X) = MEMD(X64) = MEMD(X64‘stop‘) = MEMD(X[]‘stop‘)
%
% imf = MEMD(X num_directions ‘stop‘ stop_vec)
% computes the IMFs based on the standard stopping criterion whose parameters are given in the ‘stop_vec‘
% - stop_vec has three elements specifying the threshold and tolerance values used see [2].
% - the default value for the stopping vector is step_vec = [0.075 0.75 0.075].
% - the option ‘stop_vec‘ is only valid if the parameter ‘stopping criteria‘ is set to ‘stop‘.
%
% imf = MEMD(X num_directions ‘fix_h‘ n_iter)
% computes the IMFs with n_iter (integer variable) specifying the number of consecutive iterations when
% the number of extrema and the number of zero crossings differ at most by one [3].
% - the default value for the parameter n_iter is set to n_iter = 2.
% - the option n_iter is only valid if the parameter ‘stopping criteria‘ = ‘fix_h‘
%
%
% This code allows to process multivaraite signals having 3-16 channels using the multivariate EMD algorithm [1].
% - to perform EMD on more than 16 channels modify the variable ‘Max_channels‘ on line 510 in the code accordingly.
评论
共有 条评论