cupyx.scipy.signal.unit_impulse#

cupyx.scipy.signal.unit_impulse(shape, idx=None, dtype=<class 'float'>)[source]#

Unit impulse signal (discrete delta function) or unit basis vector.

Parameters:
  • shape (int or tuple of int) – Number of samples in the output (1-D), or a tuple that represents the shape of the output (N-D).

  • idx (None or int or tuple of int or 'mid', optional) – Index at which the value is 1. If None, defaults to the 0th element. If idx='mid', the impulse will be centered at shape // 2 in all dimensions. If an int, the impulse will be at idx in all dimensions.

  • dtype (data-type, optional) – The desired data-type for the array, e.g., numpy.int8. Default is numpy.float64.

Returns:

y – Output array containing an impulse signal.

Return type:

ndarray

Notes

The 1D case is also known as the Kronecker delta.

Examples

An impulse at the 0th element (\(\delta[n]\)):

>>> import cupyx.scipy.signal
>>> import cupy as cp
>>> cupyx.scipy.signal.unit_impulse(8)
array([ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])

Impulse offset by 2 samples (\(\delta[n-2]\)):

>>> cupyx.scipy.signal.unit_impulse(7, 2)
array([ 0.,  0.,  1.,  0.,  0.,  0.,  0.])

2-dimensional impulse, centered:

>>> cupyx.scipy.signal.unit_impulse((3, 3), 'mid')
array([[ 0.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  0.]])

Impulse at (2, 2), using broadcasting:

>>> cupyx.scipy.signal.unit_impulse((4, 4), 2)
array([[ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  1.,  0.],
       [ 0.,  0.,  0.,  0.]])