基于Givens旋转的QR分解方法、系统、电路、设备及介质

文档序号:195464 发布日期:2021-11-02 浏览:36次 >En<

阅读说明:本技术 基于Givens旋转的QR分解方法、系统、电路、设备及介质 (QR decomposition method, system, circuit, equipment and medium based on Givens rotation ) 是由 陆瑞 于 2021-06-28 设计创作,主要内容包括:本发明提供一种基于Givens旋转的QR分解方法、系统、电路、设备及介质,该电路包括向量模式Cordic模块以及与所述向量模式Cordic模块级联的多个旋转模式Cordic模块;其中,所述向量模式Cordic模块与用于计算第一输入向量的幅度,所述旋转模式Cordic模块用于根据所述向量模式Cordic模块中的各级迭代运算符号变量对第二输入向量进行旋转。本发明使得所述向量模式Cordic模块与旋转模式Cordic模块可以并行流水地实现Givnes旋转算法的QR分解过程,从而减小硬件开销,缩短处理时间,从而满足MIMO吞吐量和时延要求。(The invention provides a QR decomposition method, a system, a circuit, equipment and a medium based on Givens rotation, wherein the circuit comprises a vector mode Cordic module and a plurality of rotation mode Cordic modules cascaded with the vector mode Cordic module; the vector mode Cordic module is used for calculating the amplitude of a first input vector, and the rotation mode Cordic module is used for rotating a second input vector according to iteration operation symbol variables of all stages in the vector mode Cordic module. The invention enables the vector mode Cordic module and the rotation mode Cordic module to realize the QR decomposition process of the Givnes rotation algorithm in a parallel pipelining manner, thereby reducing the hardware overhead and shortening the processing time, and further meeting the requirements of MIMO throughput and time delay.)

基于Givens旋转的QR分解方法、系统、电路、设备及介质

技术领域

本发明涉及通信技术领域,尤其涉及一种基于Givens旋转的QR分解方法、系统、电路、设备及介质。

背景技术

在NR 5G系统中,需要MIMO(多路输入多路输出)支持更高的数据传输速率、更高度调制阶数(如256-QAM)、更多的天线配置(如4x4,8x8)。对于大规模的MIMO,其信道可看成行数为接收天线数M、列数为发送天线数N的矩阵。信道模型可以表示为:y=Hx+n,其矩阵表示形式为(以4x4为例):

对于上述矩阵,y为接收向量,H为信道估计矩阵,n为噪声向量。如果直接求H逆矩阵的方式来解出对应的x,则需要对H进行求逆,运算量非常大。为了降低MIMO检查系统的运算量,通常会对矩阵H、接收信号y以及噪声n组成的增广矩阵进行QR(正交三角)分解,即,将上述方程变成:

Q*y=R*x

其中,R为上三角矩阵且对角线元素为实数,Q为正交阵。

这样就可以通过简单的解方程的方式,得到x的结果,以进行后续的对数似然比估计。在MIMO系统中需要即时大量的完成上述操作,因此对于QR分解的速度和延时有着苛刻的要求。

QR分解主要有以下三种实现算法:Gram–Schmidt(格拉姆—施密特)正交化、Householder(豪斯霍尔德)三角化和Givens(吉文斯)旋转,三者各有优缺点。由于Givens旋转只通过使用Cordic(坐标转换数字计算机)对矩阵进行逐行旋转更新,免去了很多乘法除法运算,而且矩阵更新过程中数值稳定,所以对于ASIC或者FPGA实现QR分解,通常采用该方法,以降低对乘法器的需求。

Cordic主要用于解决导航系统中三角函数、反三角函数和开方等运算的实时计算问题。Cordic算法提供了一种数学计算的逼近方法。由于它最终可分解为一系列的加减和移位操作,故非常适合硬件实现。对于Givens旋转的QR分级算法,用到了其向量和旋转模式。现有算法原理如下:

