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

  FT_PREPROC_DFTFILTER reduces power line noise (50 or 60Hz) via two 
  alternative methods:
  A) DFT filter (Flreplace = 'zero') or
  B) Spectrum Interpolation (Flreplace = 'neighbour').
 
  A) The DFT filter applies a notch filter to the data to remove the 50Hz
  or 60Hz line noise components ('zeroing'). This is done by fitting a sine 
  and cosine at the specified frequency to the data and subsequently 
  subtracting the estimated components. The longer the data is, the sharper 
  the spectral notch will be that is removed from the data.
  Preferably the data should have a length that is a multiple of the
  oscillation period of the line noise (i.e. 20ms for 50Hz noise). If the
  data is of different lenght, then only the first N complete periods are
  used to estimate the line noise. The estimate is subtracted from the
  complete data.
 
  B) Alternatively line noise is reduced via spectrum interpolation 
  (introduced by Mewett et al., 2004, Med. Biol. Eng. Comput. 42, 
  doi:10.1007/BF02350994). 
  The signal is:
  I)   transformed into the frequency domain via a discrete Fourier 
        transform (DFT), 
  II)  the line noise component (e.g. 50Hz, Flwidth = 1 (1Hz): 49-51Hz) is 
        interpolated in the amplitude spectrum by replacing the amplitude 
        of this frequency bin by the mean of the adjacent frequency bins 
        ('neighbours', e.g. 49Hz and 51Hz). 
        Neighwidth defines frequencies considered for the mean (e.g. 
        Neighwidth = 2 (2Hz) implies 47-49 Hz and 51-53 Hz). 
        The original phase information of the noise frequency bin is
        retained.
  III) the signal is transformed back into the time domain via inverse DFT
        (iDFT).
  If Fline is a vector (e.g. [50 100 150]), harmonics are also considered. 
  Preferably the data should be continuous or consist of long data segments
  (several seconds) to avoid edge effects. If the sampling rate and the
  data length are such, that a full cycle of the line noise and the harmonics
  fit in the data and if the line noise is stationary (e.g. no variations
  in amplitude or frequency), then spectrum interpolation can also be 
  applied to short trials. But it should be used with caution and checked 
  for edge effects.
 
  Use as
    [filt] = ft_preproc_dftfilter(dat, Fsample, Fline, varargin)
  where
    dat             data matrix (Nchans X Ntime)
    Fsample         sampling frequency in Hz
    Fline           line noise frequency (and harmonics)
 
  Additional input arguments come as key-value pairs:
 
    Flreplace       'zero' or 'neighbour', method used to reduce line noise, 'zero' implies DFT filter, 'neighbour' implies spectrum interpolation  
    Flwidth         bandwidth of line noise frequencies, applies to spectrum interpolation, in Hz
    Neighwidth      width of frequencies neighbouring line noise frequencies, applies to spectrum interpolation (Flreplace = 'neighbour'), in Hz 
 
  The line frequency should be specified as a single number for the DFT filter.
  If omitted, a European default of 50Hz will be assumed
 
  See also PREPROC