當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python SciPy fftpack.rfft用法及代碼示例

本文簡要介紹 python 語言中 scipy.fftpack.rfft 的用法。

用法:

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

實數序列的離散傅裏葉變換。

參數

x 類數組,實值

要轉換的數據。

n 整數,可選

定義傅立葉變換的長度。如果n未指定(默認)則n = x.shape[axis].如果n < x.shape[axis],x被截斷,如果n > x.shape[axis],x是零填充的。

axis 整數,可選

沿其應用變換的軸。默認值為最後一個軸。

overwrite_x 布爾型,可選

如果設置為 true,則可以覆蓋 x 的內容。默認為假。

返回

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

注意

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

實現了單精度和雙精度例程。半精度輸入將轉換為單精度。非浮點輸入將被轉換為雙精度。不支持Long-double 精度輸入。

要獲得具有複雜數據類型的輸出,請考慮使用較新的函數 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.])

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.fftpack.rfft。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。