问题描述
我有以下代码,我从互联网上获取它,我正在尝试逐行理解然后改进它。除了一部分,我都明白了。 当我们绘制频率图时,为什么我们取 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 (将#修改为@)