arrayfire.signal module

Signal processing functions (fft, convolve, etc).

arrayfire.signal.approx1(signal, pos0, method=<arrayfire.library.INTERP object>, off_grid=0.0)[source]

Interpolate along a single dimension.

Parameters:

signal: af.Array

A 1 dimensional signal or batch of 1 dimensional signals.

pos0 : af.Array

Locations of the interpolation points.

method: optional: af.INTERP. default: af.INTERP.LINEAR.

Interpolation method.

off_grid: optional: scalar. default: 0.0.

The value used for positions outside the range.

Returns:

output: af.Array

Values calculated at interpolation points.

arrayfire.signal.approx2(signal, pos0, pos1, method=<arrayfire.library.INTERP object>, off_grid=0.0)[source]

Interpolate along a two dimension.

Parameters:

signal: af.Array

A 2 dimensional signal or batch of 2 dimensional signals.

pos0 : af.Array

Locations of the interpolation points along the first dimension.

pos1 : af.Array

Locations of the interpolation points along the second dimension.

method: optional: af.INTERP. default: af.INTERP.LINEAR.

Interpolation method.

off_grid: optional: scalar. default: 0.0.

The value used for positions outside the range.

Returns:

output: af.Array

Values calculated at interpolation points.

arrayfire.signal.convolve(signal, kernel, conv_mode=<arrayfire.library.CONV_MODE object>, conv_domain=<arrayfire.library.CONV_DOMAIN object>)[source]

Non batched Convolution.

This function performs n-dimensional convolution based on input dimensionality.

Parameters:

signal: af.Array

  • An n-dimensional array.

kernel: af.Array

  • A n-dimensional kernel.

conv_mode: optional: af.CONV_MODE. default: af.CONV_MODE.DEFAULT.

  • Specifies if the output does full convolution (af.CONV_MODE.EXPAND) or maintains the same size as input (af.CONV_MODE.DEFAULT).

conv_domain: optional: af.CONV_DOMAIN. default: af.CONV_DOMAIN.AUTO.

  • Specifies the domain in which convolution is performed.
  • af.CONV_DOMAIN.SPATIAL: Performs convolution in spatial domain.
  • af.CONV_DOMAIN.FREQ: Performs convolution in frequency domain.
  • af.CONV_DOMAIN.AUTO: Switches between spatial and frequency based on input size.
Returns:

output: af.Array

  • Output of n-dimensional convolution.
arrayfire.signal.convolve1(signal, kernel, conv_mode=<arrayfire.library.CONV_MODE object>, conv_domain=<arrayfire.library.CONV_DOMAIN object>)[source]

Convolution: 1D

Parameters:

signal: af.Array

  • A 1 dimensional signal or batch of 1 dimensional signals.

kernel: af.Array

  • A 1 dimensional kernel or batch of 1 dimensional kernels.

conv_mode: optional: af.CONV_MODE. default: af.CONV_MODE.DEFAULT.

  • Specifies if the output does full convolution (af.CONV_MODE.EXPAND) or maintains the same size as input (af.CONV_MODE.DEFAULT).

conv_domain: optional: af.CONV_DOMAIN. default: af.CONV_DOMAIN.AUTO.

  • Specifies the domain in which convolution is performed.
  • af.CONV_DOMAIN.SPATIAL: Performs convolution in spatial domain.
  • af.CONV_DOMAIN.FREQ: Performs convolution in frequency domain.
  • af.CONV_DOMAIN.AUTO: Switches between spatial and frequency based on input size.
Returns:

output: af.Array

  • Output of 1D convolution.
arrayfire.signal.convolve2(signal, kernel, conv_mode=<arrayfire.library.CONV_MODE object>, conv_domain=<arrayfire.library.CONV_DOMAIN object>)[source]

Convolution: 2D

Parameters:

signal: af.Array

  • A 2 dimensional signal or batch of 2 dimensional signals.

kernel: af.Array

  • A 2 dimensional kernel or batch of 2 dimensional kernels.

conv_mode: optional: af.CONV_MODE. default: af.CONV_MODE.DEFAULT.

  • Specifies if the output does full convolution (af.CONV_MODE.EXPAND) or maintains the same size as input (af.CONV_MODE.DEFAULT).

conv_domain: optional: af.CONV_DOMAIN. default: af.CONV_DOMAIN.AUTO.

  • Specifies the domain in which convolution is performed.
  • af.CONV_DOMAIN.SPATIAL: Performs convolution in spatial domain.
  • af.CONV_DOMAIN.FREQ: Performs convolution in frequency domain.
  • af.CONV_DOMAIN.AUTO: Switches between spatial and frequency based on input size.
