基于fpga的神经解码装置和方法

文档序号:6430442阅读:140来源:国知局
专利名称:基于fpga的神经解码装置和方法
技术领域
本发明属于植入式脑-机接口领域,具体涉及一种基于FPGA的神经解码装置和方法。
背景技术
过去的几十年中,植入式脑-机接口的神经解码算法研究取得了引人注目的进展。神经解码算法主要分为两类线性解码算法和非线性解码算法。典型的线性解码算法主要有群矢量算法、维纳滤波算法和卡尔曼滤波器算法等;而非线性解码算法主要有人工神经网络算法、无味卡尔曼滤波算法和粒子滤波算法等。这些算法在植入式脑-机接口实验中均取得了较好的解码效果,而与之对应的算法复杂度也相应地提升了,复杂计算带来的高计算量对脑-机接口设备的低功耗和便携式实现带来了困难。传统的基于台式计算机的神经解码算法不利于植入式脑-机接口的实时解析,而且导致植入式脑-机接口设备体积过于庞大。因此在保证神经解码工作准确性的同时,又提出了实时计算的要求。理想的植入式脑-机接口是将神经信号处理设备实现完全的植入化,那么就需要有相应的硬件确保神经解码系统的实时计算,同时也需要实现设备低功耗和便携式设计。近年来FPGA (Field Programmable Gate Array,基于现场可编程门阵列)技术取得了飞速发展,已经从最初只能面向纯逻辑替代的应用转变为能够面向复杂的计算密集型应用。最新推出的FPGA器件中,不仅集成有丰富的可配置逻辑块资源(Configurable Logic Block,CLB),还包括大量面向计算密集应用的DSP单元、块状RAM (Block RAM,BRAM)和用于高速串行通信的RocketIO GTP收发器单元。同时为方便FPGA的调试,各FPGA厂商还推出了片内逻辑分析测试工具(如Xilinx公司的Chipkope),在软硬件上保证了在FPGA上实现高性能计算的可行性。

