Content deleted Content added
m add a footnote |
update text because of a change in Figure 1 |
||
Line 29:
:<math>y[n] = \sum_{m=1}^{M} h[m] \cdot x_k[n-kL-m] \ \ \triangleq \ \ y_k[n-kL].</math>
With the substitution {{math|j ≜ n-kL}}, the task is reduced to computing {{math|y{{sub|k}}(j)}}, for '''''M''''' ≤ {{mvar|j}} ≤ '''''L'' +'' M'' − 1'''. These steps are illustrated in the first 3 traces of Figure 1, except that the desired portion of the output (third trace) corresponds to '''''1''''' ≤ {{mvar|j}} ≤ '''''L''.{{efn-ua
If we periodically extend ''x''<sub>''k''</sub>[''n''] with period ''N'' ≥ ''L'' + ''M'' − 1, according to''':'''
Line 42 ⟶ 43:
*DFT<sub>N</sub> and IDFT<sub>N</sub> refer to the [[Discrete Fourier transform]] and its inverse, evaluated over ''N'' discrete points, and
*{{math|L}} is customarily chosen such that {{math|N {{=}} L+M-1}} is an integer power-of-2, and the transforms are implemented with the [[Fast Fourier transform|FFT]] algorithm, for efficiency.
*
|Not to be confused with the [[Overlap-add method]], which preserves separate leading and trailing edge-effects.
}} and subsequently discarded.
▲**The overlap region can also be shifted to the last M-1 outputs, which is a potential run-time convenience, because the IDFT can be computed in the <math>y[n]</math> buffer, instead of being computed and copied. Then the overlap can be overwritten by the next IDFT. The shift is accomplished by replacing <math>\scriptstyle \text{DFT}_N \displaystyle (h[n])</math> with <math>\scriptstyle \text{DFT}_N \displaystyle (h[n+M-1]) =\ \scriptstyle \text{DFT}_N \displaystyle (h[n+M-1-N]),</math> meaning that the N-length buffer is ''circularly-shifted'' (rotated) by M-1 samples.{{efn-ua
==Pseudocode==
|