exojax.signal package

Submodules

exojax.signal.convolve module

exojax.signal.convolve.convolve_same(input_signal, kernel)

convolve same

Note

this function is substitute of jnp.convolve, which requires cuDNN

Parameters:
  • input_signal (1D array) – original input signal

  • kernel (1D array) – convolution kernel

Returns:

convolved signal

Return type:

1D array

exojax.signal.ola module

exojax.signal.ola.generate_padding_matrix(padding_value, input_matrix, filter_length)

generate a matrix with (padding_value)-padding (numpy)

Parameters:
  • input_matrix (n dimensional array) – input matrix, n >= 2, (ndiv, div_length,…)

  • fir_filter (array) – FIR filter

Returns:

input matrix w/ x-pad

Return type:

n dimensional array

exojax.signal.ola.generate_zeropad(input_matrix, fir_filter)

Generate zero padding input matrix and FIR filter

Parameters:
  • input_matrix (2D array) – input matrix

  • fir_filter (array) – FIR filter

Returns:

input matrix w/ zeropad, FIR filter w/ zeropad

Return type:

2D array, 1D array

exojax.signal.ola.np_olaconv(input_matrix, fir_filter)

Overlap and Add convolve (numpy version)

Parameters:
  • input_matrix (jax.ndarray) – reshaped matrix to (ndiv, div_length) of the input

  • fir_filter (jax.ndarray) – real FIR filter. The length should be odd.

Returns:

convolved vector w/ length of (len(input) + len(fir_filter) - 1)

exojax.signal.ola.ola_lengths(input_matrix, fir_filter)

derive OLA basic length

Parameters:
  • input_matrix (2D or nD array) – input matrix (n >=2)

  • fir_filter (array) – FIR filter

Returns:

number of mini batches, divided mini batch length of the input, FIR filter length

Return type:

int, int, int

exojax.signal.ola.olaconv(input_matrix_zeropad, fir_filter_zeropad, ndiv, div_length, filter_length)

Overlap and Add convolve (jax.numpy version)

Parameters:
  • input_matrix_zeropad (jax.ndarray) – reshaped matrix to (ndiv, div_length) of the input w/ zeropad

  • fir_filter_zeropad (jax.ndarray) – real FIR filter w/ zeropad.

Note

ndiv is the number of the divided input sectors. div_length is the length of the divided input sectors.

Returns:

convolved vector w/ output length of (len(input vector) + len(fir_filter) - 1)

exojax.signal.ola.optimal_fft_length(filter_length)

optimal fft length of OLA

Notes

This code was taken and modified from scipy.signal._signaltools._oa_calc_oalens under BSD 3-Clause “New” or “Revised” License

Parameters:

filter_length (int) – filter length

Returns:

optimal fft length

Return type:

int

exojax.signal.ola.overlap_and_add(ftarr, output_length, div_length)

Compute overlap and add

Parameters:
  • ftarr (jax.ndarray) – filtered input matrix

  • output_length (int) – length of the output of olaconv

  • div_length (int) – the length of the divided input sectors, equivalent to block_size in scipy

Returns:

overlapped and added vector

Module contents