CRP Toolbox Reference |
migramPurposeCalculate windowed mutual information between two signals. Syntax
[i,l,t] = migram(...) i = migram(a,b) migram(a,b) Descriptioni = migram(a,b,maxlag,window,noverlap) calculates the windowed mutual information between the signals in vector a and vector b. migram splits the signals into overlapping segments and forms the columns of i with their mutual information values up to maximum lag specified by scalar maxlag. Each column of i contains the mutual information function between the short-term, time-localized signals a and b. Time increases linearly across the columns of i, from left to right. Lag increases linearly down the rows, starting at maxlag. If lengths of a and b differ, the shorter signal is filled with zeros. If n is the length of the signals, i is a matrix with 2*maxlag+1 rows and
i = migram(a,b,maxlag,window,noverlap,nbins) calculates the mutual information based on histograms with the number of bins nbins. i = migram(...,'norm') calculates the renormalised mutual information, which is i/log(nbins) and ensures a value range [0 1]. [i,l,t] = migram(...) returns a column of lag l and one of time t at which the mutual information is computed. l has length equal to the number of rows of i, t has length k. i = migram(a,b) calculates windowed mutual information using defeault settings; the defeaults are maxlag = floor(0.1*n), window = floor(0.1*n), noverlap = 0 and nbins = 10. You can tell migram to use the defeault for any parameter by leaving it off or using [] for that parameter, e.g. migram(a,b,[],1000). migram(a,b) with no output arguments plots the mutual information using the current figure. Examples
y = sin(0:.01:10*pi)' + .5 * randn(length(x),1); migram(x,y) RemarkPlease note that the mutual information derived with mi slightly differs from the results derived with migram. The reason is that mi also considers estimation errors. A full explanation can be found in this white paper. See Also |
mi | normalize |