簡體   English   中英

在不使用內置FFT函數的情況下,使用Python查找功率譜

[英]Finding a power spectrum in Python, without using the inbuilt FFT function

我想使用以下公式使用Python查找功率譜:

功率譜

我正在嘗試繪制與此有關的數組:

P = []
for k in range(0,int(N/2)):
    P.append((2/N)*(sum(x[k]*np.cos(2*np.pi*nu*t[k]))**2+(sum(x[k]*np.sin(2*np.pi*nu*t[k])))**2))

其中nu是頻率:

nu = []
for j in range(0, int(N/2), 2):
nu.append(j/T)

x和t來自數據集,而N只是所有x的總和。

Python不斷告訴我:“不能將序列乘以'float類型的非整數'。在這里,我在做什么錯? 我確定這與將錯誤類型的數據相互相乘有關。 但我不確定如何更改此設置。

我知道有一個內置的FFT函數,但是我認為讓該函數正常工作對我很有幫助。

nu是一個列表,因此代碼段2*np.pi*nu*t[k]給您錯誤。嘗試類似的方法:

for i in nu:
    P.append((2/N)*(sum(x*np.cos(2*np.pi*nu[i]*t))**2+(sum(x*np.sin(2*np.pi*nu[i]*t)))**2))

這樣,您求和的數量為(2/N)*(sum(x*np.cos(2*np.pi*nu[i]*t))**2+(sum(x*np.sin(2*np.pi*nu[i]*t)))**2)對於每個i (2/N)*(sum(x*np.cos(2*np.pi*nu[i]*t))**2+(sum(x*np.sin(2*np.pi*nu[i]*t)))**2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM