Great work and great article.
One question though: Did you consider to replace convolution based filters by FFT based ones ?
I haven't done the benchmarks for a fully optimised implementation, but comparing naive implementations you can easily tell that FFT-based is much faster (even with all of the tricks that MATLAB does to optimise sparse matrix operations).