series_fft()
適用於:✅Microsoft網狀架構✅Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel
在數列上套用Fast Fourier Transform (FFT)。
series_fft() 函式會採用時間/空間定義域中的一系列複數,並使用 Fast Fourier 轉換將其轉換成頻率定義域。 轉換的複雜數列代表出現在原始數列中的頻率大小和階段。 使用互補函 式series_ifft ,從頻率定義域轉換回時間/空間定義域。
語法
series_fft(
x_real [,
x_imaginary])
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
x_real | dynamic |
✔️ | 數值數位,表示要轉換之數列的實際元件。 |
x_imaginary | dynamic |
代表數列虛數部分的類似數位。 只有在輸入數列包含複數時,才應該指定此參數。 |
傳回
函式會傳回兩個數列中的複雜反向 fft。 實際元件的第一個數列,以及虛數部分的第二個數列。
範例
產生複雜的數列,其中真實和虛構元件是不同頻率的純正弦波。 使用 FFT 將它轉換成頻率網域:
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)
此查詢會 傳回fft_y_real 和 fft_y_imag:
將數位轉換成頻率定義域,然後套用反向轉換以取回原始數列:
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)
此查詢會傳回與y_real和y_imag相同的y_real2和 *y_imag2: