Packages

Digital Signal Processing extension for Nx

Current section

Files

Jump to
nx_signal lib nx_signal transforms.ex
Raw

lib/nx_signal/transforms.ex

defmodule NxSignal.Transforms do
@moduledoc false
import Nx.Defn
deftransform fft_nd(tensor, opts \\ []) do
axes = Keyword.get(opts, :axes, [-1])
lengths = Keyword.get(opts, :lengths) || List.duplicate(nil, length(axes))
Enum.zip_reduce(axes, lengths, tensor, fn axis, len, acc ->
Nx.fft(acc, axis: axis, length: len)
end)
end
deftransform ifft_nd(tensor, opts \\ []) do
axes = Keyword.get(opts, :axes, [-1])
lengths = Keyword.get(opts, :lengths) || List.duplicate(nil, length(axes))
Enum.zip_reduce(axes, lengths, tensor, fn axis, len, acc ->
Nx.ifft(acc, axis: axis, length: len)
end)
end
end