Digital signal processing using FFT
3 views (last 30 days)
I am trying to write a a MATLABfunction that implements a non-power-of-two FFT using power-of-two FFT’s, according to the method in which the FFT is transformed into a convolution problem. I tried using the MATLAB FFT to implement the required convolution, as long as it is called so that it computes a power-of-two FFT. how can I demonstrate with code using a random input signal input signal that my function yields the same result as the MATLAB fft() function. Then I compare the timing on a random sequence of length 999,983 to the MATLAB FFT. (x = randn(1,999983);). Any help with that please
Asvin Kumar on 9 Feb 2021
It's true that the typical value of n is a power of 2 in n-point FFTs. It's not mandatory though.
As mentioned in the doc for fft:
Transform length, specified as  or a nonnegative integer scalar. Specifying a positive integer scalar for the transform length can increase the performance of fft. The length is typically specified as a power of 2 or a value that can be factored into a product of small prime numbers. If n is less than the length of the signal, then fft ignores the remaining signal values past the nth entry and returns the truncated result. If n is 0, then fft returns an empty matrix.
So, you should still be able to compare your custom code with the fft function for reasonable values of 'n'.