【发布时间】:2016-02-19 17:05:06
【问题描述】:
原始数据位于google drive。它是一个两列数据,t 和 x。我做了以下离散fft变换。 我不太明白主峰(尖峰)的高度低于侧峰。第二个子图表明确实是尖峰(最接近2.0)是主频。代码及图如下:
import numpy as np
import math
import matplotlib.pyplot as plt
from scipy.fftpack import fft,fftfreq
freqUnit=0.012/(2*np.pi)
data = np.loadtxt(fname='data.txt')
t = data[:,0]
x = data[:,1]
n=len(t)
d=t[1]-t[0]
fig=plt.figure()
ax1=fig.add_subplot(3,1,1)
ax2=fig.add_subplot(3,1,2)
ax3=fig.add_subplot(3,1,3)
y = abs(fft(x))
freqs = fftfreq(n, d)/freqUnit
ax1.plot(t, x)
ax2.plot(t, x)
ax2.set_xlim(40000,60000)
ax2.set_ylim(0.995,1.005)
ax3.plot(freqs,y,'-.')
ax3.set_xlim(0,4)
ax3.set_ylim(0,1000)
plt.show()
【问题讨论】:
-
我不确定我是否理解你的论点,为什么主频率是 2;我也不确定你 freqUnit 中的 0.012 来自哪里。
-
data.txt中的数据是如何生成的? -
我建议 2.05 频率实际上是(几乎)主导频率(2.0 和 2.05 可能相等)。您最清楚地看到了 2.0,但您也看到了它们的区别:f=0.05 包络。因此,除非您有一些令人信服的理由知道您的主频率是 2.0,否则结果只是 f = 2.0 和 f = 2.05 的组合。
-
@Evert 从图中看原因是2.0的频率比较尖锐。
-
@fjarri 来自一个研究问题。