conv_mult¶
- dnois.fourier.conv_mult(f1s: Sequence[Tensor], f2: Tensor, dims: Sequence[int], spacing: float | Tensor | Sequence[float | Tensor] = None, out: Literal['full', 'same', 'valid'] = 'full', padding: int | Sequence[int] | str = 'linear', simpson: bool = True, real: bool = None) list[Tensor] ¶
Compute the convolutions between each signal in
f1s
andf2
. The FFT off2
is computed only once by callingft4conv()
, then passed toconv_partial()
to compute convolutions. This is more efficient than callingconv()
multiple times. By default, Simpson’s rule and DFT-scale are only applied tof2
.Shapes of tensors in
f1s
on dimensionsdims
should be identical. Additionally, FFT for real signals is applicable only ifreal
isTrue
and all the tensors inf1s
are real tensors.See also
dconv_mult()
is the discrete counterpart of this function which dropsspacing
andsimpson
.- Parameters:
f1s (Sequence[Tensor]) – A sequence of tensors as one convolution operand.
f2 (Tensor) – The common tensor as another convolution operand.
dims (Sequence[int]) – Dimensions to be convolved.
spacing (float, Tensor or Sequence[float, Tensor]) – See
conv()
.out (str) – See
dconv()
.padding (int, Sequence[int] or str) – See
dconv()
.simpson (bool) – See
conv()
.real (bool) – See
dconv()
.
- Returns:
A list of tensors representing convolutions between signals in
f1s
andf2
.- Return type:
list[Tensor]