Cordic向量模式的迭代公式如下:

向量模式是输入向量(x,y),输出其相角θ和幅度X(X=Ax,A为常数,其大小和迭代次数i有关系),di表示第i次迭代的运算符号变量。

Cordic旋转模式的迭代公式如下:

旋转模式是输入向量(x,y)和旋转角度θ,输出旋转后的向量(x,y)。

在基于Givens旋转进行QR分解时,总是先进行向量模式得到角度,再用该角度去旋转其他向量。但由于需要多次Cordic迭代,逐行完成矩阵更新,同时Cordic内部也需要多次迭代才能给出结果,所以导致处理延时较大。

发明内容

为了解决现有技术中基于Givens旋转进行QR分解时延时较大的问题,本发明提供一种基于Givens旋转的QR分解方法、系统、电路、设备及介质。

为了实现上述目的,本发明采用如下技术方案:

第一方面,本发明提供一种Cordic迭代运算电路,该电路包括向量模式Cordic模块以及与所述向量模式Cordic模块级联的多个旋转模式Cordic模块;

其中,所述向量模式Cordic模块与用于计算第一输入向量的幅度,所述旋转模式Cordic模块用于根据所述向量模式Cordic模块中的各级迭代运算符号变量对第二输入向量进行旋转。

第二方面,本发明提供一种基于Givens旋转的QR分解方法,该方法包括:

获取待分解矩阵;

控制如前所述的Cordic迭代运算电路对所述待分解矩阵进行迭代运算,以得到所述待分解矩阵对应的上三角矩阵。

优选地,所述待分解矩阵是由M行N列的信道估计矩阵、接收信号、以及M行N列的噪声矩阵组成的增广矩阵,其中,M不小于N。

优选地,所述控制所述Cordic迭代运算电路对所述待分解矩阵进行迭代运算,以得到所述待分解矩阵对应的上三角矩阵,包括:

控制所述向量模式Cordic模块计算第j行第i列数据的第一幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行中第i列以后的数据进行旋转;将所述第一幅度更新给所述第j行第i列数据,并将第j行中第i列以后的数据更新为旋转后的数据后,再控制所述向量模式Cordic模块计算所述第j行第i列数据的第二幅度以及第j+1行第i列数据的幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行及第j+1行中第i列以后的数据进行旋转,令i=i+1,j=j+1并重复执行上述步骤,直至i=N+1时,令j=M-k,k=k+1,i=1,再次重复执行上述步骤,直至k=M;

其中,j的初始值为M,i的初始值为1,k的初始值为1。

优选地,所述控制所述Cordic迭代运算电路对所述待分解矩阵进行迭代运算,以得到所述待分解矩阵对应的上三角矩阵,包括:

针对所述待分解矩阵中信道估计矩阵的每一行向量,对所述待分解矩阵分别执行以下迭代步骤:

对于信道估计矩阵的第j行向量,控制所述向量模式Cordic模块计算第j行第i列数据的第一幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行中第i列以后的数据进行旋转;当所述第一幅度更新给所述第j行第i列数据,第j行中第i列以后的数据更新为旋转后的数据后,控制所述向量模式Cordic模块计算所述第j行第i列数据的第二幅度以及第j+1行第i列数据的幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行及第j+1行中第i列以后的数据进行旋转,令i=i+1,j=j+1,并重复执行上述步骤,直至i=N+1,其中i的初始值为1;

其中,当针对所述信道估计矩阵的不同行向量执行上述步骤时,部分步骤并行执行。

第三方面,本发明提供一种基于Givens旋转的QR分解系统,该系统包括:

矩阵获取模块,用于获取待分解矩阵;

迭代控制模块,用于控制前述的Cordic迭代运算电路对所述待分解矩阵进行迭代运算,以得到所述待分解矩阵对应的上三角矩阵。

优选地,所述待分解矩阵是由M行N列的信道估计矩阵、接收信号、以及M行N列的噪声矩阵组成的增广矩阵,其中,M大于N。

