Note that this reference documentation is identical to the help that is displayed in MATLAB when you type “help ft_dipolefitting”.
FT_DIPOLEFITTING perform grid search and non-linear fit with one or multiple dipoles and try to find the location where the dipole model is best able to explain the measured EEG or MEG topography. This function will initially scan the whole brain with a single dipole on a regular coarse grid, and subsequently start at the most optimal location with a non-linear search. Alternatively you can specify the initial location of the dipole(s) and the non-linear search will start from there. Use as [source] = ft_dipolefitting(cfg, data) The configuration has the following general fields cfg.numdipoles = number, default is 1 cfg.symmetry = 'x', 'y' or 'z' symmetry for two dipoles, can be empty (default = ) cfg.channel = Nx1 cell-array with selection of channels (default = 'all'), see FT_CHANNELSELECTION for details cfg.gridsearch = 'yes' or 'no', perform global search for initial guess for the dipole parameters (default = 'yes') cfg.nonlinear = 'yes' or 'no', perform nonlinear search for optimal dipole parameters (default = 'yes') If you start with a grid search, the complete grid with dipole positions and optionally precomputed leadfields should be specified cfg.grid = structure, see FT_PREPARE_SOURCEMODEL or FT_PREPARE_LEADFIELD The positions of the dipoles can be specified as a regular 3-D grid that is aligned with the axes of the head coordinate system cfg.grid.xgrid = vector (e.g. -20:1:20) or 'auto' (default = 'auto') cfg.grid.ygrid = vector (e.g. -20:1:20) or 'auto' (default = 'auto') cfg.grid.zgrid = vector (e.g. 0:1:20) or 'auto' (default = 'auto') cfg.grid.resolution = number (e.g. 1 cm) for automatic grid generation cfg.grid.inside = N*1 vector with boolean value whether grid point is inside brain (optional) cfg.grid.dim = [Nx Ny Nz] vector with dimensions in case of 3-D grid (optional) If the source model destribes a triangulated cortical sheet, it is described as cfg.grid.pos = N*3 matrix with the vertex positions of the cortical sheet cfg.grid.tri = M*3 matrix that describes the triangles connecting the vertices Alternatively the position of a few dipoles at locations of interest can be specified, for example obtained from an anatomical or functional MRI cfg.grid.pos = N*3 matrix with position of each source If you do not start with a grid search, you have to give a starting location for the nonlinear search cfg.dip.pos = initial dipole position, matrix of Ndipoles x 3 The conventional approach is to fit dipoles to event-related averages, which within fieldtrip can be obtained from the FT_TIMELOCKANALYSIS or from the FT_TIMELOCKGRANDAVERAGE function. This has the additional options cfg.latency = [begin end] in seconds or 'all' (default = 'all') cfg.model = 'moving' or 'regional' A moving dipole model has a different position (and orientation) for each timepoint, or for each component. A regional dipole model has the same position for each timepoint or component, and a different orientation. You can also fit dipoles to the spatial topographies of an independent component analysis, obtained from the FT_COMPONENTANALYSIS function. This has the additional options cfg.component = array with numbers (can be empty -> all) You can also fit dipoles to the spatial topographies that are present in the data in the frequency domain, which can be obtained using the FT_FREQANALYSIS function. This has the additional options cfg.frequency = single number (in Hz) Low level details of the fitting can be specified in the cfg.dipfit structure cfg.dipfit.display = level of display, can be 'off', 'iter', 'notify' or 'final' (default = 'iter') cfg.dipfit.optimfun = function to use, can be 'fminsearch' or 'fminunc' (default is determined automatic) cfg.dipfit.maxiter = maximum number of function evaluations allowed (default depends on the optimfun) Optionally, you can modify the leadfields by reducing the rank, i.e. remove the weakest orientation cfg.reducerank = 'no', or number (default = 3 for EEG, 2 for MEG) The volume conduction model of the head should be specified as cfg.headmodel = structure with volume conduction model, see FT_PREPARE_HEADMODEL The EEG or MEG sensor positions can be present in the data or can be specified as cfg.elec = structure with electrode positions, see FT_DATATYPE_SENS cfg.grad = structure with gradiometer definition, see FT_DATATYPE_SENS cfg.elecfile = name of file containing the electrode positions, see FT_READ_SENS cfg.gradfile = name of file containing the gradiometer definition, see FT_READ_SENS 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_SOURCEANALYSIS, FT_PREPARE_LEADFIELD, FT_PREPARE_HEADMODEL