Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Växla tjänster genom att använda listrutan Version. Läs mer om navigering.
Gäller för: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Tillämpar Fast Fourier Transform (FFT) på en serie.
Funktionen series_fft() tar en serie komplexa tal i den tids-/rumsliga domänen och omvandlar den till frekvensdomänen med snabb fourier-transformering. Den transformerade komplexa serien representerar omfattningen och fasen av de frekvenser som förekommer i den ursprungliga serien. Använd den kompletterande funktionen series_ifft för att transformera från frekvensdomänen tillbaka till den tids-/rumsliga domänen.
Syntax
series_fft(
x_real [,x_imaginary])
Läs mer om syntaxkonventioner.
Parameterar
| Namn | Typ | Krävs | Description |
|---|---|---|---|
| x_real | dynamic |
✔️ | En numerisk matris som representerar den verkliga komponenten i serien som ska transformeras. |
| x_imaginary | dynamic |
En liknande matris som representerar den imaginära komponenten i serien. Den här parametern bör endast anges om indataserien innehåller komplexa tal. |
Retur
Funktionen returnerar den komplexa inverterade fften i två serier. Den första serien för den verkliga komponenten och den andra för den imaginära komponenten.
Example
Generera en komplex serie, där de verkliga och imaginära komponenterna är rena sinusvågor i olika frekvenser. Använd FFT för att transformera den till frekvensdomänen:
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)Den här frågan returnerar fft_y_real och fft_y_imag:
Transformera en serie till frekvensdomänen och använd sedan den omvända transformeringen för att få tillbaka den ursprungliga serien:
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)Den här frågan returnerar y_real2 och *y_imag2, som är samma som y_real och y_imag: