class_docstr: Have phi.T istft as callable w/o using a lambda that does not pickle.
class_docstr_tok: ["Have","phi.T","istft","as","callable","w\/o","using","a","lambda","that","does","not","pickle","."]
code: def __init__(self, tstep, n_freqs, n_steps, n_times):
      self.tstep = tstep
      self.n_freqs = n_freqs
      self.n_steps = n_steps
      self.n_times = n_times
      self.n_dicts = len(tstep) if isinstance(tstep, np.ndarray) else 1
      self.n_coefs = list()
      self.op_re = list()
      self.op_im = list()
      for nf, ns, ts in zip(self.n_freqs, self.n_steps, self.tstep):
          nc = nf * ns
          self.n_coefs.append(nc)
          eye = np.eye(nc).reshape(nf, ns, nf, ns)
          self.op_re.append(
              istft(eye, ts, n_times).reshape(nc, n_times)
          )
          self.op_im.append(
              istft(eye * 1j, ts, n_times).reshape(nc, n_times)
          )
  
imports: import functools
  from math import sqrt
  import numpy
  from ..time_frequency._stft import istft, stft, stft_norm1, stft_norm2
  from ..utils import _check_option, _get_blas_funcs, _validate_type, logger, sum_squared, verbose, warn
  from .mxne_debiasing import compute_bias
label_desc: Use image node_id 1 to create a new _PhiT object  with example: obj = _PhiT(tstep, n_freqs, n_steps, n_times)