temporian.EventSet.experimental_fast_fourier_transform #
experimental_fast_fourier_transform(
*,
num_events: int,
hop_size: Optional[int] = None,
window: Optional[str] = None,
num_spectral_lines: Optional[int] = None
) -> EventSetOrNode
Computes the Fast Fourier Transform of an
EventSet
with a single tp.float32 feature.
WARNING: This operator is experimental. The implementation is not yet optimized for speed, and the operator signature might change in the future.
The window length is defined in number of events, instead of timestamp duration like most other operators. The 'num_events' argument needs to be specified by kwarg i.e. fast_fourier_transform(num_events=5) instead of fast_fourier_transform(5).
The operator returns the amplitude of each spectral line as
separate tp.float32 features named "a0", "a1", "a2", etc. By default,
num_events // 2
spectral line are returned.
Usage
>>> a = tp.event_set(
... timestamps=[1,2,3,4,5,6],
... features={"x": [4.,3.,2.,6.,2.,1.]},
... )
>>> b = a.experimental_fast_fourier_transform(num_events=4, window="hamming")
>>> b
indexes: []
features: [('a0', float64), ('a1', float64)]
events:
(2 events):
timestamps: [4. 6.]
'a0': [4.65 6.4 ]
'a1': [2.1994 4.7451]
...
Parameters:
Name | Type | Description | Default |
---|---|---|---|
num_events |
int
|
Size of the FFT expressed as a number of events. |
required |
window |
Optional[str]
|
Optional window function applied before the FFT. if None, no window is applied. Supported values are: "hamming". |
None
|
hop_size |
Optional[int]
|
Step, in number of events, between consecutive outputs. Default to num_events//2. |
None
|
num_spectral_lines |
Optional[int]
|
Number of returned spectral lines. If set, the
operators returns the |
None
|
Returns:
Type | Description |
---|---|
EventSetOrNode
|
EventSet containing the amplitude of each frequency band of the Fourier Transform. |