code: def sfb3D(lo, hi, sf1, sf2=None, sf3=None):
      """3D Synthesis Filter Bank
  
      Parameters
      ----------
      lo : 1D array
         lowpass subbands
      hi : 1D array
          highpass subbands
      sfi : 2D ndarray
          synthesis filters for dimension i
  
      Returns
      -------
      y : 3D ndarray
          output array
      """
  
      if sf2 is None:
          sf2 = sf1
      if sf3 is None:
          sf3 = sf1
      LLL = lo
      LLH = hi[0]
      LHL = hi[1]
      LHH = hi[2]
      HLL = hi[3]
      HLH = hi[4]
      HHL = hi[5]
      HHH = hi[6]
      # filter along dimension 2
      LL = sfb3D_A(LLL, LLH, sf3, 2)
      LH = sfb3D_A(LHL, LHH, sf3, 2)
      HL = sfb3D_A(HLL, HLH, sf3, 2)
      HH = sfb3D_A(HHL, HHH, sf3, 2)
      # filter along dimension 1
      L = sfb3D_A(LL, LH, sf2, 1)
      H = sfb3D_A(HL, HH, sf2, 1)
      # filter along dimension 0
      y = sfb3D_A(L, H, sf1, 0)
      return y
  
file_path: dipy/dipy/core/wavelet.py
imports: import numpy
  from dipy.denoise import nlmeans_block
label_desc: Use image node_id 5 for calling a global function with example usage: sfb3D(lo, hi, sf1, sf2, sf3) and returns: y