Fast convolution is a primary goal in real-time DSP applications. Here I provide three custon convolution computation functions, suitable for real signals only. Quite remarkably, they outperform MatLab's built-in conv.m function when the length of both sequences is greater than 2^12! I also provide a benchmarking script and some figures of my results. Even more suprisingly, there is no coding in a lower level language like C or assembly. Therefore great room for further speed improvements exists!
Ilias Konsoulas (2023). Beating MatLab's Convolution Function conv.m for Long Real Sequences! (https://www.mathworks.com/matlabcentral/fileexchange/44466-beating-matlab-s-convolution-function-conv-m-for-long-real-sequences), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
I have improved the fastconvrealDFT.m file. Now it takes advantage the special structure of the intermediate signal Z for faster execution. Since it corresponds to a real-signal DFT, I now use the ifftreal.m function.
I included the custom function my_DHT.m which was inadvertently omitted in the initial .zip file.