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


Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to