arrayfire.signal module¶
Signal processing functions (fft, convolve, etc).
- arrayfire.signal.approx1(signal, pos0, method=INTERP.LINEAR, off_grid=0.0)[source]¶
Interpolate along a single dimension.
- Parameters:
- signal: af.Array
A 1 dimensional signal or batch of 1 dimensional signals.
- pos0af.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=INTERP.LINEAR, off_grid=0.0)[source]¶
Interpolate along a two dimension.
- Parameters:
- signal: af.Array
A 2 dimensional signal or batch of 2 dimensional signals.
- pos0af.Array
Locations of the interpolation points along the first dimension.
- pos1af.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=CONV_MODE.DEFAULT, conv_domain=CONV_DOMAIN.AUTO)[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=CONV_MODE.DEFAULT, conv_domain=CONV_DOMAIN.AUTO)[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=CONV_MODE.DEFAULT, conv_domain=CONV_DOMAIN.AUTO)[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=CONV_MODE.DEFAULT)[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=CONV_MODE.DEFAULT, conv_domain=CONV_DOMAIN.AUTO)[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=CONV_MODE.DEFAULT)[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=CONV_MODE.DEFAULT)[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=CONV_MODE.DEFAULT)[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=CONV_MODE.DEFAULT)[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:
- Baf.Array
A 1 dimensional array containing the coefficients of the filter.
- Xaf.Array
A 1 dimensional array containing the signal.
- Returns:
- Yaf.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:
- Baf.Array
A 1 dimensional array containing the feed forward coefficients of the filter.
- Aaf.Array
A 1 dimensional array containing the feed back coefficients of the filter.
- Xaf.Array
A 1 dimensional array containing the signal.
- Returns:
- Yaf.Array
The output of the filter.