This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C28x Floating Point Unit Library FFT size limits

I'm using the C28X Floating Point Unit Library, specifically a call to RFFT_f32u.  I can successfully make the call with an FFT size of 512 (9 fft stages) or smaller.  If I try a larger FFT, like 1024 (10 fft stages),  I get 1.#INF for the output array.  Can the RFFT_f32u accept fft sizes of 1024, 2048, or 4096?

 Thanks,

Eric

  • Eric,

     

    From looking at the documentation provided with the FFT library, it appears the RFFT supports up to a size of 512 as provided. This explains why the larger sizes do not function properly.

     

    Regards,

     

    Tim Love

     
  • Hi Tim,

    I agree that the documentation shows benchmark information up to 512 point ffts.  I was taking a look at the assembly source and noticed an comment in both RFFT_f32.asm, and RFFT_f32u.asm:

     at approx line 66 or 70:

    ;  | I8 | (COS*((I8 - I7) - (I5 - I6)) + (I4 - I3)          )/8 -> | I8'|
    ;     .
    ;     .
    ;    \|/
    ; Repeat above FFTSize/8 (i.e. if FFTSize = 1024, Repeat = 128 times)
    ;

     It looks like 1024 and larger ffts aren't ruled out.  

     

    Eric 

     

  • As a follow up: I was able to do a 4096 fft, it was user error on my part, causing it not to appear to work.

     

    Eric

  • Hello,

    First off i am trying to get the floating point library to work, i'm having problems building the project properly.  I have read the C28x FPU Library Beta1 pdf but it doesn't really tell me how to start.  I can build the project but I don't have a .out file to load the program.

    Is there more documentation on a step by step procedure? I'm trying to take my analog signal (0-2MHz) from ADC channel 0 store it in a buffer and do an FFT on it.  From what i understand i may have to flip flop between 2 buffers in order to accomplish this in real time.

    I plan to sample at 4.17MHz and do a 4096 point FFT.  So if i could get some help to get started that would be greatly appreciated.

    Eric,
    I'm curious to know what solved your problem since I am also looking to do a 4096 point FFT with the FPU Library.

    Thanks,
    Trent Fougere 

  • Trent,

    I don't remember what that exact issue was, but I think it was something like my array sizes were too small, I think I also had to increase the stack size (but that may have been for another issue)

    Eric

  • I set 8192 points size. It's work. See bug on your side.

  • Hi Timur, could you tell me how to modify the program to sucessfully compute a FFT which size is larger than 1024?

    I am running the FFT lib but still get no result.

    I read the documentation carefully and noticed that the input data format for several functions are, say, in Q14 format,so that means I should do some pre-work to modify the input data  format from ADC modul?

  • FFT work with 1024 points, and don't work with more point? Do you use floating point library or fixed point?

    I don't work with FFT several month and this area not in my head now.