共用方式為


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_realfft_y_imag

    數列 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)
    | 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:

    數列 ifft。