How to efficiently update a discrete time FFT?

6 次查看(过去 30 天)
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?

采纳的回答

Matt J
Matt J 2012-12-12
编辑:Matt J 2012-12-12
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Fourier Analysis and Filtering 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by