SDFT¶
Sliding Discrete Fourier Transform (SDFT).
Initially, the coefficients are all equal to 0, up until enough values have been seen. A call to numpy.fft.fft
is triggered once window_size
values have been seen. Subsequent values will update the coefficients online. This is much faster than recomputing an FFT from scratch for every new value.
Parameters¶
-
window_size
The size of the window.
Attributes¶
- window_size
Examples¶
import numpy as np
from river import misc
X = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
window_size = 5
sdft = misc.SDFT(window_size)
for i, x in enumerate(X):
sdft.update(x)
if i + 1 >= window_size:
assert np.allclose(sdft.coefficients, np.fft.fft(X[i+1 - window_size:i+1]))