Digital signal processing using FFT

4 views (last 30 days)
Jone Erikson
Jone Erikson on 19 Oct 2020
Answered: Asvin Kumar on 9 Feb 2021
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

Answers (1)

Asvin Kumar
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'.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by