1 / 26

Block Convolution: overlap-save method

CIRCULAR CONVOLUTION. LINEAR CONVOLUTION + ALIASING. Block Convolution: overlap-save method. Input Signal x [ n ] : arbitrary length Impulse response of the filter h [ n ] : lenght P Block Size: N  we take N samples of x [ n ]

Download Presentation

Block Convolution: overlap-save method

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CIRCULAR CONVOLUTION LINEAR CONVOLUTION+ ALIASING Block Convolution: overlap-save method • Input Signal x[n]: arbitrary length • Impulse response of the filter h[n]: lenght P • Block Size: N  we take N samples of x[n] • There’s ALIASING! right samples: L = N- (P - 1)

  2. Signal x[n] The input signal x[n] is splitted into blocks of length = L...

  3. P - 1 zero padding Lenght L Lenght FFT = N Signal x[n] The entry signal x[n] is splitted in blocks of lenght = N... The Impulse response lenght = P, so we aggregate P - 1 zeros to the signal beggining Then when we compute the circular convolution, only L = N - (P - 1) samples match the linear convolution.

  4. Lenght FFT = N Lenght P N - P zero padding Signal x[n] Signal h[n] To complete the lenght of the NFFT, we aggregate N-P zeros to the impulse response h[n] (lenght P)...

  5. Length FFT = N Signal x[n] Signal h[n] x1[n]*h[n] We compute the first segment of the output performing a circular convolution of x1[n] and h[n] It HAS “aliasing” of P- 1 samples Circular convolutionDOESN’T match the linear convolution  we discard P - 1 samples

  6. Lenght FFT = N Signal x[n] Signal h[n] x1[n]*h[n] We compute the first segment of the output performing a circular convolution of x1[n] and h[n] It HAS “aliasing” of P- 1 samples x1[n]*h[n] = IFFT{X1[k]xH[k]}

  7. Sucesión x[n] Sucesión h[n] x1[n]*h[n] We “copy” the result of the circular convolution of x1[n] and h[n] To the system output, discarding the wrong samples

  8. Signal x[n] Signal h[n] x1[n]*h[n] We “copy” the result of the circular convolution of x1[n] and h[n] to the system output, discarding the wrong samples

  9. Signal x[n] Signal h[n] Signal x2[n] x1[n]*h[n] We process the second blockx2[n] of the input x[n]... (overlapping P - 1 samples with the previous block)

  10. Signal x[n] Signal h[n] x1[n]*h[n] We process the second blockx2[n] of the input x[n]... (solapando P - 1 muestras con el bloque previo) with the impulse response h[n]

  11. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] We process the second blockx2[n] of the input x[n]... (overlapping P - 1 samples with the previous block) with the impulse response h[n] and we obtain the second segmentx2[n]*h[n] Again, we have to discard P - 1 samples of the segment, that are wrong (due to aliasing)

  12. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] We “copy” the result of the secondcircular convolution ofx1[n] and h[n] (discarding the wrong samples)

  13. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] We “copy” the result of the secondcircular convolution ofx1[n] and h[n] (discarding the wrong samples)

  14. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] we process the third block x2[n] of the input x[n]... (overlapping P - 1 samples with the previous block)

  15. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] we process the third block x2[n] of the input x[n]... (overlapping P - 1 samples with the previous block) with the impulse response h[n]

  16. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] x3[n]*h[n] we obtain the third segment of the output x3[n]*h[n] discarding the P - 1first samples

  17. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] x3[n]*h[n] we copy it to the output...

  18. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] x3[n]*h[n] we copy it to the output...

  19. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] x3[n]*h[n] we process the fourth block of the input x[n]

  20. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] x3[n]*h[n] we process the fourth block of the input x[n] with the impluse response h[n]

  21. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] x3[n]*h[n] x4[n]*h[n] we obtain the fourth segment of the output x4[n]*h[n]

  22. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] x3[n]*h[n] x4[n]*h[n] We discard the first P - 1samples...

  23. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] x3[n]*h[n] x4[n]*h[n] …we copy it to the output

  24. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] x3[n]*h[n] x4[n]*h[n] …we copy it to the output

  25. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] x3[n]*h[n] x4[n]*h[n] BLOCK convolution

  26. Signal x[n] Signal h[n] x1[n]*h[n] x2[n]*h[n] x3[n]*h[n] x4[n]*h[n] BLOCK convolution = LINEAR convolution

More Related