On Sat, 2015-12-26 at 21:13 +0100, Luca Barbato wrote: > Got the time to read a little the code: > > /** Map one real FFT into two parallel real even and odd FFTs. Then > interleave > * the two real FFTs into one complex FFT. Unmangle the results. > * ref: > http://www.engineeringproductivitytools.com/stuff/T0001/PT10.HTM > */ > static void rdft_calc_c(RDFTContext *s, FFTSample *data) > > the function lays down the data as even real - odd imaginary, ffwt > according to the documentation lays the data as read first from 0 to > N and imaginary after from N-1 to 1. Is shuffling the data around > enough for your purposes?
Hey Luca,
I'm looking at the data and I don't see it as interleaved, but I could
be wrong. I have no problem shuffling the data around, but I can't seem
to recognize it yet. I'll give you an example.
Here is the raw audio signal as 1024 samples:
http://pastebin.ubuntu.com/14237756/
Here is the resulting FFT after using av_rdft_init(..., DFT_C2R),
multiplied by a Hanning window, and av_rdft_calc()'d:
http://pastebin.ubuntu.com/14237759/
This is the same samples multipled by same Hanning window and passed
through fftwf_plan_r2r_1d(..., FFTW_R2HC, ...) and fftwf_execute():
http://pastebin.ubuntu.com/14237768/
I can't see any of the sample values re-ordered / interleaved in the
latter two results?
--
Kip Warner -- Senior Software Engineer
OpenPGP encrypted/signed mail preferred
http://www.thevertigo.com
signature.asc
Description: This is a digitally signed message part
_______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
