I have read in a lot of different places that an FFT algorithm needs to have an input array size that is a power of two, like 512 or 1024. I also found a lot of different algorithms that compute FFT, like Cooley-Tuckey and Bluestein (this one also works with numbers that follow prime factors like 2,3,5,7).
Well, I'm using KissFFT and inputting an array of length 200. Why is it working? Does someone know what is happening in this case? Is it truncating the size to 128 (2^7), or maybe using another algorithm? If it is using another algorithm, does it still give the right answer but just take longer to compute? (Time is not actually a problem for me in this case.)
I finally found some useful information, here it goes:
First, the Cooley and Tukey algorithm link
Second, MATLAB: "You can use nextpow2 to pad the signal you pass to fft. Doing so can speed up the computation of the FFT when the signal length is not an exact power of 2." link
Thank you all