Returns:

output: af.Array

  • Output of 2D convolution.
arrayfire.signal.convolve2_separable(col_kernel, row_kernel, signal, conv_mode=<arrayfire.library.CONV_MODE object>)[source]

Convolution: 2D separable convolution

Parameters:

col_kernel: af.Array

  • A column vector to be applied along each column of signal

row_kernel: af.Array

  • A row vector to be applied along each row of signal

signal: af.Array

  • A 2 dimensional signal or batch of 2 dimensional signals.

conv_mode: optional: af.CONV_MODE. default: af.CONV_MODE.DEFAULT.

  • Specifies if the output does full convolution (af.CONV_MODE.EXPAND) or maintains the same size as input (af.CONV_MODE.DEFAULT).

Returns

——–

output: af.Array

  • Output of 2D sepearable convolution.
arrayfire.signal.convolve3(signal, kernel, conv_mode=<arrayfire.library.CONV_MODE object>, conv_domain=<arrayfire.library.CONV_DOMAIN object>)[source]

Convolution: 3D

Parameters:

signal: af.Array

  • A 3 dimensional signal or batch of 3 dimensional signals.

kernel: af.Array

  • A 3 dimensional kernel or batch of 3 dimensional kernels.

conv_mode: optional: af.CONV_MODE. default: af.CONV_MODE.DEFAULT.

  • Specifies if the output does full convolution (af.CONV_MODE.EXPAND) or maintains the same size as input (af.CONV_MODE.DEFAULT).

conv_domain: optional: af.CONV_DOMAIN. default: af.CONV_DOMAIN.AUTO.

  • Specifies the domain in which convolution is performed.
  • af.CONV_DOMAIN.SPATIAL: Performs convolution in spatial domain.
  • af.CONV_DOMAIN.FREQ: Performs convolution in frequency domain.
  • af.CONV_DOMAIN.AUTO: Switches between spatial and frequency based on input size.
Returns:

output: af.Array

  • Output of 3D convolution.
arrayfire.signal.dft(signal, odims=(None, None, None, None), scale=None)[source]

Non batched Fourier transform.

This function performs n-dimensional fourier transform depending on the input dimensions.

Parameters:

signal: af.Array

  • A multi dimensional arrayfire array.

odims: optional: tuple of ints. default: (None, None, None, None).

  • If None, calculated to be signal.dims()

scale: optional: scalar. default: None.

  • Scale factor for the fourier transform.
  • If none, calculated to be 1.0.
Returns:

output: af.Array

  • A complex array that is the ouput of n-dimensional fourier transform.
arrayfire.signal.fft(signal, dim0=None, scale=None)[source]

Fast Fourier Transform: 1D

Parameters:

signal: af.Array

A 1 dimensional signal or a batch of 1 dimensional signals.

dim0: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim0 is calculated to be the first dimension of signal.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1.
Returns:

output: af.Array

A complex af.Array containing the full output of the fft.

arrayfire.signal.fft2(signal, dim0=None, dim1=None, scale=None)[source]

Fast Fourier Transform: 2D

Parameters:

signal: af.Array

A 2 dimensional signal or a batch of 2 dimensional signals.

dim0: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim0 is calculated to be the first dimension of signal.

dim1: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim1 is calculated to be the second dimension of signal.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1.
Returns:

output: af.Array

A complex af.Array containing the full output of the fft.

arrayfire.signal.fft2_c2r(signal, is_odd=False, scale=None)[source]

Real to Complex Fast Fourier Transform: 2D

Parameters:

signal: af.Array

A 2 dimensional signal or a batch of 2 dimensional signals.

is_odd: optional: Boolean. default: False.

  • Specifies if the first dimension of output should be even or odd.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1 / (signal.dims()[0] * signal.dims()[1]).
Returns:

output: af.Array

A real af.Array containing the full output of the fft.

arrayfire.signal.fft2_inplace(signal, scale=None)[source]

In-place Fast Fourier Transform: 2D

Parameters:

signal: af.Array

A 2 dimensional signal or a batch of 2 dimensional signals.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1.
arrayfire.signal.fft2_r2c(signal, dim0=None, dim1=None, scale=None)[source]

Real to Complex Fast Fourier Transform: 2D

Parameters:

signal: af.Array

A 2 dimensional signal or a batch of 2 dimensional signals.

dim0: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim0 is calculated to be the first dimension of signal.

dim1: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim1 is calculated to be the second dimension of signal.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1.
Returns:

output: af.Array

A complex af.Array containing the non-redundant parts of the full FFT.

arrayfire.signal.fft3(signal, dim0=None, dim1=None, dim2=None, scale=None)[source]