优选地,所述迭代控制模块具体用于:

控制所述向量模式Cordic模块计算第j行第i列数据的第一幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行中第i列以后的数据进行旋转;将所述第一幅度更新给所述第j行第i列数据,并将第j行中第i列以后的数据更新为旋转后的数据后,再控制所述向量模式Cordic模块计算所述第j行第i列数据的第二幅度以及第j+1行第i列数据的幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行及第j+1行中第i列以后的数据进行旋转,令i=i+1,j=j+1并重复执行上述步骤,直至i=N+1时,令j=M-k,k=k+1,i=1,再次重复执行上述步骤,直至k=M;

其中,j的初始值为M,i的初始值为1,k的初始值为1。

优选地,所述迭代控制模块控具体用于:

针对所述待分解矩阵中信道估计矩阵的每一行向量,对所述待分解矩阵分别执行以下迭代步骤:

对于信道估计矩阵的第j行向量,控制所述向量模式Cordic模块计算第j行第i列数据的第一幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行中第i列以后的数据进行旋转;当所述第一幅度更新给所述第j行第i列数据,第j行中第i列以后的数据更新为旋转后的数据后,控制所述向量模式Cordic模块计算所述第j行第i列数据的第二幅度以及第j+1行第i列数据的幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行及第j+1行中第i列以后的数据进行旋转,令i=i+1,j=j+1,并重复执行上述步骤,直至i=N+1,其中i的初始值为1;

其中,当针对所述信道估计矩阵的不同行向量执行上述步骤时,部分步骤并行执行。

第四方面,本发明提供一种MIMO系统,包括:

如前所述的Cordic迭代运算电路。

优选地,所述的MIMO系统还包括:

如前所述的QR分解系统。

第五方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。

第六方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,其所述程序被处理器执行时实现上述任一项所述的方法的步骤。

通过采用上述技术方案,本发明具有如下有益效果:

本发明通过修改Cordic迭代运算电路的结构,使所述向量模式Cordic模块用于计算第一输入向量的幅度,所述旋转模式Cordic模块用于根据所述向量模式Cordic模块中的各级迭代运算符号变量对第二输入向量进行旋转,使得所述向量模式Cordic模块与旋转模式Cordic模块可以并行流水地实现Givnes旋转算法的QR分解过程,从而减小硬件开销,缩短处理时间,从而满足MIMO吞吐量和时延要求。

附图说明

图1为现有技术中Cordic迭代运算电路的原理图;

图2为现有技术中基于Givens旋转的QR分解方法的流水示意图;

图3为本发明实施例1的Cordic迭代运算电路的原理图;

图4为本发明实施例2的基于Givens旋转的QR分解方法的流程图;

图5为本发明实施例2的基于Givens旋转的QR分解方法的流水示意图;

图6为本发明实施例3的基于Givens旋转的QR分解方法的流水示意图;

图7为本发明实施例4的基于Givens旋转的QR分解系统的结构框图;

图8为本发明实施例6的电子设备的硬件架构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任意或所有可能组合。

下面以一个4x4信道估计矩阵H的增广矩阵H’为例,介绍通过现有Givens旋转算法对其进行QR分解的详细过程:

应该理解,不同的算法,H的增广矩阵可能不同,一般由信道估计矩阵H、噪声阵n、以及接收向量y构成。例如,对于4x4信道估计矩阵H的增广矩阵H’,其矩阵形式如下:

现有Givens旋转算法使用的Cordic迭代运算电路如图1所示,向量模式Cordic模块输入向量坐标(x,y),输出幅值X和相角θ,旋转模式Cordic模块输入向量坐标(xi,yi)和相角θ,输出为向量(xo,yo),向量模式Cordic模块和旋转模式Cordic模块串行连接,两者的迭代公式如背景技术所述。

参阅图2,现有技术对增广矩阵H’进行QR分解的具体硬件实现流水步骤如下:

