专利名称:基于流水线工作方式的可扩展qr分解方法
技术领域:
本发明属于移动无线数据传输技术领域,涉及一种基于流水线工作方式的可扩展QR分解方法、结构和应用。
背景技术:
QR分解是一种基本的矩阵分解形式,被广泛应用于各种信号处理领域。例如在MIMO检测中,对信道矩阵进行QR分解以后,不仅可以保持数据的正交性,而且可以简化数据检测过程。当对信道矩阵进行QR分解以后,可以转化为一个正交矩阵Q和一个上三角矩 阵R。这样,接收数据相互之间的干扰将会被简化。因为QR分解可以大大简化算法复杂度,整个算法的规模并不会因为引入QR分解而变大。目前,QR分解的主流算法有三种,Gram-Scmidt正交化法、Givens旋转法和Householder法。因为可以通过CORDIC算法实现Givens旋转法,从而大大减小硬件实现所需要的乘法和除法数量,所以现在学术界研究的主流方法是Givens方法。本发明所提方法正是基于Givens旋转的QR分解。Givens旋转可以把二维平面上的向量旋转一定的角度而保持向量长度不变,旋转操作等效于左乘一个正交矩阵。可以通过设定特定的旋转角度使向量旋转到坐标轴上而把向量的某一维坐标置为零。Givens旋转法QR分解实际上是通过对待分解矩阵H左乘一系列的旋转矩阵,从而把矩阵H上三角化。也就是GmGsh……G2G1H = R,从而Q = Gh1Gh2……G1V1GV在MMO非线性检测中,需要计算接收向量y左乘Qh的结果。在这里注意到,r = QHy = GMGM_,……G2G1P,也就是在QR分解过程,所有对矩阵H进行的旋转操作,同时对接收向量3 行同样的操作,这样在QR分解结束时,同时得到了? = 0巧,避免了 Q和后续 = 的计算。如果多个检测的信道矩阵相同,则可以把多个接收向量顺序排在信道矩阵右面,构成一个列数大于行数的矩阵。在进行QR分解时,只需要对于左面的正方矩阵进行Givens旋转法QR分解,右面的接收向量跟随做相同的旋转,在QR分解结束时,就得到了多个旋转后的接收向量。信道矩阵的规模不同,相同信道矩阵的检测数不同,进行QR分解的矩阵规模不同。用CORDIC算法实现Givens旋转操作,可以大大减小硬件资源占用量大的乘法和除法操作,主要进行的操作是硬件实现简单的移位和加减操作。CORDIC算法有两种模式Victoring mode和Rotation mode。Victoring mode主要解决这样一个问题,对于给定的二元组(X,Y),如果把它当做一个向量的话,那么这个向量的长度和其与X轴的夹角是多少。Victoring mode的另一种描述是,对于给定的二元组(X, Y),如果把它当做一个向量的话,那么需要转动多少角度才能够把这个向量转到X轴上,以及这个向量的长度是多少。Rotation mode主要解决这样一个问题,对于给定的二元组(X,Y)和角度0,如果把(X,Y)当做一个向量的话,那个这个向量转动角度0后的向量是多少。无论是Victoring mode,
还是Rotation mode,基本思想都是把角度a拆分为a = (I1 a ^d2 a 2+......+dnajtJ形式,
然后依次对每一维进行处理。
在QR分解过程中,为了把hi+1,」置为零,需要对H矩阵的如下部分进行操作
权利要求
1.一种基于流水线工作方式的可扩展QR分解方法,其特征在于,采用层级级联的结构,各层之间实现流水操作,对于Nk行,Nt列的待分解矩阵H,当Nt SNk时,分层的层数为Ne-I ;当乂<乂时,分层的层数为Nt;每一层的两行矩阵数据进行Givens旋转,Givens旋转用CORDIC算法进行,用加法和移位操作实现。
2.根据权利要求I所述的基于流水线工作方式的可扩展QR分解方法,其特征在于,当Nt > Ne时,对左面的NkXNk子矩阵进行QR分解,右面的NkX (Nt-Ne)子矩阵跟随做相同的旋转,QR分解依次按以下步骤实现 步骤(I):矩阵的第Nk行数据输入第I层; 步骤(2):矩阵的第Nk-I行数据输入第I层,第I层对矩阵的第Nk行和第Nk-I行进行Givens旋转,把矩阵元素化^!置为零; 步骤(3):矩阵的第Νκ-2行数据输入第I层,第I层输出的矩阵的第Nk行数据输入第2层,第I层对矩阵的第Nk-I行和第Νκ-2行进行Givens旋转,把矩阵元素置为零;步骤(4):矩阵的第Νκ-3行数据输入第I层,第I层输出的矩阵的第Nk-I行数据输入第2层,第I层对矩阵的第Νκ-2行和第Νκ-3行进行Givens旋转,把矩阵元素\^24置为零,第2层对矩阵的第Nk行和第Nk-I行进行Givens旋转,把矩阵元素& 2置为零; 步骤(Nk):矩阵的第I行数据输入第一层,第i层(IUS)输出的矩阵的第2i+l行数据输入第i+Ι层,第j层)对矩阵的第2 j行和第2 j-Ι行进行Givens旋转,把矩阵元素h2u置为零,第I层输出R矩阵的第I行计算结果; 步骤(Νκ+1):第i层(li+S )输出的矩阵的第2i行数据输入第i+1层,第j层(2<7<)对矩阵的第2j-l行和第2j-2行进行Givens旋转,把矩阵元素h&y置为零,第2层输出R矩阵的第2行计算结果; 步骤(2NK-2):第Νκ-2层输出的矩阵的第Nk-I行数据输入第Nk-I层,第Nk-I层对矩阵的第Nk行和第Nk-I行进行Givens旋转,把矩阵元置为零,第Nk-I层同时输出R矩阵的第Nk行和第Nk-I行计算结果。
3.根据权利要求I所述的基于流水线工作方式的可扩展QR分解方法,其特征在于,当Nt < Nk时,QR分解依次按以下步骤实现 步骤(I):矩阵的第Nk行数据输入第I层; 步骤(2):矩阵的第Nk-I行数据输入第I层,第I层对矩阵的第Nk行和第Nk-I行进行Givens旋转,把矩阵元素化^!置为零; 步骤(3):矩阵的第Νκ-2行数据输入第I层,第I层输出的矩阵的第Nk行数据输入第2层,第I层对矩阵的第Nk-I行和第Νκ-2行进行Givens旋转,把矩阵元素置为零;步骤(4):矩阵的第Νκ-3行数据输入第I层,第I层输出的矩阵的第Nk-I行数据输入第2层,第I层对矩阵的第Νκ-2行和第Νκ-3行进行Givens旋转,把矩阵元素\^24置为零,第2层对矩阵的第Nk行和第Nk-I行进行Givens旋转,把矩阵元素& 2置为零; 步骤(Nk):矩阵的第I行数据输入第一层,第i层(IUS)输出的矩阵的第·2i+l行数据输入第i+Ι层,第j层)对矩阵的第2 j行和第2 j-Ι行进行Givens旋转,把矩阵元素h2w置为零,第I层输出R矩阵的第I行计算结果; 步骤(Νκ+1):第i层(li+S )输出的矩阵的第2i行数据输入第i+1层,第j层(2<7<)对矩阵的第2j-l行和第2j-2行进行Givens旋转,把矩阵元素h&y置为零,第2层输出R矩阵的第2行计算结果; 步骤(Νκ+Ντ-2) 第Ντ-2层输出的矩阵的第Nt-I行数据输入第Nt-I层,第Nt-I层对矩阵的第Nt行和第Nt-I行进行Givens旋转,把矩阵元素\^一置为零,第Nt-I层输出R矩阵的第Nt-I行计算结果; 步骤(Νκ+Ντ-1):第Nt-I层输出的矩阵的第Nt行数据输入第Nt层,第Nt层对矩阵的第Nt+I行和第Nt行进行Givens旋转,把矩阵元素置为零,第Nt层输出R矩阵的第Nt行计算结果。
4.根据权利要求I或2或3所述的基于流水线工作方式的可扩展QR分解实现方法,其特征在于,所述的Givens旋转操作等效于左乘一个正交矩阵,从而把二维平面上的向量旋转任意给定的角度,而保持向量长度不变,可以通过把向量旋转到坐标轴上而把向量的某一维坐标置为零。
5.根据权利要求I或2或3所述的基于流水线工作方式的可扩展QR分解实现方法,其特征在于,所述QR分解由控制器和数据处理模块实现,数据处理模块的每一层是一个行旋转模块,上一层行旋转模块的输出端口接下一层行旋转模块的输入端口,待分解矩阵数据从第一层行旋转模块的输入端口输入,依次流过各个行旋转模块,各个行旋转模块并行工作;控制器同样采用分层结构,一共由两种控制器模块组成,control one和control two ;每一层行旋转模块由一个control two控制,各层的control two级联起来,在第一层的control two 之前级联一个 control one。
6.根据权利要求5所述的基于流水线工作方式的可扩展QR分解实现方法,其特征在于,所述的行旋转模块基于CORDIC算法,把CORDIC算法迭代过程进行拆分,构成流水线结构,对于顺序输入模块的待旋转向量组,进行流水操作 待旋转向量组中的第一个有效向量称为头旋转向量,进行Victoring mode旋转,旋转到坐标轴上从而把其某一维置位零,把置为零的一维称为Y,另一维称为X,头旋转向量进行旋转的同时把旋转方向记录在CORDIC模块内部,后续旋转向量根据记录的旋转方向依次进行Rotation mode旋转,从而和头旋转向量进行相同的旋转操作; 根据上述方式,当行旋转模块进行CORDIC迭代操作时,不同旋转向量依次进行旋转,依次结束旋转,依次输出数据; 行旋转模块有三个模式,在一次QR分解过程中,行旋转模块第一次启动应用模式O,输入的一行信道矩阵数据被寄存在一个移位寄存器组内,并不进行CORDIC迭代操作,行旋转模块第二次启动应用模式1,输入数据接入迭代单元的X输入口,模式O存储的数据接入迭代单元的Y输入口,进行CORDIC迭代操作。行旋转模块第三次及以后启动应用模式2,输入数据接入迭代单元的X输入口,模块输出数据的X分量接入迭代单元的Y输入口,进行CORDIC迭代操作。
7.根据权利要求5所述的基于流水线工作方式的可扩展QR分解实现方法,其特征在于,所述控制器模块control two的开始和结束信号是由上一层controltwo模块产生提供的,来开始和结束当前层行旋转模块的工作;在第一层control two模块之前级联的控制器模块control one产生提供第一层control two模块的结束信号,如此构成层级级联结构控制器!control two模块通过开始和模式选择两个信号控制当前层行旋转模块工作,来配合其他各层行旋转模块完成整个模块的QR分解操作。
8.根据权利要求7所述的基于流水线工作方式的可扩展QR分解实现方法,其特征在于,所述层级级联控制器的递推结构是根据以下数据操作时序实现的 当前层第一次读入数据的迭代周期作为当前层的第一迭代周期; 第一层行旋转模块进行ROW次迭代,其中ROW是矩阵的行数,第ROW迭代周期结束后,第一行旋转模块工作结束; 每一层的第二迭代周期结束后,当前层的控制模块启动下一层工作; 每一层结束工作后,经过一个迭代周期,当前层的控制模块结束下一层工作。
9.根据权利要求I或6所述的基于流水线工作方式的可扩展QR分解实现方法,其特征在于,所述的CORDIC算法是一种二维向量旋转的计算方法,用加法和移位操作来实现旋转从而减少乘法和除法操作。
全文摘要
一种基于流水线工作方式的可扩展QR分解方法,采用层级级联的结构,各层之间实现流水操作,每一层的两行矩阵数据进行Givens旋转,Givens旋转用CORDIC算法进行,用加法和移位操作实现,层数由矩阵的行数或者列数决定,整个QR分解模块由控制器和数据处理模块组成,数据处理模块的每一层是一个行旋转模块,上一层行旋转模块的输出端口接下一层行旋转模块的输入端口,待分解矩阵数据从第一层行旋转模块的输入端口输入,依次流过各个行旋转模块,各个行旋转模块并行化工作,本发明节约硬件资源,每层内部把CORDIC算法迭代过程进行拆分,构成流水线结构,分时处理多个向量组的旋转操作,提高吞吐率,扩展灵活。
文档编号H04L25/02GK102624653SQ20121001034
公开日2012年8月1日 申请日期2012年1月13日 优先权日2012年1月13日
发明者周世东, 周春晖, 张秀军, 蔡世杰, 许希斌, 陈翔 申请人:清华大学