Fast Fourier Transform: 3D

Parameters:

signal: af.Array

A 3 dimensional signal or a batch of 3 dimensional signals.

dim0: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim0 is calculated to be the first dimension of signal.

dim1: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim1 is calculated to be the second dimension of signal.

dim2: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim2 is calculated to be the third dimension of signal.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1.
Returns:

output: af.Array

A complex af.Array containing the full output of the fft.

arrayfire.signal.fft3_c2r(signal, is_odd=False, scale=None)[source]

Real to Complex Fast Fourier Transform: 3D

Parameters:

signal: af.Array

A 3 dimensional signal or a batch of 3 dimensional signals.

is_odd: optional: Boolean. default: False.

  • Specifies if the first dimension of output should be even or odd.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1 / (signal.dims()[0] * signal.dims()[1] * signal.dims()[2]).
Returns:

output: af.Array

A real af.Array containing the full output of the fft.

arrayfire.signal.fft3_inplace(signal, scale=None)[source]

In-place Fast Fourier Transform: 3D

Parameters:

signal: af.Array

A 3 dimensional signal or a batch of 3 dimensional signals.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1.
arrayfire.signal.fft3_r2c(signal, dim0=None, dim1=None, dim2=None, scale=None)[source]

Real to Complex Fast Fourier Transform: 3D

Parameters:

signal: af.Array

A 3 dimensional signal or a batch of 3 dimensional signals.

dim0: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim0 is calculated to be the first dimension of signal.

dim1: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim1 is calculated to be the second dimension of signal.

dim2: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim2 is calculated to be the third dimension of signal.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1.
Returns:

output: af.Array

A complex af.Array containing the non-redundant parts of the full FFT.

arrayfire.signal.fft_c2r(signal, is_odd=False, scale=None)[source]

Real to Complex Fast Fourier Transform: 1D

Parameters:

signal: af.Array

A 1 dimensional signal or a batch of 1 dimensional signals.

is_odd: optional: Boolean. default: False.

  • Specifies if the first dimension of output should be even or odd.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1 / (signal.dims()[0]).
Returns:

output: af.Array

A real af.Array containing the full output of the fft.

arrayfire.signal.fft_convolve(signal, kernel, conv_mode=<arrayfire.library.CONV_MODE object>)[source]

Non batched FFT Convolution.

This function performs n-dimensional convolution based on input dimensionality.

Parameters:

signal: af.Array

  • An n-dimensional array.

kernel: af.Array

  • A n-dimensional kernel.

conv_mode: optional: af.CONV_MODE. default: af.CONV_MODE.DEFAULT.

  • Specifies if the output does full convolution (af.CONV_MODE.EXPAND) or maintains the same size as input (af.CONV_MODE.DEFAULT).
Returns:

output: af.Array

  • Output of n-dimensional convolution.
arrayfire.signal.fft_convolve1(signal, kernel, conv_mode=<arrayfire.library.CONV_MODE object>)[source]

FFT based Convolution: 1D

Parameters:

signal: af.Array

  • A 1 dimensional signal or batch of 1 dimensional signals.

kernel: af.Array

  • A 1 dimensional kernel or batch of 1 dimensional kernels.

conv_mode: optional: af.CONV_MODE. default: af.CONV_MODE.DEFAULT.

  • Specifies if the output does full convolution (af.CONV_MODE.EXPAND) or maintains the same size as input (af.CONV_MODE.DEFAULT).
Returns:

output: af.Array

  • Output of 1D convolution.
arrayfire.signal.fft_convolve2(signal, kernel, conv_mode=<arrayfire.library.CONV_MODE object>)[source]

FFT based Convolution: 2D

Parameters:

signal: af.Array

  • A 2 dimensional signal or batch of 2 dimensional signals.

kernel: af.Array

  • A 2 dimensional kernel or batch of 2 dimensional kernels.

conv_mode: optional: af.CONV_MODE. default: af.CONV_MODE.DEFAULT.

  • Specifies if the output does full convolution (af.CONV_MODE.EXPAND) or maintains the same size as input (af.CONV_MODE.DEFAULT).
Returns:

output: af.Array

  • Output of 2D convolution.
arrayfire.signal.fft_convolve3(signal, kernel, conv_mode=<arrayfire.library.CONV_MODE object>)[source]

FFT based Convolution: 3D

Parameters:

signal: af.Array

  • A 3 dimensional signal or batch of 3 dimensional signals.

kernel: af.Array

  • A 3 dimensional kernel or batch of 3 dimensional kernels.

