code: def _prepare_DF(self, n_T, scan_onsets=None):
          
          run_TRs, n_run = self._run_TR_from_scan_onsets(n_T, scan_onsets)
          D_ele = map(self._D_gen, run_TRs)
          F_ele = map(self._F_gen, run_TRs)
          D = scipy.linalg.block_diag(*D_ele)
          F = scipy.linalg.block_diag(*F_ele)
          # D and F above are templates for constructing
          # the inverse of temporal covariance matrix of noise
          return D, F, run_TRs, n_run
docs: Prepare the essential template matrices D and F for
              pre-calculating some terms to be re-used.
              The inverse covariance matrix of AR(1) noise is
              sigma^-2 * (I - rho1*D + rho1**2 * F).
              And we denote A = I - rho1*D + rho1**2 * F