Why does it take longer to compute the convolution in GF(2) when compared to an equivalent approach using FFT/IFFT?
2 次查看(过去 30 天)
显示 更早的评论
I am trying to generate a lot of bits and code them using CRC-32. When comparing two approaches, convolution and FFT/IFFT, the answers are the same. However, the convolution approach takes significantly longer that the FFT/IFFT approach. For example, to generate 100 bits, convolution takes about 4 seconds while the FFT/IFFT takes only about 0.2 seconds. I would like to know the reason for the different computation times.
采纳的回答
MathWorks Support Team
2011-4-15
This is expected behavior. If implemented correctly, both approaches are equivalent. However, the FFT approach requires less mathematical operations and is therefore faster, especially for large data sets.
0 个评论
更多回答(1 个)
Tasos Giannoulis
2017-1-25
While it is hard to give a precise answer without looking at the exact code that you are comparing, a possible explanation is that some MATLAB functions (e.g., FFT) may be particularly optimized and exploit multi-threading, while some other function do not. If you are using GFCONV, the implementation is in C++ but no multi-threading is exploited there.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!