conv_mode: optional: af.CONV_MODE. default: af.CONV_MODE.DEFAULT.

  • Specifies if the output does full convolution (af.CONV_MODE.EXPAND) or maintains the same size as input (af.CONV_MODE.DEFAULT).
Returns:

output: af.Array

  • Output of 3D convolution.
arrayfire.signal.fft_inplace(signal, scale=None)[source]

In-place Fast Fourier Transform: 1D

Parameters:

signal: af.Array

A 1 dimensional signal or a batch of 1 dimensional signals.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1.
arrayfire.signal.fft_r2c(signal, dim0=None, scale=None)[source]

Real to Complex Fast Fourier Transform: 1D

Parameters:

signal: af.Array

A 1 dimensional signal or a batch of 1 dimensional signals.

dim0: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim0 is calculated to be the first dimension of signal.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1.
Returns:

output: af.Array

A complex af.Array containing the non-redundant parts of the full FFT.

arrayfire.signal.fir(B, X)[source]

Finite impulse response filter.

Parameters:

B : af.Array

A 1 dimensional array containing the coefficients of the filter.

X : af.Array

A 1 dimensional array containing the signal.

Returns:

Y : af.Array

The output of the filter.

arrayfire.signal.idft(signal, scale=None, odims=(None, None, None, None))[source]

Non batched Inverse Fourier transform.

This function performs n-dimensional inverse fourier transform depending on the input dimensions.

Parameters:

signal: af.Array

  • A multi dimensional arrayfire array.

odims: optional: tuple of ints. default: (None, None, None, None).

  • If None, calculated to be signal.dims()

scale: optional: scalar. default: None.

  • Scale factor for the fourier transform.
  • If none, calculated to be 1.0 / signal.elements()
Returns:

output: af.Array

  • A complex array that is the ouput of n-dimensional inverse fourier transform.
arrayfire.signal.ifft(signal, dim0=None, scale=None)[source]

Inverse Fast Fourier Transform: 1D

Parameters:

signal: af.Array

A 1 dimensional signal or a batch of 1 dimensional signals.

dim0: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim0 is calculated to be the first dimension of signal.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1.0 / (dim0)
Returns:

output: af.Array

A complex af.Array containing the full output of the inverse fft.

arrayfire.signal.ifft2(signal, dim0=None, dim1=None, scale=None)[source]

Inverse Fast Fourier Transform: 2D

Parameters:

signal: af.Array

A 2 dimensional signal or a batch of 2 dimensional signals.

dim0: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim0 is calculated to be the first dimension of signal.

dim1: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim1 is calculated to be the second dimension of signal.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1.0 / (dim0 * dim1)
Returns:

output: af.Array

A complex af.Array containing the full output of the inverse fft.

arrayfire.signal.ifft2_inplace(signal, scale=None)[source]

Inverse In-place Fast Fourier Transform: 2D

Parameters:

signal: af.Array

A 2 dimensional signal or a batch of 2 dimensional signals.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1.0 / (signal.dims()[0] * signal.dims()[1])
arrayfire.signal.ifft3(signal, dim0=None, dim1=None, dim2=None, scale=None)[source]

Inverse Fast Fourier Transform: 3D

Parameters:

signal: af.Array

A 3 dimensional signal or a batch of 3 dimensional signals.

dim0: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim0 is calculated to be the first dimension of signal.

dim1: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim1 is calculated to be the second dimension of signal.

dim2: optional: int. default: None.

  • Specifies the size of the output.
  • If None, dim2 is calculated to be the third dimension of signal.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1.0 / (dim0 * dim1 * dim2).
Returns:

output: af.Array

A complex af.Array containing the full output of the inverse fft.

arrayfire.signal.ifft3_inplace(signal, scale=None)[source]

Inverse In-place Fast Fourier Transform: 3D

Parameters:

signal: af.Array

A 3 dimensional signal or a batch of 3 dimensional signals.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1.0 / (signal.dims()[0] * signal.dims()[1] * signal.dims()[2]).
arrayfire.signal.ifft_inplace(signal, scale=None)[source]

Inverse In-place Fast Fourier Transform: 1D

Parameters:

signal: af.Array

A 1 dimensional signal or a batch of 1 dimensional signals.

scale: optional: scalar. default: None.

  • Specifies the scaling factor.
  • If None, scale is set to 1.0 / (signal.dims()[0])
arrayfire.signal.iir(B, A, X)[source]

Infinite impulse response filter.

Parameters:

B : af.Array

A 1 dimensional array containing the feed forward coefficients of the filter.

A : af.Array

A 1 dimensional array containing the feed back coefficients of the filter.

X : af.Array

A 1 dimensional array containing the signal.

Returns:

Y : af.Array

The output of the filter.