CN113595681A - QR decomposition method, system, circuit, equipment and medium based on Givens rotation - Google Patents

QR decomposition method, system, circuit, equipment and medium based on Givens rotation Download PDF

Info

Publication number
CN113595681A
CN113595681A CN202110720065.3A CN202110720065A CN113595681A CN 113595681 A CN113595681 A CN 113595681A CN 202110720065 A CN202110720065 A CN 202110720065A CN 113595681 A CN113595681 A CN 113595681A
Authority
CN
China
Prior art keywords
row
data
matrix
jth
ith
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
CN202110720065.3A
Other languages
Chinese (zh)
Other versions
CN113595681B (en
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.)
Spreadtrum Semiconductor Nanjing Co Ltd
Original Assignee
Spreadtrum Semiconductor Nanjing Co Ltd
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 Spreadtrum Semiconductor Nanjing Co Ltd filed Critical Spreadtrum Semiconductor Nanjing Co Ltd
Priority to CN202110720065.3A priority Critical patent/CN113595681B/en
Publication of CN113595681A publication Critical patent/CN113595681A/en
Application granted granted Critical
Publication of CN113595681B publication Critical patent/CN113595681B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/02Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas
    • H04B7/04Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas using two or more spaced independent antennas
    • H04B7/0413MIMO systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Variable-Direction Aerials And Aerial Arrays (AREA)

Abstract

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.

Description

