The output of a linear and time invariant system may be determined from the input and the impulse response using the operation of convolution. The process of convolution gives insight into system behavior and is used to implement systems that have finite-length impulse response in a computer. Convolution is also widely used in neural networks.