在 python 中查找信号的周期

Finding the period of the signal in python

我正在学习和练习 python。我的问题是,如何通过python找到信号的周期?还有哪些不同的方式?

"A periodic signal (but only ploted on a bounded interval)"

signal1=np.exp(np.sin(20*np.pi*t)*np.sin(30*np.pi*t))
fig, ax=plt.subplots()
ax.plot(t,signal1);```

好吧,我想这不是一个看起来很简单的问题,因为并非所有函数都是周期性的,您可以这样使用 np.fft.fft

plt.plot(np.abs(np.fft.fft(signal1)))

这是这个特定信号的频率图。

傅里叶变换输出信号正弦分量的频率。除非信号是纯净的,即仅由一个正弦曲线组成,否则不能保证从 fft 中获得周期。

例如:让 f(t) = sin(2pit/4) + sin(2pit/6), 两个周期为 4 和 6 的正弦波之和。在这种情况下,f(t) 的周期是两个周期的最小公倍数,即 12.

因此,您确实在寻找autocorrelation