QR decomposition method, system, circuit, equipment and medium based on Givens rotation
Technical Field
The invention relates to the technical field of communication, in particular to a QR decomposition method, a QR decomposition system, a QR decomposition circuit, QR decomposition equipment and a QR decomposition medium based on Givens rotation.
Background
In NR 5G systems, MIMO (multiple input multiple output) is required to support higher data transmission rates, higher modulation orders (e.g. 256-QAM), more antenna configurations (e.g. 4x4, 8x 8). For large-scale MIMO, the channel can be viewed as a matrix with the number of rows M of receiving antennas and the number of columns N of transmitting antennas. The channel model can be expressed as: y — Hx + n, in a matrix representation of the form (for example 4x 4):
Figure BDA0003136616120000011
for the above matrix, y is the received vector, H is the channel estimation matrix, and n is the noise vector. If the corresponding x is solved by directly solving the H inverse matrix, the H needs to be solved by inversion, and the calculation amount is very large. In order to reduce the computation amount of the MIMO inspection system, an amplification matrix composed of a matrix H, a received signal y, and noise n is generally subjected to QR (orthogonal triangle) decomposition, that is, the above equation is changed to:
Q*y=R*x
wherein, R is an upper triangular matrix, diagonal elements are real numbers, and Q is an orthogonal matrix.
Thus, the result of x can be obtained by means of simple equation solving so as to carry out subsequent log-likelihood ratio estimation. This is done in large quantities on-the-fly in MIMO systems and therefore imposes severe requirements on the speed and delay of QR decomposition.
The QR decomposition mainly has the following three realization algorithms: Gram-Schmidt orthogonalization, Householder triangularization and Givens rotation, which have advantages and disadvantages respectively. Because Givens rotation only carries out rotation updating on a matrix line by using a Cordic (coordinate transformation digital computer), a plurality of multiplication and division operations are avoided, and the numerical value is stable in the matrix updating process, the method is generally adopted for realizing QR decomposition for an ASIC or an FPGA (field programmable gate array) so as to reduce the requirement on a multiplier.
Cordic is mainly used for solving the real-time calculation problem of trigonometric function, inverse trigonometric function, evolution and other operations in the navigation system. The Cordic algorithm provides an approximation of the mathematical calculation. Since it can be finally decomposed into a series of addition, subtraction and shift operations, it is very suitable for hardware implementation. For the Givens rotated QR ranking algorithm, its vector and rotation patterns are used. The existing algorithm principle is as follows:
the iterative formula for Cordic vector mode is as follows:
Figure BDA0003136616120000021
the vector mode is an input vector (X, y) and outputs its phase angle θ and magnitude X (X is Ax, a is a constant, and its magnitude is related to the number of iterations i), diThe operand variable for the ith iteration is represented.
The iterative formula for Cordic rotation mode is as follows:
Figure BDA0003136616120000022
the rotation pattern is input with the vector (x, y) and the rotation angle θ, and the rotated vector (x, y) is output.
When QR decomposition is carried out based on Givens rotation, a vector mode is always firstly carried out to obtain an angle, and then the angle is used for rotating other vectors. However, multiple Cordic iterations are required to complete matrix updating line by line, and multiple iterations are required to give a result inside Cordic, so that processing delay is large.
Disclosure of Invention
In order to solve the problem that QR decomposition time delay is large based on Givens rotation in the prior art, the invention provides a QR decomposition method, a QR decomposition system, a QR decomposition circuit, QR decomposition equipment and a QR decomposition medium based on Givens rotation.
In order to achieve the purpose, the invention adopts the following technical scheme:
in a first aspect, the present invention provides a Cordic iterative operation circuit, which includes 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.
In a second aspect, the present invention provides a QR decomposition method based on Givens rotation, including:
acquiring a matrix to be decomposed;
and controlling the Cordic iterative operation circuit to carry out iterative operation on the matrix to be decomposed to obtain an upper triangular matrix corresponding to the matrix to be decomposed.
Preferably, the matrix to be decomposed is an amplification matrix composed of M rows and N columns of channel estimation matrices, a received signal, and M rows and N columns of noise matrices, where M is not less than N.
Preferably, the controlling the Cordic iterative operation circuit to perform iterative operation on the matrix to be decomposed to obtain an upper triangular matrix corresponding to the matrix to be decomposed includes:
controlling the vector mode Cordic module to calculate a first amplitude of ith column data of a jth row, and controlling the plurality of rotation mode Cordic modules to rotate data after the ith column in the jth row in a one-to-one correspondence manner; updating the first amplitude to ith row data of the jth row, updating ith row data of the jth row and ith column data of the jth row into rotated data, controlling the vector mode Cordic modules to calculate a second amplitude of ith row data of the jth row and ith row data of the jth +1 row, controlling the plurality of rotation mode Cordic modules to rotate the ith row data of the jth row and the ith column data of the jth +1 row in a one-to-one correspondence manner, enabling i to be i +1, j to be j +1, and repeatedly executing the steps until i is equal to N +1, enabling j to be M-k, k to be k +1, and i to be 1, and repeatedly executing the steps again until k is equal to M;
wherein j has an initial value of M, i has an initial value of 1, and k has an initial value of 1.
Preferably, the controlling the Cordic iterative operation circuit to perform iterative operation on the matrix to be decomposed to obtain an upper triangular matrix corresponding to the matrix to be decomposed includes:
aiming at each row vector of a channel estimation matrix in the matrix to be decomposed, respectively executing the following iteration steps on the matrix to be decomposed:
for a jth row vector of a channel estimation matrix, controlling the vector mode Cordic module to calculate a first amplitude of ith column data of a jth row, and controlling the plurality of rotation mode Cordic modules to rotate data after the ith column in the jth row in a one-to-one correspondence manner; when the first amplitude is updated to the ith row of data in the jth row, and the data after the ith row in the jth row are updated to the rotated data, controlling the vector mode Cordic modules to calculate the second amplitude of the ith row of data in the jth row and the amplitude of the ith row of data in the j +1 th row, controlling the plurality of rotation mode Cordic modules to rotate the data after the ith row in the jth row and the jth +1 row in a one-to-one correspondence manner, and making i equal to i +1 and j equal to j +1, and repeatedly executing the steps until i equal to N +1, wherein the initial value of i is 1;
wherein when the above steps are performed for different row vectors of the channel estimation matrix, part of the steps are performed in parallel.
In a third aspect, the present invention provides a QR decomposition system based on Givens rotation, the system comprising:
the matrix acquisition module is used for acquiring a matrix to be decomposed;
and the iteration control module is used for controlling the Cordic iteration operation circuit to carry out iteration operation on the matrix to be decomposed so as to obtain an upper triangular matrix corresponding to the matrix to be decomposed.
Preferably, the matrix to be decomposed is an amplification matrix composed of M rows and N columns of channel estimation matrices, a received signal, and M rows and N columns of noise matrices, where M is greater than N.
Preferably, the iteration control module is specifically configured to:
controlling the vector mode Cordic module to calculate a first amplitude of ith column data of a jth row, and controlling the plurality of rotation mode Cordic modules to rotate data after the ith column in the jth row in a one-to-one correspondence manner; updating the first amplitude to ith row data of the jth row, updating ith row data of the jth row and ith column data of the jth row into rotated data, controlling the vector mode Cordic modules to calculate a second amplitude of ith row data of the jth row and ith row data of the jth +1 row, controlling the plurality of rotation mode Cordic modules to rotate the ith row data of the jth row and the ith column data of the jth +1 row in a one-to-one correspondence manner, enabling i to be i +1, j to be j +1, and repeatedly executing the steps until i is equal to N +1, enabling j to be M-k, k to be k +1, and i to be 1, and repeatedly executing the steps again until k is equal to M;
wherein j has an initial value of M, i has an initial value of 1, and k has an initial value of 1.
Preferably, the iterative control module is specifically configured to:
aiming at each row vector of a channel estimation matrix in the matrix to be decomposed, respectively executing the following iteration steps on the matrix to be decomposed:
for a jth row vector of a channel estimation matrix, controlling the vector mode Cordic module to calculate a first amplitude of ith column data of a jth row, and controlling the plurality of rotation mode Cordic modules to rotate data after the ith column in the jth row in a one-to-one correspondence manner; when the first amplitude is updated to the ith row of data in the jth row, and the data after the ith row in the jth row are updated to the rotated data, controlling the vector mode Cordic modules to calculate the second amplitude of the ith row of data in the jth row and the amplitude of the ith row of data in the j +1 th row, controlling the plurality of rotation mode Cordic modules to rotate the data after the ith row in the jth row and the jth +1 row in a one-to-one correspondence manner, and making i equal to i +1 and j equal to j +1, and repeatedly executing the steps until i equal to N +1, wherein the initial value of i is 1;
wherein when the above steps are performed for different row vectors of the channel estimation matrix, part of the steps are performed in parallel.
In a fourth aspect, the present invention provides a MIMO system, comprising:
as in the Cordic iterative arithmetic circuit described previously.
Preferably, the MIMO system further comprises:
a QR decomposition system as previously described.
In a fifth aspect, the present invention provides an electronic device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, the processor implementing the method of any one of the above when executing the computer program.
In a sixth aspect, the invention provides a computer-readable storage medium, on which a computer program is stored, which program, when being executed by a processor, carries out the steps of the method of any of the above.
By adopting the technical scheme, the invention has the following beneficial effects:
according to the invention, by modifying the structure of the Cordic iterative operation circuit, the vector mode Cordic module is used for calculating the amplitude of the first input vector, and the rotation mode Cordic module is used for rotating the second input vector according to each stage of iterative operation symbol variables in the vector mode Cordic module, so that the vector mode Cordic module and the rotation mode Cordic module can realize the QR decomposition process of the Givnes rotation algorithm in a parallel pipelining manner, thereby reducing the hardware overhead, shortening the processing time and meeting the requirements of MIMO throughput and time delay.
Drawings
FIG. 1 is a schematic diagram of a prior art Cordic iterative arithmetic circuit;
FIG. 2 is a schematic flow diagram of a prior art Givens rotation-based QR decomposition method;
fig. 3 is a schematic diagram of a Cordic iterative operation circuit according to embodiment 1 of the present invention;
FIG. 4 is a flow chart of a QR decomposition method based on Givens rotation in embodiment 2 of the present invention;
FIG. 5 is a schematic flow chart of a QR decomposition method based on Givens rotation according to embodiment 2 of the present invention;
FIG. 6 is a schematic flow chart of a QR decomposition method based on Givens rotation according to embodiment 3 of the present invention;
FIG. 7 is a block diagram of a QR decomposition system based on Givens rotation according to embodiment 4 of the present invention;
fig. 8 is a hardware architecture diagram of an electronic device according to embodiment 6 of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the present invention is described in further detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used in this disclosure and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should also be understood that the term "and/or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items.
The following takes an augmented matrix H' of the 4 × 4 channel estimation matrix H as an example, and introduces a detailed process of QR decomposition through the existing Givens rotation algorithm:
it should be understood that different algorithms, the amplification matrix for H, may be different and generally consists of the channel estimation matrix H, the noise matrix n, and the received vector y. For example, for the augmented matrix H' of the 4x4 channel estimation matrix H, its matrix form is as follows:
Figure BDA0003136616120000081
as shown in fig. 1, a Cordic iterative operation circuit used by a conventional Givens rotation algorithm is disclosed, in which a vector mode Cordic module inputs vector coordinates (X, y), outputs a magnitude value X and a phase angle θ, a rotation mode Cordic module inputs vector coordinates (xi, yi) and a phase angle θ, outputs are vectors (xo, yo), and the vector mode Cordic module and the rotation mode Cordic module are connected in series, and the iterative formulas of the vector mode Cordic module and the rotation mode Cordic module are as described in the background art.
Referring to fig. 2, the concrete hardware implementation flow steps of QR decomposition of the augmented matrix H' in the prior art are as follows:
step 0, solving h by utilizing a Cordic vector mode3,0Amplitude and phase angle of (d).
Step 1. updating the phase angle generated in step 0 to h3,0Using the phase angle generated in step 0, h is coupled by Cordic rotation pattern3,1,h3,2,h3,3,y3Performing selective rotation, and calculating h by using Cordic vector mode3,0Sum constant σ0Amplitude and phase angle of (d).
Step 2. the amplitude generated in step 1 is updated to h3,0Update h3,1,h3,2,h3,3,y3Respectively using the phase angle generated in step 1 and the Cordic rotation mode pair h3,1,h3,2,h3,3,y3And 0, are rotated.
Step 3. the results generated by the rotation in step 2 are respectively updated to h3,1,h3,2,h3,3,y3And n0,1,n0,2,n0,3,z0. Cordic vector mode n-solving0,1Amplitude and phase angle of (d).
Step 4, updating the amplitude generated in step 3 to n0,1Using the phase angle generated in step 3, pair n is rotated by Cordic0,2,n0,3,z0A selection rotation is performed. Method for solving n by using Cordic vector mode0,1Sum constant σ1Amplitude and phase angle of (d).
Step 5, updating the amplitude generated in step 4 to n0,1Update n0,2,n0,3,z0Using the phase angle generated in step 4, respectively using Cordic rotation mode to n0,2,n0,3,z0And 0, are rotated.
Step 6. the results generated by the rotation in step 5 are respectively updated to n0,2,n0,3,z0And n1,2,n1,3,z1. Cordic vector mode n-solving12Amplitude and phase angle of (d).
Step 7, updating the amplitude generated in step 6 to n1,2Using the phase angle generated in step 6, pair n is rotated by Cordic1,3,z1A selection rotation is performed. Method for solving n by using Cordic vector mode1,2Sum constant σ2Amplitude and phase angle of (d).
Step 8, updating the amplitude generated in step 7 to n1,2Update n1,3,z1Using the phase angle generated in step 7, using Cordic rotation mode to n0,3,z0And 0, are rotated.
Step 9. the results generated by the rotation of step 8 are respectively updated to n1,3,z2And n2,3,z2. Cordic vector mode n-solving2,3Amplitude and phase angle of (d).
Step 10: the amplitude generated in step 9 is updated to n2,3. Using the phase angle generated in step 9, z is coupled by Cordic rotation pattern2A selection rotation is performed. Method for solving n by using Cordic vector mode2,3Sum constant σ3Amplitude and phase angle of (d).
Step 11, updating the amplitude generated in step 10 to n2,1Update z2. Using the phase angles generated in step 10, the Cordic rotation patterns are used for z3And 0, are rotated.
Through the above steps, H in the extended matrix H' is completed3,iCordic iteration of the line. Then, sequentially carrying out the steps of h to h according to the steps 0 to 112,i,h1,i,h0,iThe rows are iterated and the final H' output is in the form:
Figure BDA0003136616120000101
wherein, H forms an upper triangular R array, and the vector of Y is Q x Y.
The above description makes clear that, according to the prior art, a QR decomposition requires a total of 48 pipeline steps, each of which is delayed by the time of one Cordic iteration.
Furthermore, as shown in the flow, H in matrix H3,iLine after step 2, up to h2,iIs used initially and therefore needs temporary buffering. Similar temporary data buffering is required at many places in the pipeline. So too long a pipeline step means more buffering overhead and more processing delay.
Example 1
According to the iterative characteristics of the Cordic vector mode and the rotation mode, the iterative computation of the two cores is similar, and the difference is the judgment of operation sign variables in operation. Combining the characteristics of the Givens algorithm, a vector mode is always firstly carried out to obtain an angle, and then the angle is used for rotating other vectors. The vector mode Cordic and the rotation mode Cordic can be considered to be cascaded to form an integral operation, and the traditional operation that the next operation can be carried out after the phase angle and the amplitude are obtained is replaced. And (3) calculating the operation sign variable d [ i: 1] outputs (i represents the number of iterations within Cordic, [ i: 1] represents from 1 st iteration to ith iteration); the input phase angle of the rotation mode Cordic module is replaced by the operation sign variable d [ i: 1].
In this regard, the present embodiment provides an improved Cordic iterative operation circuit as shown in fig. 3, which includes 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 (namely, operation symbol variables of each iteration) of each stage in the vector mode Cordic module.
The improved circuit provided by the embodiment 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, so that the hardware overhead is reduced, the processing time is shortened, and the requirements of MIMO throughput and time delay are met.
Example 2
The embodiment provides a QR decomposition method based on Givens rotation, as shown in fig. 4, the method specifically includes the following steps:
s101, obtaining a matrix to be decomposed.
For example, the matrix to be decomposed is an amplification matrix composed of M rows and N columns of channel estimation matrices, a received signal, and M rows and N columns of noise matrices. And M is not less than N, the jth column data of the jth row of the noise matrix is a constant, and the rest data are zero.
In the augmentation matrix, the noise matrix is located below the channel estimation matrix, the received signal is located on the right side of the channel estimation matrix, and the lower part of the received signal is filled with zero values. When M, N are both 4, the matrix form of the augmented matrix is as shown in the aforementioned matrix H'.
S102, controlling the Cordic iterative operation circuit described in embodiment 1 to perform iterative operation on the matrix to be decomposed to obtain an upper triangular matrix R corresponding to the matrix to be decomposed, specifically by iteratively executing the following Cordic steps:
controlling the vector mode Cordic module to calculate a first amplitude of ith column data of a jth row, and controlling the plurality of rotation mode Cordic modules to rotate data after the ith column in the jth row in a one-to-one correspondence manner; updating the first amplitude to ith row data of the jth row, updating ith row data of the jth row and ith column data of the jth row into rotated data, controlling the vector mode Cordic modules to calculate a second amplitude of ith row data of the jth row and ith row data of the jth +1 row, controlling the plurality of rotation mode Cordic modules to rotate the ith row data of the jth row and the ith column data of the jth +1 row in a one-to-one correspondence manner, enabling i to be i +1, j to be j +1, and repeatedly executing the steps until i is equal to N +1, enabling j to be M-k, k to be k +1, and i to be 1, and repeatedly executing the steps again until k is equal to M;
wherein j has an initial value of M, i has an initial value of 1, and k has an initial value of 1.
The following describes in detail, with reference to fig. 5, the specific hardware implementation flow steps of QR decomposition of the augmented matrix H' in this embodiment as follows:
step 0. control vector mode Cordic module to solve h3,0And outputting the iterative operation sign variables of each stage.
Controlling a rotation mode Cordic module to carry out iterative operation on symbol variables of all levels output by the vector mode Cordic module, namely h3,1,h3,2,h3,3,y3The rotation is performed.
Step 1, updating the amplitude generated in step 0 to h3,0Update h3,1,h3,2,h3,3,y3
H is solved by a control vector mode Cordic module3,0Sum constant σ0And outputting the iterative operation sign variables of each stage.
Controlling a rotation mode Cordic module to carry out iterative operation on symbol variables of all levels output by the vector mode Cordic module, namely h3,1,h3,2,h3,3,y3And 0 below them.
Step 2, updating the amplitude generated in the step 1 to h3,0Update h3,1,h3,2,h3,3,y3And n0,1,n0,2,n0,3,z0
Control vector mode Cordic module n0,1And outputting the iterative operation sign variables of each stage.
Controlling a rotary mode Cordic module to carry out iterative operation on symbol variables of each level output by the vector mode Cordic module for n0,2,n0,3,z0The rotation is performed.
Step 3, updating n by the amplitude generated in step 20,1Update n0,2,n0,3,z0
Control vector mode Cordic module n0,1And σ1And outputting the iterative operation sign variables of each stage.
Controlling a rotary mode Cordic module to carry out iterative operation on symbol variables of each level output by the vector mode Cordic module for n0,2,n0,3,z0And 0 below them.
Step 4, updating the amplitude generated in step 3 to n0,1Update n0,2,n0,3,z0And n1,2,n1,3,z1
Control vector mode Cordic module n1,2And outputting the iterative operation sign variables of each stage.
Controlling a rotary mode Cordic module to carry out iterative operation on symbol variables of each level output by the vector mode Cordic module for n1,3,z1The rotation is performed.
Step 5, amplitude updating n generated in step 41,2Update n1,3,z1
Control vector mode Cordic module n1,2And σ2And outputting the iterative operation sign variables of each stage.
Controlling a rotary mode Cordic module to carry out iterative operation on symbol variables of each level output by the vector mode Cordic module for n1,2n1,3,z1And 0 below them.
Step 6, updating the amplitude generated in step 5 to n1,2Update n1,3,z1And n2,3,z2
Control vector mode Cordic module n2,3And outputting each stage of iterative operation sign variable.
Controlling a rotary mode Cordic module to iteratively operate symbol variables for z according to each level output by the vector mode Cordic module2A selection rotation is performed.
Step 7, updating n by the amplitude generated in step 62,3Update z2
Control vector mode Cordic module n2,3And σ3And outputting the iterative operation sign variables of each stage.
Controlling a rotary mode Cordic module to iteratively operate symbol variables for z according to each level output by the vector mode Cordic module2And 0 therebelow
After step 7, H in the extended matrix H' is finished3,iCordic iteration of (1). Compared to fig. 2, this embodiment is for h3,iThe Cordic iteration number of (1) is shortened to 8 levels of running water.
In the above flowing water, steps 0 and 1 correspond to the Cordic step when j is 4 and i is 1, which may be regarded as operation a; steps 2 and 3 correspond to Cordic when j is 5 and i is 2, which may be taken as operation B; steps 4 and 5 correspond to the Cordic step when j is 6, i is 3, which may be taken as operation C; steps 6 and 7 correspond to the Cordic step when j is 7 and i is 4, which may be referred to as operation D.
According to the embodiment, the vector mode Cordic module and the rotation mode Cordic module can realize the QR decomposition process of the Givnes rotation algorithm in a parallel pipelining manner, so that the hardware overhead is reduced, the processing time is shortened, and the requirements of MIMO throughput and time delay are met.
Example 3
This example is a further modification of example 2. In this embodiment, for each row vector of the channel estimation matrix, further parallel computations are possible.
Specifically, in the present embodiment, the implementation process of the foregoing step S102 is as follows:
aiming at each row vector of a channel estimation matrix in the matrix to be decomposed, respectively executing the following iteration steps on the matrix to be decomposed: for a jth row vector of a channel estimation matrix, controlling the vector mode Cordic module to calculate a first amplitude of ith column data of a jth row, and controlling the plurality of rotation mode Cordic modules to rotate data after the ith column in the jth row in a one-to-one correspondence manner; when the first amplitude is updated to the ith row of data in the jth row, and the data after the ith row in the jth row are updated to the rotated data, controlling the vector mode Cordic module to calculate the second amplitude of the ith row of data in the jth row and the amplitude of the ith row of data in the j +1 th row, controlling the plurality of rotation mode Cordic modules to rotate the data after the ith row in the jth row and the jth +1 row in a one-to-one correspondence manner, enabling i to be i +1, j to be j +1, and repeatedly executing the steps until i is N +1, wherein the initial value of i is 1.
In this embodiment, when the above steps are performed for different row vectors of the channel estimation matrix in the to-be-decomposed matrix, some of the steps may be performed in parallel.
Still taking the aforementioned augmented matrix H' as an example, the pipeline of the Givens rotation-based QR decomposition method of the present embodiment is described as follows with reference to fig. 6;
step I: execution h3iOperation A of
Step II: execution h3iOperation B of h2iIn the operation (A) of (2),
step III: execution h3iOperation C of performing h2iOperation B of h1iIn the operation (A) of (2),
step IV: execution h3iOperation D of, perform h2iOperation C of performing h1iOperation B of h0iIn the operation (A) of (2),
step V: execution h2iOperation D of, perform h1iOperation C of performing h0iIn the operation (B) of (1),
step VI: execution h1iOperation D of, perform h0iOperation C of
Step VII: execution h0iOperation D of
And step VII, outputting a QR decomposition result of the augmentation matrix H' after the step VII is finished.
The embodiment can further reduce the hardware overhead and shorten the QR decomposition processing time.
Example 4
The present embodiment provides a QR decomposition system based on Givens rotation, as shown in fig. 7, the system includes:
a matrix obtaining module 11, configured to obtain a matrix to be decomposed;
and an iteration control module 12, configured to control the Cordic iterative operation circuit described in embodiment 1 to perform iterative operation on the matrix to be decomposed, so as to obtain an upper triangular matrix corresponding to the matrix to be decomposed.
In this embodiment, the matrix to be decomposed is an amplification matrix composed of M rows and N columns of channel estimation matrices, a received signal, and M rows and N columns of noise matrices, where M is greater than N.
Preferably, the iteration control module is specifically configured to:
controlling the vector mode Cordic module to calculate a first amplitude of ith column data of a jth row, and controlling the plurality of rotation mode Cordic modules to rotate data after the ith column in the jth row in a one-to-one correspondence manner; updating the first amplitude to ith row data of the jth row, updating ith row data of the jth row and ith column data of the jth row into rotated data, controlling the vector mode Cordic modules to calculate a second amplitude of ith row data of the jth row and ith row data of the jth +1 row, controlling the plurality of rotation mode Cordic modules to rotate the ith row data of the jth row and the ith column data of the jth +1 row in a one-to-one correspondence manner, enabling i to be i +1, j to be j +1, and repeatedly executing the steps until i is equal to N +1, enabling j to be M-k, k to be k +1, and i to be 1, and repeatedly executing the steps again until k is equal to M;
wherein j has an initial value of M, i has an initial value of 1, and k has an initial value of 1.
Further preferably, the iterative control module is specifically configured to:
aiming at each row vector of a channel estimation matrix in the matrix to be decomposed, respectively executing the following iteration steps on the matrix to be decomposed:
for a jth row vector of a channel estimation matrix, controlling the vector mode Cordic module to calculate a first amplitude of ith column data of a jth row, and controlling the plurality of rotation mode Cordic modules to rotate data after the ith column in the jth row in a one-to-one correspondence manner; when the first amplitude is updated to the ith row of data in the jth row, and the data after the ith row in the jth row are updated to the rotated data, controlling the vector mode Cordic modules to calculate the second amplitude of the ith row of data in the jth row and the amplitude of the ith row of data in the j +1 th row, controlling the plurality of rotation mode Cordic modules to rotate the data after the ith row in the jth row and the jth +1 row in a one-to-one correspondence manner, and making i equal to i +1 and j equal to j +1, and repeatedly executing the steps until i equal to N +1, wherein the initial value of i is 1;
wherein when the above steps are performed for different row vectors of the channel estimation matrix, part of the steps are performed in parallel.
According to the embodiment, the vector mode Cordic module and the rotation mode Cordic module can realize the QR decomposition process of the Givnes rotation algorithm in a parallel pipelining manner, so that the hardware overhead is reduced, the processing time is shortened, and the requirements of MIMO throughput and time delay are met.
For the embodiments of the present system, since they basically correspond to the embodiments of the method, the relevant points can be referred to the partial description of the embodiments of the method. The above described system embodiments are merely illustrative, wherein the units illustrated as separate components may or may not be physically separate, may be located in one place, or may be distributed over a plurality of network elements. Some or all of the modules can be selected according to actual needs to achieve the purpose of the scheme of the invention. One of ordinary skill in the art can understand and implement it without inventive effort.
Example 5
The present embodiment provides a MIMO system, including: the Cordic iterative operation circuit according to the foregoing embodiment 1, further comprising: the QR decomposition system according to the foregoing embodiment 4.
The MIMO system of the present embodiment can meet the requirements of high throughput and low latency.
Example 6
Fig. 8 is a schematic diagram of an electronic device according to an exemplary embodiment of the present invention, and illustrates a block diagram of an exemplary electronic device 60 suitable for implementing embodiments of the present invention. The electronic device 60 shown in fig. 8 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiment of the present invention.
As shown in fig. 8, the electronic device 60 may be embodied in the form of a general purpose computing device, which may be, for example, a server device. The components of the electronic device 60 may include, but are not limited to: the at least one processor 61, the at least one memory 62, and a bus 63 connecting the various system components (including the memory 62 and the processor 61).
The bus 63 includes a data bus, an address bus, and a control bus.
The memory 62 may include volatile memory, such as Random Access Memory (RAM)621 and/or cache memory 622, and may further include Read Only Memory (ROM) 623.
The memory 62 may also include a program tool 625 (or utility tool) having a set (at least one) of program modules 624, such program modules 624 including, but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which, or some combination thereof, may comprise an implementation of a network environment.
The processor 61 executes various functional applications and data processing, such as the methods provided by any of the above embodiments, by running a computer program stored in the memory 62.
The electronic device 60 may also communicate with one or more external devices 64 (e.g., keyboard, pointing device, etc.). Such communication may be through an input/output (I/O) interface 65. Also, the model-generating electronic device 60 may also communicate with one or more networks (e.g., a Local Area Network (LAN), a Wide Area Network (WAN), and/or a public network, such as the Internet) via a network adapter 66. As shown, network adapter 66 communicates with the other modules of model-generating electronic device 60 via bus 63. It should be appreciated that although not shown in the figures, other hardware and/or software modules may be used in conjunction with the model-generating electronic device 60, including but not limited to: microcode, device drivers, redundant processors, external disk drive arrays, RAID (disk array) systems, tape drives, and data backup storage systems, etc.
It should be noted that although in the above detailed description several units/modules or sub-units/modules of the electronic device are mentioned, such a division is merely exemplary and not mandatory. Indeed, the features and functionality of two or more of the units/modules described above may be embodied in one unit/module according to embodiments of the invention. Conversely, the features and functions of one unit/module described above may be further divided into embodiments by a plurality of units/modules.
Example 7
The present embodiment provides an execution machine readable storage medium having stored thereon an execution machine program, which when executed by a processor implements the steps of the method provided by any of the above embodiments.
More specific examples, among others, that the readable storage medium may employ may include, but are not limited to: a portable disk, a hard disk, random access memory, read only memory, erasable programmable read only memory, optical storage device, magnetic storage device, or any suitable combination of the foregoing.
In a possible implementation, the invention may also be implemented in the form of a program product comprising program code means for causing a terminal device to carry out the steps of implementing the method as provided by any of the embodiments described above, when said program product is run on the terminal device.
Where program code for carrying out the invention is written in any combination of one or more programming languages, the program code may be executed entirely on the user device, partly on the user device, as a stand-alone software package, partly on the user device and partly on a remote device or entirely on the remote device.
While specific embodiments of the invention have been described above, it will be appreciated by those skilled in the art that this is by way of example only, and that the scope of the invention is defined by the appended claims. Various changes and modifications to these embodiments may be made by those skilled in the art without departing from the spirit and scope of the invention, and these changes and modifications are within the scope of the invention.

