series_fft()
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati✅ Azure Monitor✅Microsoft Sentinel
Applica fast Fourier Transform (FFT) a una serie.
La funzione series_fft() accetta una serie di numeri complessi nel dominio temporale/spaziale e la trasforma nel dominio di frequenza usando la trasformazione Fast Fourier. La serie complessa trasformata rappresenta la grandezza e la fase delle frequenze visualizzate nella serie originale. Usare la funzione complementare series_ifft per passare dal dominio di frequenza al dominio temporale/spaziale.
Sintassi
series_fft(
x_real [,
x_imaginary])
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
x_real | dynamic |
✔️ | Matrice numerica che rappresenta il componente reale della serie da trasformare. |
x_imaginary | dynamic |
Matrice simile che rappresenta il componente immaginario della serie. Questo parametro deve essere specificato solo se la serie di input contiene numeri complessi. |
Valori restituiti
La funzione restituisce il fft inverso complesso in due serie. La prima serie per il componente reale e la seconda per il componente immaginario.
Esempio
Generare una serie complessa, in cui i componenti reali e immaginari sono onde di seno puro in frequenze diverse. Usare FFT per trasformarlo nel dominio di frequenza:
let sinewave=(x:double, period:double, gain:double=1.0, phase:double=0.0) { gain*sin(2*pi()/period*(x+phase)) } ; let n=128; // signal length range x from 0 to n-1 step 1 | extend yr=sinewave(x, 8), yi=sinewave(x, 32) | summarize x=make_list(x), y_real=make_list(yr), y_imag=make_list(yi) | extend (fft_y_real, fft_y_imag) = series_fft(y_real, y_imag) | render linechart with(ysplit=panels)
Questa query restituisce fft_y_real e fft_y_imag:
Trasformare una serie nel dominio di frequenza e quindi applicare la trasformazione inversa per tornare alla serie originale:
let sinewave=(x:double, period:double, gain:double=1.0, phase:double=0.0) { gain*sin(2*pi()/period*(x+phase)) } ; let n=128; // signal length range x from 0 to n-1 step 1 | extend yr=sinewave(x, 8), yi=sinewave(x, 32) | summarize x=make_list(x), y_real=make_list(yr), y_imag=make_list(yi) | extend (fft_y_real, fft_y_imag) = series_fft(y_real, y_imag) | extend (y_real2, y_image2) = series_ifft(fft_y_real, fft_y_imag) | project-away fft_y_real, fft_y_imag // too many series for linechart with panels | render linechart with(ysplit=panels)
Questa query restituisce y_real2 e *y_imag2, uguali a y_real e y_imag: