bartorch.iwt

Contents

bartorch.iwt#

bartorch.iwt(input, oshape, axes, *, wavelet='dau2')#

Wavelet synthesis along axes: coefficients from fwt() back to samples.

bart wavelet -a runs the synthesis filter bank, which inverts fwt() (iwt(fwt(x)) == x) for every wavelet. It is a left inverse, not the adjoint, although BART’s wavelet linop uses it as its adjoint: synthesis ignores the reflected samples the analysis read (wavelet_up3, src/wavelet/wavelet.c). The two coincide only for "haar" when every level’s length is even, where the transform is orthogonal. "cdf97" runs bart cdf97 -i, the exact inverse of a biorthogonal transform that is not orthogonal.

Parameters:
  • input (torch.Tensor) – Coefficients, laid out as fwt() returns them.

  • oshape (tuple of int) – Shape of the result, C order, one entry per axis of input; the axes not in axes must match input.

  • axes (int or tuple of int) – Transformed axes, as indices into oshape.

  • wavelet ({"haar", "dau2", "cdf44", "cdf97"}) – As for fwt().