Claims (13)

1. A Cordic iterative operation circuit comprising 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.
2. A QR decomposition method based on Givens rotation is characterized by comprising the following steps:
acquiring a matrix to be decomposed;
controlling a Cordic iterative operation circuit as claimed in claim 1 to perform an iterative operation on the matrix to be decomposed to obtain an upper triangular matrix corresponding to the matrix to be decomposed.
3. The rotational QR decomposition method according to claim 2, wherein the matrix to be decomposed is an amplification matrix composed of M rows and N columns of channel estimation matrices, a received signal, and M rows and N columns of noise matrices, where M is not less than N.
4. The QR decomposition method according to claim 3, wherein the controlling the Cordic iterative operation circuit to perform an iterative operation on the matrix to be decomposed to obtain an upper triangular matrix corresponding to the matrix to be decomposed comprises:
controlling the vector mode Cordic module to calculate a first amplitude of ith column data of a jth row, and controlling the plurality of rotation mode Cordic modules to rotate data after the ith column in the jth row in a one-to-one correspondence manner; updating the first amplitude to ith row data of the jth row, updating ith row data of the jth row and ith column data of the jth row into rotated data, controlling the vector mode Cordic modules to calculate a second amplitude of ith row data of the jth row and ith row data of the jth +1 row, controlling the plurality of rotation mode Cordic modules to rotate the ith row data of the jth row and the ith column data of the jth +1 row in a one-to-one correspondence manner, enabling i to be i +1, j to be j +1, and repeatedly executing the steps until i is equal to N +1, enabling j to be M-k, k to be k +1, and i to be 1, and repeatedly executing the steps again until k is equal to M;
wherein j has an initial value of M, i has an initial value of 1, and k has an initial value of 1.
5. The QR decomposition method according to claim 4, wherein the controlling the Cordic iterative operation circuit to perform iterative operation on the matrix to be decomposed to obtain an upper triangular matrix corresponding to the matrix to be decomposed comprises:
aiming at each row vector of a channel estimation matrix in the matrix to be decomposed, respectively executing the following iteration steps on the matrix to be decomposed:
for a jth row vector of a channel estimation matrix, controlling the vector mode Cordic module to calculate a first amplitude of ith column data of a jth row, and controlling the plurality of rotation mode Cordic modules to rotate data after the ith column in the jth row in a one-to-one correspondence manner; when the first amplitude is updated to the ith row of data in the jth row, and the data after the ith row in the jth row are updated to the rotated data, controlling the vector mode Cordic modules to calculate the second amplitude of the ith row of data in the jth row and the amplitude of the ith row of data in the j +1 th row, controlling the plurality of rotation mode Cordic modules to rotate the data after the ith row in the jth row and the jth +1 row in a one-to-one correspondence manner, and making i equal to i +1 and j equal to j +1, and repeatedly executing the steps until i equal to N +1, wherein the initial value of i is 1;
wherein when the above steps are performed for different row vectors of the channel estimation matrix, part of the steps are performed in parallel.
6. A Givens rotation-based QR decomposition system, comprising:
the matrix acquisition module is used for acquiring a matrix to be decomposed;
an iteration control module, configured to control the Cordic iterative operation circuit of claim 1 to perform an iterative operation on the matrix to be decomposed to obtain an upper triangular matrix corresponding to the matrix to be decomposed.
7. The QR decomposition system of claim 6 wherein the matrix to be decomposed is an augmented matrix consisting of M rows by N columns of channel estimation matrices, received signals, and M rows by N columns of noise matrices, where M is greater than N.
8. The QR decomposition system of claim 7 wherein the iterative control module is specifically configured to:
controlling the vector mode Cordic module to calculate a first amplitude of ith column data of a jth row, and controlling the plurality of rotation mode Cordic modules to rotate data after the ith column in the jth row in a one-to-one correspondence manner; updating the first amplitude to ith row data of the jth row, updating ith row data of the jth row and ith column data of the jth row into rotated data, controlling the vector mode Cordic modules to calculate a second amplitude of ith row data of the jth row and ith row data of the jth +1 row, controlling the plurality of rotation mode Cordic modules to rotate the ith row data of the jth row and the ith column data of the jth +1 row in a one-to-one correspondence manner, enabling i to be i +1, j to be j +1, and repeatedly executing the steps until i is equal to N +1, enabling j to be M-k, k to be k +1, and i to be 1, and repeatedly executing the steps again until k is equal to M;
wherein j has an initial value of M, i has an initial value of 1, and k has an initial value of 1.
9. The QR decomposition system of claim 7 wherein the iterative control module is specifically configured to:
aiming at each row vector of a channel estimation matrix in the matrix to be decomposed, respectively executing the following iteration steps on the matrix to be decomposed:
for a jth row vector of a channel estimation matrix, controlling the vector mode Cordic module to calculate a first amplitude of ith column data of a jth row, and controlling the plurality of rotation mode Cordic modules to rotate data after the ith column in the jth row in a one-to-one correspondence manner; when the first amplitude is updated to the ith row of data in the jth row, and the data after the ith row in the jth row are updated to the rotated data, controlling the vector mode Cordic modules to calculate the second amplitude of the ith row of data in the jth row and the amplitude of the ith row of data in the j +1 th row, controlling the plurality of rotation mode Cordic modules to rotate the data after the ith row in the jth row and the jth +1 row in a one-to-one correspondence manner, and making i equal to i +1 and j equal to j +1, and repeatedly executing the steps until i equal to N +1, wherein the initial value of i is 1;
wherein when the above steps are performed for different row vectors of the channel estimation matrix, part of the steps are performed in parallel.
10. A MIMO system, comprising:
cordic iterative operation circuit according to the previous claim 1.
11. The MIMO system of claim 10, further comprising:
the QR decomposition system according to any one of preceding claims 6-9.
12. An electronic device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, characterized in that the steps of the method according to any of claims 2 to 5 are implemented when the computer program is executed by the processor.
13. A computer-readable storage medium, on which a computer program is stored, which, when being executed by a processor, carries out the steps of the method according to any one of claims 2 to 5.
CN202110720065.3A 2021-06-28 2021-06-28 QR decomposition method, system, circuit, equipment and medium based on Givens rotation Active CN113595681B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110720065.3A CN113595681B (en) 2021-06-28 2021-06-28 QR decomposition method, system, circuit, equipment and medium based on Givens rotation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110720065.3A CN113595681B (en) 2021-06-28 2021-06-28 QR decomposition method, system, circuit, equipment and medium based on Givens rotation

