Effacer les filtres
Effacer les filtres

How to efficiently update a discrete time FFT?

6 vues (au cours des 30 derniers jours)
James
James le 12 Déc 2012
I have an application that needs to be optimized for speed. It's a realtime app that is required to perform a number of FFTs at relatively fast discrete time interval. The transform inputs are discretely sampled time histories of real time physical processes. Therefore the time history for a given interval is the same as the previous accept it is shifted one position and one end point is lost and one is point is added. I know there must be a straight forward way to implement a faster FFT. Can somebody point me in the right direction?

Réponse acceptée

Matt J
Matt J le 12 Déc 2012
Modifié(e) : Matt J le 12 Déc 2012
If you are doing fft(x), I assume that x(1)=x_old gets deleted and x(N) gets replaced by x_new
%pre-computations, do these only once
c=exp(pi*2i*(0:N-1)/N);
X=fft(x0); %inital FFT
%end of pre-computations
X = (X +(x_new - x_old)).*c; %update the FFT
  1 commentaire
James
James le 12 Déc 2012
I love it when things are easy. Thanks!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Fourier Analysis and Filtering dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by