Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

1 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) CIRCULAR CONVOLUTION LINEAR CONVOLUTION + ALIASING

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

3 Signal x[n] Lenght FFT = N The entry signal x[n] is splitted in blocks of lenght = N... P - 1 zero padding 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. Lenght L

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

20 Signal h[n] x1[n]*h[n]x1[n]*h[n] Signal x[n] x2[n]*h[n]x2[n]*h[n] x3[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 h[n] x1[n]*h[n]x1[n]*h[n] Signal x[n] x2[n]*h[n]x2[n]*h[n] x3[n]*h[n]x3[n]*h[n] we obtain the fourth segment of the output x 4 [n] * h[n] x4[n]*h[n]x4[n]*h[n]

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

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

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

25 Signal h[n] x1[n]*h[n]x1[n]*h[n] Signal x[n] x2[n]*h[n]x2[n]*h[n] x3[n]*h[n]x3[n]*h[n] x4[n]*h[n]x4[n]*h[n] We add the 4 output segments... + + + +...eliminating the correspoding samples!!

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

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


Download ppt "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."

Similar presentations


Ads by Google