series_fft()
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Aplica a FFT (Transformada Rápida de Fourier) em uma série.
A função series_fft() pega uma série de números complexos no domínio do tempo/espacial e os transforma no domínio da frequência usando a Transformada Rápida de Fourier. A série complexa transformada representa a magnitude e a fase das frequências que aparecem na série original. Use a função complementar series_ifft para transformar do domínio da frequência de volta para o domínio do tempo/espacial.
Sintaxe
series_fft(
x_real [,
x_imaginary])
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
x_real | dynamic |
✔️ | Uma matriz numérica que representa o componente real da série a ser transformada. |
x_imaginary | dynamic |
Uma matriz semelhante representando o componente imaginário da série. Esse parâmetro só deve ser especificado se a série de entrada contiver números complexos. |
Devoluções
A função retorna o inverso complexo fft em duas séries. A primeira série para o componente real e a segunda para o componente imaginário.
Exemplo
Gere uma série complexa, onde os componentes reais e imaginários são ondas senoidais puras em diferentes frequências. Use a FFT para transformá-la no domínio da frequência:
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)
Essa consulta retorna fft_y_real e fft_y_imag:
Transforme uma série no domínio da frequência e, em seguida, aplique a transformação inversa para recuperar a série 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)
Essa consulta retorna y_real2 e *y_imag2, que são iguais a y_real e y_imag: