series_fft()
對數列套用快速傅立葉轉換 (FFT)。
series_fft() 函式會在時間/空間網域中使用一連串的複數,並使用快速傅立葉轉換將其轉換成頻率網域。 轉換的複雜數列代表出現在原始數列中的頻率大小和階段。 使用互補函式 series_ifft 將頻率網域轉換回時間/空間網域。
語法
series_fft(
x_real [,
x_imaginary])
深入瞭解 語法慣例。
參數
名稱 | 類型 | 必要 | Description |
---|---|---|---|
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_real2 和 *y_imag2,其與 y_real 和 y_imag 相同:
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應