基于FPGA的浮点独立源分析算法的电路结构制造技术

技术编号:8452774 阅读:198 留言:0更新日期:2013-03-21 13:14
一种基于FPGA的浮点独立源分析算法的电路结构,包括:一内部总线,包含输入总线与输出总线,实现系统内部大块数据的快速交互;一数据接口、一存储器接口、一白化模块和一分离模块,其分别与内部总线中的输入总线与输出总线连接;一迭代更新模块,其分别与内部总线中的输出总线和分离模块连接,完成分离矩阵的迭代计算;一微控制器,其分别与白化模块和迭代更新模块连接,控制各个模块的运行,并完成一些浮点运算;一存储器,其与存储器接口连接,实现大块数据的存储。本发明专利技术具有精度高、处理数据量大和处理速度快的优点。

【技术实现步骤摘要】

本专利技术属于数字信号处理技术,特别涉及一种基于FPGA的浮点独立源分析算法的电路结构
技术介绍
独立源分量分析(ICA)是盲源分离算法的一种,其基本原理是通过分析多维观测数据间的高阶统计相关性,找出相互独立的隐含信息成分,完成分量间高阶冗余的去除及独立信源的提取。在实际工程中有广泛的应用,比如语音信号的分离,著名的“鸡尾酒会”问题。在解决实际问题的过程中,实时处理需要越来越高的处理能力,由于处理器内部的结构问题通用CPU已经力不从心,而且通用CPU处理板的成本,甚至是体积也不适合于大多数的应用。需要一种新结构的硬件来完成这样的工作。当前在工程应用中已经有很多的应用采用FPGA实现FastICA算法来满足实时处理的需要,都取得了不错的效果,证明使用FPGA芯片来实现高速低成本的FastICA处理是可行的。然而,当前可见的这些ICA算法的硬件实现,都存在一系列的问题,影响到它们的应用。I、精度不够。这些硬件实现的大部分都是基于定点数据的,其动态范围和精度都不够,不适合应用到一些精度要求比较高的地方。2、数据长度不够。由此也会带来一些分离精度上的问题,同时对于某些特定的应用领域,也存在数据长度的一些限制。3、现有的浮点FastICA算法硬件实现上存在速度慢的问题,并不能在保证精度的同时满足速度要求。
技术实现思路
本专利技术的目的在于,提供一种基于FPGA的浮点独立源分析算法的电路结构,具有精度高、处理数据量大和处理速度快的优点。本专利技术提供一种基于FPGA的浮点独立源分析算法的电路结构,包括一内部总线,包含输入总线与输出总线,实现系统内部大块数据的快速交互; 一数据接口、一存储器接口、一白化模块和一分离模块,其分别与内部总线中的输入总线与输出总线连接;—迭代更新模块,其分别与内部总线中的输出总线和分尚模块连接,完成分尚矩阵的迭代计算;一微控制器,其分别与白化模块和迭代更新模块连接,控制各个模块的运行,并完成一些浮点运算;一存储器,其与存储器接口连接,实现大块数据的存储。本专利技术的有益效果是I、使用三路混合信号输入的ICA算法,提高了硬件ICA算法的信号分离能力。2、使用浮点数据进行计算,提高了算法的动态范围和精度。3、单路信号的采样点数达到16K,提高了分离的准确度。4、合理使用mcu模块以及适当的结构优化,提高了硬件算法的处理能力,而又使硬件的增加在合理的范围之内。以下结合附图列举较佳实施例,用以对本专利技术的结构及功效进行详细说明,其中附图说明图1为本专利技术实施例信号分离的硬件结构图;图2为本专利技术实施信号白化的硬件结构图;图3为图1所述硬件结构图中的迭代更新模块的内部主要部分的结构图。图4为测量实验样本,其中(a)白噪声信号,(b)为正弦信号,(C)为方波信号;图5为对图2所示测量实验样本源分量矩阵X(η)的3个源分量;图6为对图3所示的3维源分量矩阵Χ(η)运行本专利技术实施例信号FastICA分离的分离结果。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术进一步详细说明。需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。且在附图中,以简化或是方便标示。再者,附图中未绘示或描述的实现方式,为所属
中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。请参阅图1所示,本专利技术提供一种基于FPGA的浮点独立源分析算法的电路结构,包括I、内部总线1,包含输入总线11与输出总线12。电路结构中的各个模块通过该总线实现对存储器3的快速访问。同时,电路结构内部采用总线结构,以及FPGA片外存储器3的使用,可以有效的节省片内块存储器资源,使系统能处理的数据量大大提高。2、数据接口 2、存储器接口 4、白化模块5和分离模块7,其分别与内部总线I中的输入总线11与输出总线12连接。数据接口 2,实现上位机对系统的控制以及存储器3的访问,如上位机采样得到的原始信号矩阵X就是通过数据接口 2送入存储器3中;存储器接口 4,包括总线仲裁模块41和数据缓存模块42,其中仲裁模块41采用先到先得的仲裁方式决定总线的使用权;其中数据缓存模块42的特征在于读缓存区和写缓存区均采用四块独立cache,很大程度上提高了各个模块的存取速度和准确度,满足多模块同时存取数据的需求。3、白化模块5如图2所示,包括去均值计算模块51、计算协方差矩阵模块52、计算特征值特征向量模块53、计算白化矩阵的模块54和信号矩阵读写模块55。其中去均值计算模块51实现原始信号矩阵X每一行去均值的操作,并得到去均值后的信号矩阵Xa;计算协方差矩阵模块52计算Xa的协方差矩阵Cx,如公式(I)所示Cx = Xa*X' a (I)计算特征值特征向量模块53,用于计算协方差矩阵Cx的特征值矩阵E和特征向量矩阵D,其计算过程使用了基于Jacobi方法的Cordic迭代算法,把本来很复杂的浮点数据运算变成了定点数的加减以及浮点数据的加,可以节省大量的逻辑资源;计算白化矩阵的模块54,完成白化矩阵white_M的计算,以及对去均值后的信号矩阵Xa进行白化操作得到白化后的信号矩阵Z,如公式(2)、(3)所示权利要求1.一种基于FPGA的浮点独立源分析算法的电路结构,包括 一内部总线,包含输入总线与输出总线,实现系统内部大块数据的快速交互; 一数据接口、一存储器接口、一白化模块和一分离模块,其分别与内部总线中的输入总线与输出总线连接; 一迭代更新模块,其分别与内部总线中的输出总线和分尚模块连接,完成分尚矩阵的迭代计算; 一微控制器,其分别与白化模块和迭代更新模块连接,控制各个模块的运行,并完成一些浮点运算; 一存储器,其与存储器接口连接,实现大块数据的存储。2.根据权利要求I所述的基于FPGA的浮点独立源分析算法的电路结构,其中白化模块包括 一去均值计算模块,其完成信号去均值的操作; 一计算协方差矩阵模块,其计算去均值后的信号矩阵的协方差矩阵; 一计算特征值特征向量模块,其计算协方差矩阵的特征值特征向量; 一计算白化矩阵的模块,其计算白化矩阵,并完成信号矩阵的白化计算; 一信号矩阵读写模块,其分别与内部总线中的输出总线和输入总线相连,读取和写入存储器数据。3.根据权利要求2所述的基于FPGA的浮点独立源分析算法的电路结构,其中计算特征值特征向量模块,其是采用了基于Jacobi方法的Cordic算法来实现计算3 X 3浮点数矩阵特征值特征向量的硬件结构。4.根据权利要求I所述的基于FPGA的浮点独立源分析算法的电路结构,其中迭代更新模块包括一随机向量产生模块,以及一迭代模块,所述的迭代模块结构是采用双buffer的数据输入缓存区,采用三级流水线的结构设计,极大的提高了系统处理速度。5.根据权利要求I所述的基于FPGA的浮点独立源分析算法的电路结构,其中存储器接口包括一总线仲裁模块和一数据缓存模块,其中数据缓存模块其是读缓存区和写缓存区均采用四块独立cache。全文摘要一种基于FPGA的浮点独立源分析算法的电路结构,包括一内部总线,包含输入总线与输出总线,实现系统内部大块数据的快速交互;本文档来自技高网
...

【技术保护点】
一种基于FPGA的浮点独立源分析算法的电路结构,包括:一内部总线,包含输入总线与输出总线,实现系统内部大块数据的快速交互;一数据接口、一存储器接口、一白化模块和一分离模块,其分别与内部总线中的输入总线与输出总线连接;一迭代更新模块,其分别与内部总线中的输出总线和分离模块连接,完成分离矩阵的迭代计算;一微控制器,其分别与白化模块和迭代更新模块连接,控制各个模块的运行,并完成一些浮点运算;一存储器,其与存储器接口连接,实现大块数据的存储。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈刚鲁华祥龚国良边昳
申请(专利权)人:中国科学院半导体研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1