Function utilities::convolution_matrix¶
- Defined in File conv.h
Function Documentation¶
-
Eigen::MatrixXd
utilities::convolution_matrix(const Eigen::VectorXd &k, const Eigen::Index n)¶ Determines the convolution matrix C for impulse response (kernel) vector
k.convolution_matrix(k, n) * x is equivalent to conv(k, x)
C is a toeplitz matrix where the upper diagonal is entirely zero, the lower diagonal is zero for cases where
TODO sparse alternative. Large signals produce epically big, mostly empty, matrices.
Example:
Eigen::VectorXd k(5) Eigen::VectorXd x(7) k << 1, 2, 3, 2, 1; x << 1, 2, 1, 2, 1, 2, 1; Eigen::MatrixXd c = convolution_matrix(k, 7); std::cout << "Convolved result c * x: " << c * x << std::endl
- Parameters
k: Column vector inputn: Desired dimension of the output matrix. i.e. if convolving with vector x of length 8, n should be 8.c: Convolution matrix