Publications (2)

Publication Number Publication Date
CN113595681A true CN113595681A (en) 2021-11-02
CN113595681B CN113595681B (en) 2022-10-04

Family

ID=78244913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110720065.3A Active CN113595681B (en) 2021-06-28 2021-06-28 QR decomposition method, system, circuit, equipment and medium based on Givens rotation

Country Status (1)

Country Link
CN (1) CN113595681B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294649A (en) * 2013-05-23 2013-09-11 东南大学 Bilateral CORDIC arithmetic unit, and parallel Jacobian Hermite matrix characteristic decomposition method and implementation circuit based on bilateral CORDIC arithmetic unit.
CN110429985A (en) * 2018-05-15 2019-11-08 东南大学 A kind of fully integrated inexpensive high-speed, high precision Outphasing modulator
US20200373970A1 (en) * 2019-05-21 2020-11-26 Nxp Usa, Inc. Structured-pipelined cordic for matrix equalization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294649A (en) * 2013-05-23 2013-09-11 东南大学 Bilateral CORDIC arithmetic unit, and parallel Jacobian Hermite matrix characteristic decomposition method and implementation circuit based on bilateral CORDIC arithmetic unit.
CN110429985A (en) * 2018-05-15 2019-11-08 东南大学 A kind of fully integrated inexpensive high-speed, high precision Outphasing modulator
US20200373970A1 (en) * 2019-05-21 2020-11-26 Nxp Usa, Inc. Structured-pipelined cordic for matrix equalization

