I know that when we do convolution of $x(n)$ (Length $L$) and $h(m)$ (Length=$M$), length of output data comes out to be $L+M-1$, but when we break a large sequence of data and find output using Overlap Save Method, length comes out to be same as input.

  • Why do the extra $M-1$ points are appearing in this case?

    In more expressive way, be $y(n) = x(n)*h(n)$:

Suppose Case 1.:

  • $x(n)$ (length $L$),
  • $h(n)$ (length $M$), leads to
  • $y(n)$ (length $L+M-1$)

using simple linear convolution

Case 2.:

  • $x(n)$ (length $3L$),
  • $h(n)$ (length $M$), leads to
  • $y(n)$ (length $3L$)

using the Overlap Save Method that evaluats output after breaking input in 3 equal parts of length $L$.

  • 1
    $\begingroup$ It is not clear to me: Have you understood how the Overlap-Save method works? If you are fully understanding how Overlap-Save works, where does the question come from? $\endgroup$ Feb 19 '17 at 18:01
  • 1
    $\begingroup$ Also, I had to completely restructure your question just to be able to read it. Please make sure your question is nicely structured yourself the next time. $\endgroup$ Feb 19 '17 at 18:03
  • $\begingroup$ Are processors use different techniques (other than linear de-convolution) to interpret the input signal from the output response of systems.If answer is no then why output (having length L+M-1) evaluted using linear convolution is different from the output (having length same as input signal) given by overlap-save method. $\endgroup$ Feb 19 '17 at 20:37
  • $\begingroup$ hotpaw2's answer explains that. You did not understand the overlap-save method if you're still asking this. $\endgroup$ Feb 19 '17 at 20:53

Your "Case 2" convolution using overlap method processing really comes out to 3L + M - 1 with M - 1 (or more) points discarded. And another 2(M - 1) points computed and summed into the middle of those 3L points that you see.

The key concept is in the word "overlap".

So no extra points are appearing because they're always somewhere (summed or trashed).

  • $\begingroup$ Shoudn't the output that we get using linear convolution of a signal (having very large length) matches with the output that we would get after breaking it(input signal) into smaller blocks and then using overlap-save method? $\endgroup$ Feb 19 '17 at 20:47
  • $\begingroup$ They do match (if you don't throw away the last convolution tail using overlap-save, which you seem to have done). $\endgroup$
    – hotpaw2
    Feb 19 '17 at 22:10
  • $\begingroup$ Ya, but we are already not throwing last convolution tail, we are discarding first convolution tail (length of M-1) that makes output as of the same length as input. $\endgroup$ Feb 20 '17 at 19:18
  • $\begingroup$ In overlap processing, you don't discard the first length M-1 tail, you either sum it or copy the data producing it onto the beginning of the next block of length L data. So each output is actually longer (L+M-1), but the sequence of longer outputs are squished together by the overlap processing so they appear to be the same length L. $\endgroup$
    – hotpaw2
    Feb 20 '17 at 19:44
  • $\begingroup$ Aren't 18-2 and 18-3 pages of this (ocw.mit.edu/courses/mechanical-engineering/…) paper contradicts with your explanation? $\endgroup$ Feb 21 '17 at 21:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.