scipy.fftpack.

rfft#

scipy.fftpack.rfft(x, n=None, axis=-1, overwrite_x=False)[source]#

實數序列的離散傅立葉轉換。

參數:
xarray_like,實數值

要轉換的資料。

nint,選填

定義傅立葉轉換的長度。如果未指定 n (預設值),則 n = x.shape[axis]。如果 n < x.shape[axis],則會截斷 x;如果 n > x.shape[axis],則會對 x 進行零填充。

axisint,選填

套用轉換的軸。預設值為最後一個軸。

overwrite_xbool,選填

如果設定為 true,則可以覆寫 x 的內容。預設值為 False。

回傳值:
z實數 ndarray

回傳的實數陣列包含

[y(0),Re(y(1)),Im(y(1)),...,Re(y(n/2))]              if n is even
[y(0),Re(y(1)),Im(y(1)),...,Re(y(n/2)),Im(y(n/2))]   if n is odd

其中

y(j) = sum[k=0..n-1] x[k] * exp(-sqrt(-1)*j*k*2*pi/n)
j = 0..n-1

另請參閱

fft, irfft, scipy.fft.rfft

註解

在數值精確度範圍內,y == rfft(irfft(y))

單精度和雙精度常式皆已實作。半精度輸入將轉換為單精度。非浮點輸入將轉換為雙精度。不支援長雙精度輸入。

若要取得具有複數資料類型的輸出,請考慮使用較新的函式 scipy.fft.rfft

範例

>>> from scipy.fftpack import fft, rfft
>>> a = [9, -9, 1, 3]
>>> fft(a)
array([  4. +0.j,   8.+12.j,  16. +0.j,   8.-12.j])
>>> rfft(a)
array([  4.,   8.,  12.,  16.])