CN103294649A - 双边cordic运算单元及基于该运算单元的并行雅克比埃尔米特阵特征分解方法和实现电路 - Google Patents

双边cordic运算单元及基于该运算单元的并行雅克比埃尔米特阵特征分解方法和实现电路 Download PDF

Info

Publication number
CN103294649A
CN103294649A CN2013102528192A CN201310252819A CN103294649A CN 103294649 A CN103294649 A CN 103294649A CN 2013102528192 A CN2013102528192 A CN 2013102528192A CN 201310252819 A CN201310252819 A CN 201310252819A CN 103294649 A CN103294649 A CN 103294649A
Authority
CN
China
Prior art keywords
cordic
submatrix
bilateral
computing
centerdot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2013102528192A
Other languages
English (en)
Other versions
CN103294649B (zh
Inventor
巴特尔
朱冠亚
苏磊
高西奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University
Original Assignee
Southeast University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southeast University filed Critical Southeast University
Priority to CN201310252819.2A priority Critical patent/CN103294649B/zh
Publication of CN103294649A publication Critical patent/CN103294649A/zh
Application granted granted Critical
Publication of CN103294649B publication Critical patent/CN103294649B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Radio Transmission System (AREA)

Abstract

本发明提供一种并行双边CORDIC运算单元以及基于该运算单元的并行雅可比运算的埃尔米特阵特征分解实现电路和实现方法,该并行双边CORDIC运算单元是一个六输入四输出结构,将两次单边CORDIC运算转换在一次运算内完成,同时,该双边CORDIC结构能够将单边CORDIC运算的角度范围从[-π/2,π/2)扩大一倍至[-π,π),使得复数矩阵的实化过程和对角化过程复用相同的电路结构成为可能。本发明的并行双边CORDIC运算单元以及利用其实现埃尔米特阵特征分解方法和分解实现电路,能够有效减少电路运算时延,降低硬件资源消耗,并通过统一的因子校正来提高电路的运算精度。

Description

双边CORDIC运算单元及基于该运算单元的并行雅克比埃尔米特阵特征分解方法和实现电路
技术领域
本发明涉及通信领域,且特别是涉及一种并行双边CORDIC运算单元、基于该运算单元的并行雅可比运算的埃尔米特阵特征分解实现电路和实现方法。 
背景技术
移动用户数的增长以及移动互联网业务的增加,给通信系统的容量和质量带来了更高的要求。多输入多输出(Multiple Input Multiple Output,MIMO)技术可充分挖掘空间维度,提供空分复用增益和分集增益,从而显著提高通信系统的频谱效率并改善通信质量。事实上,MIMO技术已经被包括802.11n、长期演进(Long Term Evolution,LTE)在内的多种无线通信技术标准采用。但是MIMO技术在提升系统性能的同时使得接收机的信号处理的复杂度明显增加,尤其是在MIMO接收机中不可避免的涉及到大量的矩阵运算,对硬件设计提出了极高的要求。特征值分解(Eigen Value Decomposition,EVD)操作可以将埃尔米特阵(Hermitian Matrix)分解为以特征值为对角元素的对角阵和对应的特征向量矩阵。在MIMO系统接收机、主成分分析以及人工视觉等多种应用场合下,矩阵特征值分解是简化和解决问题的关键环节。 
绝大多数的特征值分解算法都是通过迭代的方式来求解,常见的埃尔米特矩阵特征分解方法有雅可比算法、并行雅可比算法、QR分解算法以及DQDS算法等,在众多方法中,并行雅可比方法由于具有高度并行性、数值稳定且精度较高以及实现电路简单等优点而广受关注,但其同时也具有收敛速度慢的显著缺点,这就意味着需要更多的迭代次数,从而带来较大的电路延时,不利于提高实现效率。 
发明内容
本发明目的在于提供一种双边CORDIC运算单元及基于其的并行雅可比运算的埃尔米特阵特征分解方法和分解实现电路,可以有效减少电路延时、降低硬件资源消耗,从而提高实现效率。 
为达成上述目的,本发明首先提出一种改进的并行双边CORDIC运算单元,是六输入四输出结构,将两次单边CORDIC运算转换为一次运算内完成,其输入和输出按照如下规则进行CORDIC迭代运算: 
x 11 ( i + 1 ) = x 11 ( i ) + x 21 ( i ) · d l , i 2 - i + ( x 12 ( i ) + x 22 ( i ) · d l , i 2 - i ) · d r , i 2 - i
x 22 ( i + 1 ) = x 22 ( i ) - x 12 ( i ) · d l , i 2 - i - ( x 21 ( i ) - x 11 ( i ) · d l , i 2 - i ) · d r , i 2 - i - - - ( 2 )
x 12 ( i + 1 ) = x 12 ( i ) + x 22 ( i ) · d l , i 2 - i - ( x 11 ( i ) + x 21 ( i ) · d l , i 2 - i ) · d r , i 2 - i
x 21 ( i + 1 ) = x 21 ( i ) - x 11 ( i ) · d l , i 2 - i + ( x 22 ( i ) - x 12 ( i ) · d l , i 2 - i ) · d r , i 2 - i
其中,
Figure BDA00003395226700025
为数据输入,{dl,i,dr,i,0≤i<n}为CORDIC运算过程中每次迭代的符号参数,其根据CORDIC运算原理,由主子矩阵处理模块中次对角线元素的符号位确定,即:如果符号位为正,则符号参数为-1,反之则符号参数为+1。 
本发明另提出一种应用所述的并行双边CORDIC运算单元的并行雅可比运算的埃尔米特阵特征分解实现电路,包括:并行排序模块、子矩阵处理模块、因子校正模块和控制模块,其中:控制模块用于控制各模块执行具体的操作和运算;并行排序模块用于根据待消除非对角元素位置对输入矩阵进行行列交换并分为若干个2X2主子矩阵和从子矩阵,随后将各子矩阵元素传送到子矩阵处理模块进行CORDIC迭代运算,并且接收来自子矩阵处理模块的运算输出数据,再按照行列交换的次序进行逆操作以进行下一次迭代运算或者数据输出;子矩阵处理模块,包括多个并行的主子矩阵处理单元和从子矩阵处理单元,用于通过酉相似运算将复子矩阵实化,然后再通过GIVENS旋转运算将已经实化的子矩阵对角化;以及因子校正模块,其用于对多次CORDIC迭代运算的最后结果进行校正。 
本发明还提出一种应用所述的并行双边CORDIC运算单元的并行雅可比运算的埃尔米特阵特征分解方法,包括下列步骤: 
a.从外部输入待分解的埃尔米特矩阵; 
b.根据待消除非对角元素位置将矩阵分解为若干个2X2子矩阵,其中包含主对角元素的子矩阵称之为主子矩阵,不包含主对角元素的子矩阵称之为从子矩阵; 
c.对主子矩阵进行相位调整,将其从一个复数矩阵转化为一个实矩阵,即实化运算,同时利用相位调整参数同步进行从子矩阵和特征向量阵的相位调整; 
d.对主子矩阵进行对角化运算,同时利用对角化调整参数同步进行从子矩阵和特征向量阵的旋转操作; 
e.对输出结果进行动态定标,并重新选取待消除非对角元素,从第b步开始进行CORDIC迭代运算直至迭代结束; 
f.对引入的幅度偏差进行统一校正,并输出最终结果。 
进一步,所述子矩阵的实化运算过程和对角化运算过程复用同一并行双边 CORDIC运算单元,并根据所述控制单元发出的控制信号通过分时复用来实现。 
由以上本发明的技术方案可知,本发明所给出的并行双边CORDIC运算单元以及利用其实现埃尔米特阵特征分解方法和分解实现电路,能够将子矩阵的实化和对角化运算中所需的两次单边CORDIC运算整合到一次双边CORDIC运算中完成,在保证分解运算精度的同时减少约一半的电路运算时延,且实现结构简单,非常适用于硬件实现;同时通过时分复用子矩阵实化和对角化运算所使用的CORDIC运算单元,有效降低硬件资源消耗,提高实现效率;此外在每次雅可比迭代结束后引入动态定标,在最终输出时再将多次CORDIC运算引入的幅度偏差一次校正,降低了由定点乘法带来的计算误差,提高了电路的运算精度。 
附图说明
图1为传统单边CORDIC运算单元电路结构示意图。 
图2为本发明埃尔米特阵特征分解实现电路的框架示意图。 
图3为本发明埃尔米特阵特征分解方法的实现流程示意图。 
图4为本发明并行双边CORDIC运算单元的整体框架示意图。 
图5为本发明并行双边CORDIC运算单元的内部结构示意图。 
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。 
为了能够清晰直观的描述本发明的技术细节,下面给出一个具体的4×4埃尔米特矩阵特征分解实现案例。图2给出了该实现电路的整体框图,从图2中可以看出,该实现电路主要由并行排序模块、子矩阵处理模块、因子校正模块以及控制模块四部分构成。下面结合图2所示的原理框架和图3所示的实现方法流程,详细说明本实施例的埃尔米特矩阵特征分解实现。 
并行排序模块主要完成两个功能,其一是根据待消除非对角元素位置对矩阵进行行列交换并分为若干个2X2主子矩阵和从子矩阵,随后将各子矩阵元素传送到对应的子矩阵处理单元进行后续处理;其二是接收来自各子矩阵处理单元的输出数据,并按照行列交换的次序进行逆操作以进行下一次迭代运算或者数据输出。在雅可比算法中,对于矩阵A的非对角元素aij的操作只改变A矩阵的第(p,q)行和第(p,q)列,因此,如果两次变换操作分别针对矩阵的不同行列进行,则它们之间互不影响,可以并行进行,这就是并行雅可比算法的基本思想。根 据并行雅可比算法,并行排序模块按照式3的顺序对矩阵进行划分,由于每个集合中的两个(p,q)对不冲突,即可并行处理。 
set 1 : { ( 1,2 ) , ( 3,4 ) } set 2 : { ( 1,3 ) , ( 2,4 ) } set 3 : { ( 1,4 ) , ( 2,3 ) } - - - ( 3 )
根据集合1的排序矩阵对矩阵A进行行列交换和子矩阵划分,划分成四个子矩阵,行列交换可以表示为: 
A ~ = P T AP - - - ( 4 )
子矩阵划分可以表示为: 
A ~ = A ~ 11 A ~ 12 A ~ 21 A ~ 22 - - - ( 5 )
具体来说,集合1对应的4个2X2的子矩阵表示为: 
Figure BDA00003395226700044
同样,集合2对应的4个2X2子矩阵为: 
Figure BDA00003395226700045
集合3对应的4个2X2子矩阵为: 
Figure BDA00003395226700046
其中,集合1对应于原始矩阵,集合2和集合3的排列方式需要在变换完成之后,需要将矩阵元素重新排列成原始状态以进行下一次迭代运算或数据输出。 
并行雅可比算法是一个迭代过程,按照公式3中三个集合所描述的顺序依次对矩阵A进行变换后,矩阵A中的每一个非对角元素将至少被置为0一次,称为一次“扫描”。这样的迭代过程通常需要执行多次,即多次“扫描”。具体“扫描”次数因精度要求不同而不同,通过增加扫描次数可以提高运算精度,但运算量也随之增加,在具体的实现中可以根据运算精度、延时等需求进行折衷。 
对于某次并行雅可比迭代运算中的输入A(k),各处理单元在第k次迭代中所进行的运算可用下列公式描述: 
A(k+1)=P(k)G(k)HΓ(k)HP(k)TA(k)P(k)Γ(k)G(k)P(k)T (9) 
其中,P(k)表示在本次迭代中并行迭代模块所使用的行列交换阵,Γ(k)为实化过程所使用的酉相似变换矩阵,G(k)为对角化过程所使用的旋转矩阵,其中,Γ(k)可以用分块矩阵表示,为: 
Γ ( k ) = Γ 1 ( k ) 0 0 Γ 2 ( k ) - - - ( 10 )
类似的,G(k)也可以表示为分块模块矩阵的形式: 
G ( k ) = G 1 ( k ) 0 0 G 2 ( k ) - - - ( 11 )
A ~ ( k + 1 ) = P ( k ) T A ( k + 1 ) P ( k ) ,
Figure BDA00003395226700054
的各子矩阵可以表示为: 
A ~ 11 ( k + 1 ) = G 1 ( k ) H Γ 1 ( k ) H A ~ 11 ( k ) Γ 1 ( k ) G 1 ( k ) - - - ( 12 )
A ~ 22 ( k + 1 ) = G 2 ( k ) H Γ 2 ( k ) H A ~ 22 ( k ) Γ 2 ( k ) G 2 ( k ) - - - ( 13 )
A ~ 12 ( k + 1 ) = G 1 ( k ) H Γ 1 ( k ) H A ~ 12 ( k ) Γ 2 ( k ) G 2 ( k ) - - - ( 14 )
A ~ 21 ( k + 1 ) = G 2 ( k ) H Γ 2 ( k ) H A ~ 21 ( k ) Γ 1 ( k ) G 1 ( k ) - - - ( 15 )
子矩阵处理是整个雅可比运算的核心部分,从上面的式子可以看出,对于4×4埃尔米特矩阵来说,需要4个并行的处理模块PE11、PE12、PE21以及PE22。根据子矩阵中是否包含对角元素,将待处理的子矩阵分为主子矩阵和从子矩阵,对应的PE11和PE22是主子矩阵处理单元,公式12和公式13为主子矩阵处理单元的运算过程。PE12和PE21是从子矩阵处理单元,公式14和公式15表示从子矩阵处理单元运算过程。 
在公式12~15中,
Figure BDA000033952267000510
为主子矩阵实化运算中的酉相似矩阵,表示为: 
Figure BDA000033952267000511
Figure BDA000033952267000512
其中,
Figure BDA000033952267000513
表示取复数的实部,
Figure BDA000033952267000514
表示取复数的虚部。
Figure BDA000033952267000516
是将实化后主子矩阵对角化的GIVENS旋转矩阵,
Figure BDA000033952267000517
表示为: 
Figure BDA000033952267000518
c 1 ( k ) = 1 1 + t 2
s 1 ( k ) = ct - - - ( 17 )
t = sgn ( τ ) | τ | + τ 2 + 1
τ = a ~ 22 - a ~ 11 2 | a ~ 12 |
Figure BDA00003395226700063
的计算与类似,这里不再赘述。 
从上面的公式可以看出,子矩阵处理单元包括两个运算操作,内层的酉相似运算和外层GIVENS旋转运算,先通过酉相似运算将复子矩阵实化,然后再GIVENS旋转将已经实化的子矩阵对角化。在上述公式中,主子矩阵处理单元PE11和PE22与从子矩阵处理单元PE12和PE21具有完全相同的运算过程,区别仅在于变换阵的参数以及参数的获取方式不同。具体来说,参数θ1以及θ2均由主子矩阵
Figure BDA00003395226700066
Figure BDA00003395226700067
决定,并由主子矩阵处理单元计算给出,在从处理模块中不需计算,直接从主子矩阵处理模块中读取参数进行相应运算即可。 
从公式来看,子矩阵矩阵的实化和对角化具有不同的表达形式,对于任意一个2×2矩阵来说,子矩阵实化运算可以表示为: 
Figure BDA00003395226700068
其中非对角元素
Figure BDA00003395226700069
Figure BDA000033952267000610
的运算可以写为GIVENS旋转形式,即: 
Figure BDA000033952267000611
当对主子矩阵进行实化操作时,可得
Figure BDA000033952267000612
从上式可以看出,实化和对角化过程虽然具体运算并不相同,但均可通过GIVENS旋转实现,因此在具体电路设计时,可以考虑,可复用同一个运算电路,并根据控制模块给出的控制信号来确定当前进行的是“实化”操作还是“对角化”操作,通过分时复用来实现。 
此外,在对矩阵进行对角化操作求取特征值之外,还需要计算特征向量,在公式9中,令Q(k)=P(k)Γ(k)G(k)P(k)T,则有: 
A(k+1)=Q(k)HA(k)Q(k)=Q(k)HQ(k-1)H...Q(0)HAQ(0)...Q(k-1)Q(k) (20) 
假设在第k次迭代后满足迭代终止条件并输出最终结果,此时输出的A(k+1)即为对角元素为特征值的对角阵,特征特征向量矩阵为: 
U(k+1)=Q(0)...Q(k-1)Q(k)=U(k)Q(k) (21) 
从公式21中可以得出特征特征向量矩阵的计算方法,特征向量可以通过一个初值为单位阵I的单边变换获得,且单边变换运算中的参数均与前述A(k+1)求取过程中的行列转置、实化以及对角化过程相同,因此也可以通过类似的电 路结构来实现。至此,可以得到子矩阵运算单元的设计需求,子矩阵运算单元需要能够支持实化和对角化操作,还要同时支持单边和双边的GIVENS旋转运算。 
在GIVENS旋转操作中,涉及到旋转角度求取,三角函数运算以及乘法运算,直接实现必将带来大量的资源消耗,为此,本发明采用CORDIC算法实现GIVENS旋转操作。 
对于一个GIVENS旋转矩阵Gi,可以写为: 
G i = cos α i - sin α i sin α i cos α i = 1 1 + tan 2 α i 1 - tan α i tan α i 1 - - - ( 22 )
上式的计算利用了三角函数性质: 
cos α = 1 1 + tan 2 α , sin α = tan α 1 + tan 2 α - - - ( 23 )
此外还具有下式所述的性质: 
G i G k = 1 1 + tan 2 ( α i + α k ) 1 - tan ( α i + α k ) tan ( α i + α k ) 1 - - - ( 24 )
如果限制αi的取值为αi=arctan(±2-i),则有: 
G i = 1 1 + 2 - 2 i 1 - d i 2 - i d i 2 - i 1 - - - ( 25 )
这样就可以通过移位和加减运算代替复杂的乘法以及三角函数运算,极大的降低了实现复杂度。 
在实际设计时,各处理模块中的操作均基于隐式的CORDIC运算,即并不需要明确的计算出旋转的参数,而是只需要确定CORDIC运算过程中每次迭代的符号参数{di,0≤i<n},如图1所示。由于第i次迭代的角度αi=arctan(2-i)是确定的,因而最终旋转的角度
Figure BDA00003395226700075
也将被确定下来。使用显式的CORDIC运算进行设计,从子矩阵处理模块必需要等到主子矩阵处理模块计算出旋转的参数之后,才能开始运算。这意味着采用显式的CORDIC运算使得计算过程具有一定的串行性。如果采用隐式的CORDIC运算进行设计,根据主子矩阵处理模块中次对角线元素的符号位即可确定符号参数{di,0≤i<n}。主、从子矩阵处理模块中的CORDIC运算单元(向量模式)获取符号参数di后即可以工作。因而,参数计算和向量旋转运算可以同时操作,具有极高的并行性,使得计算的延迟明显减小。 
如12~15式所示,主子矩阵和从子矩阵在处理时均为双边运算,如果左右两边变换顺序执行,必将带来较大的电路延迟,为此,参考图4~5所示,本实施例给出一种双边CORDIC运算电路结构,能够有效的减少电路延迟。 
对于一个任意2×2矩阵的双边GIVENS旋转,可以写为: 
cos θ l - sin θ l sin θ l cos θ l H x 11 x 12 x 21 x 22 cos θ r - sin θ r sin θ r cos θ r - - - ( 26 )
= K 2 1 - d l , i 2 - i d l , i 2 - i 1 H · · · 1 - d l , 1 2 - 1 d l , 1 2 - 1 1 H x 11 x 12 x 21 x 22 1 - d r , 1 2 - 1 d r , 1 2 - 1 1 · · · 1 - d r , i 2 - i d r , i 2 - i 1
其中
Figure BDA00003395226700083
为由CORDIC运算带来的幅度因子,  θ l = Σ i = 0 n - 1 d l , i arctan ( 2 - i ) , θ r = Σ i = 0 n - 1 d r , i arctan ( 2 - i ) . 令 
X ( i + 1 ) = x 11 ( i + 1 ) x 12 ( i + 1 ) x 21 ( i + 1 ) x 22 ( i + 1 ) = 1 - d l , i 2 - i d l , i 2 - i 1 H x 11 ( i ) x 12 ( i ) x 21 ( i ) x 22 ( i ) 1 - d r , i 2 - i d r , i 2 - i 1 - - - ( 27 )
为一次双边CORDIC迭代运算,对27式进行分解,可得: 
x 11 ( i + 1 ) = x 11 ( i ) + x 21 ( i ) · d l , i 2 - i + ( x 12 ( i ) + x 22 ( i ) · d l , i 2 - i ) · d r , i 2 - i
x 22 ( i + 1 ) = x 22 ( i ) - x 12 ( i ) · d l , i 2 - i - ( x 21 ( i ) - x 11 ( i ) · d l , i 2 - i ) · d r , i 2 - i - - - ( 28 )
x 12 ( i + 1 ) = x 12 ( i ) + x 22 ( i ) · d l , i 2 - i - ( x 11 ( i ) + x 21 ( i ) · d l , i 2 - i ) · d r , i 2 - i
x 21 ( i + 1 ) = x 21 ( i ) - x 11 ( i ) · d l , i 2 - i + ( x 22 ( i ) - x 12 ( i ) · d l , i 2 - i ) · d r , i 2 - i
类似的,对实化操作中的运算进行分解,假设一个复数x+jy,按照公式25进行运算可以记为: 
Figure BDA000033952267000811
= K 2 1 - d i 2 - i d i 2 - i 1 1 - d i 2 - i d i 2 - i 1 · · · 1 - d 1 2 - 1 d 1 2 - 1 1 1 - d 1 2 - 1 d 1 2 - 1 1 x y
其中,
Figure BDA000033952267000813
设计这样的运算结构的目的有两个:其一,在求取特征向量的过程中,需要进行单边变换,也就是需要知道
Figure BDA000033952267000814
其二,这样的结构与上面的双边CORDIC运算单元类似,可以复用同样的电路,此外还带来一个额外的好处,就是将CORDIC运算旋转的角度范围扩大了一倍。将式29进一步分解,令 
x ( i + 1 ) y ( i + 1 ) = 1 - d i 2 - i d i 2 - i 1 1 - d i 2 - i d i 2 - i 1 x ( i ) y ( i ) - - - ( 30 )
为一次迭代运算,对式30进行进一步分解,可得: 
x(i+1)=x(i)-y(i)·di2-i-(y(i)+x(i)·di2-i)·di2-i (31) 
y(i+1)=y(i)+x(i)·di2-i+(x(i)-y(i)·di2-i)·di2-i
可以看出式31和式28有相似的实现结构,可以时分复用。 
此外,在实化过程中,原矩阵的对角元素保持不变,但是非对角元素在运算过程中会产生K2的幅度缩放,为了让对角元素也具有相同的幅度缩放,我们让对角元素进行如下迭代运算: 
u ( i + 1 ) v ( i + 1 ) = 1 d i 2 - i - d i 2 - i 1 1 - d i 2 - i d i 2 - i 1 u ( i ) v ( i ) = 1 + d i 2 1 + d i 2 u ( i ) v ( i ) - - - ( 32 )
这样在迭代完成之后,能够保证对角元素和非对角元素进行了相同幅度的缩放。 
在传统的单边CORDIC变换结构下,形如(27)式的双边GIVENS旋转需要2i步才能完成,在采用并行双边CORDIC运算结构之后,并行Jacobi运算的主子矩阵和从子矩阵都按照(28)式进行计算,即形如Xi+1=AXiB,其中A为左边CORDIC运算,B为右边CORDIC运算,为单边CORDIC算。采用并行双边CORDIC运算结构之后,原来先左边再右边的CORDIC运算才能完成Xi+1中元素的计算,现在只需一步既可完成。这样操作本质上并没有增加计算的复杂度(双边CORDIC运算单元本质上与4个单边CORDIC运算单元等价,且需要相同的加法器和移位单元),但能够减少由于每次单边CORDIC运算之后所需要的寄存器以及保证运算位长所使用的四舍五入和截位运算单元,能够有效减少电路延迟。此外,双边CORDIC结构,能够将单边CORDIC运算的角度范围从[-π/2,π/2)扩大一倍至[-π,π),使得实化过程和对角化过程复用相同的电路结构成为可能。双边Cordic运算模块是我们设计的并行Jacobi运算的主要模块。另外本发明创新点还在于并行Coridc运算,浮动定标,复用Cordic运算模块进行对角化和实化操作等等。 
式28和式31给出了并行双边CORDIC运算单元的实现结构,从式中可以看出,双边CORDIC运算单元实际上是由若干个单边CORDIC运算单元组合而成的,但双边CORDIC运算可以一步完成,在不增加硬件资源的前提下可以将运算延时减少一半。 
从式25和式26可以看出,CORDIC运算会引入幅度变化因子K, 
K = Π i K i = Π i 1 / 1 + 2 - 2 i ≈ 0.6072529350088812561694 - - - ( 33 )
在计算过程中需要补偿,否则会因为幅度的变化而导致定点计算精度下降。如果在每次CORDIC运算之后立刻进行校正,则多次定点乘法会使误差逐渐累积而影响最终结果的精度。在进行一次子矩阵的实化和对角化运算之后,按照定义好的模式进行定标调整,在最终输出时再进行统一矫正,这样可以降低定点乘法带来的计算误差。 
综上所述,在本发明中,通过让子矩阵的实化和对角化运算复用同样的CORDIC运算单元来减少硬件资源开销。对于埃尔米特矩阵而言,主子矩阵的实化和对角化运算本质都是向量旋转,因此可以通过相同的CORDIC运算单元实现,但在具体实现时计算每一次旋转判定符号的判据不同,这可以通过控制电路以 及分时复用来实现。 
在本发明中,子矩阵的实化和对角化过程不需要求出具体的角度值,而是在计算相位角度的同时进行相位调整。CORDIC运算由一系列串行的旋转操作迭代完成,每次旋转都会得到一个判定符号。最终的旋转相位由CORDIC运算输出的一系列判定符号唯一确定。而对从子矩阵和特征向量矩阵计算模块需要进行同样的CORDIC旋转,所以可以将每次主子矩阵的CORDIC运算判定符号直接输出给从子矩阵和特征向量矩阵计算模块,使其同步运算,将经典方法中先由主子矩阵计算旋转角度,然后从子矩阵和特征向量矩阵再根据这个旋转角度进行CORDIC运算的串行计算变为并行,可以有效的降低运算延时,具体过程如图2所示。 
CORDIC运算会引入幅度偏差,如果在每次迭代运算之后立刻进行校正,定点乘法的误差会随着迭代次数的增加而逐渐累积,影响最终输出结果的定点精度,因此,本发明在每次双边雅可比迭代之后仅进行定标调整,在迭代结束后再对运算过程中引入的幅度偏差进行统一校正,可以有效降低由定点乘法带来的计算误差,提高了电路的运算精度。 
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。 

Claims (4)

1.一种并行双边CORDIC运算单元,其特征在于,由若干个单边CORDIC运算单元组合形成六输入四输出结构,其输入和输出按照如下规则进行CORDIC迭代运算:
x 11 ( i + 1 ) = x 11 ( i ) + x 21 ( i ) · d l , i 2 - i + ( x 12 ( i ) + x 22 ( i ) · d l , i 2 - i ) · d r , i 2 - i
x 22 ( i + 1 ) = x 22 ( i ) - x 12 ( i ) · d l , i 2 - i - ( x 21 ( i ) - x 11 ( i ) · d l , i 2 - i ) · d r , i 2 - i x 12 ( i + 1 ) = x 12 ( i ) + x 22 ( i ) · d l , i 2 - i - ( x 11 ( i ) + x 21 ( i ) · d l , i 2 - i ) · d r , i 2 - i - - - ( 1 )
x 21 ( i + 1 ) = x 21 ( i ) - x 11 ( i ) · d l , i 2 - i + ( x 22 ( i ) - x 12 ( i ) · d l , i 2 - i ) · d r , i 2 - i
其中,
Figure FDA00003395226600014
为数据输入,{dl,i,dr,i,0≤i<n}为CORDIC运算过程中每次迭代的符号参数,其根据CORDIC运算原理,由主子矩阵处理模块中次对角线元素的符号位确定,即:如果符号位为正,则符号参数为-1,反之则符号参数为+1。此外,双边CORDIC结构,能够将单边CORDIC运算的角度范围从[-π/2,π/2)扩大一倍至[-π,π),使得实化过程和对角化过程复用相同的电路结构成为可能。
2.一种应用权利要求1中所述的并行双边CORDIC运算单元的并行雅可比运算的埃尔米特阵特征分解实现电路,其特征在于,包括:并行排序模块、子矩阵处理模块、因子校正模块和控制模块,其中:
控制模块用于控制各模块执行具体的操作和运算;
并行排序模块用于根据待消除非对角元素位置对输入矩阵进行行列交换并分为若干个2X2主子矩阵和从子矩阵,随后将各子矩阵元素传送到子矩阵处理模块进行CORDIC迭代运算,并且接收来自子矩阵处理模块的运算输出数据,再按照行列交换的次序进行逆操作以进行下一次迭代运算或者数据输出;
子矩阵处理模块,包括多个并行的主子矩阵处理单元和从子矩阵处理单元,用于通过酉相似运算将复子矩阵实化,然后再通过GIVENS旋转运算将已经实化的子矩阵对角化;以及因子校正模块,其用于对多次CORDIC迭代运算的最后结果进行校正。
3.一种应用权利要求1中所述的并行双边CORDIC运算单元的并行雅可比运算的埃尔米特阵特征分解方法,其特征在于,该方法包括下列步骤:
a.从外部输入待分解的埃尔米特矩阵;
b.根据待消除非对角元素位置将矩阵分解为若干个2X2子矩阵,其中包含主对角元素的子矩阵称之为主子矩阵,不包含主对角元素的子矩阵称之为从子矩阵;
c.对主子矩阵进行相位调整,将其从一个复数矩阵转化为一个实矩阵,即实化运算,同时利用相位调整参数同步进行从子矩阵和特征向量阵的相位调整;
d.对主子矩阵进行对角化运算,同时利用对角化调整参数同步进行从子矩阵和特征向量阵的旋转操作;
e.对输出结果进行动态定标,并重新选取待消除非对角元素,从第b步开始进行CORDIC迭代运算直至迭代结束;
f.对引入的幅度偏差进行统一校正,并输出最终结果。
4.根据权利要求3所述的方法,其特征在于,所述子矩阵的实化运算过程和对角化运算过程复用同一并行双边CORDIC运算单元,并根据所述控制单元发出的控制信号通过分时复用来实现。
CN201310252819.2A 2013-05-23 2013-06-24 并行双边coridc运算单元、基于该运算单元的并行雅可比运算的埃尔米特阵特征分解实现电路和实现方法 Expired - Fee Related CN103294649B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310252819.2A CN103294649B (zh) 2013-05-23 2013-06-24 并行双边coridc运算单元、基于该运算单元的并行雅可比运算的埃尔米特阵特征分解实现电路和实现方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN2013101950401 2013-05-23
CN201310195040 2013-05-23
CN201310195040.1 2013-05-23
CN201310252819.2A CN103294649B (zh) 2013-05-23 2013-06-24 并行双边coridc运算单元、基于该运算单元的并行雅可比运算的埃尔米特阵特征分解实现电路和实现方法

Publications (2)

Publication Number Publication Date
CN103294649A true CN103294649A (zh) 2013-09-11
CN103294649B CN103294649B (zh) 2016-08-10

Family

ID=49095549

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310252819.2A Expired - Fee Related CN103294649B (zh) 2013-05-23 2013-06-24 并行双边coridc运算单元、基于该运算单元的并行雅可比运算的埃尔米特阵特征分解实现电路和实现方法

Country Status (1)

Country Link
CN (1) CN103294649B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104360986A (zh) * 2014-11-06 2015-02-18 江苏中兴微通信息科技有限公司 一种并行化矩阵求逆硬件装置的实现方法
CN105323036A (zh) * 2014-08-01 2016-02-10 中国移动通信集团公司 对复矩阵进行奇异值分解的方法、装置及计算设备
CN105323037A (zh) * 2014-08-01 2016-02-10 中国移动通信集团公司 根据复矩阵进行预编码的方法及装置
CN105871503A (zh) * 2015-01-22 2016-08-17 华邦电子股份有限公司 多输入多输出无线通信系统及其通道分解方法
CN107102841A (zh) * 2017-04-06 2017-08-29 上海晟矽微电子股份有限公司 一种坐标变换并行计算方法和装置
CN108228536A (zh) * 2018-02-07 2018-06-29 成都航天通信设备有限责任公司 使用FPGA实现Hermitian矩阵分解的方法
WO2020206716A1 (zh) * 2019-04-10 2020-10-15 浙江大学 一种用于FPGA的并行Jacobi计算加速实现方法
CN113595681A (zh) * 2021-06-28 2021-11-02 展讯半导体(南京)有限公司 基于Givens旋转的QR分解方法、系统、电路、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1746697A (zh) * 2005-10-18 2006-03-15 电子科技大学 一种芯片可实现的多信号分类算法
WO2010135745A1 (en) * 2009-05-22 2010-11-25 Maxlinear, Inc. Signal processing block for a receiver in wireless communication
CN101917164A (zh) * 2010-07-16 2010-12-15 航天恒星科技有限公司 一种基于cordic算法的信号处理方法
US7895254B2 (en) * 2004-11-15 2011-02-22 Qualcomm Incorporated Eigenvalue decomposition and singular value decomposition of matrices using Jacobi rotation
CN102624653A (zh) * 2012-01-13 2012-08-01 清华大学 基于流水线工作方式的可扩展qr分解方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895254B2 (en) * 2004-11-15 2011-02-22 Qualcomm Incorporated Eigenvalue decomposition and singular value decomposition of matrices using Jacobi rotation
CN1746697A (zh) * 2005-10-18 2006-03-15 电子科技大学 一种芯片可实现的多信号分类算法
WO2010135745A1 (en) * 2009-05-22 2010-11-25 Maxlinear, Inc. Signal processing block for a receiver in wireless communication
CN101917164A (zh) * 2010-07-16 2010-12-15 航天恒星科技有限公司 一种基于cordic算法的信号处理方法
CN102624653A (zh) * 2012-01-13 2012-08-01 清华大学 基于流水线工作方式的可扩展qr分解方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈崚,等.: "求对称方阵特征值的一种快速并行算法", 《计算机工程与应用》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105323036A (zh) * 2014-08-01 2016-02-10 中国移动通信集团公司 对复矩阵进行奇异值分解的方法、装置及计算设备
CN105323037A (zh) * 2014-08-01 2016-02-10 中国移动通信集团公司 根据复矩阵进行预编码的方法及装置
CN104360986A (zh) * 2014-11-06 2015-02-18 江苏中兴微通信息科技有限公司 一种并行化矩阵求逆硬件装置的实现方法
CN104360986B (zh) * 2014-11-06 2017-07-25 江苏中兴微通信息科技有限公司 一种并行化矩阵求逆硬件装置的实现方法
CN105871503A (zh) * 2015-01-22 2016-08-17 华邦电子股份有限公司 多输入多输出无线通信系统及其通道分解方法
CN105871503B (zh) * 2015-01-22 2019-03-12 华邦电子股份有限公司 多输入多输出无线通信系统及其通道分解方法
CN107102841A (zh) * 2017-04-06 2017-08-29 上海晟矽微电子股份有限公司 一种坐标变换并行计算方法和装置
CN108228536A (zh) * 2018-02-07 2018-06-29 成都航天通信设备有限责任公司 使用FPGA实现Hermitian矩阵分解的方法
CN108228536B (zh) * 2018-02-07 2021-03-23 成都航天通信设备有限责任公司 使用FPGA实现Hermitian矩阵分解的方法
WO2020206716A1 (zh) * 2019-04-10 2020-10-15 浙江大学 一种用于FPGA的并行Jacobi计算加速实现方法
CN113595681A (zh) * 2021-06-28 2021-11-02 展讯半导体(南京)有限公司 基于Givens旋转的QR分解方法、系统、电路、设备及介质
CN113595681B (zh) * 2021-06-28 2022-10-04 展讯半导体(南京)有限公司 基于Givens旋转的QR分解方法、系统、电路、设备及介质

Also Published As

Publication number Publication date
CN103294649B (zh) 2016-08-10

Similar Documents

Publication Publication Date Title
CN103294649A (zh) 双边cordic运算单元及基于该运算单元的并行雅克比埃尔米特阵特征分解方法和实现电路
Ionescu et al. Families of moment matching based, low order approximations for linear systems
Han Frames for undergraduates
Castillo et al. Orthogonal sets and polar methods in linear algebra: Applications to matrix calculations, systems of equations, inequalities, and linear programming
CN108228536B (zh) 使用FPGA实现Hermitian矩阵分解的方法
Chen et al. Multilinear time invariant system theory
CN110222307A (zh) 基于fpga的实对称矩阵的特征值分解的并行实现方法
Guenther et al. A scalable, multimode SVD precoding ASIC based on the cyclic Jacobi method
US20160226468A1 (en) Method and apparatus for parallelized qrd-based operations over a multiple execution unit processing system
CN101847086B (zh) 一种基于循环雅克比的实对称阵特征分解装置
Mach et al. Computing approximate (block) rational Krylov subspaces without explicit inversion with extensions to symmetric matrices
CN101827044B (zh) 一种基于混合qr分解的最小二乘fpga求解装置
Iserles et al. Efficient computation of the matrix exponential by generalized polar decompositions
Chen et al. A constant throughput geometric mean decomposition scheme design for wireless MIMO precoding
Datta Matrix and Linear Algebra aided with MATLAB
Comon et al. Decomposing tensors with structured matrix factors reduces to rank-1 approximations
WO2011161202A2 (en) A parallel multi-pipeline systolic array for complex singular value decomposition on a multi-processor device
Biswas Textbook of Matrix Algebra
Sima et al. Software solutions for converting a MIMO-OFDM channel into multiple SISO-OFDM channels
CN103595663B (zh) 一种发射复数信号的估计方法
Miao et al. A unitary joint diagonalization algorithm for nonsymmetric higher‐order tensors based on Givens‐like rotations
Bevilacqua et al. On computing efficient data-sparse representations of unitary plus low-rank matrices
CN105871503B (zh) 多输入多输出无线通信系统及其通道分解方法
Lin et al. An efficient QR decomposition design for MIMO systems
CN113595681B (zh) 基于Givens旋转的QR分解方法、系统、电路、设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160810

Termination date: 20210624