The exemplary embodiments of the present invention relate to telecommunications network. More specifically, the exemplary embodiments of the present invention relate to receiving and processing data streams via a wireless communication network.
High speed communication networks, such as multiple-input-multiple-output (MIMO) communication networks are becoming increasingly utilized to provide high speed data transmission between user equipment. For example, in a MIMO system a transmitter utilizes multiple transmit antennas and a receiver utilizes multiple receive antennas.
In a MIMO receiver, a channel response can be measured for each path from a transmit antenna to a receive antenna to form an M×N channel matrix. In this case, to find the best performing equalizer (spatial equalizer/beamformer), the second order statistics (covariance matrix) of the received signals are analyzed using Eigenvalue decomposition. Thus, fast Eigenvalue decomposition is needed for better receiver performance.
However, fast Eigenvalue decomposition is difficult to implement with reasonable complexity. For example, a conventional receiver utilizes high precision operations (e.g., floating point computations (add/multiplication/division) that requires large amounts of logic, board space, memory, and costs.
Therefore, it is desirable to have a system to perform Eigenvalue decomposition in a fast and efficient manner.
In various exemplary embodiments, methods and apparatus are disclosed for implementing Eigenvalue decomposition to obtain the best receiver performance in a MIMO communication system. In an exemplary embodiment, a decomposition circuit is provided that operates to perform fast and efficient Eigenvalue decomposition in a receiver. In an embodiment, the decomposition circuit performs one or more iterations of a Jacobi rotation and utilizes table lookups to perform fast Eigenvalue decomposition with reduce logic, memory, space, and costs when compared to conventional systems.
In an exemplary embodiment, a method is provided for performing a decomposition iteration comprising operations of: identifying a largest off-diagonal term of a channel response matrix
In an exemplary embodiment, apparatus is provided that comprises a processor and a memory configured to perform a decomposition iteration comprising operations of: identifying a largest off-diagonal term of a channel response matrix
Additional features and benefits of the exemplary embodiments of the present invention will become apparent from the detailed description, figures and claims set forth below.
The exemplary aspect(s) of the present invention will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the invention, which, however, should not be taken to limit the invention to the specific embodiments, but are for explanation and understanding only.
In various exemplary embodiments, methods and apparatus for fast Eigenvalue decomposition in a communication network are disclosed.
The purpose of the following detailed description is to provide an understanding of one or more embodiments of the present invention. Those of ordinary skills in the art will realize that the following detailed description is illustrative only and is not intended to be in any way limiting. Other embodiments will readily suggest themselves to such skilled persons having the benefit of this disclosure and/or description.
In the interest of clarity, not all of the routine features of the implementations described herein are shown and described. It is understood that in the development of any such actual implementation, numerous implementation-specific decisions may be made in order to achieve the developer's specific goals, such as compliance with application and business-related constraints, and that these specific goals will vary from one implementation to another and from one developer to another. Moreover, it will be understood that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking of engineering for those of ordinary skills in the art having the benefit of the embodiments of this disclosure.
Various embodiments of the present invention illustrated in the drawings may not be drawn to scale. Rather, the dimensions of the various features may be expanded or reduced for clarity. In addition, some of the drawings may be simplified for clarity. Thus, the drawings may not depict all of the components of a given apparatus (e.g., device) or method. The same reference indicators will be used throughout the drawings and the following detailed description to refer to the same or like parts.
In various embodiments, the MIMO communication network 100 comprises a fourth generation (4G) long term evolution (LTE) or fifth generation (5G) new radio (NR) communication network. Aspects of the invention are also suitable for use with other types of communication networks. A more detailed description of the implementation and operation of the decomposition circuit 106 are provided below.
Various exemplary embodiments of the decomposition circuit 200 operate to compute Eigenvalues and Eigenvectors for a Hermitian matrix. In MIMO systems, all received signals are observed and/or formulated with matrix equations. The (2nd order) statistics of these signals appears as a “Hermitian” symmetric matrix. For example, a covariance matrix of the received signals has “Hermitian symmetric” properties. Generally, if a complex numbered matrix is equal to its Hermitian transpose (transpose+conjugate), (e.g., A=AH where H: Hermitian transpose) the matrix is referred to as a “Hermitian” matrix or “Hermitian symmetric matrix”
Eigenvalue Decomposition
To analyze a multi-dimension signal matrix, it can be decomposes as follows. Assume that (A=V E VH), where V is a Unitary matrix/Eigen matrix and E is a diagonal matrix. In most cases, each column of the Eigen matrix V indicates direction of each subspace. Also, diagonal elements of the diagonal matrix E indicate magnitude of the subspace. For example, a 3×3 matrix A could have 3 subspaces (3D space). Each column of Eigen matrix V indicates the direction of 3D space, and each diagonal element of E shows the length of that direction vector.
During operation, the decomposition circuit 200 processes the Hermitian matrix
The processor 202 operates to determine whether a largest off-diagonal term of the matrix
In an embodiment, the processor 202 repeats one or more iterations of the Jacobi rotation process until the largest off-diagonal term of the matrix
Accordingly, the decomposition circuit 200 operates to provide an efficient way to reduce the large off-diagonal terms of the received Hermitian matrix. For example, all the off-diagonal terms are Hermitian symmetric, so that an off-diagonal term xi,j=xj,i*, where * notes “complex conjugate”. That means that eliminating (or making it smaller or closer to a value near 0) one off-diagonal term xi,j by Jacobian rotation (multiplying a rotation matrix) eliminates its opposite off-diagonal term, and results in bigger diagonal terms xi,i and xj,j. In an embodiment, the decomposition circuit 200 performs one or more of the following operations to provide fast matrix decomposition.
A. Measuring the norm of upper or low diagonal elements of a received matrix and picking up the largest element that exceeds a threshold value.
B. Forming a 2×2 Hermitian matrix that includes the largest element.
C. Forming a 2×2 unitary matrix.
D. Multiplying the 2×2 Hermitian matrix and 2×2 unitary matrices together to generate updated elements of the received matrix.
E. Storing the updated elements in the received matrix.
F. Repeating one or more iterations of the above operations until all off-diagonal terms are less than the threshold or until a selected number of iterations are performed.
In various exemplary embodiments, the decomposition circuit 200 performs Eigenvalue decomposition while providing at least the following advantages.
A. Utilizing a small number of logic gates to provide low complexity/smaller die size.
B. Fast computation so that less clock cycles are needed to obtain the result.
C. Minimizes size of memory to result in small die size and less cost.
D. Accepts flexible input matrix sizes, which determine the total clock cycles to acquire the result.
E. The target accuracy is user-controllable as well as the total number of clock cycles needed to obtain the result.
Accordingly, the various embodiments of the decomposition circuit 200 operate to perform one or more iterations of a Jacobi rotation to reduce off-diagonal elements of a Hermitian matrix. A detailed description of the operation of the decomposition circuit 200 is provided with reference to
At block 302, a Hermitian matrix
At block 306, an off-diagonal element (or term) (xp,q) of the matrix
Norm value=|xp,q|2
At block 306, a determination is made as to whether the norm value of the largest off-diagonal term (xp,q) is less than a threshold. For example, the processor 202 makes this determination. If the norm value of the largest off-diagonal term is less than a threshold, the method proceeds to block 320. If the norm value of the largest off-diagonal term is not less than a threshold, the method proceeds to block 308.
At block 308, a Jacobi rotation begins by forming a 2×2 Hermitian matrix
At block 310, angles theta (θ) and phi (ϕ) are determined from the 2×2
θ=∠xp,q (or arg xp,q), where [ejθ=xp,q/|xp,q|]
At block 312, a Unitary matrix Ū2 is formed from the determined angles theta and phi. For example, the processor 202 forms the Unitary matrix Ū2 from the following expression.
At block 314, the Unitary matrix Ū2 is multiplied by the matrix
At block 316, the updated elements are stored in the matrix
At block 318, a determination is made as to whether a selected number of iterations of the Jacobi rotation (e.g., blocks 308-314) have been performed. For example, the processor 202 makes this determination. If a selected number of iterations of the Jacobi rotation have been performed, the method proceeds to block 320. If a selected number of iterations of the Jacobi rotation have not been performed, the method proceeds to block 304.
At block 320, the matrix
Thus, the method 300 operates to perform decomposition of a received signal matrix in a MIMO system. It should be noted that the method 300 is exemplary and that the operations may be rearranged, added to, deleted, combined, or otherwise modified within the scope of the embodiments.
In an embodiment, the means 404 for performing the decomposition iteration comprises means 410 for identifying a largest off-diagonal term of a channel response matrix
The means 404 for performing the decomposition iteration also comprises means 412 for generating a 2×2 Hermitian matrix
The means 404 for performing the decomposition iteration also comprises means 414 for generating a 2×2 unitary matrix Ū2 from the 2×2 Hermitian matrix, which in an embodiment comprises which in an embodiment comprises the operation of the processor 202 executing the instructions 204 and utilizes the memory 206 and lookup table 208 to perform this function as described herein.
The means 404 for performing the decomposition iteration also comprises means 416 for multiplying the 2×2 unitary matrix Ū2 with the 2×2 Hermitian matrix
The means 404 for performing the decomposition iteration also comprises means 418 for updating the channel response matrix
Implementing Basic Algorithms
In various embodiments, the processor 202 executes the instructions 204 and utilizes the lookup table 208 to implement one more of the following basic algorithms to perform the operations described herein.
A. Avoiding Integer Division and Square Root
In an embodiment, the processor 202 substitutes division with multiplication and uses the lookup table 208 in order to get more precision. For example, to divide a with b, the processor 202 performs the following operations.
1. Using b, find a proper weight (a) to make b a power of 2n from the lookup table 208;
2. Multiply the weight a with a; and
3. Perform an n-bit right shift on the result of the multiplication in (2).
B. Handling Complex Numbers with Sin and Cos Functions
When handling complex numbers, trigonometric functions, and converting an ordinary complex number into its magnitude and phase, unwanted division and square root operations may need to be performed. Using the above operations it is possible to minimize division and square root operations when handling complex-integer numbers, and thereby reduce complexity.
B1. Calculating
Consider an example to convert a complex number x=xr+jxi to rejθ.
1. Find |r|2=xr2+xi2 and using it, find a weight a to make it power of two (22n). Now |r| is scaled to 2n.
2. Multiply a to both xr and xi.
3. Perform n-bit right shift to both xr and xi.
4. Now cos θ and sin θ are determined from bit shifted xr and xi.
B2 Calculating θ
1. Find
2. Applying the result to an ARCTAN function lookup table or approximated ARCTAN function.
3. Arrive at θ as a result.
Eigenvalue Decomposition
Eigenvalue decomposition begins with calculating a Jacobian rotation matrix as an Eigen matrix for a 2×2 Hermitian matrix as follows.
Start with a Hermitian matrix
where x0 and x3 are real numbers, and x1 is a complex number. The matrix X can be decomposed as:
where x2 is a real number, and x1=x2ejθ, and θ=∠x1.
If a Jacobian rotation matrix
diagonalizes a real-numbered symmetric matrix
it has the following properties.
and
Therefore, a complex rotation matrix which diagonalizes X can be written as:
so that;
While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein, changes and modifications may be made without departing from this exemplary embodiments of the present invention and its broader aspects. Therefore, the appended claims are intended to encompass within their scope all such changes and modifications as are within the true spirit and scope of these exemplary embodiments.
This application claims the benefit under 35 U.S.C. § 119 of U.S. Provisional Patent Application No. 63/027,912 filed on May 20, 2020 and entitled “METHOD AND APPARATUS FOR FAST EIGENVALUE DECOMPOSITION OF HERMITIAN MATRIX” and U.S. Provisional Patent Application No. 63/037,487 filed on Jun. 10, 2020 and entitled “INTEGER APPROXIMATION OF EIGEN VALUE DECOMPOSITION,” both of which are incorporated by reference herein in their entireties.
Number | Name | Date | Kind |
---|---|---|---|
20060155798 | Ketchum | Jul 2006 | A1 |
20060245513 | Koo | Nov 2006 | A1 |
Number | Date | Country | |
---|---|---|---|
63037487 | Jun 2020 | US | |
63027912 | May 2020 | US |