Note that this reference documentation is identical to the help that is displayed in MATLAB when you type “help ft_freqanalysis”.

  FT_FREQANALYSIS performs frequency and time-frequency analysis
  on time series data over multiple trials
 
  Use as
    [freq] = ft_freqanalysis(cfg, data)
 
  The input data should be organised in a structure as obtained from
  the FT_PREPROCESSING or the FT_MVARANALYSIS function. The configuration
  depends on the type of computation that you want to perform.
 
  The configuration should contain:
    cfg.method      = different methods of calculating the spectra
                      'mtmfft', analyses an entire spectrum for the entire data
                        length, implements multitaper frequency transformation
                      'mtmconvol', implements multitaper time-frequency
                        transformation based on multiplication in the
                        frequency domain.
                      'wavelet', implements wavelet time frequency
                        transformation (using Morlet wavelets) based on
                        multiplication in the frequency domain.
                      'tfr', implements wavelet time frequency
                        transformation (using Morlet wavelets) based on
                        convolution in the time domain.
                      'mvar', does a fourier transform on the coefficients
                        of an estimated multivariate autoregressive model,
                        obtained with FT_MVARANALYSIS. In this case, the
                        output will contain a spectral transfer matrix,
                        the cross-spectral density matrix, and the
                        covariance matrix of the innovatio noise.
    cfg.output      = 'pow'       return the power-spectra
                      'powandcsd' return the power and the cross-spectra
                      'fourier'   return the complex Fourier-spectra
    cfg.channel     = Nx1 cell-array with selection of channels (default = 'all'),
                        see FT_CHANNELSELECTION for details
    cfg.channelcmb  = Mx2 cell-array with selection of channel pairs (default = {'all' 'all'}),
                        see FT_CHANNELCOMBINATION for details
    cfg.trials      = 'all' or a selection given as a 1xN vector (default = 'all')
    cfg.keeptrials  = 'yes' or 'no', return individual trials or average (default = 'no')
    cfg.keeptapers  = 'yes' or 'no', return individual tapers or average (default = 'no')
    cfg.pad         = number, 'nextpow2', or 'maxperlen' (default), length
                       in seconds to which the data can be padded out. The
                       padding will determine your spectral resolution. If you
                       want to compare spectra from data pieces of different
                       lengths, you should use the same cfg.pad for both, in
                       order to spectrally interpolate them to the same
                       spectral resolution.  The new option 'nextpow2' rounds
                       the maximum trial length up to the next power of 2.  By
                       using that amount of padding, the FFT can be computed
                       more efficiently in case 'maxperlen' has a large prime
                       factor sum.
    cfg.padtype     = string, type of padding (default 'zero', see
                       ft_preproc_padding)
    cfg.polyremoval = number (default = 0), specifying the order of the
                       polynome which is fitted and subtracted from the time
                       domain data prior to the spectral analysis. For
                       example, a value of 1 corresponds to a linear trend.
                       The default is a mean subtraction, thus a value of 0.
                       If no removal is requested, specify -1.
                       see FT_PREPROC_POLYREMOVAL for details
 
 
  METHOD SPECIFIC OPTIONS AND DESCRIPTIONS
 
  MTMFFT performs frequency analysis on any time series trial data using a
  conventional single taper (e.g. Hanning) or using the multiple tapers based on
  discrete prolate spheroidal sequences (DPSS), also known as the Slepian
  sequence.
    cfg.taper      = 'dpss', 'hanning' or many others, see WINDOW (default = 'dpss')
                      For cfg.output='powandcsd', you should specify the channel combinations
                      between which to compute the cross-spectra as cfg.channelcmb. Otherwise
                      you should specify only the channels in cfg.channel.
    cfg.foilim     = [begin end], frequency band of interest
        OR
    cfg.foi        = vector 1 x numfoi, frequencies of interest
    cfg.tapsmofrq  = number, the amount of spectral smoothing through
                     multi-tapering. Note that 4 Hz smoothing means
                     plus-minus 4 Hz, i.e. a 8 Hz smoothing box.
 
  MTMCONVOL performs time-frequency analysis on any time series trial data using
  the 'multitaper method' (MTM) based on Slepian sequences as tapers.
  Alternatively, you can use conventional tapers (e.g. Hanning).
    cfg.tapsmofrq  = vector 1 x numfoi, the amount of spectral smoothing
                      through multi-tapering. Note that 4 Hz smoothing means
                      plus-minus 4 Hz, i.e. a 8 Hz smoothing box.
     cfg.foi        = vector 1 x numfoi, frequencies of interest
     cfg.taper      = 'dpss', 'hanning' or many others, see WINDOW (default = 'dpss')
                       For cfg.output='powandcsd', you should specify the channel combinations
                       between which to compute the cross-spectra as cfg.channelcmb. Otherwise
                       you should specify only the channels in cfg.channel.
     cfg.t_ftimwin  = vector 1 x numfoi, length of time window (in seconds)
     cfg.toi        = vector 1 x numtoi, the times on which the analysis
                      windows should be centered (in seconds), or a string
                      such as '50%' or 'all' (default).  Both string options
                      use all timepoints available in the data, but 'all'
                      centers a spectral estimate on each sample, whereas
                      the percentage specifies the degree of overlap between
                      the shortest time windows from cfg.t_ftimwin.
 
  WAVELET performs time-frequency analysis on any time series trial data using the
  'wavelet method' based on Morlet wavelets. Using mulitplication in the frequency
  domain instead of convolution in the time domain.
    cfg.foi        = vector 1 x numfoi, frequencies of interest
        OR
    cfg.foilim     = [begin end], frequency band of interest
    cfg.toi        = vector 1 x numtoi, the times on which the analysis
                     windows should be centered (in seconds)
    cfg.width      = 'width', or number of cycles, of the wavelet (default = 7)
    cfg.gwidth     = determines the length of the used wavelets in standard
                     deviations of the implicit Gaussian kernel and should
                     be choosen >= 3; (default = 3)
 
  The standard deviation in the frequency domain (sf) at frequency f0 is
  defined as: sf = f0/width
  The standard deviation in the temporal domain (st) at frequency f0 is
  defined as: st = 1/(2*pi*sf)
 
 
  TFR performs time-frequency analysis on any time series trial data using the
  'wavelet method' based on Morlet wavelets. Using convolution in the time domain
  instead of multiplication in the frequency domain.
    cfg.foi        = vector 1 x numfoi, frequencies of interest
        OR
    cfg.foilim     = [begin end], frequency band of interest
    cfg.width      = 'width', or number of cycles, of the wavelet (default = 7)
    cfg.gwidth     = determines the length of the used wavelets in standard
                     deviations of the implicit Gaussian kernel and should
                     be choosen >= 3; (default = 3)
 
 
  To facilitate data-handling and distributed computing you can use
    cfg.inputfile   =  ...
    cfg.outputfile  =  ...
  If you specify one of these (or both) the input data will be read from a
  *.mat file on disk and/or the output data will be written to a *.mat
  file. These mat files should contain only a single variable,
  corresponding with the input/output structure.
 
  See also FT_FREQSTATISTICS, FT_FREQDESCRIPTIVES, FT_CONNECTIVITYANALYSIS