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