Also Published As

Publication number Publication date
CN113595681B (en) 2022-10-04

Similar Documents

Publication Publication Date Title
CN110188870B (en) Apparatus and method for performing artificial neural network self-learning operation
JP2021519455A (en) Systems and methods for large-scale parallel neural inference computing
CN107797962B (en) Neural network based computational array
US20140317376A1 (en) Digital Processor Having Instruction Set with Complex Angle Function
CN112204579A (en) Runtime reconfigurable neural network processor core
US8332451B2 (en) Programmable CORDIC Processor
CN112633508B (en) Quantum circuit generation method and device, storage medium and electronic device
CN107210984B (en) Method and apparatus for parallel QRD-based operations on a multiple execution unit processing system
CN115577776A (en) Method, device and equipment for determining ground state energy and storage medium
EP3444758B1 (en) Discrete data representation-supporting apparatus and method for back-training of artificial neural network
CN113595681B (en) QR decomposition method, system, circuit, equipment and medium based on Givens rotation
CN115577787A (en) Quantum amplitude estimation method, device, equipment and storage medium
EP3821376A1 (en) Hierarchical parallelism in a network of distributed neural network cores
CN115577782A (en) Quantum calculation method, device, equipment and storage medium
CN115577789A (en) Quantum entanglement degree determining method, device, equipment and storage medium
Bangqiang et al. Base-N logarithm implementation on FPGA for the data with random decimal point positions
US8452830B2 (en) Programmable CORDIC processor with stage re-use
CN117407640A (en) Matrix calculation method and device
CN104320106A (en) Gaussian particle filter hardware implementation method based on FPGA
Berger et al. An optimized reconfigurable system for computing the phylogenetic likelihood function on dna data
KR102230340B1 (en) Multiple input-output receiver based on gram-schmit qr decomposition and operation method thereof
CN117744818A (en) Constant adder based on quantum Fourier transform, operation method and related device
Lee et al. In Silico Methods for Space System Analysis: Optical Link Coding Performance and Lunar Terrain Masks
CN114611682A (en) Efficient method for VLSI implementation of useful neural network activation functions
Nicolas et al. Chebyshev approximation technique: analysis and applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant