JuliaLang / julia

The Julia Programming Language
https://julialang.org/
MIT License
45.74k stars 5.49k forks source link

Extend `conv` to arbitrary lists of vectors #16126

Closed cossio closed 7 years ago

cossio commented 8 years ago

At this moment conv convolves only two vectors, conv(u,v). If you have a list of vectors lst that you want to convolve, you can do it like this:

reduce(conv, lst)

But this is very inefficient because it computes the inverse Fourier transform too many times. A much more efficient way is to compute the FT of every vector once, multiply them element-wise, and then compute only one FT inversion of the product sequence. But for this you need a dedicated conv(u, v, w, ...) that accepts an arbitrary number of vectors.

toivoh commented 8 years ago

+1 Seems like the only reasonable definition for multi-argument conv, and quite analogous to multi-argument *.

KristofferC commented 7 years ago

Moved to https://github.com/JuliaDSP/DSP.jl/issues/166