Other Parts Discussed in Thread: AM6546
We are using the Hercules DSPLIB v1.0.0 to perform some signal processing in our application. To simply touch base with the Library we simply tried to perform an 128-point FFT of a DC signal to expect an impulse response.
Code excerpt below:
float32_t test[128] = {1.0};
arm_rfft_instance_f32 rfft_instance;
arm_rfft_instance_f32* rfft_instance_ptr = (arm_rfft_instance_f32*) &rfft_instance;
arm_cfft_radix4_instance_f32 cfft_instance;
arm_cfft_radix4_instance_f32* cfft_instance_ptr = (arm_cfft_radix4_instance_f32*) &cfft_instance;
arm_rfft_init_f32(rfft_instance_ptr,cfft_instance_ptr,128,0,1);
float32_t out[256] = { 0.0 };
arm_rfft_f32(rfft_instance_ptr,test,out);
However, when I printed the result of "out" I got a stream of 1, 0, 1, 0 .... instead of an impulse of magnitude of 128.
real[0]=1, real[1]=1, real[2]=1 ....
complex[0]=0,complex[1]=0,complex[2]=0 ...
Am I using this function incorrectly ?