pylops.utils.signalprocessing.nonstationary_convmtx

pylops.utils.signalprocessing.nonstationary_convmtx(H, n, hc=0, pad=(0, 0))[source]

Convolution matrix from a bank of filters

Makes a dense convolution matrix \(\mathbf{C}\) such that the dot product np.dot(C, x) is the nonstationary convolution of the bank of filters \(H=[h_1, h_2, h_n]\) and the input signal \(x\).

Parameters:
H : np.ndarray

Convolution filters (2D array of shape \([n_\text{filters} \times n_{h}]\)

n : int

Number of columns of convolution matrix

hc : np.ndarray, optional

Index of center of first filter

pad : np.ndarray

Zero-padding to apply to the bank of filters before and after the provided values (use it to avoid wrap-around or pass filters with enough padding)

Returns:
C : np.ndarray

Convolution matrix