发明内容
本发明提供了一种数据处理装置以及消除干扰的方法,以至少解决相关技术中对矩阵Rn求逆计算复杂度大、处理延时较大的问题。
根据本发明的一个方面,提供了一种数据处理装置,其包括:分解模块,用于将噪声相关矩阵Rn分解为一个下三角矩阵L乘一个对角矩阵D再乘矩阵L的共轭转置矩阵的形式;计算模块,用于对矩阵L进行求逆计算;求逆模块,用于通过对矩阵L的共轭转置矩阵、矩阵D以及矩阵L的逆矩阵计算得到噪声相关矩阵Rn的逆矩阵。
优选地,分解模块,还用于逐列将噪声相关矩阵Rn分解为一个矩阵L乘一个矩阵D再乘矩阵L的共轭转置矩阵的形式。
优选地,分解模块包括:复乘计算单元,用于对噪声相关矩阵Rn的当前列的对角线元素和矩阵L中当前行前一列中与该对角线元素同列的元素进行复乘计算,获得矩阵L当前列的对角线元素;第一复乘累加单元,用于对噪声相关矩阵Rn的当前列的对角线元素以下的元素、矩阵L的当前行前一列的对角线元素以下的元素以及矩阵L的当前列的对角线元素的共轭进行复乘累加计算;相乘单元,用于将计算结果与矩阵L的当前列的对角线元素的倒数相乘,获得矩阵L的当前列的对角线元素以下的元素。
优选地,分解模块根据以下公式计算获得矩阵L:vi=lji·aii,(i=1,2,……j-1)(j=1,2…,n),其中,vi为矩阵L当前列的对角线元素,lji为矩阵L中当前行前一列中与该对角线元素同行的元素,aii为噪声相关矩阵Rn的当前列的对角线元素,j表示矩阵的行数,i表示矩阵的列数,n表示待求逆矩阵的阶数;其中,为矩阵D的当前列的对角线元素,lkj为矩阵L当前列的对角线元素以下的元素,为vi的共轭矩阵。
优选地,计算模块,还用于对矩阵L的逆矩阵中的当前元素所在列且位于该当元素以上的元素、矩阵L中的当前元素所在行且位于该当前元素之前的元素以及单位矩阵E的当前行当前列的元素进行复乘累加计算,获得矩阵L的逆矩阵的当前列的元素。
优选地,计算模块通过以下公式计算获得矩阵L的逆矩阵:
其中,初始条件为bi为矩阵L的逆矩阵中的当前元素所在列的所有元素,ei为E的当前行当前列的元素,lik为矩阵L中的当前元素所在行且位于该当前元素之前的元素,i表示矩阵的行数,n表示矩阵L的阶数。
优选地,求逆模块包括:点除单元,用于将矩阵阵点除矩阵D;第二复乘累加单元,用于对矩阵L的共轭转置矩阵中的当前元素所在列且为与该当前元素以下的元素、噪声相关矩阵Rn的逆矩阵中的当前元素所在列且位于该当前元素以下的元素进行复乘累加计算;减法单元,用于对点除的结果和复乘累加计算的结果进行减法运算,获得噪声相关矩阵Rn的逆矩阵的当前列元素。
优选地,求逆模块通过以下公式来计算获得噪声相关矩阵Rn的逆矩阵:
其中,初始条件为xi为噪声相关矩阵Rn的逆矩阵的当前列元素,δi为矩阵阵点除矩阵D的结果矩阵中的列元素,为矩阵L的共轭转置矩阵中的元素,i表示矩阵的行数,n为噪声相关矩阵Rn的阶数。
优选地,计算模块为多个,多个计算模块通过并行的方式对矩阵L中的多列进行计算获得矩阵L的逆矩阵。
优选地,求逆模块为多个,多个求逆模块通过并行的方式对矩阵L的逆矩阵中的多列进行计算获得噪声相关矩阵Rn的逆矩阵。
优选地,分解模块、计算模块和求逆模块组成流水结构进行噪声相关矩阵Rn的求逆。
根据本发明的另一方面,提供了一种消除干扰的方法,其包括:在多天线接收系统中,通过对噪声相关矩阵Rn的求逆运算来消除干扰,其中,对噪声相关矩阵Rn求逆的步骤包括:将噪声相关矩阵Rn分解为一个下三角矩阵L乘一个对角矩阵D再乘L的共轭转置矩阵的形式;对矩阵L进行求逆计算;通过对矩阵L的共轭转置矩阵、矩阵D以及矩阵L的逆矩阵计算得到噪声相关矩阵Rn的逆矩阵。
优选地,将噪声相关矩阵Rn分解为一个下三角矩阵L乘一个对角矩阵D再乘矩阵L的共轭转置矩阵的形式包括:逐列将噪声相关矩阵Rn分解为一个矩阵L乘一个矩阵D再乘矩阵L的共轭转置矩阵的形式。
优选地,将噪声相关矩阵Rn分解为一个下三角矩阵L乘一个对角矩阵D再乘L的共轭转置矩阵的形式包括:对噪声相关矩阵Rn的当前列的对角线元素和矩阵L中当前行前一列中与该对角线元素同列的元素进行复乘计算,获得矩阵L当前列的对角线元素;对噪声相关矩阵Rn的当前列的对角线元素以下的元素、矩阵L的当前行前一列的对角线元素以下的元素以及矩阵L的当前列的对角线元素的共轭进行复乘累加计算;将计算结果与矩阵L的当前列的对角线元素的倒数相乘,获得矩阵L的当前列的对角线元素以下的元素。
优选地,根据以下公式计算获得矩阵L:vi=lji·aii,(i=1,2,……j-1)(j=1,2…,n),其中,vi为矩阵L当前列的对角线元素,lji为矩阵L中当前行前一列中与该对角线元素同行的元素,aii为噪声相关矩阵Rn的当前列的对角线元素,j表示矩阵的行数,i表示矩阵的列数,n表示待求逆矩阵的阶数;其中,为矩阵D的当前列的对角线元素,lkj为矩阵L当前列的对角线元素以下的元素,为vi的共轭矩阵。
优选地,对矩阵L进行求逆计算包括:对矩阵L的逆矩阵中的当前元素所在列且位于该当元素以上的元素、矩阵L中的当前元素所在行且位于该当前元素之前的元素以及单位矩阵E的当前行当前列的元素进行复乘累加计算,获得矩阵L的逆矩阵的当前列的元素。
优选地,通过以下公式计算获得矩阵L的逆矩阵:
其中,初始条件为bi为矩阵L的逆矩阵中的当前元素所在列的所有元素,ei为矩阵E的当前行当前列的元素,lik为矩阵L中的当前元素所在行且位于该当前元素之前的元素,i表示矩阵的行数,n表示矩阵L的阶数。
优选地,通过对矩阵L的共轭转置矩阵、矩阵D以及矩阵L的逆矩阵计算得到噪声相关矩阵Rn的逆矩阵包括:将矩阵L的逆矩阵点除矩阵D;对矩阵L的共轭转置矩阵中的当前元素所在列且为与该当前元素以下的元素、噪声相关矩阵Rn的逆矩阵中的当前元素所在列且位于该当前元素以下的元素进行复乘累加计算;对点除的结果和复乘累加计算的结果进行减法运算,获得噪声相关矩阵Rn的逆矩阵的当前列元素。
优选地,通过以下公式来计算获得噪声相关矩阵Rn的逆矩阵:
其中,初始条件为xi为噪声相关矩阵Rn的逆矩阵的当前列元素,δi为矩阵阵点除矩阵D的结果矩阵中的列元素,为矩阵L的共轭转置矩阵中的元素,i表示矩阵的行数,n为噪声相关矩阵Rn的阶数。
在本发明中,通过分解模块将噪声相关矩阵Rn分解成一个下三角矩阵L乘一个对角矩阵D再乘矩阵L的共轭转置矩阵的形式,例如,A=LDLH,其中,A为噪声相关矩阵Rn,矩阵L为下三角矩阵,LH是矩阵L的共轭转置,D为对角矩阵,然后,计算模块对下三角矩阵L进行求逆计算,获得矩阵L的逆矩阵L-1,最后,求逆模块通过对矩阵L的共轭转置矩阵、矩阵D以及矩阵L的逆矩阵计算得到噪声相关矩阵Rn的逆矩阵,通过将噪声相关矩阵Rn分解为一个下三角矩阵L乘一个对角矩阵D再乘矩阵L的共轭转置矩阵的形式避免了在矩阵求逆过程中的开放次数,从而有效地减少了矩阵求逆在逻辑电路中所需的时间,节省了硬件资源开销,有助于提高硬件运算的效率。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本实施例提供了一种数据处理装置,如图1所示,该数据处理装置包括:分解模块102,用于将噪声相关矩阵Rn分解为一个下三角矩阵L乘一个对角矩阵D再乘矩阵L的共轭转置矩阵的形式;计算模块104,连接至分解模块102,用于对矩阵L进行求逆计算;求逆模块106,连接至计算模块104,用于通过对矩阵L的共轭转置矩阵、矩阵D以及矩阵L的逆矩阵计算得到噪声相关矩阵Rn的逆矩阵。
在上述实施例中,通过分解模块102将噪声相关矩阵Rn分解成一个下三角矩阵L乘一个对角矩阵D再乘矩阵L的共轭转置矩阵的形式,例如,A=LDLH,其中,A为噪声相关矩阵Rn,L为下三角矩阵,LH是L的共轭转置,D为对角矩阵,然后,计算模块104对下三角矩阵L进行求逆计算,获得矩阵L的逆矩阵L-1,最后,求逆模块106通过对矩阵L的共轭转置矩阵、矩阵D以及矩阵L的逆矩阵计算得到噪声相关矩阵Rn的逆矩阵,通过将噪声相关矩阵Rn分解为一个下三角矩阵L乘一个对角矩阵D再乘矩阵L的共轭转置矩阵的形式避免了在矩阵求逆过程中的开放次数,从而有效地减少了矩阵求逆在逻辑电路中所需的时间,节省了硬件资源开销,有助于提高硬件运算的效率。
为了实现硬件的复用,降低硬件的复杂度,在本优选实施例中,分解模块102,还用于逐列将噪声相关矩阵Rn分解为一个矩阵L乘一个矩阵D再乘矩阵L的共轭转置矩阵的形式。即对噪声相关矩阵Rn进行分解的过程中,可以逐列地从存储器件中获取噪声相关矩阵Rn的数据,逐列进行分解,因此,可以复用一套硬件装置来完成对噪声相关矩阵Rn的分解,例如,8x8的矩阵,则可以通过一套硬件装置运算8次来完成对噪声相关矩阵Rn的分解。
为了降低矩阵分解的复杂度,在本优选实施例中,上述分解模块102包括:复乘计算单元,用于对噪声相关矩阵Rn的当前列的对角线元素和矩阵L中当前行前一列中与该对角线元素同列的元素进行复乘计算,获得矩阵L当前列的对角线元素;第一复乘累加单元,用于对噪声相关矩阵Rn的当前列的对角线元素以下的元素、矩阵L的当前行前一列的对角线元素以下的元素以及矩阵L的当前列的对角线元素的共轭进行复乘累加计算;相乘单元,用于将计算结果与矩阵L的当前列的对角线元素的倒数相乘,获得矩阵L的当前列的对角线元素以下的元素。上述分解模块102仅仅通过简单的复乘、复乘累加计算以及除乘法计算0就可以获得矩阵L,避免大量的开方运算,有助于降低矩阵分解的复杂度。
为了实施的便捷性、准确性,在本优选实施例中,提供了优选的计算获得矩阵L的公式,例如,vi=lji·aii,(i=1,2,……j-1)(j=1,2…,n),其中,vi为L当前列的对角线元素,lji为下L中当前行前一列中与该对角线元素同行的元素,aii为噪声相关矩阵Rn的当前列的对角线元素,j表示矩阵的行数,i表示矩阵的列数,n表示待求逆矩阵的阶数;其中,为矩阵D的当前列的对角线元素,lkj为L当前列的对角线元素以下的元素,为vi的共轭矩阵。通过上述的公式可以获得矩阵L以及矩阵D,以实现将噪声相关矩阵Rn分解成多个容易求逆的矩阵,进而降低了噪声相关矩阵Rn求逆的复杂度,有助于提高噪声相关矩阵Rn求逆的效率。
为了进一步降低噪声相关矩阵Rn求逆的复杂度,在本优选实施例中,计算模块104,还用于对L的逆矩阵中的当前元素所在列且位于该当元素以上的元素、L中的当前元素所在行且位于该当前元素之前的元素以及单位矩阵E的当前行当前列的元素进行复乘累加计算,获得矩阵L的逆矩阵的当前列的元素。上述计算模块104可以通过复乘累加、除乘法两种硬件(例如,加法器、乘法器以及减法器等器件)来完成矩阵L的求逆,降低计算的复杂度。
便于实现上述矩阵L的求逆,在本优选实施例中,提供了一种优选的获得矩阵L的逆矩阵的公式,例如,其中,初始条件为bi为矩阵L的逆矩阵中的当前元素所在列的所有元素,ei为E的当前行当前列的元素,lik为L中的当前元素所在行且位于该当前元素之前的元素,i表示矩阵的行数,n表示L的阶数。
便于理解上述计算公式,以下给出上述公式的推论分析:
通过上述分解计算后,可以计算出三角阵L和对角阵D,接着就该求L-1了,可以将求L-1转化为求方程LX1=I,其中I为单位阵,这样就将求解X1化为求解线性方程组的形式:Lσi=ei,即:
计算矩阵X1中每列向量的递推公式如下:进行前向替代计算的初始条件为:
采用此方法,列向量σ1,σ2,…,σn可以通过解线性方程组的形式求出,因为此方法是从b1计算到bn,故称该方法为前向替代计算方法。
优选地,计算获得矩阵L的逆矩阵后,通过以下计算基于矩阵L的逆矩阵以及对角矩阵来计算噪声相关矩阵Rn的逆矩阵,求逆模块106包括:点除单元,用于将L的逆矩阵点除D;第二复乘累加单元,用于对L的共轭转置矩阵中的当前元素所在列且为与该当前元素以下的元素、噪声相关矩阵Rn的逆矩阵中的当前元素所在列且位于该当前元素以下的元素进行复乘累加计算;减法单元,用于对点除的结果和复乘累加计算的结果进行减法运算,获得噪声相关矩阵Rn的逆矩阵的当前列元素。即上述求逆模块106可以通过复乘累加、减法两种计算硬件(例如,加法器、乘法器以及减法器等器件)来完成计算,以降低噪声相关矩阵Rn求逆的复杂度。
为了进一步描述上述求逆模块106的计算方法,在本优选实施例中,提供了一种优选的求逆模块106的计算公式,而LH·X=X2,其中X2=X1·/D,可计算出
令这样就将求解X转化为求解线性方程组的形式:LHμi=δi,即:
计算矩阵X中每列向量的递推公式如下:
进行后向替代计算的初始条件为:
采用此方法,列向量μ1,μ2,…μn可以通过解线性方程组的形式求出,因为此方法是从xn计算到x1,故称该方法为后向替代。求出的X矩阵就是矩阵A(即噪声相关矩阵Rn)的逆矩阵。
为了减小矩阵求逆的延时,提高求逆效率,在本优选实施例中,计算模块104为多个,多个计算模块通过并行的方式对矩阵L中的多列进行计算获得矩阵L的逆矩阵。例如,对于8x8的矩阵,采用4个计算模块104并行对矩阵L中的多列进行计算,依次可以完成4列的计算。
为了进一步阵求逆的延时,提高求逆效率,在本优选实施例中,求逆模块106为多个,多个求逆模块通过并行的方式对矩阵L的逆矩阵中的多列进行计算获得噪声相关矩阵Rn的逆矩阵。
优选地,上述求逆模块106和上述计算模块104可以复用大部分乘法器和除法器,节省了硬件计算资源,例如,4路并行设计中只采用了49个乘法器和1个除法器的硬件资源;而传统的矩阵求逆运算中需要n个开方器,2n个除法器,个乘法器。
为了减少矩阵求逆的延时,提高硬件的使用率,在本优选实施例中,分解模块102、计算模块104和求逆模块106组成流水结构进行噪声相关矩阵Rn的求逆。即在计算模块104开始对上述矩阵L求逆时,分解模块102可以开始对下一个噪声相关矩阵Rn进行分解。
在本优选实施例中,提供了一种消除干扰的方法,如图2所示,该消除干扰的方法包括步骤S202至步骤S206。
在多天线接收系统中,通过对噪声相关矩阵Rn的求逆运算来消除干扰,其中,对噪声相关矩阵Rn求逆的步骤包括:
步骤S202:将噪声相关矩阵Rn分解为一个下三角矩阵L乘一个对角矩阵D再乘矩阵L的共轭转置矩阵的形式;
步骤S204:对矩阵L进行求逆计算;
步骤S206:通过对矩阵L的共轭转置矩阵、矩阵D以及矩阵L的逆矩阵计算得到噪声相关矩阵Rn的逆矩阵。
通过上述步骤,将噪声相关矩阵Rn分解成一个下三角矩阵L乘一个对角矩阵D再乘L的共轭转置矩阵的形式,例如,A=LDLH,其中,A为噪声相关矩阵Rn,L为下三角矩阵,LH是L的共轭转置,D为对角矩阵,然后,对下三角矩阵L进行求逆计算,获得矩阵L的逆矩阵L-1,最后,通过对矩阵L的共轭转置矩阵、矩阵D以及矩阵L的逆矩阵计算得到噪声相关矩阵Rn的逆矩阵,通过将噪声相关矩阵Rn分解为一个下三角矩阵L乘一个对角矩阵D再乘L的共轭转置矩阵的形式避免了在矩阵求逆过程中的开放次数,从而有效地减少了矩阵求逆在逻辑电路中所需的时间,节省了硬件资源开销,有助于提高硬件运算的效率。
为了实现硬件的复用,降低硬件的复杂度,在本优选实施例中,将噪声相关矩阵Rn分解为一个下三角矩阵L乘一个对角矩阵D再乘L的共轭转置矩阵的形式包括:逐列将噪声相关矩阵Rn分解为一个矩阵L乘一个矩阵D再乘矩阵L的共轭转置矩阵的形式。
为了降低矩阵分解的复杂度,在本优选实施例中,将噪声相关矩阵Rn分解为一个下三角矩阵L乘一个对角矩阵D再乘L的共轭转置矩阵的形式包括:
对噪声相关矩阵Rn的当前列的对角线元素和矩阵L中当前行前一列中与该对角线元素同列的元素进行复乘计算,获得矩阵L当前列的对角线元素;对噪声相关矩阵Rn的当前列的对角线元素以下的元素、矩阵L的当前行前一列的对角线元素以下的元素以及矩阵L的当前列的对角线元素的共轭进行复乘累加计算;将计算结果与矩阵L的当前列的对角线元素的倒数相乘,获得矩阵L的当前列的对角线元素以下的元素。
为了实施的便捷性、准确性,在本优选实施例中,提供了优选的计算获得矩阵L的公式,vi=lji·aii,(i=1,2,……j-1)(j=1,2…,n),其中,vi为L当前列的对角线元素,lji为矩阵L中当前行前一列中与该对角线元素同行的元素,aii为噪声相关矩阵Rn的当前列的对角线元素,j表示矩阵的行数,i表示矩阵的列数,n表示待求逆矩阵的阶数;其中,为矩阵D的当前列的对角线元素,lkj为L当前列的对角线元素以下的元素,为vi的共轭矩阵。
为了进一步降低噪声相关矩阵Rn求逆的复杂度,在本优选实施例中,对矩阵L进行求逆计算包括:对矩阵L的逆矩阵中的当前元素所在列且位于该当元素以上的元素、矩阵L中的当前元素所在行且位于该当前元素之前的元素以及单位矩阵E的当前行当前列的元素进行复乘累加计算,获得矩阵L的逆矩阵的当前列的元素。
便于实现上述矩阵L的求逆,在本优选实施例中,提供了一种优选的获得矩阵L的逆矩阵的公式,例如,其中,初始条件为bi为矩阵L的逆矩阵中的当前元素所在列的所有元素,ei为矩阵E的当前行当前列的元素,lik为矩阵L中的当前元素所在行且位于该当前元素之前的元素,i表示矩阵的行数,n表示矩阵L的阶数。
优选地,计算获得矩阵L的逆矩阵后,通过以下计算基于矩阵L的逆矩阵以及对角矩阵来计算噪声相关矩阵Rn的逆矩阵,通过对矩阵L的共轭转置矩阵、矩阵D以及矩阵L的逆矩阵计算得到噪声相关矩阵Rn的逆矩阵包括:将矩阵L的逆矩阵点除矩阵D;对矩阵L的共轭转置矩阵中的当前元素所在列且为与该当前元素以下的元素、噪声相关矩阵Rn的逆矩阵中的当前元素所在列且位于该当前元素以下的元素进行复乘累加计算;对点除的结果和复乘累加计算的结果进行减法运算,获得噪声相关矩阵Rn的逆矩阵的当前列元素。
为了进一步描述上述求逆模块106的计算方法,在本优选实施例中,提供了一种优选的求逆模块106的计算公式,而LH·X=X2,其中X2=X1·/D,可计算出
令这样就将求解X转化为求解线性方程组的形式:LHμi=δi,即:
计算矩阵X中每列向量的递推公式如下:
进行后向替代计算的初始条件为:
采用此方法,列向量μ1,μ2,…μn可以通过解线性方程组的形式求出,因为此方法是从xn计算到x1,故称该方法为后向替代。求出的X矩阵就是矩阵A(即噪声相关矩阵Rn)的逆矩阵。
以下结合附图对上述各个优选实施例进行详细地描述。
图3是根据本发明实施例的另一种数据处理装置的结构框图,如图3所示,本算法对应的实施装置主要由Rn矩阵存储模块302、Cholesky分解计算模块304(相当于上述分解模102)、倒数计算模块306、替代计算模块308(相当于计算模块104和求逆模块106)(包括前向替代计算模块和后向计算模块)构成。
优选地,上述数据处理装置可以采用流水的设计思想,如图4所示,因为Cholesky分解计算的处理延时Lchol大于替代计算的处理延时Lsubs,故在第一个Rn矩阵进行完Cholesky分解计算后,启动替代计算模块进行替代计算的同时,Cholesky分解计算模块开始计算第二个Rn矩阵的Cholesky分解计算,以此类推,若计算n个Rn矩阵的计算延时为n×Lchol+Lsubs。
上述装置通过以下几个步骤来完成矩阵求逆:
1、Rn矩阵存储模块302主要是存储待求逆的Rn矩阵数据和Rn矩阵求逆的计算结果。将存储好的矩阵按列读取的方式送入Cholesky分解计算模块304。
2、Cholesky分解计算模块304计算出Rn矩阵的下三角阵L和对角矩阵D,因为Cholesky分解计算一列元素时,需要用到前一列元素的值,故该模块不能进行并行计算,每次只能计算出一列元素。若为8×8矩阵,则Cholesky分解计算模块需要反复迭代8次才能计算出8列的下三角阵元素。
3、倒数计算模块306将Cholesky分解计算模块计算出vj进行求倒数计算,得到矩阵送回Cholesky分解计算模块。
4、替代计算模块308主要由前向替代计算、后向替代计算模块组成。因为每列元素之间的替代计算没有任何关系,可以分别进行计算,为了减小处理延时,替代计算模块中采用4路并行的替代计算电路,一次完成4列元素的替代运算。当进行8×8矩阵的求逆运算时,第一次4路并行的替代计算模块同时进行完成8×8矩阵中的前4列元素的替代计算,之后要反复迭代进行第二次4路并行的替代计算,才可完成8×8矩阵中的后4列元素的替代计算。
Cholesky分解计算过程为,首先通过复乘、复乘累加单元计算出该列的对角线元素djj,再通过复乘累加单元、倒数计算单元、除法乘单元计算出该列中除对角线元素外的其他下三角阵所对应的元素lij(i>j),至此就完成了一列元素的Cholesky分解计算,对于n×n矩阵整个计算的流程如图6所示Cholesky分解计算完成下三角矩阵中的第一列元素后,将计算出的结果lij(i>j)存入下三角存储单元中,之后再计算下三角矩阵中的第二列元素,以此类推,计算完成所有下三角阵。需要注意的是,这里计算出所存储的并不是对角阵D中的元素dii,而是其倒数用于后面前向替代中的点除计算,这样后面所需的除法器就可以节省了,整个求逆运算中只用到了1个除法器。
整个Cholesky分解模块302的装置图如图5所示。以8x8矩阵为例,则取出矩阵的对角线元素送入对角线存储单元中,在计算下三角矩阵的第一列元素时,从对角线存储单元读出v1,送入倒数计算单元计算出1/v1,之后从Rn矩阵存储单元中取出a21~a81,分别与1/v1相乘,计算出下三角矩阵的第一列元素l21~l81,存入下三角存储单元中相应的位置。之后开始计算下三角矩阵的第二列元素,从下三角存储单元和对角线存储单元中取出相应的元素,送入复乘单元中计算出新的vi存回对角线存储单元中,之后分别从Rn矩阵存储单元、下三角存储单元和对角线存储单元中取出元素送入复乘累加单元中计算出结果,该结果和这列对角线上的元素v2倒数1/v2分别相乘,计算出该列的下三角元素li2(i>2),存回下三角存储单元中。以此类推,计算出下三角阵中所有的的元素lij(i>j)。
替代计算模块308主要由前向替代计算、后向替代计算模块组成。在整个Rn矩阵求逆子系统中,可以并行4路替代计算模块,每一路进行矩阵中的一列元素的前向替代和后向替代运算。Rn替代计算模块308的实现结构框图如图7所示,Rn替代计算的计算流程为先进行前向替代计算,再进行后向替代计算。
在每一路前向替代模块中,前向替代计算完成矩阵中的一列元素的前向替代计算过程。若8x8矩阵,第1路并行的前向替代计算模块主要完成第1列、第5列元素的计算,第2路并行的前向替代计算模块主要完成第2列、第6列元素的计算,第3路并行的前向替代计算模块主要完成第3列、第7列元素的计算,第4路并行的前向替代计算模块主要完成第4列、第8列元素的计算。若2x2矩阵,则只调用第1路、第2路并行的前向替代计算模块。4路并行的前向替代计算模块在接收到开始计算信号forward_start后,开始前向替代的计算,计算完成后生成计算完成信号forward_div_cmult_done。前向替代计算模块主要由复乘累加、除法乘2个硬件实现单元组成。
前向替代计算模块中的数据处理流程如图8所示,首先给每一列对角线以上的元素赋初值,该列对角线上的元素值为1,对角线以上的元素值为0,之后从下三角存储单元和替代模块存储单元中取出相应的元素送到复乘累加单元中,计算出该列的下三角元素bi(i>j,j为列数),然后再通过除法乘单元,计算出该列中所有元素点出对角阵D(dii)的结果cij,将每列的计算结果存回替代模块存储单元中。
后向替代计算模块主要由复乘累加、减法2个硬件实现单元组成。
在每一路后向替代模块中,后向替代计算完成矩阵中的一列元素的后向替代计算过程。若8x8矩阵,第1路并行的后向替代计算模块主要完成第1列、第5列元素的计算,第2路并行的后向替代计算模块主要完成第2列、第6列元素的计算,第3路并行的后向替代计算模块主要完成第3列、第7列元素的计算,第4路并行的后向替代计算模块主要完成第4列、第8列元素的计算。若2x2矩阵,则只调用第1路、第2路并行的后向替代计算模块。4路并行的后向替代计算模块在接收到开始计算信号back_en后,开始后向替代的计算,计算完成后生成计算完成信号back_mac_done。
后向替代计算模块中的数据处理流程如图9所示,在后向替代计算模块中,先计算出每一列中的最后一个元素x8,再依次迭代计算出x7~x1。首先给每一列中的最后一个元素x8赋初值,x8=c8,之后从下三角存储单元和替代模块存储单元中取出相应的元素(lij的共轭)和xi送到复乘累加模块中,计算出的结果和ci相减,就计算出该列的所有元素xi,将每列的计算结果存回替代模块存储单元中。
计算出的Rn矩阵求逆的计算结果送回Rn矩阵存储模块302进行存储。
对于阶数小于等于8的Rn矩阵,可以采用本发明中举例的4路替代计算模块并行的设置,就能满足计算需求。
对于高阶的Rn矩阵,可以灵活的采用n路替代计算模块并行的设置,以达到提高运算速度的目的。
在上述实施例中,Cholesky分解、前向替代、后向替代达到了降低计算复杂度,降低运算量,易于硬件实现的效果;采用相同的硬件电路结构并行处理、流水线设计、存储空间复用,进一步完善或展开了技术方案,达到进一步减少计算时间延时、共享部分硬件计算资源的效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。