祝曉平 韓業(yè)強 郝耀耀 王東 陳耀武?
(1.浙江大學生物醫(yī)學工程與儀器科學學院,浙江杭州310027;2.浙江大學求是高等研究院,浙江杭州310027)
腦-機接口是一種將腦電信息轉(zhuǎn)化為外圍設(shè)備控制命令的技術(shù),它在生物體與外部環(huán)境之間建立了一種新型的信息交流與控制通道,從而為殘障人士的運動控制提供了一種新方法[1].腦-機接口技術(shù)現(xiàn)已成為神經(jīng)科學與信息工程技術(shù)交叉學科的熱點課題[2-4],其中運動信息的神經(jīng)解碼是一個重要的研究方向[5].
鋒電位分類是運動信息神經(jīng)解碼研究中的關(guān)鍵問題之一.大腦中的神經(jīng)元通過動作電位即鋒電位進行信號的傳遞、交流和處理.每個電極通常會把周邊若干個神經(jīng)元的鋒電位記錄下來[6],因此,要準確獲取生物神經(jīng)網(wǎng)絡(luò)所傳達的信息,就需要將各個神經(jīng)元的鋒電位區(qū)分開來[7].在實際的腦-機接口實驗和應(yīng)用中,鋒電位實時在線分類不但可以減輕動物腦電信號采集部分和神經(jīng)信號解碼部分之間傳輸數(shù)據(jù)的負擔,而且是實現(xiàn)實時解碼的先決條件,因此,實時、高效、準確地完成神經(jīng)元鋒電位的分類是實用腦-機接口設(shè)備的必要條件.
傳統(tǒng)的鋒電位分類算法包括特征提取和聚類兩個步驟.特征提取是指從鋒電位信號中提取特征值的過程,其常用算法主要有主成分分析法(PCA)[8-9]、模式匹配[7,9-10]和小波分析[10-11]等.聚類是將鋒電位按特征值進行分類的過程,通常采用k均值聚類算法[8].然而,k均值聚類算法需要知道分類的數(shù)量,并且對初始值的選擇很敏感[7].Yang等[7]使用數(shù)字集成電路完成鋒電位的檢測和特征提取,但聚類算法仍然在個人計算機上實現(xiàn),因而該算法沒有被廣泛地應(yīng)用;Zumsteg等[8]采用噪聲白化的主成分分析算法和最大后驗分類算法來實現(xiàn)鋒電位的實時分類,但需要較長的訓練時間;Dai等[9]實現(xiàn)了模式匹配、主成分分析法、徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)(RBFNN)、反向傳播神經(jīng)網(wǎng)絡(luò)(BPNN)和小波分析5種鋒電位分類方法并對其性能進行了比較,結(jié)果顯示模式匹配方法具有最佳的性能,而反向傳播神經(jīng)網(wǎng)絡(luò)的性能最差;Vollgraf等[10]針對封閉形式的約束二次優(yōu)化問題,提出了一種基于時域優(yōu)化的最佳線性濾波算法,該算法比基于頻域的濾波算法具有更好的分類效果;Hulata等[11]采用小波包分解(WPD)方法來實現(xiàn)鋒電位的分類,能夠更好地處理鋒電位重疊的情況,但在小波包選取上沒有統(tǒng)一的方法.以上算法均注重算法的分類性能,而忽略了實時在線分類的性能指標.商用Cerebus 128通道數(shù)據(jù)采集系統(tǒng)(美國Cyberkinetics Inc.公司生產(chǎn))采用模式匹配方法來實現(xiàn)鋒電位的實時在線分類,但在模式的選擇上需要人為設(shè)定,且設(shè)備體積過于龐大,限制了實驗中動物的活動范圍.為了實現(xiàn)便攜式實時處理的腦-機接口,需要提出一種新模式來完成鋒電位分類的實時計算,并達到低功耗、便攜式實時處理的設(shè)計要求.
有鑒于此,文中提出了一種新型的基于概率神經(jīng)網(wǎng)絡(luò)(PNN)的鋒電位實時分類算法.該算法將特征提取和聚類問題統(tǒng)一到PNN中,快速訓練PNN后,根據(jù)訓練數(shù)據(jù)求得貝葉斯準則下的最大后驗概率值,從而獲得輸入鋒電位分類信息.文中還完成了該算法的FPGA實現(xiàn),并結(jié)合嵌入式系統(tǒng)設(shè)計技術(shù)以達到低功耗、便攜式實時處理的設(shè)計要求.
Specht[12]在1990 年首次詳細介紹了 PNN,將貝葉斯估計放置于一個前饋神經(jīng)網(wǎng)絡(luò)中,依據(jù)最小風險的貝葉斯決策實現(xiàn)最優(yōu)分類,其優(yōu)點是訓練簡單、迅速,只要有足夠的訓練數(shù)據(jù),就可以保證獲得貝葉斯準則下的最優(yōu)解.PNN的應(yīng)用領(lǐng)域包括分類問題、映射問題、歸納概率估計問題等.Zhou等[13]成功地將PNN應(yīng)用于大鼠壓桿試驗中的神經(jīng)解碼.Vinitha等[14]實現(xiàn)了基于PNN架構(gòu)的人臉識別系統(tǒng).
文中采用的PNN結(jié)構(gòu)如圖1所示,共分為4層:輸入層、模式層、求和層、輸出層.圖中,X為測試向量(即一個未分類的神經(jīng)鋒電位向量),X=(X1,X2,…,Xn),Wi為分類 Ci的訓練向量(即具有分類號的神經(jīng)鋒電位向量),Di為分類Ci中的訓練樣本數(shù),Si為分類Ci對應(yīng)的分布密度.模式層是由m類訓練向量樣本構(gòu)成,第i類包含Di個訓練向量.將分類好的訓練向量填充模式層,即可完成該PNN的構(gòu)建.
測試時,輸入層把測試向量X送至所有的模式層單元.每個模式層單元計算測試向量X和該單元中的訓練向量Wi之間的距離,然后進行非線性運算,對應(yīng)的激活函數(shù)為
圖1 概率神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)Fig.1 Architecture of PNN
式中,σ 為平滑系數(shù),(Wi-X)(Wi-X )T為測試向量X和訓練向量Wi之間的距離.對輸入向量和訓練向量做歸一化處理,則激活函數(shù)可以進一步簡化成
其中Zi=X·Wi.每個模式層單元的結(jié)構(gòu)見圖2.
圖2 模式層單元的結(jié)構(gòu)Fig.2 Architecture of unit in pattern layer
求和層的單元個數(shù)等于類別數(shù),各單元把模式層單元的輸出按照類別號相加求和,獲得各分類對應(yīng)的分布密度.在文中的鋒電位分類應(yīng)用中,由于微電極在采集神經(jīng)元信號時,單個微電極一般能夠采集到4個左右的神經(jīng)元信號,因此將求和層的單元個數(shù)設(shè)定為4.輸出層從求和層中求得輸入鋒電位相對于各類別號的分布密度最大值,并將其對應(yīng)的類別號作為PNN的輸出.這樣就完成了該測試向量即一個神經(jīng)元鋒電位的分類.
文中實驗系統(tǒng)的組成如圖3所示,包括生物部分和信號處理部分.生物部分包括動物手術(shù)和行為學訓練;信號處理部分包括數(shù)據(jù)采集、鋒電位檢測和鋒電位分類.
圖3 實驗系統(tǒng)示意圖Fig.3 Schematic diagram of experimental system
動物實驗的所有操作均遵守國家實驗動物管理和使用的有關(guān)規(guī)定.實驗采用體重為280g左右的成年雄性Sprague Dawley大鼠.手術(shù)前實驗動物用戊巴比妥鈉(300mg/kg)腹腔注射麻醉后,置于腦立體定位儀(美國Stoelting Inc.公司生產(chǎn))上,參考大鼠腦圖譜,在左側(cè)初級運動皮質(zhì)層(M1)植入2×8的慢性陣列電極(排間距為0.4mm,排內(nèi)間距為0.3mm,電極絲材料為包裹Tefloen的鎳鎘合金,電極尖端橫截面裸露,美國Micro Probes Inc.公司生產(chǎn)),電極尖端的位置在前肢區(qū)的第5層.電極埋置完后利用牙科水泥固定電極并封住傷口.
動物訓練中,老鼠需要通過壓桿并超過一定的閾值來獲得水的獎賞.為了保證實驗的順利進行,老鼠在不訓練時僅給少量水,使其處于口渴狀態(tài).當它能夠較為熟練地壓桿喝水時,對其進行手術(shù).手術(shù)后大鼠恢復一周,再將其置于實驗箱中繼續(xù)進行壓桿喝水實驗.共有5只老鼠參加通過壓桿來獲取水的訓練,其中3只老鼠各自進行了手術(shù),植入16通道的微電極陣列.由于植入電極會對神經(jīng)元造成損傷,因此個別電極通道存在沒有數(shù)據(jù)的情況,文中實驗只獲得36個微電極通道(按順序標注為1-36)的數(shù)據(jù),并作為實驗數(shù)據(jù)源.實驗期間,使用Cerebus 128通道數(shù)據(jù)采集系統(tǒng)對大鼠的神經(jīng)數(shù)據(jù)以30 kHz的采樣率進行等間隔采集,壓桿的壓力數(shù)據(jù)通過壓力傳感器也以500 Hz的采樣率被記錄下來.由于Cerebus 128通道數(shù)據(jù)采集系統(tǒng)內(nèi)置鋒電位的實時檢測和分類,因此不僅可以直接記錄分類前的神經(jīng)數(shù)據(jù),而且可以記錄分類后的神經(jīng)數(shù)據(jù).分類后的神經(jīng)數(shù)據(jù)被作為標準分類參考來進行實驗效果的對比,分類后的鋒電位信號可用于神經(jīng)解碼以獲取大鼠的壓桿意圖.
選用實驗數(shù)據(jù)對文中算法、k均值聚類算法、基于PCA的鋒電位分類算法進行測試并比較了它們的性能.3種算法的鋒電位分類結(jié)果如圖4所示.
圖4 3種算法的分類結(jié)果Fig.4 Sorting results of three algorithms
由實驗結(jié)果可知:文中算法、k均值聚類算法和基于PCA的分類算法的平均分類準確率分別為93.86%、93.33%和79.96%,文中算法和k均值聚類算法的分類準確率高于基于PCA的分類算法,且文中算法的分類準確率略高于k均值聚類算法.
基于PCA的分類算法是通過PCA獲得貢獻率總和達到95%的前幾個主成分,并用于鋒電位的聚類分析,然后采用最大最小距離法進行聚類.在采用最大最小距離法確定聚類中心時,判定是否存在第3個聚類中心的條件為[15]
式中:dj1和dj2分別為第j個樣本的鋒電位與第1和第2個聚類中心的距離,d12為第1、第2個聚類中心之間的距離;m為檢驗參數(shù),文中取值為1/2.依此類推來確定是否存在新的聚類中心.
從算法自身來看,k均值聚類算法需要明確分類的類別數(shù)k,同時需要通過標準測度函數(shù)的收斂來確定聚類的中心,這需要反復迭代,且k均值的初值選擇是隨機的,可能因聚類中心的初值選擇不同而出現(xiàn)標準測度函數(shù)不收斂的情況,因此存在不確定因素.在鋒電位分類的應(yīng)用中,確定聚類中心的過程可稱為訓練過程.從k均值聚類中心的確定步驟來看,其訓練時間并不可控,且實驗中k均值聚類算法需要進行多次聚類才能獲得最佳的分類效果.相比之下,文中算法僅需要將訓練數(shù)據(jù)進行存儲即可完成訓練過程,簡單且迅速,需要極短的訓練時間.一旦完成訓練,之后的分類將和訓練樣本的分類保持一致,這樣便于對算法的分類效果進行評估.但k均值聚類算法因每次的初始聚類中心為隨機選擇,所以會出現(xiàn)k均值的分類類別號與用于評估的標準類別號不一致的情況,這雖然不影響最終的分類,但會給算法性能的評估帶來不便.對于基于PCA的分類算法,在用PCA進行降維操作后,采用最大最小距離聚類時,要求有兩種以上的分類類別,否則會將一類的類別分為兩類,形成錯誤分類,而文中算法不會出現(xiàn)這種情況.
文中算法是針對單個通道的鋒電位進行分類的,而在植入式腦-機接口中,微電極陣列中的電極數(shù)量較大,需要并行完成多通道鋒電位的并行分類工作.為此,文中還給出了所提算法的基于FPGA的實現(xiàn),以便在完成多通道鋒電位的并行分類工作時,大幅提升文中算法的計算速度.
文中使用Xilinx公司的ML506評估板作為實現(xiàn)鋒電位分類算法的硬件平臺,其FPGA型號為Virtex-5 系列的芯片 XC5VSX50T-1FFG1136,適于處理復雜的數(shù)字信號,使用的語言是Verilog HDL.文中算法的FPGA實現(xiàn)結(jié)構(gòu)如圖5所示,共有5個模塊:控制模塊、訓練模塊、距離計算模塊、指數(shù)計算模塊、求和比較模塊.
在實驗中,每個電極的鋒電位被分為1-4類,當信號超過鋒電位檢測設(shè)定的閾值時,則認為有鋒電位產(chǎn)生,就將前12個采樣點、當前采樣點及后面的11個采樣點數(shù)據(jù)作為該鋒電位的波形數(shù)據(jù).這些參數(shù)的值可以根據(jù)實際情況進行調(diào)整.
控制模塊包括邏輯控制和總線接口.邏輯控制負責內(nèi)部有限狀態(tài)機的改變以及數(shù)據(jù)流的走向;總線接口負責和外部主機之間的交互,在交互部分使用了若干個握手協(xié)議.外部主機首先檢查FPGA的內(nèi)部操作狀態(tài),再對特定的地址發(fā)送命令,然后等待FPGA的中斷信號,確認操作是否可以執(zhí)行.這種交互機制使得系統(tǒng)具有可配置性,且能夠提高交互的可靠性.
訓練模塊把從控制模塊接收到的數(shù)據(jù)按其類型進行存儲.為了實現(xiàn)并行的距離計算,訓練模塊用將24個采樣點的訓練向量分別存放到24個RAM塊中,這種處理方式可以保證在一個時鐘周期內(nèi)完成對24點數(shù)據(jù)的讀取.此外,還需要將和訓練向量對應(yīng)的分類號數(shù)據(jù)存放到單獨的RAM塊中,為最終的分類輸出做好準備.訓練向量為100個鋒電位信號,每個信號用24個采樣點來表示,每個采樣點用單浮點精度來表示,同樣對應(yīng)的分類數(shù)據(jù)為100個單浮點精度的分類號數(shù)據(jù),因此,訓練模塊占用的RAM塊大小為10 kB.每個鋒電位和與之對應(yīng)的分類號存放將消耗25個時鐘周期,因而整個訓練模塊將占用2500個時鐘周期.
圖5 概率神經(jīng)網(wǎng)絡(luò)的FPGA實現(xiàn)結(jié)構(gòu)Fig.5 Architecture of FPGA implementation of PNN
距離計算模塊完成輸入測試量和訓練量之間的距離計算:
式中,Xi為測試量,Wij為訓練量,平滑系數(shù)σ=15.56.由于該模塊中涉及了大量的浮點計算,因此,需要采用一種并行計算結(jié)構(gòu)(見圖6)來加快算法的計算速度.首先,使用24個浮點減法器來完成測試量和訓練量對應(yīng)點的并行減法計算;接著,使用24個浮點乘法器完成減法結(jié)果的并行乘法計算;然后,使用23個浮點加法器完成乘法結(jié)果的累加計算;最后,使用1個浮點乘法器完成累加結(jié)果和平滑系數(shù)的乘法計算.該模塊的浮點計算器是調(diào)用浮點計算IP[16],每個浮點計算器需要調(diào)用2個FPGA片上的DSP48Es資源,每次浮點操作需要消耗一個時鐘周期,由于采用了流水線的操作模式,那么需要8個時鐘周期的延時,因此完成輸入測試量與所有訓練量(100個)的距離計算將需要108個時鐘周期.
指數(shù)計算模塊完成PNN激活函數(shù)(式(1))的計算,通過將自變量分解為整數(shù)和小數(shù)兩部分再分別進行計算來求解:
式中,z為整數(shù)部分,f為小數(shù)部分.對指數(shù)函數(shù)而言,當自變量x大到一定值時,exp(-x)的值就接近于0,文中設(shè)定該值為31,因此,在計算整數(shù)部分expz時,只需從含有32個元素的查找表中進行查找即可.
對于小數(shù)部分exp f,將其表示成雙曲正弦函數(shù)和雙曲余弦函數(shù)的和:
則 exp f的值可通過 CORDIC 方法[17-18]來計算.文中使用的CORDIC IP核具有兩個局限性:(1)只能對定點數(shù)據(jù)進行處理,因此需要在浮點格式與定點格式之間進行轉(zhuǎn)換;(2)輸入變量定義域為,因此需要把小數(shù)部分的值分為兩部分來計算,即
圖6 距離并行計算結(jié)構(gòu)Fig.6 Architecture of parallel calculation of distance
圖7 指數(shù)運算流程圖Fig.7 Flowchart of exponent calculation
指數(shù)部分的整體運算流程圖如圖7所示.輸入自變量來自前一級距離計算的輸出dj,指數(shù)部分的輸出結(jié)果為exp(-dj).在獲取自變量后,首先完成自變量的分解,獲得自變量的整數(shù)部分和小數(shù)部分.對于整數(shù)部分,判斷是否大于31,若是則將溢出標志位置位,整個指數(shù)運算結(jié)果輸出為0;否則通過查找表獲得整數(shù)部分對應(yīng)的函數(shù)值,輸出為該函數(shù)值.對于小數(shù)部分,通過標志位來選擇第1部分小數(shù)的值為exp0或者為exp0.5,將第2部分小數(shù)的值(不大于0.5)通過浮點轉(zhuǎn)定點獲得CORDIC IP核可以接受的數(shù)據(jù)格式,并通過IP核計算求得雙曲正弦函數(shù)和雙曲余弦函數(shù)的值,再將定點格式轉(zhuǎn)換為浮點格式,相加即可獲得第2部分小數(shù)的值.
然后,將整數(shù)部分、第1部分小數(shù)值和第2部分小數(shù)值相乘并取倒數(shù),可獲得計算結(jié)果.由于此模塊涉及了一系列的轉(zhuǎn)換、乘、加操作,所以需要通過緩存將3部分的值對齊.
此模塊的計算占用了2個浮點乘法器、1個浮點加法器、1個浮點除法器、1個浮點轉(zhuǎn)定點和2個定點轉(zhuǎn)浮點,共占用了6個FPGA片上的DSP48Es.其中CORDIC的計算延遲為28個時鐘周期,其它計算延遲均為1個時鐘周期,相關(guān)邏輯操作的延遲為6個時鐘周期,故此模塊的計算延遲為41個時鐘周期.
求和比較模塊負責將指數(shù)運算結(jié)果按類求和,并從所有的和中求得最大值及其對應(yīng)的分類號.如圖5所示,先將指數(shù)運算結(jié)果存放在指數(shù)結(jié)果存儲器中,對不同的分類分別進行求和,最后將4個求和中的最大值及其對應(yīng)的分類號作為最終的分類結(jié)果輸出.此模塊需要占用400 B的RAM資源,用于存放100個指數(shù)運算結(jié)果,并且需要1個浮點加法器和3個浮點比較器.加法操作需要1個時鐘周期,取數(shù)操作和時序控制需要4個時鐘周期,因此,對100個指數(shù)運算結(jié)果按類進行累加需要500個時鐘周期.3個比較器的延遲為6個時鐘周期,所以該模塊共需要506個時鐘周期.
綜上所述,文中PNN的訓練需要2500個時鐘周期,輸入的每個鋒電位分類計算需要655個時鐘周期.
FPGA的設(shè)計軟件為Xilinx ISE 11.4,F(xiàn)PGA型號為 Virtex-5vsx50,Xilinx Virtex-5 系列[19]的 FPGA最大時鐘頻率是200 MHz,然而考慮到總線接口和外部主機的交互,文中采用了100 MHz的參考時鐘作為全局時鐘,即完成PNN的訓練需要25μs,F(xiàn)PGA計算一個鋒電位分類需要6.55 μs;同時在Matlab 7.8.0.347上實現(xiàn)了PNN算法完成鋒電位信號的分類.計算機配置為Intel?coreTMDuo CPU E6550@2.3GHz和 2.0GB DDR2-800.
微電極采集獲得的36通道的神經(jīng)元信號數(shù)據(jù)的分類結(jié)果如圖8所示.從圖8可知:基于FPGA的PNN進行鋒電位分類的時間是固定不變的,平均分類準確率和基于Matlab的PNN是一致的;基于Matlab的PNN完成鋒電位分類的平均時間(36通道數(shù)據(jù),每通道執(zhí)行1000次的平均計算時間)為317.22μs,36通道實現(xiàn)鋒電位分類的平均準確率為93.82%.
圖8 基于Matlab和FPGA的PNN的分類結(jié)果Fig.8 Sorting results of PNNs respectively based on Matlab and FPGA
由Cerebus 128通道數(shù)據(jù)采集系統(tǒng)、基于Matlab的PNN和基于FPGA的PNN完成第12通道的鋒電位的分類結(jié)果如圖9所示.基于Matlab和基于FPGA的PNN的分類準確率一樣,相對標準的Cerebus只有6.55%的差別.
基于Matlab和基于FPGA的PNN的平均分類準確率和平均分類時間如表1所示.從表1可知,在不同的實驗平臺上,同樣的數(shù)據(jù)輸入位寬,分類準確率相同,說明FPGA中激活函數(shù)的逼近計算并沒有影響分類精度,但基于FPGA的PNN的分類時間明顯少于基于Matlab的PNN.
圖9 3種方法的分類結(jié)果比較Fig.9 Comparison of sorting results of three methods
表1 基于Matlab和FPGA的PNN的平均分類準確率和分類時間Table 1 Average sorting accuracy and sorting time of PNNs respectively based on Matlab and FPGA
從實驗結(jié)果可以看出,基于FPGA的PNN的平均分類準確率為93.82%,訓練時間為25μs,分類時間為6.55μs,足以完成鋒電位的實時在線分類.在相同的分類準確率下,基于FPGA的PNN由于采用了并行計算結(jié)構(gòu),因而在分類速度上比基于Matlab的PNN快47.43倍.FPGA實現(xiàn)PNN模型時的資源使用情況如表2所示.
表2 FPGA的資源使用情況Table 2 Resource utilization of FPGA
從表2可知,文中算法的FPGA實現(xiàn)只占用了較少的資源,只有Slice LUTs和DSP48Es占用了50%左右的資源,這是因為它們采用了浮點精度的計算.
為了實現(xiàn)鋒電位信號的實時分類,文中提出了一種新型的基于FPGA的概率神經(jīng)網(wǎng)絡(luò)算法.實驗結(jié)果表明,該算法的平均分類準確率可以高達93.82%,其分類速度比基于Matlab的PNN快47.43倍.今后將重點研究與前端采集裝置的實時連接,同時對FPGA資源的利用率進行改進,以期為實現(xiàn)便攜式實時處理的腦-機接口設(shè)備提供實驗基礎(chǔ).
[1] Sanchez Justin C,Principe Jose C.Brain-machine interface engineering[M].San Francisco:Morgan& Claypool Publishers,2007:1-20.
[2] Lebedev M A,Nicolelis M A L.Brain-machine interface:past,present and future [J].Trends in Neurosciences,2006,29(9):536-546.
[3] Ye X S,Wang P,Liu J,et al.A portable telemetry system for brain stimulation and neuronal activity recording in freely behaving small animals [J].Journal of Neuroscience Methods,2008,174(2):186-193.
[4] 代建華,章懷堅,張韶岷,等.大鼠運動皮層神經(jīng)元集群鋒電位時空模式分析[J].中國科學C輯:生命科學,2009,39(8):736-745.Dai Jian-h(huán)ua,Zhang Huai-jian,Zhang Shao-min,et al.Spatiotemporal analysis of the rat motor cortex neurons clustered spike[J].Science in China Series C:Life Sciences,2009,39(8):736-745.
[5] Nicolelis M A L.Brain-machine interfaces to restore motor function and probe neural circuits[J].Nature Reviews Neuroscience,2003,4(5):417-422.
[6] 祝曉平,王東,陳耀武.基于提升小波的神經(jīng)元鋒電位并行檢測方法[J].華南理工大學學報:自然科學版,2011,39(10):19-25,31.Zhu Xiao-ping Wang Dong,Chen Yao-wu.Parallel detection method of neuronal spikes based on lifting wavelet[J].Journal of South China University of Technology:Natural Science Edition,2011,39(10):19-25,31.
[7] Yang Z,Zhao Q,Liu W T.Neural signal classification using a simplified feature set with nonparametric clustering[J].Neurocomputing,2009,73(1/2/3):412-422.
[8] Zumsteg Z S,Kemere C,Driscoll S,et al.Power feasibility of implantable digital spike sorting circuits for neural prosthetic systems[J].IEEE Transactions on Neural Systems and Rehabilitation Engineering,2005,13(3):272-279.
[9] Dai J H,Liu X C,Yu Y,et al.Experimental study on neural spike sorting methods[C]∥Proceedings of the Second International Conference on Future Generation Communication and Networking.Hainan:IEEE,2008:230-233.
[10] Vollgraf R,Obermayer K.Improved optimal linear filters for the discrimination of multichannel waveform templates for spike-sorting applications [J].IEEE Signal Processing Letters,2006,13(3):121-124.
[11] Hulata E,Segev R,Ben-Jacob E.A method for spike sorting and detection based on wavelet packets and Shannon’s mutual information [J].Journal of Neuroscience Methods,2002,117(1):1-12.
[12] Specht D F.Probabilistic neural networks [J].Neural Networks,1990,3(1):109-118.
[13] Zhou F,Liu J,Yu Y,et al.Field-programmable gate array implementation of a probabilistic neural network for motor cortical decoding in rats[J].Journal of Neuroscience Methods,2010,185(2):299-306.
[14] Vinitha K V,Santhosh Kumar G.Face recognition using probabilistic neural networks[C]∥Proceedings of World Congress on Nature and Biologically Inspired Computing.Coimbatore:IEEE,2009:1388-1393.
[15] 王靜,封洲燕.多通道神經(jīng)元鋒電位檢測和分類的新方法[J].生物化學與生物物理進展,2009,36(5):641-647.Wang Jing,F(xiàn)eng Zhou-yan.A novel method for multichannel neuronal spike detection and classification[J].Progress in Biochemistry and Biophysics,2009,36(5):641-647.
[16] Xilinx.LogiCORE IP floating-pointer operator v5.0 data sheet[EB/OL].(2011-03-01)[2011-09-10].http:∥www.xilinx.com/support/documentation/ipdsp_arithmetic_floating-pt.htm.
[17] Volder Jack E.The CORDIC trigonometric computing technique[J].IRE Transactions on Electronic Computers,1959,8(3):330-334.
[18] Xilinx.CORDIC v4.0 data sheet[EB/OL].(2011-03-01)[2011-09-10].http:∥www.xilinx.com/support/documentation/ipdsp_trigfunction_cordic.htm.
[19] Xilinx.Virtex-5 FPGA family data sheet [EB/OL].(2009-02-06)[2011-09-10].http:∥www.xilinx.com/products/virtex5/index.htm.