[英]Python FFT - Output fft is the same as input function?
我正在嘗試對來自具有振盪形狀的模擬的數據執行 FFT。 當我運行 scipy FFT 時,輸出與輸入相同,我不知道為什么。 我的代碼如下:
tstart = 7.5000000000039813e-2
rho = 0.80272956E-04
V = 4773.706375394508
Aref = 0.203911
Pnondim = 0.5 * rho * V**2 * Aref
df1 = pd.read_csv('screenP.csv')
P1 = -np.array(df1[:])/Pnondim
CT = 1.52
Ax1 = P1 + CT
steps1 = len(P1)
dt1 = 2e-7
tend1 = tstart + steps1*dt1
t1 = np.linspace(tstart,tend1,steps1) * 1000
plt.plot(t1,Ax1)
plt.show()
X = fftpack.rfft(Ax1)
freq = fftpack.rfftfreq(len(Ax1), dt1)
plt.plot(freq, np.abs(X))
plt.xlabel('Frequency (Hz)'), plt.ylabel('Power')
plt.show()
其中 screenP 是 CFD 求解器的數據輸出。 原始曲線和fft輸出如下所示。
https://i.stack.imgur.com/8iPa8.png
https://i.stack.imgur.com/1Eja9.png
任何幫助將非常感激。
簡單示例顯示源a
正弦曲線和傅立葉結果的峰值。
from scipy.fftpack import rfft
import math, numpy
import matplotlib.pyplot as plt
a = [math.sin(i/5) for i in range(100)]
plt.plot(a)
plt.show()
fu = rfft(a)
plt.plot(numpy.abs(fu))
plt.show()
什么代碼創建您的第一張和第二張圖片? 請向我們展示可重現的示例。
如果設置了參數overwrite_x
,則rfft
的結果可能會覆蓋源數組,但它的默認值為False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.