We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Problem Statement: Processing the array with sound samples through FFT on Cortex M0
I am using the ARM CMSIS DSP Library for the Cortex-M0, using following command
data_length = 256;
float32_t sample_data[data_length*2];
int16_t data_temp[] = {-163, -181, -206, -194, -167, -119, -46, 20, 84, 139, 195, 223, 221, 190, 135, 96, 32, -34, -95, -179, -205, -201, -174, -129, -70, -4, 60, 119, 169, 204, 222, 220, 196, 145, 88, 23, -42, -102, -171, -187, -203, -190, -147, -92, -29, 37, 108, 166, 197, 219, 221, 201, 162, 109, 14, -61, -117, -174, -192, -202, -192, -153, -101, -40, 25, 86, 140, 183, 211, 219, 208, 176, 127, 68, 4, -69, -124, -176, -192, -197, -159, -121, -62, 1, 63, 120, 167, 204, 216, 201, 152, 98, 37, -27, -86, -136, -183, -194, -195, -175, -137, -84, -23, 51, 108, 156, 192, 211, 212, 191, 153, 100, 39, -24, -83, -133, -184, -195, -193, -172, -132, -78, -17, 45, 102, 150, 187, 206, 208, 189, 152, 91, 31, -31, -89, -138, -186, -193, -194, -175, -136, -84, -24, 38, 95, 150, 185, 205, 191, 159, 111, 54, -8, -78, -129, -190, -197, -182, -149, -100, -41, 20, 88, 150, 190, 200, 187, 162, 118, 62, 1, -59, -113, -157, -194, -200, -206, -194, -167, -119, -46, 20, 84, 139, 195, 223, 221, 190, 135, 96, 32, -34, -95, -179, -205, -206, -194, -167, -119, -46, 20, 84, 139, 195, 223, 221, 190, 135, 96, 32, -34, -95, -179, -205, -206, -194, -167, -119, -46, 20, 84, 139, 195, 223, 221, 190, 135, 96, 32, -34, -95, -179, -205, -206, -194, -167, -119, -46, 20, 84, 139, 195, 223, 221, 190, 135, 96, 32, -34, -95, -179, -205, -206, -194, -167, -192 };
// Assign the value here
// odd samples are complex values, set each to zero
for (z = 0; z < data_length; z++) {
sample_data[z*2] = data_temp[z];
sample_data[z*2+1] = 0.0;
}
// Actual FFT processing with ARM optimized library function
// FFT is done in-place, sample_data will contain the results
arm_cfft_f32(&arm_cfft_sR_f32_len256, sample_data, 0, 1); // no inverse, do bit reverse
However, when I try to execute it on the microcontroller the arm_cfft_f32 function calls
arm_cfft_radix8by4_f32 ( (arm_cfft_instance_f32 *) S, p1);
where S is arm_cfft_sR_f32_len256, and p1 is sample_data,
however, it got hanged in the function, and does not give back results.
I am currently using LPC114/333 MCU Settings.
Need your advise, specially if you have an experience of running this FFT library on Cortex-M0, Thank you
Hello,Thanks for your suggestions it helped me.In my case i was using cortex m0 MCU. I just changed the variable types to float instead of float32_t.
float data_temp[] = {-163.0, -181.0, -206.0, .... and so on }
And do bit reverse same as others.