123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- function chronux
- % This library performs time-frequency analysis (mostly using the
- % multi-taper spectral estimation method) of univariate and multivariate
- % data, both for continuous processes such as LFP/EEG and for point
- % processes such as spike times. Point process can either be stored as
- % times or as a binned process of counts. The routines in this library
- % are named differently for the three cases. For calculations
- % that can be performed for each of the three data types, we use suffixes
- % c, pb, or pt to refer to continuous, point process binned counts, or
- % point process times. For example, the spectrum calculation is performed
- % mtspectrumc for continuous processes, mtspectrumpb for a binned point
- % process, and mtspectrumpt for a point process consisting of times. There
- % are also routines for calculating hybrid quantities involving one continuous
- % and one point process. These are suffixed in a similar manner. For
- % example, coherencycpb calculates the coherency between a binned point process
- % and a continuous process.
- %
- % Certain variables are used repeatedly in this library.
- %
- % DATA
- % data in most cases can be univariate or multivariate, and either point process,
- % or continuous.
- %
- % Continuous data: Continuous data is assumed to be a matrix with
- % dimensions samples x channels/trials.
- %
- % Point Process: A single time series of spike times can be in the form of
- % a column vector.
- % Multichannel/trial spike time data is not amenable to this
- % storage format, since there are generally different
- % number of spikes in each channel/trial. Instead,
- % multichannel/trial spike data is stored in a structure
- % array. A structure is a matlab data object with various
- % fields. These fields contain the elements
- % e.g. The command data=struct('times',[]); creates an empty
- % structure with field 'times'. Similarly, the command
- % data=struct('times',[1 2 3]); creates the structure with
- % the field 'times' containing integers 1, 2, and 3.
- %
- % We can also have a structure array (or an array of structures)
- % defined for example, by
- % data(1)=struct('times',rand(1,100)); and
- % data(2)=struct('times',rand(1,200));
- % This is a 2 dimensional structure array where the
- % first field is a 100 dimensional random vector, and
- % the second field is a 200 dimensional random vector.
- % This format allows storage of multichannel point
- % process times in a single variable data.
- %
- % The above holds for point processes stored as times.
- % If instead, the point processes are binned, then one
- % can use a matrix to represent them
- %
- %
- % Summary: data - array of continuous data with dimensions time x channels
- % structural array of spike times with dimensions
- % equal to the number of channels
- % 1d array of spike times as a column vector
- % array of binned spike counts with dimensions time x channels
- %
- % PARAMETERS:
- % These are various parameters used in the spectral calculations. Since
- % these parameters are used by most routines in Chronux, they are stored in
- % a single structure params. The fields of params are
- %
- % tapers : precalculated tapers from dpss or in the one of the following
- % forms:
- % (1) A numeric vector [TW K] where TW is the
- % time-bandwidth product and K is the number of
- % tapers to be used (less than or equal to
- % 2TW-1).
- % (2) A numeric vector [W T p] where W is the
- % bandwidth, T is the duration of the data and p
- % is an integer such that 2TW-p tapers are used. In
- % this form there is no default i.e. to specify
- % the bandwidth, you have to specify T and p as
- % well. Note that the units of W and T have to be
- % consistent: if W is in Hz, T must be in seconds
- % and vice versa. Note that these units must also
- % be consistent with the units of params.Fs: W can
- % be in Hz if and only if params.Fs is in Hz.
- % The default is to use form 1 with TW=3 and K=5
- %
- %
- % pad: (padding factor for the FFT) - optional (can take values -1,0,1,2...).
- % -1 corresponds to no padding, 0 corresponds to padding
- % to the next highest power of 2 etc.
- % e.g. For N = 500, if PAD = -1, we do not pad; if PAD = 0, we pad the FFT
- % to 512 points, if pad=1, we pad to 1024 points etc.
- % Defaults to 0.
- %
- % Fs:sampling frequency.optional (default 1)
- %
- %
- % fpass: frequencies in an fft calculation can range from 0 to Fs/2 where
- % Fs is the sampling frequency. Sometimes it may be useful to
- % compute fourier transforms (and resulting quantities like the
- % spectrum over a smaller range of frequencies). This is specified
- % by fpass, which can be in the form [fmin fmax] where fmin >=0 and
- % fmax<=Fs/2. optional (default [0 Fs/2])
- %
- % err=[errtype p] calculates theoretical error bars (confidence levels)
- % when errtype=1 and jackknife error bars when errchk=2. In each case, the
- % error is calculated at a p value specified by p. -
- % optional (default 0)
- %
- % trialave: trialave controls whether or not to average over channels/trials for
- % multichannel/trial analyses. trialave=0 (default) implies no trial
- % averaging, trialave=1 implies that the quantity of interest is averaged
- % over channels/trials. optional (default 0)
- %
- % Other parameters are discussed in individual routines as and when they
- % are used.
|