介绍
这篇文章主要讲解了使用python接受tgam的脑波的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
废话不多说,来看看实例吧!
# - * -编码:utf - 8 - * 进口系列 文件名=& # 39;yjy.txt& # 39; t=serial.Serial (& # 39; COM5& # 39;, 57600) b=t.read (3) vaul=[] 我=0 y=0 p=0 而b [0] !=170或b [1] !=170或b [2] !=4: b=t.read (3) 打印(b) 如果b [0]==b[1]==170和b [2]==4: a=b + t.read (5) print () 如果一个[0]==170和170年[1]==[2]==4和[3]==128和[4]==2: 而1: 我+ 1=#打印(我) 一个=t.read (8) # print () 金额=((0 x80 + 0 x02 + [5] + [6]) ^ 0 xffffffff), 0 xff 如果一个[1][0]====170 [2]==32: y=1 其他: y=0 如果一个[0]==170和170年[1]==[2]==4和[3]==128和[4]==2: p=1 其他: p=0 如果金额!=[7]和y !=1,p !=1: 打印(“wrroy1") b=t.read (3) c=b [0] d=b [1] e=b [2] 打印(b) 而c !=170或d !=170或e !=4: c=d d=e e=t.read () 打印(“c:“) 打印(c) 打印(“d:“) 打印(d) 打印(“e:“) 打印(e) 如果c==(b # 39; \ xaa& # 39;或170)和d==(b # 39; \ xaa& # 39;或170)和e==b # 39; \ x04& # 39;: g=t.read (5) 打印(g) 如果c==b # 39; \ xaa& # 39;和d==b # 39; \ xaa& # 39;和e==b # 39; \ x04& # 39;和g[0]==128和g [1]==2: 一个=t.read (8) print () 打破 #如果[0]==[1]==170 [2]==4: #打印(类型(a)) 如果一个[0]==170和170年[1]==[2]==4和[3]==128和[4]==2: 高=[5] 低=[6] # print () rawdata=https://www.yisu.com/zixun/(高<8)|低 如果rawdata> 32768: rawdata=rawdata - 65536 # vaul.append (rawdata) 金额=((0 x80 + 0 x02 +高+低)^ 0 xffffffff) &0xff 如果金额==[7]: vaul.append (rawdata) 如果和!=[7]: print (“wrroy2”) b=t.read (3) c=b [0] d=b [1] e=b [2] #打印(b) 而c !=170或d !=170或e !=4: c=d d=e e=t.read () 如果c==b/xaa和d==b/xaa和e==b/x04”: g=t.read (5) 打印(g) 如果c==b/xaa和d==b/xaa和e==b/x04和g[0]==128和g [1]==2: 一个=t.read (8) print () 打破 如果一个[1][0]====170 [2]==32: c=a + t.read (28) 打印(vaul) print (len (vaul)) 在vaul v的: w=0 如果v <=102: w +=v q=w/len (vaul) q=str (q) 与open (filename, a) file_object: file_object.write (q) file_object.write (“/n”) 如果102<强> Python处理脑电数据:PCA数据降维强>
PCA。py
# !编码:utf - 8 - 从numpy进口* 进口numpy np def loadDataSet(文件名,delim=& # 39; \ t # 39;): fr=开放(文件名) stringArr=[line.strip () .split fr.readlines (delim)行()) datArr=[地图(浮动,线)在stringArr) 返回垫(datArr) def percentage2n (eigVals百分比): sortArray=np.sort (eigVals) #升序 sortArray=sortArray(1:: 1) #逆转,即降序 arraySum=总和(sortArray) tmpSum=0 num=0 因为我在sortArray: tmpSum +=我 num +=1 如果tmpSum>=arraySum *百分比: 返回num def pca (dataMat topNfeat=9999999): meanVals=意味着(dataMat轴=0) meanRemoved=dataMat - meanVals #删除的意思 covMat=x (meanRemoved rowvar=0) eigVals eigVects=linalg.eig(垫(covMat)) eigValInd=argsort (eigVals) #排序,排序最小到最大 eigValInd=eigValInd [: - (topNfeat + 1): 1) #切断不必要的维度 redEigVects=eigVects [: eigValInd] #重组eig vects最大最小 lowData_N=meanRemoved * redEigVects #将数据转换成新的维度 reconMat_N=(lowData_N * redEigVects.T) + meanVals 返回lowData_N reconMat_N def pcaPerc (dataMat,比例=1): meanVals=意味着(dataMat轴=0) meanRemoved=dataMat - meanVals #删除的意思 covMat=x (meanRemoved rowvar=0) eigVals eigVects=linalg.eig(垫(covMat)) eigValInd=argsort (eigVals) #排序,排序最小到最大 n=percentage2n (eigVals百分比) n_eigValIndice=eigValInd [1: - (n + 1): 1) n_eigVect=eigVects [: n_eigValIndice] lowData_P=meanRemoved * n_eigVect reconMat_P=(lowData_P * n_eigVect.T) + meanVals 返回lowData_P reconMat_P使用python接受tgam的脑波的方法