Skip to content

← spectral package

FastFourierTransform

Calculate the (one-dimensional) Fast Fourier Transform (FFT) of the given data along some axis.

This is the raw math operation that emits complex-valued data; for nodes that calculate the power spectrum of signals, see the WelchSpectrum and MultitaperSpectrum nodes. This node is useful for full control over the FFT operation or for highly custom use cases. You can configure the frequency resolution of the output using the fft_size parameter (see help text). The node supports all three common normalization modes, and in case of real-valued input data, the node can optionally produce a one-sized spectrum (equivalent to the RFFT operation in common numerical libraries). This node will replace the original axis of the data by a frequency axis, carrying over the axis label, if any. In contrast to the WelchSpectrum etc nodes, this node will not retain a dummy one-element time axis. More Info... Version 1.0.0

Ports/Properties

data

Data to process.

verbose name
Data
default value
None
port type
DataPort
value type
AnyNumeric (can be None)
data direction
INOUT

axis

Axis along which the FFT will be calculated. You can also enter the axis label here as in time.mylabel. If the data is not a packet, any named axis will translate to -1.

verbose name
Axis
default value
time
port type
ComboPort
value type
str (can be None)

n

Length of the FFT used, in samples. Using a higher number will yield a finer stepping along the frequency axis, without a change in frequency or temporal detail (the frequency axis will be correspondingly more smooth to counter the finer stepping). If not given, it defaults to the size of the data along that axis. The implementation is equivalent to either zero-padding or truncating the data to the given length before calculating the FFT.

verbose name
Fft Size
default value
None
port type
IntPort
value type
int (can be None)

normalization

Normalization to apply to the FFT. Backward means that the forward FFT is unscaled and the corresponding inverse FFT is scaled by 1/n. Ortho means that both the forward and inverse FFT are scaled by 1/sqrt(n). Forward means that the forward FFT is scaled by 1/n and the corresponding inverse FFT is unscaled.

verbose name
Normalization
default value
backward
port type
EnumPort
value type
str (can be None)

onesided

Return one-sided spectrum. If disabled, a two-sided (meaning: symmetric about the middle) spectrum will be computed, which is redundant for real-valued data, but required for complex-valued data (for complex data, the spectrum should always be two-sided). This is equivalent to the FFT / RFFT distinction in numerical subroutines, e.g., numpy.

verbose name
Return One-Sided Spectrum
default value
False
port type
BoolPort
value type
bool (can be None)

partition_axis

Axis along which to partition the computation. This can be used to reduce the memory requirements on large data.

verbose name
Partition Axis
default value
disabled
port type
ComboPort
value type
object (can be None)

num_partitions

Number of partitions to use. The memory usage is divided by this amount. Requires that partition_axis is set to something other than disabled.

verbose name
Num Partitions
default value
4
port type
IntPort
value type
int (can be None)

set_breakpoint

Set a breakpoint on this node. If this is enabled, your debugger (if one is attached) will trigger a breakpoint.

verbose name
Set Breakpoint (Debug Only)
default value
False
port type
BoolPort
value type
bool (can be None)

metadata

User-definable meta-data associated with the node. Usually reserved for technical purposes.

verbose name
Metadata
default value
{}
port type
DictPort
value type
dict (can be None)