series_fft()
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Použije u řady FFT (Fast Fourier Transform).
Funkce series_fft() přebírá řadu komplexních čísel v časové/prostorové doméně a transformuje ji na doménu frekvence pomocí funkce Fast Fourier Transform. Transformovaná komplexní řada představuje velikost a fázi frekvencí, které se objevují v původní řadě. Pomocí doplňkové funkce series_ifft transformujte z domény četnosti zpět na časovou/prostorovou doménu.
Syntaxe
series_fft(
x_real [,
x_imaginary])
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
x_real | dynamic |
✔️ | Číselná matice představující skutečnou součást řady, která se má transformovat. |
x_imaginary | dynamic |
Podobné pole představující imaginární komponentu řady. Tento parametr by měl být zadán pouze v případě, že vstupní řada obsahuje komplexní čísla. |
Návraty
Funkce vrátí komplexní inverzní fft ve dvou řadách. První série pro skutečnou komponentu a druhá pro imaginární komponentu.
Příklad
Vygenerujte komplexní řadu, kde skutečné a imaginární komponenty jsou čisté sinusové vlny v různých frekvencích. Pomocí FFT ho transformujte na doménu frekvence:
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)
Tento dotaz vrátí fft_y_real a fft_y_imag:
Transformujte řadu na doménu četnosti a pak použijte inverzní transformaci, abyste získali zpět původní řadu:
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)
Tento dotaz vrátí y_real2 a *y_imag2, které jsou stejné jako y_real a y_imag: