Commit 9c1b60b1 authored by cgohil8's avatar cgohil8 Committed by Andrew Quinn
Browse files

Minor improvements to cross_morlet.

parent 2f360510
Loading
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -6,8 +6,7 @@ import numpy as np
from scipy import signal


def morlet(x, freqs, sample_rate, win_len=4, ncycles=5, ret_basis=False,
           ret_mode='power', normalise='wikipedia'):
def morlet(x, freqs, sample_rate, win_len=4, ncycles=5, ret_basis=False, ret_mode='power', normalise='wikipedia'):
    """Compute a morlet wavelet time-frequency transform on a univariate dataset.

    Parameters
@@ -99,13 +98,14 @@ def cross_morlet(x, freqs, sample_rate, win_len=4, ncycles=5, ret_mode='power',
        Array containing morlet cross wavelet transformed data [nfreqs x nsamples x nchannels x nchannels].

    """
    if ret_mode not in ['power', 'amplitude', 'complex']:
        raise ValueError("'ret_mode not recognised, please use one of {'power','amplitude','complex'}")

    # Run standard wavelet decomposition return complex values
    wt = morlet(x, freqs, sample_rate, win_len=win_len, ncycles=ncycles,
                ret_mode='complex', normalise=normalise)
    wt = morlet(x, freqs, sample_rate, win_len=win_len, ncycles=ncycles, ret_mode='complex', normalise=normalise)

    # Preallocate output array
    # [nchannels x nchannels x nfreqs x ntimes]
    S = np.zeros((wt.shape[0], wt.shape[0], wt.shape[1], wt.shape[2]), dtype=complex)
    # Preallocate output array [nchannels x nchannels x nfreqs x ntimes]
    S = np.empty((wt.shape[0], wt.shape[0], wt.shape[1], wt.shape[2]), dtype=complex)

    # Main loop
    for ii in range(wt.shape[1]):
@@ -139,7 +139,7 @@ def get_morlet_basis(freq, ncycles, win_len, sample_rate, normalise='wikipedia')
        Flag indicating which normalisation factor to apply to the wavelet
        basis (default is 'wikipedia') - can be one of:

        * None - no normalisatio is applied
        * None - no normalisation is applied

        * 'simple' - wavelet is normalised by its own sum