Digital signal processing using FFT

6 visualizaciones (últimos 30 días)
Jone Erikson
Jone Erikson el 19 de Oct. de 2020
Respondida: Asvin Kumar el 9 de Feb. de 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

Respuestas (1)

Asvin Kumar
Asvin Kumar el 9 de Feb. de 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'.


Más información sobre Fourier Analysis and Filtering en Help Center y File Exchange.


Community Treasure Hunt

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

Start Hunting!

Translated by