如何解决如何使用 scipy 库在 fft 中绘制实部和虚部的图?
我有以下代码,我从互联网上获取它,我正在尝试逐行理解然后改进它。除了一部分,我都明白了。 当我们绘制频率图时,为什么我们取 N//2 作为向量的长度? 当我将其更改为 N 时,它给了我错误:
ValueError: x 和 y 必须具有相同的第一维,但具有形状 (600,) 和 (300,)
import numpy as np
from scipy.fftpack import fft
import matplotlib.pyplot as plt
N = 600
sample_frequency = 800
T = 1.0 / sample_frequency
x = np.linspace(0.0,N*T,N)
y = np.sin(10.0 * 2.0*np.pi*x) + 0.5*np.sin(80.0 * 2.0*np.pi*x)
yf = fft(y)
xf = np.linspace(0.0,1.0/(2.0*T),N//2)
plt.figure(1)
plt.subplot(211)
plt.plot(x,y)
plt.grid()
plt.subplot(212)
plt.plot(xf,2.0/N * np.abs(yf[0:N//2]))
plt.grid()
plt.show()
另外我想做的另一件事是为虚部和实部分别绘制一个图表,除了它们的绝对值。我尝试了不同的方法,但我得到了一些错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。