FFT computation speed of real signals vs. complex signals
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi,
I'm wondering if Matlab is not using the fftw library to its full extent. Given the fact that we know that real signals are hermitian (conjugate symmetric) in frequency domain [1], it is possible to use this symmetry to speed up computation (as well as storage requirements!), as documented in [2] and fftw documentation [3].
In any case: Without using these optimizations I would at least expect the fftn of a real signal to be as fast as the fftn of a complex signal. However if you evaluate this in Matlab, e.g.
sz = 384;
test_real = randn(sz,sz,sz);
test_complex = randn(sz,sz,sz)+1i*randn(sz,sz,sz);
tic
fftn_realsignal = fftn(test_real);
toc
tic
fftn_complexsignal = fftn(test_complex);
toc
then, at least on my machine, the FFT of the real signal takes even more time to compute.
My question therefore is: Can we access these symmetries in Matlab to reduce computation speed and storage requirements? It seems as if fftw already provides the necessary framework to do so.
[1] https://en.wikipedia.org/wiki/Hermitian_function
0 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Fourier Analysis and Filtering dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!