Why does it take longer to compute the convolution in GF(2) when compared to an equivalent approach using FFT/IFFT?
조회 수: 2 (최근 30일)
표시 이전 댓글
MathWorks Support Team
. 2011년 4월 15일
답변: Tasos Giannoulis
. 2017년 1월 25일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Communications Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!