series_fft()
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Aplica la transformación de Fourier rápida (FFT) en una serie.
La función series_fft() toma una serie de números complejos en el dominio temporal o espacial y lo transforma en el dominio de frecuencia mediante la transformación Fast Fourier. La serie compleja transformada representa la magnitud y la fase de las frecuencias que aparecen en la serie original. Use la función complementaria series_ifft para transformar desde el dominio de frecuencia al dominio de tiempo o espacial.
Sintaxis
series_fft(
x_real [,
x_imaginary])
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
x_real | dynamic |
✔️ | Matriz numérica que representa el componente real de la serie que se va a transformar. |
x_imaginary | dynamic |
Matriz similar que representa el componente imaginario de la serie. Este parámetro solo se debe especificar si la serie de entrada contiene números complejos. |
Devoluciones
La función devuelve el fft inverso complejo en dos series. Primera serie para el componente real y la segunda para el componente imaginario.
Ejemplo
Genere una serie compleja, donde los componentes reales e imaginarios son ondas sinusales puras en diferentes frecuencias. Use FFT para transformarlo en el dominio de frecuencia:
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)
Esta consulta devuelve fft_y_real y fft_y_imag:
Transforme una serie en el dominio de frecuencia y, a continuación, aplique la transformación inversa para obtener la serie original:
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)
Esta consulta devuelve y_real2 y *y_imag2, que son los mismos que y_real y y_imag: