code: def _biased_spectrum(self, spectrum, k, convention='power', unit='per_l',
                           **kwargs):
          
          # The equation is not modified if the in- and out- spectra are power
          # or energy. However, the convention can not be l2norm, which depends
          # upon the normalization of the coefficients.
          if (convention != 'power' and convention != 'energy'):
              raise ValueError(
                  "convention must be 'power' or 'energy'." +
                  "Input value was {:s}".format(repr(convention)))
  
          if (unit == 'per_l'):
              outspectrum = _shtools.SHBiasKMask(self.tapers, spectrum, k=k,
                                                 **kwargs)
          elif (unit == 'per_lm'):
              degree_l = _np.arange(len(spectrum))
              temp = spectrum * (2.0 * degree_l + 1.0)
              outspectrum = _shtools.SHBiasKMask(self.tapers, temp, k=k,
                                                 **kwargs)
              outspectrum /= (2.0 * degree_l + 1.0)
          else:
              raise ValueError(
                  "unit must be 'per_l' or 'per_lm'." +
                  "Input value was {:s}".format(repr(unit)))
  
          return outspectrum
docs: Calculate the multitaper (cross-) spectrum expectation of a function
          localized by arbitary windows.