I'm building a mobile application using dart/flutter and my app requires a stream of the amplitude of different audio frequencies from the microphone. I have a stream of Array < int > coming in from a ENCODING_PCM_16BIT from mic_stream library. In order to convert the PCM data to the audio frequencies, I'm using the fast-fourier transform FFT library; which uses an implementation of the Cooley-Tukey algorithm.
My problem is that the output of the FFT is not what I expect. From what I read, the output of FFT should of length N/2 for an input of length N. However, this algorithm outputs an array of length N. Further, the first half of the output is mirrored by the second half, see gif. So am I correct to just ignore the second half of the output array?
