在 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。
我正在学习和练习 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。