Python 读取串行数据进行实时fft
我正在为实时fft编写python脚本。该代码使用arduino作为adc转换器,并通过串行端口读取值。在while循环的每一步,我加载数据数组,然后对其进行傅里叶变换。问题在于,在第一个周期后(构建阵列只需0.01秒),其他周期需要更长的时间,即0.98秒。 先谢谢你Python 读取串行数据进行实时fft,python,serial-port,fft,Python,Serial Port,Fft,我正在为实时fft编写python脚本。该代码使用arduino作为adc转换器,并通过串行端口读取值。在while循环的每一步,我加载数据数组,然后对其进行傅里叶变换。问题在于,在第一个周期后(构建阵列只需0.01秒),其他周期需要更长的时间,即0.98秒。 先谢谢你 import time import math import serial from scipy.fftpack import fft import matplotlib.pyplot as plt from scipy.sig
import time
import math
import serial
from scipy.fftpack import fft
import matplotlib.pyplot as plt
from scipy.signal import blackman
import numpy as np
t=0
maxLenght=256
stringa=np.zeros(shape=(maxLenght))
seriale=serial.Serial('/dev/ttyACM0',57600, timeout=0.1)
time.sleep(3)
cycle=0
while cycle<100:
print cycle
cycle+=1
#seriale.flushInput()
t = time.time()
for i in range(0,maxLenght):
try:
stringa[i]=seriale.readline()
except:
()
elapsed = time.time() - t
print elapsed
#dati=float(dati)
#print dati
#print stringa
s = time.time()
T=0.005
xf = np.linspace(0.0, 1.0/(2.0*T), maxLenght/2)
w = blackman(maxLenght)
ywf = fft(stringa*w)
elapseds = time.time() - s
print elapseds
time.sleep(0.5)
stringa=np.zeros(shape=(maxLenght))
seriale.close()
导入时间
输入数学
导入序列号
从scipy.fftpack导入fft
将matplotlib.pyplot作为plt导入
从scipy.signal导入blackman
将numpy作为np导入
t=0
最大长度=256
stringa=np.Zero(形状=(最大长度))
serial=serial.serial('/dev/ttyACM0',57600,超时=0.1)
时间。睡眠(3)
循环=0
while循环