步骤0.利用Cordic向量模式求h3,0的幅度和相角。

步骤1.步骤0产生的相角更新给h3,0,利用步骤0产生的相角,通过Cordic旋转模式对h3,1,h3,2,h3,3,y3进行选择旋转,利用Cordic向量模式求h3,0和常数σ0的幅度和相角。

步骤2.步骤1产生的幅度更新给h3,0,更新h3,1,h3,2,h3,3,y3,利用步骤1产生的相角,分别利用Cordic旋转模式对h3,1,h3,2,h3,3,y3和0进行旋转.

步骤3.步骤2旋转产生的结果分别更新给h3,1,h3,2,h3,3,y3和n0,1,n0,2,n0,3,z0。Cordic向量模式求n0,1的幅度和相角。

步骤4.步骤3产生的幅度更新给n0,1,利用步骤3产生的相角,通过Cordic旋转模式对n0,2,n0,3,z0进行选择旋转。利用Cordic向量模式求n0,1和常数σ1的幅度和相角。

步骤5.步骤4产生的幅度更新给n0,1,更新n0,2,n0,3,z0,利用步骤4产生的相角,分别利用Cordic旋转模式对n0,2,n0,3,z0和0进行旋转。

步骤6.步骤5旋转产生的结果分别更新给n0,2,n0,3,z0和n1,2,n1,3,z1。Cordic向量模式求n12的幅度和相角。

步骤7.步骤6产生的幅度更新给n1,2,利用步骤6产生的相角,通过Cordic旋转模式对n1,3,z1进行选择旋转。利用Cordic向量模式求n1,2和常数σ2的幅度和相角。

步骤8.步骤7产生的幅度更新给n1,2,更新n1,3,z1,利用步骤7产生的相角,分别利用Cordic旋转模式对n0,3,z0和0进行旋转。

步骤9.步骤8旋转产生的结果分别更新给n1,3,z2和n2,3,z2。Cordic向量模式求n2,3的幅度和相角。

步骤10:步骤9产生的幅度更新给n2,3。利用步骤9产生的相角,通过Cordic旋转模式对z2进行选择旋转。利用Cordic向量模式求n2,3和常数σ3的幅度和相角。

步骤11.步骤10产生的幅度更新给n2,1,更新z2。利用步骤10产生的相角,分别利用Cordic旋转模式对z3和0进行旋转。

经过上面的步骤,完成了对扩展矩阵H’中h3,i行的Cordic迭代。接着,按照上述步骤0~11依次对h2,i,h1,i,h0,i行进行迭代,最终H’输出形式如下:

其中,H构成上三角R阵,Y向量为Q*y。

上述描述可以得出,按现有技术一次QR分解总共需要48个流水步骤,其中每个步骤的延时为一个Cordic迭代的时间。

此外,如流水所示,矩阵H’中h3,i行在步骤2之后,一直到h2,i开始才会被使用,所以需要临时缓存。流水中多处都需要类似的临时数据缓存。所以过长的流水步骤意味着更多的缓存开销和更大的处理延时。

实施例1

根据Cordic向量模式和旋转模式的迭代特点,两者核心的迭代计算是相似的,区别在于对于运算中运算符号变量的判断。结合Givens算法的特点,总是先进行向量模式得到角度,再用该角度去旋转其他向量。可以考虑将向量模式Cordic和旋转模式Cordic级联起来,组成一个整体的运算,取代传统的得到相角和幅值后才能进行下一步的操作。将向量模式Cordic模块每次迭代的运算符号变量d[i:1]输出(i表示Cordic内部的迭代次数,[i:1]表示从第1次迭代至第i次迭代);将旋转模式Cordic模块的输入相角替换成每次迭代的运算符号变量d[i:1]。

