我想使用 matplotlib 绘制正弦波的 FFT,并且我想在正弦波所属的频率处绘制一条线。
这是我的代码
import numpy as np
import matplotlib.pyplot as plt
f = 3
t = np.arange(-np.pi, np.pi, 0.01)
y = np.sin(2*np.pi*f*t)
plt.subplot(2, 1, 1)
plt.plot(t, y)
ft = np.fft.fft(y)
plt.subplot(2, 1, 2)
plt.plot(ft.real)
plt.show()
而且,这是上述代码的输出。
我想将 FFT 绘制为一条线,这条线将在给定的正弦波频率处笔直向上。假设,如果我将两个 20Hz 和 40Hz 的正弦波加在一起,sine(2*pi*20*t) + sine(2*pi*40*t)那么它们的 FFT 应该在 20Hz 和 30Hz 处有两条直线。
如何修复我的代码以获得我想要的?我在 StackOverflow 上看到了很多问题,但我不明白。任何帮助,将不胜感激。