发明内容
本发明提供了一种高可靠性、高计算性能的基于FPGA的神经信号解码装置。一种基于FPGA的神经解码装置,包括数据接收器、解码模型训练器、模型参数缓存器、解码模型计算器和解码结果输出器;其中,所述的数据接收器,与所述的解码模型训练器和解码模型计算器连接,用于接收训练用神经信号及其所对应的运动状态,并将其传输至所述的解码模型训练器;还用于接收待解码神经信号,并将其传输至所述的解码模型计算器;所述的解码模型训练器,与所述的数据接收器和模型参数缓存器连接,用于将从所述的数据接收器接收的训练用神经信号及其所对应的运动状态作为数据源进行解码模型的训练,计算得到解码模型参数并传输至所述的模型参数缓存器;所述的模型参数缓存器,与所述的解码模型训练器和解码模型计算器连接,用于存放由所述的解码模型训练器计算得到的解码模型参数,并将其传输至所述的解码模型计算器;所述的解码模型计算器,与所述的数据接收器、模型参数缓存器和解码结果输出器连接,用于解码模型的计算,根据从所述的数据接收器接收到的待解码神经信号和从所述的模型参数缓存器接收的解码模型参数来计算获得解码结果,并将所述的解码结果传输至所述的解码结果输出器;所述的解码结果输出器,与所述的解码模型计算器连接,将从所述的解码模型计算器获得的解码结果输出。本发明装置中,所述的数据接收器、解码模型训练器、模型参数缓存器、解码模型计算器和解码结果输出器集成在FPGA芯片上,各个组成部分的功能均采用FPGA中的特定功能块来实现,以完成更高的神经解码效率。一种采用本发明装置实现基于FPGA的神经解码方法,包括神经信号数据接口控制步骤、解码模型训练步骤、解码模型计算步骤和解码结果输出步骤,其中,所述的神经信号数据接口控制步骤为数据接收器判断解码模型训练器的数据接收状态,若训练用神经信号及其所对应的运动状态数据接收完毕,则停止接收训练用神经信号及其所对应的运动状态数据,否则继续接收训练用神经信号及其所对应的运动状态数据送至解码模型训练器;同时数据接收器判断解码模型训练器的训练完成状态和解码模型计算器的空闲状态,若解码模型训练器的状态为训练完成且解码模型计算器的状态为空闲,则接收待解码神经信号数据送至解码模型计算器,否则停止接收待解码神经信号数据;所述的解码模型训练步骤为解码模型训练器先判断训练用神经信号及其所对应的运动状态数据的接收状态,若接收完毕则开始训练过程,否则继续接收训练用神经信号及其所对应的运动状态数据;训练过程是根据接收到的训练用神经信号及其所对应的运动状态数据计算解码模型参数,并将计算所得的解码模型参数传输至模型参数缓存器;所述的解码模型参数共有四个,可按照以下四个公式分别计算得到F = XlXl (X0XlY
(Z-I)H=ZXT (XXT)v=^-HX){Z~HX)T
L其中,F、W、H、V为四个解码模型参数,用于解码模型计算,Z= [zi; Z2,…,zj是训练用神经信号集合,X0 = [X1, X2,…,Xl-J,X1 = [x2, X3,…,xL]和 χ = [X1, X2,…,xL] 是训练用神经信号所对应的运动状态的三个训练集,L代表训练用神经信号数据的长度。所述的解码模型计算步骤为解码模型计算器先判断解码模型训练器的训练完成状态,若训练完成则开始解码模型计算过程,否则继续等待;所述的解码模型计算过程是根据从所述的数据接收器接收到的待解码神经信号和从所述的模型参数缓存器接收的解码模型参数来完成模型计算,获得解码结果;按照以下五个公式完成解码模型计算
Xkjk^1 = Fxk^1 Ik^1PklH = FPHlHFkWKk = ^,^^,^+7)-1Xk|k = xk|k-!+Kk (Zk-HxkIk^1)Pklk= (I-KkH) Pk丨η其中,F、W、H、V为四个解码模型参数,Xkllri是当前时刻的先验状态,χ·是前一时刻的运动状态,PkIk-!是当前时刻先验协方差矩阵,Pk-Hk-!是前一时刻的后验协方差矩阵, Kk为增益矩阵,Xklk是当前时刻的后验状态,即解码结果,Pklk为当前时刻的后验协方差矩阵,I是指单位矩阵,T是指矩阵的转置运算。根据以上公式可以完成当前输入待解码神经信号所对应的运动状态的解码工作。所述的解码结果输出步骤为解码结果输出器判断解码模型计算器的计算完成状态,若计算完成则输出解码结果,否则等待解码结果。与现有技术相比,本发明具有以下有益的技术效果本发明装置和方法可以实现数据的高速处理,提高神经解码的效率。对于一组神经信号的解码,采用通用计算机进行处理,需要10447 μ s的处理时间;采用本发明装置和方法进行处理,只需要427. 35 μ s的处理时间。


图1为本发明的基于FPGA的神经解码装置的结构示意图;图2为本发明的基于FPGA的神经解码方法中的数据流程图。
具体实施例方式下面结合实施例和附图来详细说明本发明,但本发明并不仅限于此。如图1所示,一种基于FPGA的神经解码装置,包括数据接收器110、解码模型训练器120、模型参数缓存器130、解码模型计算器140和解码结果输出器150 ;其中,数据接收器110,与解码模型训练器120和解码模型计算器140连接,用于接收训练用神经信号及其所对应的运动状态,并将其传输至解码模型训练器120 ;还用于接收待解码神经信号,并将其传输至解码模型计算器I40 ;解码模型训练器120,与数据接收器110和模型参数缓存器130连接,用于将从数据接收器110接收的训练用神经信号及其所对应的运动状态作为数据源进行解码模型的训练,计算得到解码模型参数并传输至模型参数缓存器130 ;模型参数缓存器130,与解码模型训练器120和解码模型计算器140连接,用于存放由解码模型训练器120计算得到的解码模型参数,并将其传输至解码模型计算器140 ;解码模型计算器140,与数据接收器110、模型参数缓存器130和解码结果输出器 150连接,用于解码模型的计算,根据从数据接收器110接收到的待解码神经信号和从模型参数缓存器130接收的解码模型参数来计算获得解码结果,并将解码结果传输至解码结果输出器150 ;解码结果输出器150,与解码模型计算器140连接,将从解码模型计算器140获得的解码结果输出。
上述装置中,数据接收器110、解码模型训练器120、模型参数缓存器130、解码模型计算器140和解码结果输出器150集成在FPGA芯片上,各个组成部分的功能均采用FPGA 中的特定功能块来实现,以完成更高的神经解码效率。采用上述装置实现基于FPGA的神经解码方法,包括神经信号数据接口控制步骤、解码模型训练步骤、解码模型计算步骤和解码结果输出步骤,其中,神经信号数据接口控制步骤为数据接收器110判断解码模型训练器120的数据接收状态,若训练用神经信号及其所对应的运动状态数据接收完毕,则停止接收训练用神经信号及其所对应的运动状态数据,否则继续接收训练用神经信号及其所对应的运动状态数据送至解码模型训练器120 ;同时数据接收器110判断解码模型训练器120的训练完成状态和解码模型计算器140的空闲状态,若解码模型训练器120的状态为训练完成且解码模型计算器140的状态为空闲,则接收待解码神经信号数据送至解码模型计算器140,否则停止接收待解码神经信号数据;解码模型训练步骤为解码模型训练器120先判断训练用神经信号及其所对应的运动状态数据的接收状态,若接收完毕则开始训练过程,否则继续接收训练用神经信号及其所对应的运动状态数据;训练过程是根据接收到的训练用神经信号及其所对应的运动状态数据计算解码模型参数,并将计算所得的解码模型参数传输至模型参数缓存器130 ;上述的解码模型参数为F、W、H、V,可按照以下四个公式计算得到
权利要求
1.一种基于FPGA的神经解码装置,包括数据接收器、解码模型训练器、模型参数缓存器、解码模型计算器和解码结果输出器;其中,所述的数据接收器,与所述的解码模型训练器和解码模型计算器连接,用于接收训练用神经信号及其对应的运动状态,并将其传输至所述的解码模型训练器;还用于接收待解码神经信号,并将其传输至所述的解码模型计算器;所述的解码模型训练器,与所述的数据接收器和模型参数缓存器连接,用于将从所述的数据接收器接收的训练用神经信号及其对应的运动状态作为数据源进行解码模型的训练,计算得到解码模型参数并传输至所述的模型参数缓存器;所述的模型参数缓存器,与所述的解码模型训练器和解码模型计算器连接,用于存放由所述的解码模型训练器计算得到的解码模型参数,并将其传输至所述的解码模型计算器;所述的解码模型计算器,与所述的数据接收器、模型参数缓存器和解码结果输出器连接,用于解码模型的计算,根据从所述的数据接收器接收到的待解码神经信号和从所述的模型参数缓存器接收的解码模型参数来计算获得解码结果,并将所述的解码结果传输至所述的解码结果输出器;所述的解码结果输出器,与所述的解码模型计算器连接,将从所述的解码模型计算器获得的解码结果输出。
2.采用如权利要求1所述的神经解码装置实现基于FPGA的神经解码方法,包括神经信号数据接口控制步骤、解码模型训练步骤、解码模型计算步骤和解码结果输出步骤,其中,所述的神经信号数据接口控制步骤为数据接收器判断解码模型训练器的数据接收状态,若训练用神经信号及其所对应的运动状态数据接收完毕,则停止接收,否则继续接收训练用神经信号及其所对应的运动状态数据送至解码模型训练器;同时数据接收器判断解码模型训练器的训练完成状态和解码模型计算器的空闲状态,若解码模型训练器的状态为训练完成且解码模型计算器的状态为空闲,则接收待解码神经信号数据送至解码模型计算器,否则停止接收;所述的解码模型训练步骤为解码模型训练器先判断训练用神经信号及其所对应的运动状态数据的接收状态,若接收完毕则开始训练过程,否则继续接收;训练过程是根据接收到的训练用神经信号及其所对应的运动状态数据计算解码模型参数,并将计算所得的解码模型参数传输至模型参数缓存器;所述的解码模型计算步骤为解码模型计算器先判断解码模型训练器的训练完成状态,若训练完成则开始解码模型计算过程,否则继续等待;所述的解码模型计算过程是根据从所述的数据接收器接收到的待解码神经信号和从所述的模型参数缓存器接收的解码模型参数来完成解码模型计算,获得解码结果;所述的解码结果输出步骤为解码结果输出器判断解码模型计算器的计算完成状态, 若计算完成则输出解码结果,否则等待解码结果。
3.如权利要求2所述的神经解码方法,其特征在于,所述的解码模型参数按照以下四个公式计算得到
4.如权利要求2所述的神经解码方法,其特征在于,所述的解码模型计算按照以下五个公式进行
全文摘要
本发明公开了一种基于FPGA的神经解码装置和方法。该装置包括数据接收器、解码模型训练器、模型参数缓存器、解码模型计算器和解码结果输出器。该方法包括神经信号数据接口控制步骤、解码模型训练步骤、解码模型计算步骤和解码结果输出步骤。本发明通过基于FPGA的并行处理计算模式提高了信号的处理速度,提高了系统的神经解码效率。
文档编号G06F3/01GK102426661SQ20111022968
公开日2012年4月25日 申请日期2011年8月11日 优先权日2011年8月11日
发明者周凡, 祝晓平, 陈耀武 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1