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.

PROCESSOR-SDK-TDAX: Using on EVE FFT-function with 16 bit input and 32 bit output with scaling

Part Number: PROCESSOR-SDK-TDAX


Hello,

I have one issue for calculating FFT on EVE. I am using the vcop_fft_npt_16ix32o_wrapper.c on EVE and have read, that FFT functionality of EVE can calculating internally with 32 bits. Now I want to scale the input values with 16 bit. 

When I look at the FFT-function vcop_fft_512_16ix16o_kernel.c in vcop_fft_npt_16ix16o_wrapper.c, I can find a scaling array. But in vcop_fft_512_16ix16o_32inter_kernel.c of vcop_fft_512_16ix16o_32inter_kernel.c, no scaling parameter are there.

What is the reason for missing scaling, when I use FFT with 16 bit input and 32 bit output? It is possible to add scaling functionality?

I am not sure about differences between vcop_fft_512_16ix16o_32inter_kernel.c and vcop_fft_512_16ix32o.c. The second C-File use just stage 5. Fact is, that vcop_fft_npt_16ix32o_wrapper.c use for calculating in stages 1-4 FFT vcop_fft_512_16ix16o_32inter_kernel.c and in stage 5 vcop_fft_512_16ix32o.c.

 

I hope you can help me.

Regards,

Lukas Ploch

  • Hi Lukas,

        

    Now I want to scale the input values with 16 bit

      Do you mean that you want to multiply the input to FFT with a 16 bit quantity? If yes then this is already supported as part of windowing operation in FFT applet ( can be found inside apps\fft. Let us know if you are looking for something else.


    Regards,

    ANshu

  • Hello,

    the FFT has just an input of maximum 16 bit. Now I have seen that the FFT with 16-bit input and 16-bit output have the oppurtunity to scale the intermediate values. 

    Now is my question if I have the same oppurtunity on FFT with 16-bit input and 32-bit output. It would make sense for me to scale the intermediate 16-bit values in FFT-calculation to use the entire range of 32-bit. 

    I am not quite sure, if window before FFT would make sense. If I scale the input values with windowing operations, my input for FFT is still 16-bit. Do you get it?

    Can you answer me a second question. Do calculate the FFT with 16-bit input and 32-bit output with intermediate 32-bit? Or with 16-bit intermediate and cast the intermediate values to 32-bit?   

    Thank you.

    Regards,

    Lukas

  • Hi Lucas,

    Can you answer me a second question. Do calculate the FFT with 16-bit input and 32-bit output with intermediate 32-bit? Or with 16-bit intermediate and cast the intermediate values to 32-bit?   

    When intermediate output is set to be in 32 bit then the intermediate output can actually grow beyond 16 bit. This increase is by 1 bit for radix2 based stage and 2 bit for radix 4 based stage. At each intermediate stage output will remain in 32 bit container and if final output is expected to be in 16 bit then finally a right shift will be applied to bring data back to 16 bit.


    Regards,

    Anshu