基于此,本实施例提供一种如图3所示的改进的Cordic迭代运算电路,该电路包括向量模式Cordic模块以及与所述向量模式Cordic模块级联的多个旋转模式Cordic模块。其中,所述向量模式Cordic模块与用于计算第一输入向量的幅度,所述旋转模式Cordic模块用于根据所述向量模式Cordic模块中的各级迭代运算符号变量(即每次迭代的运算符号变量)对第二输入向量进行旋转。

本实施例提供的改进电路使得所述向量模式Cordic模块与旋转模式Cordic模块能够并行流水地实现Givnes旋转算法的QR分解过程,从而减小硬件开销,缩短处理时间,从而满足MIMO吞吐量和时延要求。

实施例2

本实施例提供一种基于Givens旋转的QR分解方法,如图4所示,该方法具体包括以下步骤:

S101,获取待分解矩阵。

例如,所述待分解矩阵是由M行N列的信道估计矩阵、接收信号、以及M行N列的噪声矩阵组成的增广矩阵。其中,M不小于N,所述噪声矩阵第j行的第j列数据为常数,其余数据为零。

在所述增广矩阵中,所述噪声矩阵位于所述信道估计矩阵的下方,所述接收信号位于所述信道估计矩阵的右侧,所述接收信号的下方以零值填充。当M、N均为4时,所述增广矩阵的矩阵形式如前述矩阵H‘所示。

S102,控制如实施例1所述的Cordic迭代运算电路对所述待分解矩阵进行迭代运算,以得到所述待分解矩阵对应的上三角矩阵R,具体通过迭代执行以下Cordic步骤实现:

控制所述向量模式Cordic模块计算第j行第i列数据的第一幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行中第i列以后的数据进行旋转;将所述第一幅度更新给所述第j行第i列数据,并将第j行中第i列以后的数据更新为旋转后的数据后,再控制所述向量模式Cordic模块计算所述第j行第i列数据的第二幅度以及第j+1行第i列数据的幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行及第j+1行中第i列以后的数据进行旋转,令i=i+1,j=j+1并重复执行上述步骤,直至i=N+1时,令j=M-k,k=k+1,i=1,再次重复执行上述步骤,直至k=M;

其中,j的初始值为M,i的初始值为1,k的初始值为1。

下面结合图5,详细描述本实施例对增广矩阵H’进行QR分解的具体硬件实现流水步骤如下:

步骤0.控制向量模式Cordic模块求h3,0的幅度,并输出其各级迭代运算符号变量。

控制旋转模式Cordic模块根据向量模式Cordic模块输出的各级迭代运算符号变量,对h3,1,h3,2,h3,3,y3进行旋转。

步骤1.将步骤0产生的幅度更新给h3,0,更新h3,1,h3,2,h3,3,y3

控制向量模式Cordic模块求h3,0和常数σ0的幅度,并输出其各级迭代运算符号变量。

控制旋转模式Cordic模块根据向量模式Cordic模块输出的各级迭代运算符号变量,对h3,1,h3,2,h3,3,y3及它们下方的0进行旋转。

步骤2.将步骤1产生的幅度更新给h3,0,更新h3,1,h3,2,h3,3,y3和n0,1,n0,2,n0,3,z0

控制向量模式Cordic模块求n0,1的幅度,并输出其各级迭代运算符号变量。

控制旋转模式Cordic模块根据向量模式Cordic模块输出的各级迭代运算符号变量,对n0,2,n0,3,z0进行旋转。

步骤3.步骤2产生的幅度更新n0,1,更新n0,2,n0,3,z0

控制向量模式Cordic模块求n0,1和σ1的幅度,并输出其各级迭代运算符号变量。

控制旋转模式Cordic模块根据向量模式Cordic模块输出的各级迭代运算符号变量,对n0,2,n0,3,z0及它们下方的0进行旋转。

步骤4.步骤3产生的幅度更新给n0,1,更新n0,2,n0,3,z0和n1,2,n1,3,z1

