乔列斯基分解算法装置的制作方法

文档序号:7627840阅读:657来源:国知局
专利名称:乔列斯基分解算法装置的制作方法
技术领域
本发明是关于一种分解算法装置,特别是关于一种矩阵乔列斯基(Cholesky)分解算法装置。
背景技术
在数字信号处理领域中,关于矩阵的运算非常多,特别是为了简化计算难度,对矩阵进行变型、简化和分解是很常规的处理方法。
乔列斯基分解算法就是很常见的一种矩阵分解方法,其基本原理是对于一个n阶对称正定矩阵A,存在一个下三角矩阵L,使A=L·LH,L矩阵对角线上的数都是正实数,LH表示下三角矩阵L的共轭转置矩阵A=a11a12...a1na21a22...a2n............an1an2...ann=L·LH=l110...0l21l22...0............ln1ln2...lnn·l11l21*...ln1*0l22...ln2*............0...0lnn---(1)]]>乔列斯基分解算法的基本计算公式是ljj=(ajj-Σp=1j-1ljpljp*)1/2---(2)]]>lij=(aij-Σp=1j-1lipljp*)/ljj---(3)]]>其中j=1,2,…,n;i=j+1,...,n;ljj和lij的初值为l11=a111/2]]>和li1=ai1/l11(i=2,3,…,n)。
根据乔列斯基分解算法的基本原理,矩阵L的每一点都是递归求得,与其前几列和行的数据有关,一般的计算方法是针对L矩阵逐行逐列进行运算,这样消耗的运算时间比较大,特别是当n比较大时,运算时间更是大大增加。
同样,以上方法所对应的算法装置由于其需要对L矩阵逐行逐列进行运算,因此,该算法装置也需要较长的时间处理这样的矩阵运算。这会导致数字信号处理的速度减慢,从而不适合于高速率或者高信息量的通信中的数字信号处理。

发明内容
为克服现有乔列斯基分解算法装置数字信号处理速度慢的问题,本发明提供一种数字信号处理速度快的乔列斯基分解算法装置。
为了上述目的,本发明的乔列斯基分解算法装置包括一存储器,用以存储由该乔列斯基分解算法装置计算出的特定列的矩阵数据,用于作为后续计算的输入;至少二分量计算单元,用以利用上述存储器存储的矩阵数据对外部输入的矩阵数据进行分量计算;一复用器,其选择输出分量计算单元的分量计算结果;一归一化单元,其将复用器输出的分量计算结果进行归一化处理;一倒数平方根单元,其将归一化处理的分量进行求平方根和求倒数处理,获得其平方根及倒数平方根,并锁定一特定的倒数平方根;一对角乘法器,其将归一化处理的分量与锁定的倒数平方根进行乘法运算,并将其计算结果输出至该存储器。
其有益效果是,由于乔列斯基分解算法装置可以并行处理矩阵数据,可以明显提高数字信号处理速度。


为进一步理解本发明,请参考以下描述的附图图1所示为本发明乔列斯基分解算法装置的结构框图。
图2所示为采用u个分量计算单元进行分量计算的乔列斯基分解算法装置及其操作步骤。
具体实施例方式
下面以在时分同步码分多址(TD-SCDMA)终端设备(UE)的联合检测算法中的应用为例,详细说明本发明的乔列斯基分解算法装置。
算法基础对于终端设备实现联合检测的算法有很多种,但主要是基于“迫零—分块线性均衡器”这一均衡算法发展而来的,其原理就是通过利用系统矩阵A和噪声矩阵Rn来估计用户发送的数据符号矢量 该算法表示为d^=(AH·Rn-1·A)-1·AH·Rn-1·e---(4)]]>其中,系统矩阵A由K个用户的扩频码以及信道冲激响应决定的;d为发送端K个用户发送的数据符号;e表示接收数据序列。实现该算法的困难在于如何对系统正定矩阵(AH·Rn-1·A)求逆。
在本发明中利用的正是对矩阵(AH·Rn-1·A)进行乔列斯基分解,公式(4)可表示为d^=L-1(LH)-1·AH·Rn-1·e---(5)]]>对于(1)式,首先设mijk为lij的第k次计算分量mijk=mijk-1-likljk*(k=1,2,...,j-1)---(6)]]>其中j=1,2,…,n;i=j+1,…,n。mijk的初值为mij1=aij-li1lj1*.]]>由(2),(3)和(6)式,矩阵L的元素ljj和lij可以由第j-1次计算分量mijj-1计算得到ljj=(mjjj-1)1/2---(7)]]>lij=(mijj-1)/ljj---(8)]]>其初值为l11=a111/2]]>和li1=ai1/l11(i=2,3,...,n).]]>乔列斯基分解算法装置请参考图1,是本发明所提供的一种乔列斯基分解算法装置,其应用在时分同步码分多址的终端设备的联合检测中。该乔列斯基分解算法装置可以对一个最大32×32的矩阵进行乔列斯基分解,即,该矩阵可以表示为(1)式的形式,也就是一个32阶对称正定矩阵A。对于该矩阵A,其存在一个下三角矩阵L,使A=L·LH,L矩阵对角线上的数都是正实数。矩阵L的元素ljj和lij可以由第j-1次计算分量mijj-1计算得到,如(7)和(8)式。
该乔列斯基分解算法装置10包括一个存储器11、两个并行的分量计算单元12、一复用器13、一归一化单元14、一倒数平方根单元15以及一对角乘法器16。
在本实施例中,该存储器11的容量大小为64×32比特,存储器用来存储上一列的lik和本列刚刚计算得到的li,(k+1),以作为计算mijk的输入,其大小只需存储2n个数,并可交替覆盖使用,对于每次分量可以复用在原输入aij的存储器中。其中,n表示正定矩阵的维数。当然,在进行行、列的数量均较大的矩阵运算时,可以采用更大存储容量的存储器。
每一个分量计算单元12由一复数乘法器121和一复数累加器122组成,用于完成分量的计算,该分量可以是列分量也可以是行分量。为了方便计算,本发明以列分量的计算为例进行说明。矩阵的列上的分量可以在这里先进行复数乘法运算,然后进行复数累加计算,得到(6)式所示的计算结果。
复用器13用于选择当前算好的分量来自于分量计算单元(1)还是(2)。为方便说明本发明,采用从32×32的第1列到第32列依次选择的方式进行选择,即首先选择第1列的分量计算结果,然后依次选择第2-第32列分量的计算结果。复用器用于选择分量mijj-1来自于某个分量计算单元,以提供输入去计算得到矩阵L当前列的元素ljj和lij。
归一化单元14用于对分量计算单元12计算出来的分量进行归一化操作,以防止后续操作的溢出。
倒数平方根单元15包括一乘法器151和一数据处理器152,用来根据公式(5)和(6)对对角线的元素进行平方根并求导运算,获得该元素的平方根ljj及其倒数平方根1/ljj,并可以对该获得的倒数平方根1/ljj进行锁定。
对角线乘法单元16用于对同一列中的元素进行乘法运算,即利用每一列中对角线上的元素的倒数平方根,分别依次乘以该列中其他归一化的计算分量。对角线乘法单元16包括成对的乘法器161和移位器162,为了更快的处理数据,可以采用并行的多对乘法器和移位器。乘法器161用于乘法运算,移位器162将乘法器161的获得结果进行移位,获得该结果的小数形式并将其输出。
请参考图2,图中以u个并行的分量计算单元同时工作的情况为例来说明乔列斯基分解算法装置的实现步骤第一步,计算第1列的结果首先,u个并行的分量计算单元12,从外部存储器(图未示)按照一个时刻一个数据的方式获得矩阵A的数据。获得数据的第一种方式是由第1个分量计算单元按照一个时刻一个数据的方式从上到下取得矩阵A的第1列的数据。当然,也可以采用第二种方式并行获得矩阵A的第1列的数据,即,第1个分量计算单元获得矩阵A的第1列的第1个数据,同时第2个分量计算单元获得矩阵A的第1列的第2个数据,第i个分量计算单元获得矩阵A的第1列的第i个数据(i=1,2,…n,正定矩阵的维数),第u个分量计算单元获得矩阵A的第1列的第u个数据,如果u<n,则重复上述操作,直至第1列上的数据获取完毕。这里,我们以第一种方式为例进行说明。
在第1个时刻,即获得矩阵A的第1列的第1个数据—矩阵A第1列对角线上的元素a11的时刻,第1个分量计算单元按照式(6)将其进行复数乘法和复数累加运算,获得其对应的计算分量,此时也为a11。根据公式(6),对于矩阵A的第1列的数据的运算结果均等于本身。由复用器13将该计算获得的分量传送到归一化单元14,由归一化单元14进行归一化处理,以防止后续操作的溢出。
同时,该运算获得的第1列分量的第一个元素由归一化单元14传送到倒数平方根单元15,进行平方根以及求倒数运算,根据式(7)获得矩阵L对角线上的第一个数l11及其倒数1/l11,l11输出到一外部的存储器(图未示),同时,倒数平方根单元15锁定1/l11。其中,该存储器可以是输入矩阵A的存储器,也可以是另外的存储器。如果是输入矩阵的存储器,则该l11可以替换原矩阵A中的元素a11。这里,为了简单描述,我们将获得矩阵L的数据输入到该另外的存储器,下同。
在随后的(n-1)个时刻,矩阵A的第1列的第2-第n个元素依次经第1个分量计算器进行复数乘法和复数累加运算后,经复用器、归一化单元14依次传送到对角乘法器16,同时,倒数平方根单元15锁定的1/l11在第2-第n个时刻分别依次同第2-第n个元素相乘,根据式(8),可获得矩阵L第1列的元素。并通过移位器162依次将这n-1个时刻获得结果同时传送到存储器11和该另外的存储器。
此时,在该另外的存储器中获得了矩阵L的第1列结果li1,在存储器11中得到矩阵L的第1列除了l11的结果li1。
第二步、计算矩阵L的一次分量和第2列的结果从(n+1)时刻开始直到(2n-1)时刻,u个分量计算单元12并行从矩阵A的存储器中读取数据,其读取数据的方式为第1个分量计算单元读取矩阵A第2列的数据,并利用获得的矩阵L第1列结果li1根据式(6)计算其一次分量;同时第2个分量计算单元获得矩阵A的第3列的第2个数据,并利用第1列结果li1根据式(6)计算其一次分量,第i个分量计算单元获得矩阵A的第(i+1)列的数据,并利用获得的矩阵L第1列结果li1根据式(6)计算其一次分量;第u个分量计算单元获得矩阵A的第u+1列的数据,如果u<n,则重复上述操作,直至矩阵A的数据的一次分量mij1全部计算完毕。
在图2中,由于采用的分量计算单元12的数量u小于矩阵的维数n,因此在计算一次分量时需要重复利用同一分量计算单元12,即,分量计算单元u可能需要对u的整数倍的列进行分量计算。如果分量计算单元12的数量大于或者等于矩阵的维数,则在计算一次分量的时候,可以同时并行处理所有列的分量计算,或者同一列上所有元素的分量计算。此时与存储器11提供数据的方式有关,这是可以根据需要设定的。
对于矩阵L的第2列,与求矩阵L的第1列数据的过程类似,其第一个数(即矩阵L对角线上的第二个数)l22,可以在倒数平方根单元15由其一次分量m221通过求平方根计算得出,而第2列的其他数据结果li2可由l22和mi21根据公式(8)在对角乘法器16中计算得出。此时,该另外的存储器中获得了矩阵L的第1列结果li1和第2列结果li2在存储器11储存了矩阵L的第1列除了l11的结果li1和第2列除了l22的结果li2。其他各列一次分量mij1的结果,都将被存储起来留待下一步使用,这些二次分量结果可以通过分量计算单元12存储到之前输入矩阵A的存储器,并覆盖矩阵A。
第三步、计算矩阵L的二次分量和第3列的结果从2n时刻开始直到(3n-2)时刻,利用第2列的结果li2和一次分量mij1,从第3列开始,同时在u个分量计算单元中并行计算矩阵L的二次分量mij2,直至矩阵L的所有列的二次分量计算完毕。对于矩阵L的第3列,与求矩阵L的第2列数据的过程类似,其第一个数(即矩阵L对角线上的第三个数)l33,可以在倒数平方根单元15由其二次分量m332通过求平方根计算得出,而第3列的其他数据结果li3可由l33和mi32根据公式(8)计算得出。此时,该另外的存储器中获得了矩阵L的第1列结果li1、第2列结果li2和第3列结果li3,在存储器11储存了矩阵L的第1列除了l11的结果li1、第2列除了l22的结果li2以及第3列除了l33的结果li3。如果在存储器11中采用交替覆盖使用,则可以由第3列除了l33的结果li3来覆盖第1列除了l11的结果li1,即由本次运算获得的列来覆盖最早存储的列。除第3列以外的各列二次分量结果,都将被存储起来留待下一步使用,这些二次分量结果可以通过分量计算单元12存储到之前输入矩阵A的存储器,并覆盖之前存储的一次分量。
第四步、重复上述的过程,计算矩阵L的k-1次分量和第k列结果。
第五步、计算矩阵L的第n-1次分量和第n列结果。
计算最后一列的第n-1次分量mnnn-1,并通过在倒数平方根单元15中求平方根计算得出矩阵L的最后一个数lnn,这样整个矩阵L也就得到了。
由于本实施例将联合检测算法的乔列斯基分解和矩阵求逆有效地结合在一起,对于矩阵L的对角线数据采用了直接计算和存储其倒数,并将倒数运算和平方根运算有效地结合在一起,利用一个倒数平方根单元(包括一个乘法器和一个数据处理器)采用实数乘法和查表法,实现倒数平方根功能,节省了一次重复的倒数运算。
乔列斯基分解算法装置的特征在于将计算L矩阵每个数据的过程分成多个小部分,根据相邻几列数据计算的共性,运用并行的分量计算单元达到并行计算的目的。如果采用两个并行的分量计算单元,这样并行的流水操作可以节约近50%的运行时间。如果采用更多的分量计算单元对维数更大的矩阵进行乔列斯基分解,可以在运算时间上也会得到更大的节约。当运用u个分量计算单元对各列的分量mijk根据公式(6)进行并行运算时,可以节约将近u-1/u的运行时间。
本发明仅以TD-SCDMA系统中的应用为例,但此装置也可以用于其他数字信号处理系统中的乔列斯基分解的实现。
权利要求
1.一种乔列斯基分解算法装置,其包括一存储器,用以存储由该乔列斯基分解算法装置计算出的特定列的矩阵数据,用于作为后续计算的输入;至少二分量计算单元,用以利用上述存储器存储的矩阵数据对外部输入的矩阵数据进行分量计算;一复用器,其选择输出分量计算单元的分量计算结果;一归一化单元,其将复用器输出的分量计算结果进行归一化处理;一倒数平方根单元,其将归一化处理的分量进行求平方根和求倒数处理,获得其平方根及倒数平方根,并锁定一特定的倒数平方根;一对角乘法器,其将归一化处理的分量与锁定的倒数平方根进行乘法运算,并将其计算结果输出至该存储器。
2.如权利要求1所述的乔列斯基分解算法装置,其特征在于,该分量计算单元包括一复数乘法器和一复数累加器。
3.如权利要求2所述的乔列斯基分解算法装置,其特征在于,该分量计算单元利用下式对矩阵数据进行分量计算mijk=mijk-1-likljk*,(k=1,2,...,j-1)]]>其中,j=1、2、...、n,i=(j+1)、(j+2)、...、n,mijk的初值为mij1=aij-li1lj1*,]]>aij为一n阶正定矩阵的元素,li1和lj1*分别为该n阶正定矩阵A所对应的下三角矩阵及该下三角矩阵所对应的共轭转置矩阵的元素。
4.如权利要求1所述的乔列斯基分解算法装置,其特征在于,该倒数平方根单元锁定的是矩阵每一列中位于对角线的分量的倒数平方根。
5.如权利要求1所述的乔列斯基分解算法装置,其特征在于,该对角乘法器包括一乘法器。
6.如权利要求5所述的乔列斯基分解算法装置,其特征在于,该对角乘法器进一步包括一移位器。
全文摘要
一种乔列斯基分解算法装置,其包括一存储器,用以存储由该乔列斯基分解算法装置计算出的特定列的矩阵数据,用于作为后续计算的输入;至少二分量计算单元,用以利用上述存储器存储的矩阵数据对外部输入的矩阵数据进行分量计算;一复用器,其选择输出分量计算单元的分量计算结果;一归一化单元,其将复用器输出的分量计算结果进行归一化处理;一倒数平方根单元,其将归一化处理的分量进行求平方根和求倒数处理,获得其平方根及倒数平方根,并锁定一特定的倒数平方根;一对角乘法器,其将归一化处理的分量与锁定的倒数平方根进行乘法运算,并将其计算结果输出至该存储器。由于乔列斯基分解算法装置可以并行处理矩阵数据,可以明显提高数字信号处理速度。
文档编号H04L25/03GK1783060SQ20051012417
公开日2006年6月7日 申请日期2005年11月21日 优先权日2004年11月26日
发明者冉静, 刘昕 申请人:北京天碁科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1