Wednesday, 8 March 2017

Convolution and Correlation

Convolution and correlation are integral parts of any digital signal processing system. With a pen and paper, it's pretty easy to calculate. But how do we actually implement this on a digital signal processor or a computer?
That's what we studied: the implementation of linear and circular convolution, linear convolution using circular convolution and auto and cross correlation using C programming.
We saw how complicated it gets to perform simple operations like zero padding using a programming language. We took the length of the signals as the initial inputs for convolution and then entered the signals. The result was displayed on the screen. For circular, the greater of the two lengths was entered and by zero padding the result was displayed. We also realised that circular convolution gave an aliased output.
For correlation, we tried combinations of a signal delayed by different amounts with auto correlation and found that it always gave the same output. If we try cross correlation of a signal with its delayed self, we get a result that is an advanced signal from the auto correlation output. Thus we understood the importance of using correlation to find the degree of similarity between two signals. An added point: the value of autocorrelation output signal for n=0 is always the energy of the signal.

8 comments:

  1. Convolution is used to find the output of the system.

    ReplyDelete
    Replies
    1. Yes normally one of the operands is the impulse response

      Delete
  2. It is easy for complicated operations.

    ReplyDelete
  3. Zero padding in circular convolution is needed because the signals need to be of same length. Its not a necessity in case of linear convolution.

    ReplyDelete
  4. Padding is also done when we want to find linear convolution using circular convolution M+N-1 Where M length of x
    N length of h

    ReplyDelete
  5. Correlation gives degree of similarity between signals

    ReplyDelete