2016-10-29 6 views
1

저는 파이썬 언어와 코딩의 새로운입니다.파이썬에서 신호의 파생물을 얻는 방법?

저는 USB 직렬을 사용하여 Arduino UNO 보드에서 라이브 신호를 수집하고 차별화하려고합니다. 지금까지 아무런 문제없이 데이터를 수집하고 있지만 차별화 방법에 대한 정보는 얻을 수 없습니다.

여러분이 저에게 도움을 주시겠습니까? 아니면이 자료에 대한 정보를 얻을 수 있는지 알려주십시오.

정말 감사드립니다. D

# -*- coding: utf-8 -*- 

from collections import deque 
import serial 
import pyqtgraph as pg 
from pyqtgraph.Qt import QtCore, QtGui 
import numpy as np 
arduinoData = serial.Serial('COM4', 4800) 

win = pg.GraphicsWindow() 
win.setWindowTitle('pyqtgraph example: Scrolling Plots') 

# In these examples, the array size is fixed. 
p1 = win.addPlot() 
p2 = win.addPlot() 

data1= [0,0] 
vector=deque() 

for i in range(300): 

    string = arduinoData.readline() 
    stringx = string.split(',') 

    time=float(stringx[0]) 
    distance=float(stringx[1]) 
    vector=(time, distance) 
    vectorx = np.array(vector) 
    data1=np.vstack((data1,vectorx)) 

curve1 = p1.plot(data1) 
curve2 = p2.plot(data1) 
ptr1 = 0 



def update1(): 
    global data1, curve1, ptr1 

    data1[:-1] = data1[1:] 

    string = arduinoData.readline() 

    stringx = string.split(',') 
    time=float(stringx[0]) 
    distance=float(stringx[1]) 
    vector=(time, distance) 
    vectorx=np.array(vector) 
    data1[-1]=vectorx 
    #print(data1) 

    curve1.setData(data1) 

    ptr1 += 1 
    curve2.setData(data1) 
    curve2.setPos(ptr1, 0) 

# update all plots 
def update(): 
    update1() 

timer = pg.QtCore.QTimer() 
timer.timeout.connect(update) 
timer.start(50) 



## Start Qt event loop unless running in interactive mode or using pyside. 
if __name__ == '__main__': 
    import sys 
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): 
     QtGui.QApplication.instance().exec_() 
+0

* 라이브 * 데이터를 무엇과 구별하고 싶습니까? * 죽은 * 데이터? – zvone

+0

심각한 질문입니다. 차별화하려는 것을 설명하지 않았습니다. USB에서 가져온 모든 데이터는 * 라이브 데이터 *입니다. 그렇지 않습니까? – zvone

+0

네, 사과드립니다. 나는 "시간"신호를 존중하여 "거리"신호를 구별하고 싶다. 나에게 그것을 배우거나 어떤 단서를 줄 수있는 곳을 알려주겠습니까? 감사합니다. . –

답변

0

"신호를 구별하기 위해"가 올바른있어서 것으로 보인다 있지만 거의 (영어 사용되지 않는 표현입니다 : 여기

내 코드

것을 제외 : 나는 초심자 오전 Google에). 그래서 당신과 @zvone은 오해가있었습니다. 신호의 "파생물"을 얻고 싶다고 말하는 것이 좋습니다.

어쨌든 numpy.gradient 함수가이를 수행 할 수 있습니다.

+0

titusjan 및 @zvone에 감사드립니다. 오해에 사과드립니다. –

+0

나는 동의하지 않는다. 분화는 미적분에서 시작되는 일반적으로 사용되는 용어입니다. 미분 방정식 클래스는 밀링 엔지니어링 학위를 실행하기위한 매우 일반적인 요구 사항입니다. – Brian