下午好,
我目前正在寻求比较电压幅度与时间的关系,以便通过示波器进行测量。我正在从Linux终端运行我的代码,目前遇到以下错误:
ValueError: Invalid number of FFT data points (0) specified.
NameError: name 'yf' is not defined
我的代码发布在下面:
import csv
import matplotlib.pyplot as plt
import numpy as np
from scipy.fftpack import fft
sample_interval= -1
sample_num = -1
time = []
amplitude = []
with open('nofilter-1.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
for row in readCSV:
time.append(row[3]);
amplitude.append(row[4]);
if(row ==1):
sample_interval = row[1]
if(row ==2):
sample_num = row[1]
# sample spacing
print("syntax")
yf = fft(amplitude)
xf = np.linspace(0.0, 1.0/(2.0*sample_interval), sample_num/2)
fig, ax = plt.subplots()
ax.plot(xf, 2.0/sample_num * np.abs(yf[:sample_num//2]))
plt.show()
我是否遇到语法错误或定义了变量不正确?
最佳答案
对不起,所有回复晚!这是我正在使用的.csv文件的片段。
.csv file
可以看出,第一和第三列包含某种形状或形式的字符串,这就是为什么我指出自己可能混淆了行和列之后在代码中注意到它的原因。我听了bobrobbob的建议,发现运气很小。
关于python - 关于幅度的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51068213/