Sliding DFT

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

In applied mathematics, the sliding discrete Fourier transform is a recursive algorithm to compute successive STFTs of input data frames that are a single sample apart (hopsize − 1).[1] The calculation for the sliding DFT is closely related to Goertzel algorithm.[citation needed]

Definition

[edit | edit source]

Assuming that the hopsize between two consecutive DFTs is 1 sample, then[2]

Ft+1(n)=k=0N1fk+t+1ej2πkn/N=m=1Nfm+tej2π(m1)n/N=ej2πn/N[m=0N1fm+tej2πmn/Nft+ft+N]=ej2πn/N[Ft(n)ft+ft+N].

From this definition above, the DFT can be computed recursively thereafter. However, implementing the window function on a sliding DFT is difficult due to its recursive nature, therefore it is done exclusively in a frequency domain.[3]

Sliding windowed infinite Fourier transform

[edit | edit source]

It is not possible to implement asymmetric window functions into sliding DFT. However, the IIR version called sliding windowed infinite Fourier transform (SWIFT) provides an exponential window and the αSWIFT calculates two sDFTs in parallel where slow-decaying one is subtracted by fast-decaying one, therefore a window function of w(x)=exαexβ.[4]

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).