This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Problem with arm_cfft_f32()

Note: This was originally posted on 27th August 2013 at http://forums.arm.com

Hello,

I'm new in the field of ARM and I need some help. I try to make a FFT on a Cortex-M4 with fpu. I tried two examples given with the CMSIS library, an old one which uses arm_cfft_radix4_f32() and a new one with arm_cfft_f32(). The two examples compile well. The old code with arm_cfft_radix4_f32() works quite good. That function is deprecated so I would like to use arm_cfft_f32() but I don't get the right data at the end.

The program makes a FFT of a given signal and should detect the peak in magnitude at refIndex = 213. It's ok with the deprecated function arm_cfft_radix4_f32() but not with arm_cfft_f32(). I get refIndex = 861. I tried to change the 'doBitReverse' value from 1 to 0 but nothing changed I have exactly the same result at the output of arm_cfft_f32().

I didn't find the same issue on the web. Is there a known problem with arm_cfft_f32() ? Could someone explain me what I'm doing wrong ?

Thanks,
Pierre.


Parents
  • Hello Ibrahim,

    I have passed on your information to the appropriate people at ARM.  In the mean time, you are using a bit older version of CMSIS.  (3 versions old).

    You can download the newest one here:

    http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php

    Also, when I looked at your website, you mention you're using the Cortex M4 with fpu, but the library file you're including is “libarm_cortexM4l_math.a”,  there should be a version “libarm_cortexM4lf_math.a” available to you that is for Cortex M4's with an FPU.  You should notice dramatic performance increases if you're using floating-point functions.

    Hopefully the newest version of CMSIS doesn't have the same missing function issue.  Likely it was just a mistake when compiling it.  Please do let us know if you run into the same problem on the newer version though.

    Cheers,

    Dan

Reply
  • Hello Ibrahim,

    I have passed on your information to the appropriate people at ARM.  In the mean time, you are using a bit older version of CMSIS.  (3 versions old).

    You can download the newest one here:

    http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php

    Also, when I looked at your website, you mention you're using the Cortex M4 with fpu, but the library file you're including is “libarm_cortexM4l_math.a”,  there should be a version “libarm_cortexM4lf_math.a” available to you that is for Cortex M4's with an FPU.  You should notice dramatic performance increases if you're using floating-point functions.

    Hopefully the newest version of CMSIS doesn't have the same missing function issue.  Likely it was just a mistake when compiling it.  Please do let us know if you run into the same problem on the newer version though.

    Cheers,

    Dan

Children