Dear all.

I am now using the FFT Library on Kinetis K60 N512.

mycode .c

/////////////////////////////////////////////////////

uint32_t fftSize = 256;

uint32_t ifftFlag = 0;

uint32_t doBitReverse = 1;

arm_cfft_radix4_instance_q15 S;

arm_rfft_instance_q15 SQ;

arm_status status;

.....................

status = arm_cfft_radix4_init_q15( &S, fftSize, ifftFlag, doBitReverse); // Complex FFT initialisation

arm_cfft_radix4_q15(&S, ((q15_t *)data)); // Make CFFT in place

//////////////////////////////////////////////////////////////

For comparison between the results obtained from Matlab FFT and CMSIS FFT library,

I want to know the exact FFT equation used inside CMSIS FFT library or the Matlab code on CMSIS FFT library.

The reason why I ask like this question is when I compared the results between both cases, I got the different result.

If there is anyone who know on my question, please let me know it.

Thank you in advance.

Hi,

The source code for the Radix-4 algorithm (arm_cfft_radix4_q15.c) can be found in the TransformFunctions sub-directory of the CMSIS directory.

Could you please share the differences between the Matlab result and the CMSIS result? Would it be possible for you to share the data buffer you are performing the transform on?

I suspect that the Matlab FFT (running on an x86 processor & OS, floating point values?) is going to provide slightly different answers to the CMSIS FFT running on an ARM Cortex-M devices using Q15 fixed point integer values. Of course if there is a major difference between the two solutions, then we will need to investigate what is causing the difference.

Also, what IDE/Compiler are you using for K60 development?

Best regards,

Martyn