我是Python新手。我打算做一個離散點陣列(時間,加速度)的傅里葉變換,並繪出結果。Python - FFT導致錯誤的物理意義
我複製並粘貼示例FFT代碼,並相應地進行修改。
請參閱代碼:
import numpy as np
import matplotlib.pyplot as plt
# Load the .txt file in
myData = np.loadtxt('twenty_z_up.txt')
# Extract the time and acceleration columns
time = copy(myData[:,0])
# Extract the acceleration columns
zAcc = copy(myData[:,3])
t = np.arange(10080)
sp = np.fft.fft(zAcc)
freq = np.fft.fftfreq(t.shape[-1])
plt.plot(freq, sp.real)
myData的是具有10080行和10列的矩形矩陣。
因此,扎克是從基質中提取的ROW3。
在通過Spyder的畫的情節,大部分諧波集中在0 他們都非常小。
但是我的數據是實際行走的人(包括重力)攜帶的手機的加速度。所以我期望最重要的諧波發生在2Hz左右。
爲什麼圖無感?
在此先感謝!
==============更新:我的圖表======================
的第一時域之一:
x軸是在毫秒。
y軸爲以m/s^2,由於地球引力,它有一個直流偏移的〜10。
'np.arange(256)'創建一個整數數組(例如從0到255)。當你調用't.shape [-1]'時,你會得到數組't'的長度(256)。 'np.fft'是python快速傅里葉變換模塊。 'np.fft.fft()'是模塊的快速傅里葉變換函數。您需要調用數據上的函數。 – nicholaschris
@nicholaschris真棒!謝謝!然後我修改256到10080以適合我的情況。更改後可以繪製該圖。但是然後圖表沒有意義..你能幫我再檢查一次嗎? –
你的意思是0附近的泛音?如果你的意思是0Hz處有能量,即DC,則這表示時域數據中的DC偏移。上傳圖片會很有用(如果您沒有足夠的鏈接到Imgur或類似的鏈接,並且有人會爲您編輯圖片,我不確定您需要多少點才能將圖片添加到問題中)。 – Blair