Talk:Overlap–add method
![]() | Computing Start‑class Low‑importance | |||||||||
|
The algorithm
I think the pseudo-code is unclear. Where is M in the implementation? Also, Where is the overlap in this code? — Preceding unsigned comment added by 90.230.12.150 (talk) 17:04, 12 November 2011 (UTC)
Abuse of Notation
An expression such as "y[n] = x[n] * h[n]" is an abuse of notation. (Try substituting n=3 and see what that means.) The fact that many other people are sloppy about this is not an excuse for us.
There are several alternatives, all of which involve honestly acknowledging that convolution operates on whole functions (or sequences). This is exactly analogous to integration: The variable of integration is "bound" to the integration, and so is the variable of convolution here. (Using . for product, we never write ʃf(t) dt . ʃg(t) dt when we mean ʃ f(t).g(t) dt.)
1. "Lamdba notation", using "@" for LISP's lambda [or MATLAB's equivalent]: @(n) y[n] = @(n) x[n] * @(n) h[n].
2. Slightly more informally, use implicit lambda notation with parentheses: @(n) y[n] = @[n] (x*h)[n], which may be written y[n] = (x*h)[n].
Ironically, convolution is perfectly well defined using integration instead of summation, and I'm sure we would never make the same notational error with integration: Everyone is careful with bound-variable notation when writing integrals. Jmacwiki (talk) 18:39, 19 April 2016 (UTC)