Current section
Files
Jump to
Current section
Files
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