控制向量模式Cordic模块求n1,2的幅度,并输出其各级迭代运算符号变量。

控制旋转模式Cordic模块根据向量模式Cordic模块输出的各级迭代运算符号变量,对n1,3,z1进行旋转。

步骤5.步骤4产生的幅度更新n1,2,更新n1,3,z1

控制向量模式Cordic模块求n1,2和σ2的幅度,并输出其各级迭代运算符号变量。

控制旋转模式Cordic模块根据向量模式Cordic模块输出的各级迭代运算符号变量,对n1,2n1,3,z1及它们下方的0进行旋转。

步骤6.步骤5产生的幅度更新给n1,2,更新n1,3,z1和n2,3,z2

控制向量模式Cordic模块求n2,3的幅度,并输出各级迭代运算符号变量。

控制旋转模式Cordic模块根据向量模式Cordic模块输出的各级迭代运算符号变量,对z2进行选择旋转。

步骤7.步骤6产生的幅度更新n2,3,更新z2

控制向量模式Cordic模块求n2,3和σ3的幅度,并输出其各级迭代运算符号变量。

控制旋转模式Cordic模块根据向量模式Cordic模块输出的各级迭代运算符号变量,对z2和其下方的0进行旋转

步骤7结束后,即完成了对扩展矩阵H’中h3,i的Cordic迭代。与图2相比,本实施例对于h3,i的Cordic迭代次数缩短到8级流水。

在上述流水中,步骤0和1对应于j=4,i=1时的Cordic步骤,可将其作为操作A;步骤2和3对应于j=5,i=2时的Cordic步骤,可将其作为操作B;步骤4和5对应于j=6,i=3时的Cordic步骤,可将其作为操作C;步骤6和7对应于j=7,i=4时的Cordic步骤,可将其作为操作D。

本实施例使得所述向量模式Cordic模块与旋转模式Cordic模块能够并行流水地实现Givnes旋转算法的QR分解过程,从而减小硬件开销,缩短处理时间,从而满足MIMO吞吐量和时延要求。

实施例3

本实施例是对实施例2的进一步改进。在本实施例中,对于信道估计矩阵的每一行向量,可以进一步的并行计算。

具体地,在本实施例中,前述步骤S102的实现过程如下:

针对所述待分解矩阵中信道估计矩阵的每一行向量,对所述待分解矩阵分别执行以下迭代步骤:对于信道估计矩阵的第j行向量,控制所述向量模式Cordic模块计算第j行第i列数据的第一幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行中第i列以后的数据进行旋转;当所述第一幅度更新给所述第j行第i列数据,第j行中第i列以后的数据更新为旋转后的数据后,控制所述向量模式Cordic模块计算所述第j行第i列数据的第二幅度以及第j+1行第i列数据的幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行及第j+1行中第i列以后的数据进行旋转,令i=i+1,j=j+1并重复执行上述步骤,直至i=N+1,其中i的初始值为1。

在本实施例中,当针对所述待分解矩阵中信道估计矩阵的不同行向量执行的上述步骤中,部分可并行执行。

下面仍然以前述增广矩阵H’为例,结合图6介绍本实施例基于Givens旋转的QR分解方法的流水如下;

步骤I:执行h3i的操作A

步骤II:执行h3i的操作B,执行h2i的操作A,

步骤III:执行h3i的操作C,执行h2i的操作B,执行h1i的操作A,

步骤IV:执行h3i的操作D,执行h2i的操作C,执行h1i的操作B,执行h0i的操作A,

步骤V:执行h2i的操作D,执行h1i的操作C,执行h0i的操作B,

步骤VI:执行h1i的操作D,执行h0i的操作C

步骤VII:执行h0i的操作D

步骤VII结束后输出增广矩阵H’的QR分解结果。

本实施例能够进一步减小硬件开销,缩短QR分解处理时间。

实施例4

本实施例提供一种基于Givens旋转的QR分解系统,如图7所示,该系统包括:

矩阵获取模块11,用于获取待分解矩阵;

迭代控制模块12,用于控制实施例1所述的Cordic迭代运算电路对所述待分解矩阵进行迭代运算,以得到所述待分解矩阵对应的上三角矩阵。

在本实施例中,所述待分解矩阵是由M行N列的信道估计矩阵、接收信号、以及M行N列的噪声矩阵组成的增广矩阵,其中,M大于N。

优选地,所述迭代控制模块具体用于:

控制所述向量模式Cordic模块计算第j行第i列数据的第一幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行中第i列以后的数据进行旋转;将所述第一幅度更新给所述第j行第i列数据,并将第j行中第i列以后的数据更新为旋转后的数据后,再控制所述向量模式Cordic模块计算所述第j行第i列数据的第二幅度以及第j+1行第i列数据的幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行及第j+1行中第i列以后的数据进行旋转,令i=i+1,j=j+1并重复执行上述步骤,直至i=N+1时,令j=M-k,k=k+1,i=1,再次重复执行上述步骤,直至k=M;

其中,j的初始值为M,i的初始值为1,k的初始值为1。

进一步优选地,所述迭代控制模块控具体用于:

针对所述待分解矩阵中信道估计矩阵的每一行向量,对所述待分解矩阵分别执行以下迭代步骤:

对于信道估计矩阵的第j行向量,控制所述向量模式Cordic模块计算第j行第i列数据的第一幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行中第i列以后的数据进行旋转;当所述第一幅度更新给所述第j行第i列数据,第j行中第i列以后的数据更新为旋转后的数据后,控制所述向量模式Cordic模块计算所述第j行第i列数据的第二幅度以及第j+1行第i列数据的幅度,控制所述多个旋转模式Cordic模块一一对应地对第j行及第j+1行中第i列以后的数据进行旋转,令i=i+1,j=j+1,并重复执行上述步骤,直至i=N+1,其中i的初始值为1;

其中,当针对所述信道估计矩阵的不同行向量执行上述步骤时,部分步骤并行执行。

本实施例使得所述向量模式Cordic模块与旋转模式Cordic模块能够并行流水地实现Givnes旋转算法的QR分解过程,从而减小硬件开销,缩短处理时间,从而满足MIMO吞吐量和时延要求。

对于本系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

实施例5

本实施例提供一种MIMO系统,包括:根据前述实施例1所述的Cordic迭代运算电路,还包括:根据前述实施例4所述的QR分解系统。

本实施例的MIMO系统能够满足高吞吐量和低时延要求。

实施例6

图8是本发明一示例实施例示出的一种电子设备的结构示意图,示出了适于用来实现本发明实施方式的示例性电子设备60的框图。图8显示的电子设备60仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图8所示,电子设备60可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备60的组件可以包括但不限于:上述至少一个处理器61、上述至少一个存储器62、连接不同系统组件(包括存储器62和处理器61)的总线63。

总线63包括数据总线、地址总线和控制总线。

存储器62可以包括易失性存储器,例如随机存取存储器(RAM)621和/或高速缓存存储器622,还可以进一步包括只读存储器(ROM)623。

存储器62还可以包括具有一组(至少一个)程序模块624的程序工具625(或实用工具),这样的程序模块624包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

处理器61通过运行存储在存储器62中的计算机程序,从而执行各种功能应用以及数据处理,例如上述任一实施例所提供的方法。

电子设备60也可以与一个或多个外部设备64(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口65进行。并且,模型生成的电子设备60还可以通过网络适配器66与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器66通过总线63与模型生成的电子设备60的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的电子设备60使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

实施例7

本实施例提供了一种执行机可读存储介质,其上存储有执行机程序,所述程序被处理器执行时实现上述任一实施例所提供的方法的步骤。

其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。

在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现上述任一实施例所提供的方法的步骤。

其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:在无线LAN系统中发送或接收信号的方法及其设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类