CRP Toolbox Reference

migram

Purpose

Calculate windowed mutual information between two signals.

Syntax

    i = migram(a,b,maxlag,window,noverlap,nbins)
    [i,l,t] = migram(...)
    i = migram(a,b)
    migram(a,b)

Description

i = 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

    k = fix((n-noverlap)/(window-noverlap))
columns.

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

    x = cos(0:.01:10*pi)';
    y = sin(0:.01:10*pi)' + .5 * randn(length(x),1);
    migram(x,y)

Remark

Please 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, corrgram,

mi normalize