WO2006053340A2 - Eigenvalue decomposition and singular value decomposition of matrices using jacobi rotation - Google Patents

Eigenvalue decomposition and singular value decomposition of matrices using jacobi rotation Download PDF

Info

Publication number
WO2006053340A2
WO2006053340A2 PCT/US2005/041783 US2005041783W WO2006053340A2 WO 2006053340 A2 WO2006053340 A2 WO 2006053340A2 US 2005041783 W US2005041783 W US 2005041783W WO 2006053340 A2 WO2006053340 A2 WO 2006053340A2
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
jacobi rotation
submatrix
processor
matrices
Prior art date
Application number
PCT/US2005/041783
Other languages
French (fr)
Other versions
WO2006053340A3 (en
Inventor
John W. Ketchum
J. Rodney Walton
Mark S. Wallace
Steven J. Howard
Hakan Inanoglu
Original Assignee
Qualcomm Incorporated
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 Qualcomm Incorporated filed Critical Qualcomm Incorporated
Priority to CA2588176A priority Critical patent/CA2588176C/en
Priority to KR1020077013411A priority patent/KR101084792B1/en
Priority to EP20050851789 priority patent/EP1828923A2/en
Priority to JP2007541491A priority patent/JP4648401B2/en
Priority to CN2005800464414A priority patent/CN101390351B/en
Publication of WO2006053340A2 publication Critical patent/WO2006053340A2/en
Priority to IN1928DEN2012 priority patent/IN2012DN01928A/en
Publication of WO2006053340A3 publication Critical patent/WO2006053340A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0202Channel estimation
    • H04L25/024Channel estimation channel estimation algorithms
    • H04L25/0242Channel estimation channel estimation algorithms using matrix methods
    • H04L25/0248Eigen-space methods

Definitions

  • the present invention relates generally to communication, and more specifically to techniques for decomposing matrices.
  • a multiple-input multiple-output (MIMO) communication system employs multiple (T) transmit antennas at a transmitting station and multiple (R) receive antennas at a receiving station for data transmission.
  • a MIMO channel formed by the T transmit antennas and the R receive antennas may be decomposed into S spatial channels, where S ⁇ min ⁇ T, R ⁇ .
  • the S spatial channels may be used to transmit data in a manner to achieve higher overall throughput and/or greater reliability.
  • a MIMO channel response may be characterized by an R xT channel response matrix H , which contains complex channel gains for all of the different pairs of transmit and receive antennas.
  • the channel response matrix H may be diagonalized to obtain S eigenmodes, which may be viewed as orthogonal spatial channels of the MEvIO channel. Improved performance may be achieved by transmitting data on the eigenmodes of the MIMO channel.
  • the channel response matrix H may be diagonalized by performing either singular value decomposition of H or eigenvalue decomposition of a correlation matrix of H .
  • the singular value decomposition provides left and right singular vectors
  • the eigenvalue decomposition provides eigenvectors.
  • the transmitting station uses the right singular vectors or the eigenvectors to transmit data on the S eigenmodes.
  • the receiving station uses the left singular vectors or the eigenvectors to receive data transmitted on the S eigenmodes.
  • multiple iterations of Jacobi rotation are performed on a first matrix of complex values with multiple Jacobi rotation matrices of complex values to zero out the off-diagonal elements in the first matrix.
  • the first matrix may be a channel response matrix a correlation matrix of which is or some other matrix.
  • a submatrix may be formed based on the first matrix and decomposed to obtain eigenvectors for the submatrix, and a Jacobi rotation matrix may be formed with the eigenvectors and used to update the first matrix.
  • a second matrix of complex values is derived based on the Jacobi rotation matrices.
  • the second matrix contains orthogonal vectors and may be a matrix of right singular vectors o r eigenvectors of
  • a third matri f eigenvalues may be derived based on the Jacobi rotation matrices.
  • SVD singular value decomposition
  • a third matrix of complex values may be derived based on the Jacobi rotation matrices
  • a fourth matri ith orthogonal vectors may be derived based on the third matrix
  • a matrix of singular values may also be derived based on the third matrix
  • a third matrix with orthogonal vectors and a matri of singular values may be derived based on the Jacobi rotation matrices.
  • FIG. 1 shows a process for performing eigenvalue decomposition using Jacobi rotation.
  • FIG. 2 shows a process for performing singular value decomposition using
  • FIG. 3 shows a process for performing singular value decomposition using
  • FIG. 4 shows a process for decomposing a matrix using Jacobi rotation.
  • FIG. 5 shows an apparatus for decomposing a matrix using Jacobi rotation.
  • FIG. 6 shows a block diagram of an access point and a user terminal.
  • the matrix decomposition techniques described herein may be used for various communication systems such as a single-carrier communication system with a single frequency subband, a multi-carrier communication system with multiple subbands, a single-carrier frequency division multiple access (SC-FDMA) system with multiple subbands, and other communication systems.
  • Multiple subbands may be obtained with orthogonal frequency division multiplexing (OFDM), some other modulation techniques, or some other construct.
  • OFDM partitions the overall system bandwidth into multiple (K) orthogonal subbands, which are also called tones, subcarriers, bins, and so on.
  • K orthogonal frequency division multiplexing
  • each subband is associated with a respective subcarrier that may be modulated with data.
  • An SC-FDMA system may utilize interleaved FDMA (IFDMA) to transmit on subbands that are distributed across the system bandwidth, localized FDMA (LFDMA) to transmit on a block of adjacent subbands, or enhanced FDMA (EFDMA) to transmit on multiple blocks of adjacent subbands.
  • IFDMA interleaved FDMA
  • LFDMA localized FDMA
  • EFDMA enhanced FDMA
  • modulation symbols are sent in the frequency domain with OFDM and in the time domain with SC-FDMA.
  • a MIMO channel formed by multiple (T) transmit antennas and multiple (R) receive antennas may be characterized by an R xT channel response matrix , which may be given as:
  • the channel response matri may be diagonalized to obtain multiple (S) eigenmodes o where S ⁇ min ⁇ T, R ⁇ .
  • the diagonalization may be achieved by, for example, performing either singular value decomposition of or eigenvalue decomposition of a correlation matrix o [0021]
  • the eigenvalue decomposition may be expressed as:
  • the unitary matrix is characterized by the property where s the identity matrix.
  • the columns of the unitary matrix are orthogonal to one another, and each column has unit power.
  • the diagonal matri contains possible non-zero values along the diagonal and zeros elsewhere.
  • the diagonal elements o are eigenvalues of . These eigenvalues are denoted as and represent the power gains for the S eigenmodes.
  • the singular value decomposition may be expressed as: where s an R xR unitary matrix of left singular vectors of s an R xT diagonal matrix of singular values o and s a T x T unitary matrix of right singular vectors o
  • Equations (2) and (3) indicate that the right singular vectors o are also the eigenvectors of The diagonal elements of ⁇ are the singular values of These singular values are denoted as and represent the channel gains for the S eigenmodes.
  • the singular values o are also the square roots of the eigenvalues o , so tha
  • a transmitting station may use the right singular vectors in to transmit data on the eigenmodes of Transmitting data on eigenmodes typically provides better performance than simply transmitting data from the T transmit antennas without any spatial processing.
  • a receiving station may use the left singular vectors in r the eigenvectors i to receive the data transmission sent on the eigenmodes of Table 1 shows the spatial processing performed by the transmitting station, the received symbols at the receiving station, and the spatial processing performed by the receiving station.
  • s is a TxI vector with up to S data symbols to be transmitted
  • x is a TxI vector with T transmit symbols to be sent from the T transmit antennas
  • r is an R xI vector with R received symbols obtained from the R receive antennas
  • n is an R xI noise vector
  • s is a TxI vector with up to S detected data symbols, which are estimates of the data symbols in s .
  • Eigenvalue decomposition and singular value decomposition of a complex matrix may be performed with an iterative process that uses Jacobi rotation, which is also commonly referred to as Jacobi method and Jacobi transformation.
  • Jacobi rotation zeros out a pair of off-diagonal elements of the complex matrix by performing a plane rotation on the matrix.
  • Jacobi rotation For a 2x2 complex Hermitian matrix, only one iteration of the Jacobi rotation is needed to obtain the two eigenvectors and two eigenvalues for this 2x2 matrix.
  • the iterative process performs multiple iterations of the Jacobi rotation to obtain the desired eigenvectors and eigenvalues, or singular vectors and singular values, for the larger complex matrix.
  • Each iteration of the Jacobi rotation on the larger complex matrix uses the eigenvectors of a 2x2 submatrix, as described below.
  • Hermitian matri may be performed as follows.
  • the Hermitian matri may be expressed as:
  • angle ⁇ may be expressed as:
  • a 2x2 unitary matrix of eigenvectors of may be derived as:
  • the two eigenvalues A 1 and A 2 may be derived based on equation (6), or based on the equatio as follows:
  • the ordering of the two eigenvalues is not fixed, and A 1 may be larger or smaller than However, if angle ⁇ is constrained such that then co , and sin if and only if D > A .
  • the two eigenvalues may also be computed directly from the elements of as follows:
  • Equation (10) is the solution to a characteristic equation of In equation (10), is obtained with the plus sign for the second quantity on the right hand side, an is obtained with the minus sign for the second quantity, where [0032] Equation (8) requires the computation of cos ⁇ and sin ⁇ to derive the elements of The computation of cos ⁇ and sin ⁇ is complex.
  • the elements of may be computed directly from the elements o , as follows:
  • r lil3 r lj2 and r 2>1 are elements o and r is the magnitude of r 1;2 . Since ⁇ 1 is a complex value contains complex values in the second row.
  • Equation set (11) is designed to reduce the amount of computation to derive fro For example, in equations (lie), (lid), and (Hf), division by r is required. Instead, r is inverted to obtain r ⁇ , and multiplication by r ⁇ is performed for equations (lie), (lid), and (Hf). This reduces the number of divide operations, which are computationally more expensive than multiplies.
  • Equation set (11) performs a complex Jacobi rotation on to obtain
  • Equation set (11) The set of computations in equation set (11) is designed to reduce the number of multiply, square root, and invert operations required to deri This can greatly reduce computational complexity for decomposition of a larger size matrix using
  • the eigenvalues o may be computed as follows:
  • 2x2 may be performed with an iterative process.
  • This iterative process uses the Jacobi rotation repeatedly to zero out the off-diagonal elements in the NxN Hermitian matrix.
  • NxN unitary transformation matrices are formed based on 2 x 2 Hermitian submatrices of the NxN Hermitian matrix and are repeatedly applied to diagonalize the NxN Hermitian matrix.
  • Each unitary transformation matrix contains four non-trivial elements (i.e., elements other than 0 or 1) that are derived from elements of a corresponding 2x2 Hermitian submatrix.
  • the transformation matrices are also called Jacobi rotation matrices.
  • the resulting diagonal matrix contains the real eigenvalues of the NxN Hermitian matrix, and the product of all of the unitary transformation matrices is an N xN matrix of eigenvectors for the- NxN
  • An N x N matri is an approximation of the diagonal matrix of eigenvalues of and is initialized as
  • An N X N matrix is an approximation of the matrix of eigenvectors o and is initialized as [0038]
  • a single iteration of the Jacobi rotation to update matrices an may be performed as follows. First, a 2x2 Hermitian matrix is formed based on the curren as follows:
  • Eigenvalue decomposition of is then performed, e.g., as shown in equation set (11), to obtain a 2x2 unitary matrix of eigenvectors of For the eigenvalue decomposition o m equation (4) is replaced with an from equation (111) is provided as
  • T_ pq is an identity matrix with the four elements at locations (p, p) , (p,q) , (q,p) and (q,q) replaced with the (1, 1), (1, 2), (2, 1) and (2, 2) elements, respectively, of has the following form:
  • Equation (111) indicates that is a complex matrix containing complex values for v 2jl and ⁇ > 2>2 . is also called a transformation matrix that performs the Jacobi rotation. [0041] Matrix s then updated as follows:
  • Equation (15) zeros out two off-diagonal elements d P ⁇ and d q ⁇ at locations (p,q) and (q, p) , respectively, in The computation may alter the values of the other off- diagonal elements in [0042]
  • Matrix is also updated as follows:
  • indices p and q may be selected in a predetermined manner by sweeping through all possible values.
  • a single sweep across all possible values for indices p and q may be performed as follows.
  • the index p may be stepped from 1 through N -I in increments of one.
  • the index q may be stepped from p + 1 through N in increments of one.
  • An iteration of the Jacobi rotation to updat nd ay be performed for each different combination of values for p and q.
  • For each iteration, is formed based on the values of p and q and the curren for that iteration, s computed for as shown in equation set (11), s formed with as shown in equation (14), s updated as shown in equation (15), an s updated as shown in equation (16).
  • the Jacobi rotation to update nd may be skipped if the magnitude of the off-diagonal elements at locations (p,q) and (q, p) i is below a predetermined threshold.
  • a sweep consists of N - (N -I)/ 2 iterations of the Jacobi rotation to update an or all possible values of p and q.
  • Each iteration of the Jacobi rotation zeros ou two off-diagonal elements o but may alter other elements that might have been zeroed out earlier.
  • the effect of sweeping through indices p and q is to reduce the magnitude of all off-diagonal elements of so that approaches the diagonal matri contains an accumulation of all Jacobi rotation matrices that collectively giv Thus, approaches approaches A .
  • any number of sweeps may be performed to obtain more and more accurate approximations o and Computer simulations have shown that four sweeps should be sufficient to reduce the off -diagonal elements o o a negligible level, and three sweeps should be sufficient for most applications.
  • a predetermined number of sweeps e.g., three or four sweeps
  • the off-diagonal elements of may be checked after each sweep to determine whether is sufficiently accurate. For example, the total error (e.g., the power in all off-diagonal elements of may be computed after each sweep and compared against an error threshold, and the iterative process may be terminated if the total error is below the error threshold. Other conditions or criteria may also be used to terminate the iterative process.
  • indices p and q may also be selected in a deterministic manner.
  • the largest off-diagonal element of may be identified and denoted as Jacobi rotation may then be performed with containing this largest off-diagonal element d PA and three other elements at locations (p, p) , (q, p) , and ⁇ q,q) in The iterative process may be performed until a termination condition is encountered.
  • the termination condition may be, for example, completion of a predetermined number of iterations, satisfaction of the error criterion described above, or some other condition or criterion.
  • the final s a good approximation of and the final s a good approximation of The columns of ay be provided as the eigenvectors o and the diagonal elements o ay be provided as the eigenvalues of .
  • the eigenvalues in the final re ordered from largest to smallest because the eigenvectors in for each iteration are ordered.
  • the eigenvectors in the fin are also ordered based on their associated eigenvalues in
  • the values for indices p and q are selected in a predetermined manner (e.g., by stepping through all possible values for these indices) or a deterministic manner (e.g., by selecting the index values for the largest off-diagonal element) (block 112).
  • a 2x2 matri is then formed with four elements of matrix at the locations determined by indices p and q (block 114).
  • Eigenvalue decomposition o is then performed, e.g., as shown in equation set (11), to obtain a 2x2 matrix of eigenvectors of block 116).
  • An NxN complex Jacobi rotation matri is then formed based on matrix as shown in equation (14) (block 118).
  • Matrix is then updated based on s shown in equation (15) (block 120).
  • Matri is also updated based on s shown in equation (16) (block 122).
  • the termination criterion may be based on the number of iterations or sweeps already performed, an error criterion, and so on. If the answer is 'No' for block 124, then index / is incremented (block 126), and the process returns to block 112 for the next iteration. Otherwise, if termination is reached, then matrix is provided as an approximation of diagonal matrix and matri is provided as an approximation of matrix of eigenvectors o (block 128).
  • a MIMO system with multiple subbands e.g., a MIMO system that utilizes
  • multiple channel response matrices may be obtained for different subbands.
  • the iterative process may be performed for each channel response matrix to obtain matrices and , which are approximations of diagonal matrix nd matri f eigenvectors, respectively, o
  • a high degree of correlation typically exists between adjacent subbands in a
  • the iterative process may be performed for one subband at a time, starting from one end of the system bandwidth and traversing toward the other end of the system bandwidth.
  • the final solutio obtained for the prior subband Jc -I may be used as an initial solution for the current subband Jc.
  • the initialization for each subband Jc may be given as: and The iterative process then operates on the initial solutions of and for subband Jc until a termination condition is encountered.
  • the concept described above may also be used across time. For each time interval t, the final solution obtained for a prior time interval t - 1 may be used as an initial solution for the current time interval t. The initialization for each time and where esponse matrix for time interval t. The iterative process then operates on the initial solutions of and for time interval t until a termination condition is encountered.
  • the concept may also be used across both frequency and time. For each subband in each time interval, the final solution obtained for a prior subband and/or the final solution obtained for a prior time interval may be used as an initial solution for the current subband and time interval. 2.
  • the iterative process may also be used for singular value decomposition of an arbitrary complex matri that is larger than 2x2.
  • the singular value decomposition o is given as .
  • matrix and matri are both Hermitian matrices.
  • right singular vectors o which are the columns of are also eigenvectors o
  • left singular vectors of which are the columns of are also eigenvectors of
  • the non-zero eigenvalues o re equal to the non-zero eigenvalues o and are the square of corresponding singular values of
  • a 2x2 matrix f complex values may be expressed as:
  • the right singular vectors o are the eigenvectors of and may be computed using the eigenvalue decomposition described above in equation set (11).
  • a 2 x 2 Hermitian matrix is defined as and the elements of may be computed based on the elements o , as follows:
  • Equation set (11) may be applied t to obtain a matri ontains the eigenvectors o which are also the right singular vectors of
  • the left singular vectors o are the eigenvectors of and may also be computed using the eigenvalue decomposition described above in equation set (11).
  • a 2x2 Hermitian matrix is defined as and the elements of may be computed based on the elements o as follows:
  • Equation set (11) may be applied to o obtain a matrix contains the eigenvectors of which are also the left singular vectors o
  • N xN Hermitian matrix ay be used for singular value decomposition of an arbitrary complex matrix larger than 2x2. as a dimension of R xT , where R is the number of rows and T is the number of columns.
  • the iterative process for singular value decomposition (SVD) o may be performed in several manners.
  • a T xT matrix is an approximation of and is initialized as
  • An R x T matrix is an approximation o and is initialized as
  • the elements o may be computed as follows:
  • a T xT complex Jacobi rotation matrix is then formed with matrix is an identity matrix with the four elements at locations (p, p) , (p,q) , (q, p) and (q, q) replaced with the (1, 1), (1, 2), (2, 1) and (2, 2) elements, respectively, of has the form shown in equation (14).
  • Matrix is also updated as follows:
  • the iterative process repeatedly zeros out off- diagonal elements of without explicitly computin
  • the indices p and q may be swept by stepping p from 1 through T - I and, for each value of p, stepping q from p + 1 through T.
  • the values of p and q for which is largest may be selected for each iteration.
  • the iterative process is performed until a termination condition is encountered, which may be a predetermined number of sweeps, a predetermined number of iterations, satisfaction of an error criterion, and so on.
  • a termination condition which may be a predetermined number of sweeps, a predetermined number of iterations, satisfaction of an error criterion, and so on.
  • FIG. 2 shows an iterative process 200 for performing singular value decomposition of an arbitrary complex matrix hat is larger than 2x2 using Jacobi rotation, in accordance with the first SVD embodiment.
  • the values for indices p and q are selected in a predetermined or deterministic manner (block 212).
  • a 2x2 matrix s then formed with four elements of matrix 1 at the locations determined by indices p and q as shown in equation set (20) (block 214).
  • Eigenvalue decomposition o is then performed, e.g., as shown in equation set (11), to obtain a 2x2 matrix of eigenvectors of (block 216).
  • a TxT complex Jacobi rotation matri formed based on matrix , as shown in equation (14) (block 218).
  • Matrix is then updated based o as shown in equation (21) (block 220).
  • Matrix s also updated based on as shown in equation (22) (block 222).
  • the termination criterion may be based on the number of iterations or sweeps already performed, an error criterion, and so on. If the answer is 'No' for block 224, then index i is incremented (block 226), and the process returns to block 212 for the next iteration. Otherwise, if termination is reached, then post processing is performed on to obtain d (block 228).
  • Matrix is provided as an approximation of matrix of right singular vectors o
  • matrix is provided as an approximation of matri of left singular vectors of nd matrix is provided as an approximation of matri f singular values o (block 230)
  • the left singular vectors of may be obtained by performing the first SVD embodiment and solving for scaled left singular vectors and then normalizing.
  • the left singular vectors of may also be obtained by performing the iterative process for eigenvalue decomposition o
  • the left singular vectors o re also the right singular vectors of The right singular vectors of may be computed using Jacobi rotation, as described above for equation set (18).
  • the left singular vectors of ay be obtained by computing the right singular vectors of sing Jacobi rotation, as described above for equation set (19).
  • a T xT matri is an approximation of and is initialized as An R X R matrix s an approximation of n is initialized a
  • An R xT matri is an approximation of ⁇ and is initialized as [0074]
  • a single iteration of the Jacobi rotation to update matrices and may be performed as follows. First, a 2x2 Hermitian matrix s formed based on the current s a 2x2 submatrix of and contains four elements at locations (P 1 ⁇ 1 ) , ( ⁇ 1 , # 1 ) > ( ⁇ v P ⁇ ) an ⁇ ⁇ (#i > #i) m
  • Indices p ⁇ and q ⁇ are such that and p x ⁇ q x .
  • Indices p ⁇ and ⁇ 1 may be selected in various manners, as described below.
  • Eigenvalue decomposition of is then performed, e.g., as shown in equation set (11), to obtain a 2x2 matrix of eigenvectors of For this eigenvalue decomposition, is replaced with and is provided as A TxT complex Jacobi rotation matrix is then formed with matrix and contains the four elements of at location and has the form shown in equation (14).
  • Another 2x2 Hermitian matrix is also formed based on the current is a 2x2 submatrix of and contains elements at locations (p 2 ,p 2 ) , anc * m
  • the elements o may be computed as follows:
  • Matrix is updated as follows:
  • the indices p ⁇ and q ⁇ may be swept by stepping p ⁇ from 1 through T- I and, for each value of p ⁇ , stepping q ⁇ from P 1 + 1 through T.
  • the indices p 2 and ⁇ j 2 may also be swept by stepping ⁇ 2 from 1 through R -I and, for each value of p 2 , stepping q t from p 2 + 1 through R.
  • a set of p ⁇ and q ⁇ may be selected, then a set of p 2 and g 2 may be selected, then a new set of pi and ⁇ r 1 may be select, then a new set of /? 2 and ⁇ 2 may be selected, and so on, so that new values are alternately selected for indices p ⁇ and q ⁇ and indices /? 2 and ⁇ 2 .
  • the values Of ⁇ 1 and q ⁇ for whic is largest may be selected, and the values of /? 2 and g 2 for which is largest may be selected.
  • the iterative process is performed until a termination condition is encountered, which may be a predetermined number of sweeps, a predetermined number of iterations, satisfaction of an error criterion, and so on.
  • a termination condition which may be a predetermined number of sweeps, a predetermined number of iterations, satisfaction of an error criterion, and so on.
  • the final is a good approximation o the final is a good approximation of and the final is a good approximation o where and may be rotated versions of and respectively.
  • the computation described above does not sufficiently constrain the left and right singular vector solutions so that the diagonal elements of the final are positive real values.
  • the elements of the final may be complex values whose magnitudes are equal to the singular values o an may be unrotated as follows:
  • FIG. 3 shows an iterative process 300 for performing singular value decomposition of an arbitrary complex matrix that is larger than 2x2 using Jacobi rotation, in accordance with the second SVD embodiment.
  • Matrices and are initialized a and index i is initialized as i 1 (block 310).
  • index i 1 (block 310).
  • the values for indices p ⁇ , q ⁇ , p 2 and q 2 are selected in a predetermined or deterministic manner (block 312).
  • a 2x2 matrix is formed with four elements of matrix at the locations determined by indices p ⁇ and q ⁇ , as shown in equation set (23) (block 314).
  • Eigenvalue decomposition of is then performed, e.g., as shown in equation set (11), to obtain a 2x2 matrix of eigenvectors o (block 316).
  • a TxT complex Jacobi rotation matrix is then formed based on matri ( v block 318) '.
  • a 2x2 matrix s also formed with four elements of matrix at the locations determined by indices p 2 and # 2 , as shown in equation set (24) (block 324).
  • Eigenvalue decomposition of is then performed, e.g., as shown in equation set (11), to obtain a 2x2 matrix of eigenvectors of block 326).
  • An R xR complex Jacobi rotation matrix s then formed based on matri (block 328).
  • Matrix is updated based on as shown in equation (26) (block 332).
  • Matrix is updated based on and as shown in equation (27) (block 334).
  • the termination criterion may be based on the number of iterations or sweeps already performed, an error criterion, and so on. If the answer is 'No' for block 336, then index i is incremented (block 338), and the process returns to block 312 for the next iteration. Otherwise, if termination is reached, then post processing is performed on nd obtai nd block 340).
  • Matrix is provided as an approximation o
  • matrix is provided as an approximation
  • matrix s provided as an approximation of block 342)
  • the right singular vectors in the final nd the left singular vectors in the final or are ordered from the largest to smallest singular values because the eigenvectors in (for the first SVD embodiment) and the eigenvectors in and (for the second SVD embodiment) for each iteration are ordered.
  • the iterative process may be performed for each channel response matrix to obtain matrices an which are approximations of the matrix of right singular vectors, the matrix of left singular vectors, and the diagonal matrix f singular values, respectively, for tha
  • the iterative process may be performed for one subband at a time, starting from one end of the system bandwidth and traversing toward the other end of the system bandwidth.
  • the final solutio obtained for the prior subband k - 1 may be used as an initial solution for the current subband k, so that and
  • the final solution nd btained for the prior subband k — 1 may be used as initial solutions for the current subband k, so that
  • the iterative process operates on the initial solutions for subband k until a termination condition is encountered for the subband.
  • the concept may also be used across time or both frequency and time, as described above.
  • FIG. 4 shows a process 400 for decomposing a matrix using Jacobi rotation.
  • the first matrix may be a channel response matri , a correlation or some other matrix.
  • the Jacobi rotation matrices may b r some other matrices.
  • a submatrix may be formed based on the first matrix and decomposed to obtain eigenvectors for the submatrix, and a Jacobi rotation matrix may be formed with the eigenvectors and used to update the first matrix.
  • a second matrix of complex values is derived based on the multiple Jacobi rotation matrices (block 414).
  • the second matrix contains orthogonal vectors and may be matrix of right singular vectors o r eigenvectors o
  • a third matrix f eigenvalues may be derived based on the multiple Jacobi rotation matrices (block 420).
  • a third matri of complex values may be derived based on the multiple Jacobi rotation matrices
  • a fourth matri with orthogonal vectors may be derived based on the third matrix
  • a matri of singular values may also be derived based on the third matri (block 422).
  • a third matrix with orthogonal vectors and a matrix of singular values may be derived based on the multiple Jacobi rotation matrices (block 424).
  • FIG. 5 shows an apparatus 500 for decomposing a matrix using Jacobi rotation.
  • Apparatus 500 includes means for performing multiple iterations of Jacobi rotation on a first matrix of complex values with multiple Jacobi rotation matrices of complex values (block 512) and means for deriving a second matri of complex values based on the multiple Jacobi rotation matrices (block 514).
  • apparatus 500 further includes means for deriving a third matri f eigenvalues based on the multiple Jacobi rotation matrices (block 520).
  • apparatus 500 further includes means for deriving a third matrix of complex values based on the multiple Jacobi rotation matrices, a fourth matrix with orthogonal vectors based on the third matrix, and a matrix of singular values based on the third matrix (block 522).
  • apparatus 500 further includes means for deriving a third matri ith orthogonal vectors and a matrix of singular values based on the multiple Jacobi rotation matrices (block 524).
  • FIG. 6 shows a block diagram of an embodiment of an access point 610 and a user terminal 650 in a MJJVIO system 600.
  • Access point 610 is equipped with multiple (N ap ) antennas that may be used for data transmission and reception.
  • User terminal 650 is equipped with multiple (N ut ) antennas that may be used for data transmission and reception.
  • a transmit (TX) data processor 614 receives traffic data from a data source 612 and other data from a controller/processor 630. TX data processor 614 formats, encodes, interleaves, and modulates the received data and generates data symbols, which are modulation symbols for data.
  • a TX spatial processor 620 receives and multiplexes the data symbols with pilot symbols, performs spatial processing with eigenvectors or right singular vectors if applicable, and provides N ap streams of transmit symbols to N ap transmitters (TMTR) 622a through 622ap. Each transmitter 622 processes its transmit symbol stream and generates a downlink modulated signal. N ap downlink modulated signals from transmitters 622a through 622ap are transmitted from antennas 624a through 624ap, respectively.
  • N ut antennas 652a through 652ut receive the transmitted downlink modulated signals, and each antenna 652 provides a received signal to a respective receiver (RCVR) 654.
  • Each receiver 654 performs processing complementary to the processing performed by transmitters 622 and provides received symbols.
  • a receive (RX) spatial processor 660 performs spatial matched filtering on the received symbols from all receivers 654a through 654ut and provides detected data symbols, which are estimates of the data symbols transmitted by access point 610.
  • An RX data processor 670 further processes (e.g., symbol demaps, deinterleaves, and decodes) the detected data symbols and provides decoded data to a data sink 672 and/or a controller/processor 680.
  • a channel processor 678 processes received pilot symbols and provides an estimate of the downlink channel response, for each subband of interest.
  • Processor 678 and/or 680 may decompose each matrix using the techniques described herein to obtai an hich are estimates of nd or the downlink channel response matrix
  • Processor 678 and/or 680 may derive a downlink spatial filter matrix for each subband of interest based on as shown in Table 1.
  • Processor 680 may provid RX spatial processor 660 for downlink matched filtering and/o to a TX spatial processor 690 for uplink spatial processing.
  • the processing for the uplink may be the same or different from the processing for the downlink.
  • Traffic data from a data source 686 and other data from controller/ processor 680 are processed (e.g., encoded, interleaved, and modulated) by a TX data processor 688, multiplexed with pilot symbols, and further spatially processed by a TX spatial processor 690 with for each subband of interest.
  • the transmit symbols from TX spatial processor 690 are further processed by transmitters 654a through 654ut to generate N ut uplink modulated signals, which are transmitted via antennas 652a through 652ut.
  • the uplink modulated signals are received by antennas 624a through 624ap and processed by receivers 622a through 622ap to generate received symbols for the uplink transmission.
  • An RX spatial processor 640 performs spatial matched filtering on the received data symbols and provides detected data symbols.
  • An RX data processor 642 further processes the detected data symbols and provides decoded data to a data sink 644 and/or controller/processor 630.
  • a channel processor 628 processes received pilot symbols and provides an estimate of either or for each subband of interest, depending on the manner in which the uplink pilot is transmitted.
  • Processor 628 and/or 630 may decompose each matrix using the techniques described herein to obtain Processor 628 and/or 630 may also derive an uplink spatial filter matrix for each subband of interest based on Processor 680 may provide to RX spatial processor 640 for uplink spatial matched filtering and/or to TX spatial processor 620 for downlink spatial processing.
  • Controllers/processors 630 and 680 control the operation at access point 610 and user terminal 650, respectively.
  • Memories 632 and 682 store data and program codes for access point 610 and user terminal 650, respectively.
  • Processors 628, 630, 678, 680 and/or other processors may perform eigenvalue decomposition and/or singular value decomposition of the channel response matrices.
  • the matrix decomposition techniques described herein may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or a combination thereof.
  • the processing units used to perform matrix decomposition may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro- controllers, microprocessors, other electronic units designed to perform the functions described herein, or a combination thereof.
  • ASICs application specific integrated circuits
  • DSPs digital signal processors
  • DSPDs digital signal processing devices
  • PLDs programmable logic devices
  • FPGAs field programmable gate arrays
  • processors controllers, micro- controllers, microprocessors, other electronic units designed to perform the functions described herein, or a combination thereof.
  • the matrix decomposition techniques may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein.
  • the software codes may be stored in a memory (e.g., memory 632 or 682 in FIG. 6 and executed by a processor (e.g., processor 630 or 680).
  • the memory unit may be implemented within the processor or external to the processor.

Abstract

Techniques for decomposing matrices using Jacobi rotation are described. Multiple iterations of Jacobi rotation are performed on a first matrix of complex values with multiple Jacobi rotation matrices of complex values to zero out the off-diagonal elements in the first matrix. For each iteration, a submatrix may be formed based on the first matrix and decomposed to obtain eigenvectors for the submatrix, and a Jacobi rotation matrix may be formed with the eigenvectors and used to update the first matrix. A second matrix of complex values, which contains orthogonal vectors, is derived based on the Jacobi rotation matrices. For eigenvalue decomposition, a third matrix of eigenvalues may be derived based on the Jacobi rotation matrices. For singular value decomposition, a fourth matrix with left singular vectors and a matrix of singular values may be derived based on the Jacobi rotation matrices.

Description

EIGENVALUE DECOMPOSITION AND SINGULAR VALUE DECOMPOSITION OF MATRICES USING JACOBI ROTATION
I. Claim of Priority under 35 U.S.C. §119
[0001] The present Application for Patent claims priority to Provisional Application
Serial No. 60/628,324, entitled "Eigenvalue Decomposition and Singular Value Decomposition of Matrices Using Jacobi Rotation," filed November 15, 2004, assigned to the assignee hereof, and hereby expressly incorporated by reference herein.
BACKGROUND
I. Field
[0002] The present invention relates generally to communication, and more specifically to techniques for decomposing matrices.
II. Background
[0003] A multiple-input multiple-output (MIMO) communication system employs multiple (T) transmit antennas at a transmitting station and multiple (R) receive antennas at a receiving station for data transmission. A MIMO channel formed by the T transmit antennas and the R receive antennas may be decomposed into S spatial channels, where S < min {T, R} . The S spatial channels may be used to transmit data in a manner to achieve higher overall throughput and/or greater reliability.
[0004] A MIMO channel response may be characterized by an R xT channel response matrix H , which contains complex channel gains for all of the different pairs of transmit and receive antennas. The channel response matrix H may be diagonalized to obtain S eigenmodes, which may be viewed as orthogonal spatial channels of the MEvIO channel. Improved performance may be achieved by transmitting data on the eigenmodes of the MIMO channel.
[0005] The channel response matrix H may be diagonalized by performing either singular value decomposition of H or eigenvalue decomposition of a correlation matrix of H . The singular value decomposition provides left and right singular vectors, and the eigenvalue decomposition provides eigenvectors. The transmitting station uses the right singular vectors or the eigenvectors to transmit data on the S eigenmodes. The receiving station uses the left singular vectors or the eigenvectors to receive data transmitted on the S eigenmodes.
[0006] Eigenvalue decomposition and singular value decomposition are very computationally intensive. There is therefore a need in the art for techniques to efficiently decompose matrices.
SUMMARY
[0007] Techniques for efficiently decomposing matrices using Jacobi rotation are described herein. These techniques may be used for eigenvalue decomposition of a Hermitian matrix of complex values to obtain a matrix of eigenvectors and a matrix of eigenvalues for the Hermitian matrix. The techniques may also be used for singular value decomposition of an arbitrary matrix of complex values to obtain a matrix of left singular vectors, a matrix of right singular vectors, and a matrix of singular values for the arbitrary matrix.
[0008] In an embodiment, multiple iterations of Jacobi rotation are performed on a first matrix of complex values with multiple Jacobi rotation matrices of complex values to zero out the off-diagonal elements in the first matrix. The first matrix may be a channel response matrix
Figure imgf000004_0001
a correlation matrix of
Figure imgf000004_0002
which is or some other matrix. For
Figure imgf000004_0003
each iteration, a submatrix may be formed based on the first matrix and decomposed to obtain eigenvectors for the submatrix, and a Jacobi rotation matrix may be formed with the eigenvectors and used to update the first matrix. A second matrix of complex values is derived based on the Jacobi rotation matrices. The second matrix contains orthogonal vectors and may be a matrix
Figure imgf000004_0004
of right singular vectors o r eigenvectors of
Figure imgf000004_0006
Figure imgf000004_0005
[0009] For eigenvalue decomposition, a third matri f eigenvalues may be derived
Figure imgf000004_0007
based on the Jacobi rotation matrices. For singular value decomposition (SVD) based on a first SVD embodiment, a third matrix
Figure imgf000004_0008
of complex values may be derived based on the Jacobi rotation matrices, a fourth matri
Figure imgf000004_0009
ith orthogonal vectors may be derived based on the third matrix
Figure imgf000004_0010
, and a matrix
Figure imgf000004_0011
of singular values may also be derived based on the third matrix For singular value decomposition based on a second SVD embodiment, a third matrix with orthogonal vectors and a matri of
Figure imgf000004_0012
singular values may be derived based on the Jacobi rotation matrices. [0010] Various aspects and embodiments of the invention are described in further detail below.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] FIG. 1 shows a process for performing eigenvalue decomposition using Jacobi rotation. [0012] FIG. 2 shows a process for performing singular value decomposition using
Jacobi rotation in accordance with the first SVD embodiment. [0013] FIG. 3 shows a process for performing singular value decomposition using
Jacobi rotation in accordance with the second SVD embodiment. [0014] FIG. 4 shows a process for decomposing a matrix using Jacobi rotation.
[0015] FIG. 5 shows an apparatus for decomposing a matrix using Jacobi rotation.
[0016] FIG. 6 shows a block diagram of an access point and a user terminal.
DETAILED DESCRIPTION
[0017] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments.
[0018] The matrix decomposition techniques described herein may be used for various communication systems such as a single-carrier communication system with a single frequency subband, a multi-carrier communication system with multiple subbands, a single-carrier frequency division multiple access (SC-FDMA) system with multiple subbands, and other communication systems. Multiple subbands may be obtained with orthogonal frequency division multiplexing (OFDM), some other modulation techniques, or some other construct. OFDM partitions the overall system bandwidth into multiple (K) orthogonal subbands, which are also called tones, subcarriers, bins, and so on. With OFDM, each subband is associated with a respective subcarrier that may be modulated with data. An SC-FDMA system may utilize interleaved FDMA (IFDMA) to transmit on subbands that are distributed across the system bandwidth, localized FDMA (LFDMA) to transmit on a block of adjacent subbands, or enhanced FDMA (EFDMA) to transmit on multiple blocks of adjacent subbands. In general, modulation symbols are sent in the frequency domain with OFDM and in the time domain with SC-FDMA. For clarity, much of the following description is for a MIMO system with a single subband. [0019] A MIMO channel formed by multiple (T) transmit antennas and multiple (R) receive antennas may be characterized by an R xT channel response matrix
Figure imgf000006_0004
, which may be given as:
Figure imgf000006_0001
where entry htJ , for ι = l, ..., R and j = l, ...,T , denotes the coupling or complex channel gain between transmit antenna j and receive antenna i. [0020] The channel response matri may be diagonalized to obtain multiple (S)
Figure imgf000006_0003
eigenmodes o where S ≤ min {T, R} . The diagonalization may be achieved by, for
Figure imgf000006_0002
example, performing either singular value decomposition of or eigenvalue
Figure imgf000006_0005
decomposition of a correlation matrix o
Figure imgf000006_0006
[0021] The eigenvalue decomposition may be expressed as:
Figure imgf000006_0007
where is a TxT correlation matrix of
Figure imgf000006_0008
s a TxT unitary matrix whose co umns are eigenvectors of
Figure imgf000006_0009
s a T x T diagonal matrix of eigenvalues o
Figure imgf000006_0010
; and "H" denotes a conjugate transpose.
The unitary matrix
Figure imgf000006_0012
is characterized by the property where s the
Figure imgf000006_0011
Figure imgf000006_0013
identity matrix. The columns of the unitary matrix are orthogonal to one another, and each column has unit power. The diagonal matri
Figure imgf000006_0015
contains possible non-zero values along the diagonal and zeros elsewhere. The diagonal elements o
Figure imgf000006_0018
are eigenvalues of . These eigenvalues are denoted as
Figure imgf000006_0014
and represent the power gains for the S eigenmodes.
Figure imgf000006_0016
is a Hermitian matrix whose off-diagonal elements have the following property: where " * " denotes a complex conjugate.
Figure imgf000006_0017
[0022] The singular value decomposition may be expressed as:
Figure imgf000007_0001
where s an R xR unitary matrix of left singular vectors of
Figure imgf000007_0002
s an R xT diagonal matrix of singular values o
Figure imgf000007_0003
and s a T x T unitary matrix of right singular vectors o
Figure imgf000007_0004
Figure imgf000007_0005
ach contain orthogonal vectors. Equations (2) and (3) indicate that the right singular vectors o
Figure imgf000007_0006
are also the eigenvectors of
Figure imgf000007_0008
The diagonal elements of Σ are the singular values of
Figure imgf000007_0007
These singular values are denoted as
Figure imgf000007_0009
and represent the channel gains for the S eigenmodes. The singular values o
Figure imgf000007_0010
are also the square roots of the eigenvalues o
Figure imgf000007_0012
, so tha
Figure imgf000007_0011
[0023] A transmitting station may use the right singular vectors in
Figure imgf000007_0014
to transmit data on the eigenmodes of
Figure imgf000007_0013
Transmitting data on eigenmodes typically provides better performance than simply transmitting data from the T transmit antennas without any spatial processing. A receiving station may use the left singular vectors in
Figure imgf000007_0015
r the eigenvectors i
Figure imgf000007_0017
to receive the data transmission sent on the eigenmodes of
Figure imgf000007_0016
Table 1 shows the spatial processing performed by the transmitting station, the received symbols at the receiving station, and the spatial processing performed by the receiving station. In Table 1, s is a TxI vector with up to S data symbols to be transmitted, x is a TxI vector with T transmit symbols to be sent from the T transmit antennas, r is an R xI vector with R received symbols obtained from the R receive antennas, n is an R xI noise vector, and s is a TxI vector with up to S detected data symbols, which are estimates of the data symbols in s .
Table 1
Figure imgf000007_0018
[0024] Eigenvalue decomposition and singular value decomposition of a complex matrix may be performed with an iterative process that uses Jacobi rotation, which is also commonly referred to as Jacobi method and Jacobi transformation. The Jacobi rotation zeros out a pair of off-diagonal elements of the complex matrix by performing a plane rotation on the matrix. For a 2x2 complex Hermitian matrix, only one iteration of the Jacobi rotation is needed to obtain the two eigenvectors and two eigenvalues for this 2x2 matrix. For a larger complex matrix with dimension greater than 2x2 , the iterative process performs multiple iterations of the Jacobi rotation to obtain the desired eigenvectors and eigenvalues, or singular vectors and singular values, for the larger complex matrix. Each iteration of the Jacobi rotation on the larger complex matrix uses the eigenvectors of a 2x2 submatrix, as described below.
[0025] Eigenvalue decomposition of a 2x2 Hermitian matri may be performed
Figure imgf000008_0004
as follows. The Hermitian matri
Figure imgf000008_0005
may be expressed as:
Figure imgf000008_0001
where A, B, and D are arbitrary real values, and θb is an arbitrary phase. [0026] The first step of the eigenvalue decomposition of
Figure imgf000008_0006
s to apply a two-sided unitary transformation, as follows:
Figure imgf000008_0003
where is a symmetric real matrix containing real values and having symmetric off- diagonal elements at locations (1, 2) and (2, 1).
[0027] The symmetric real matri s then diagonalized using a two-sided Jacobi
Figure imgf000008_0007
rotation, as follows:
Figure imgf000008_0002
where angle φ may be expressed as:
Figure imgf000008_0008
[0028] A 2x2 unitary matrix of eigenvectors of
Figure imgf000009_0003
may be derived as:
Figure imgf000009_0001
[0029] The two eigenvalues A1 and A2 may be derived based on equation (6), or based on the equatio as follows:
Figure imgf000009_0004
Figure imgf000009_0005
[0030] In equation set (9), the ordering of the two eigenvalues is not fixed, and A1 may be larger or smaller than
Figure imgf000009_0006
However, if angle φ is constrained such that
Figure imgf000009_0008
then co , and sin
Figure imgf000009_0007
if and only if D > A . Thus, the ordering of the two eigenvalues may be determined by the relative magnitudes of A and D.
Figure imgf000009_0009
is the larger eigenvalue if A > D , and
Figure imgf000009_0010
is the larger eigenvalue if D > A . If A = D , then si
Figure imgf000009_0015
an
Figure imgf000009_0014
is the larger eigenvalue. If is the larger eigenvalue, then the two
Figure imgf000009_0012
eigenvalues i
Figure imgf000009_0011
may be swapped to maintain a predetermined ordering of largest to smallest eigenvalues, and the first and second columns of may also be swapped
Figure imgf000009_0013
correspondingly. Maintaining this predetermined ordering for the two eigenvectors in results in the eigenvectors of a larger size matrix decomposed using to be
Figure imgf000009_0016
ordered from largest to smallest eigenvalues, which is desirable.
[0031] The two eigenvalues
Figure imgf000009_0017
may also be computed directly from the elements of
Figure imgf000009_0018
as follows:
Figure imgf000009_0002
Equation (10) is the solution to a characteristic equation of
Figure imgf000009_0019
In equation (10),
Figure imgf000009_0022
is obtained with the plus sign for the second quantity on the right hand side, an
Figure imgf000009_0021
is obtained with the minus sign for the second quantity, where
Figure imgf000009_0020
[0032] Equation (8) requires the computation of cos φ and sin φ to derive the elements of The computation of cos φ and sin φ is complex. The elements of
Figure imgf000010_0002
may be computed directly from the elements o , as follows:
Figure imgf000010_0003
Figure imgf000010_0001
where rlil3 rlj2 and r2>1 are elements o and r is the magnitude of r1;2. Since ^1 is a
Figure imgf000010_0004
complex value contains complex values in the second row.
Figure imgf000010_0005
[0033] Equation set (11) is designed to reduce the amount of computation to derive fro For example, in equations (lie), (lid), and (Hf), division by r is
Figure imgf000010_0006
Figure imgf000010_0007
required. Instead, r is inverted to obtain r\, and multiplication by r\ is performed for equations (lie), (lid), and (Hf). This reduces the number of divide operations, which are computationally more expensive than multiplies. Also, instead of computing the argument (phase) of the complex element r\ ;2, which requires an arctangent operation, and then computing the cosine and sine of this phase value to obtain C1 and s\, various trigonometric identities are used to solve for C1 and S1 as a function of the real and imaginary parts of r1>2 and using only a square root operation. Furthermore, instead of computing the arctangent in equation (7) and the sine and cosine functions in equation (8), other trigonometric identities are used to solve for c and s as functions of the elements o
Figure imgf000011_0002
[0034] Equation set (11) performs a complex Jacobi rotation on to obtain
Figure imgf000011_0004
Figure imgf000011_0003
The set of computations in equation set (11) is designed to reduce the number of multiply, square root, and invert operations required to deri
Figure imgf000011_0005
This can greatly reduce computational complexity for decomposition of a larger size matrix using
Figure imgf000011_0006
[0035] The eigenvalues o
Figure imgf000011_0007
may be computed as follows:
Figure imgf000011_0001
1. Eigenvalue Decomposition
[0036] Eigenvalue decomposition of an NxN Hermitian matrix that is larger than
2x2 , as shown in equation (2), may be performed with an iterative process. This iterative process uses the Jacobi rotation repeatedly to zero out the off-diagonal elements in the NxN Hermitian matrix. For the iterative process, NxN unitary transformation matrices are formed based on 2 x 2 Hermitian submatrices of the NxN Hermitian matrix and are repeatedly applied to diagonalize the NxN Hermitian matrix. Each unitary transformation matrix contains four non-trivial elements (i.e., elements other than 0 or 1) that are derived from elements of a corresponding 2x2 Hermitian submatrix. The transformation matrices are also called Jacobi rotation matrices. After completing all of the Jacobi rotation, the resulting diagonal matrix contains the real eigenvalues of the NxN Hermitian matrix, and the product of all of the unitary transformation matrices is an N xN matrix of eigenvectors for the- NxN
Hermitian matrix. [0037] In the following description, index / denotes the iteration number and is initialized as i = 0.
Figure imgf000012_0001
an NxN Hermitian matrix to be decomposed, where N > 2.
An N x N matri
Figure imgf000012_0002
is an approximation of the diagonal matrix
Figure imgf000012_0007
of eigenvalues of and is initialized as
Figure imgf000012_0003
An N X N matrix
Figure imgf000012_0006
is an approximation of the matrix of eigenvectors o
Figure imgf000012_0004
and is initialized as
Figure imgf000012_0005
[0038] A single iteration of the Jacobi rotation to update matrices
Figure imgf000012_0008
an
Figure imgf000012_0009
may be performed as follows. First, a 2x2 Hermitian matrix
Figure imgf000012_0010
is formed based on the curren as follows:
Figure imgf000012_0011
where is the element at location (p,q) i
Figure imgf000012_0012
and
Figure imgf000012_0013
is a 2x2 submatrix of and the four elements of re four elements at
Figure imgf000012_0014
Figure imgf000012_0015
Figure imgf000012_0016
location
Figure imgf000012_0017
in The values for indices p and q may
Figure imgf000012_0018
be selected in various manners, as described below. [0039] Eigenvalue decomposition of is then performed, e.g., as shown in equation
Figure imgf000012_0019
set (11), to obtain a 2x2 unitary matrix of eigenvectors of For the
Figure imgf000012_0020
Figure imgf000012_0021
eigenvalue decomposition o m equation (4) is replaced with an
Figure imgf000012_0022
Figure imgf000012_0023
Figure imgf000012_0024
from equation (111) is provided as
Figure imgf000012_0025
[0040] An N x N complex Jacobi rotation matrix
Figure imgf000012_0026
s then formed with matrix
Figure imgf000012_0027
T_pq is an identity matrix with the four elements at locations (p, p) , (p,q) , (q,p) and (q,q) replaced with the (1, 1), (1, 2), (2, 1) and (2, 2) elements, respectively, of
Figure imgf000012_0028
has the following form:
Figure imgf000013_0001
where v1;1, v1>2, v2jl and v2,2 are the four elements of
Figure imgf000013_0003
. AU of the other off-diagonal elements o are zeros. Equation (111) indicates that is a complex matrix
Figure imgf000013_0004
Figure imgf000013_0005
containing complex values for v2jl and τ>2>2.
Figure imgf000013_0006
is also called a transformation matrix that performs the Jacobi rotation. [0041] Matrix
Figure imgf000013_0007
s then updated as follows:
Equation (15) zeros out two off-diagonal elements d and d at locations (p,q) and (q, p) , respectively, in The computation may alter the values of the other off-
Figure imgf000013_0008
diagonal elements in
Figure imgf000013_0009
[0042] Matrix
Figure imgf000013_0010
is also updated as follows:
Figure imgf000013_0011
may be viewed as a cumulative transformation matrix that contains all of the Jacobi rotation matrices sed on
Figure imgf000013_0012
Figure imgf000013_0013
[0043] Each iteration of the Jacobi rotation zeros out two off -diagonal elements of
Figure imgf000013_0014
Multiple iterations of the Jacobi rotation may be performed for different value of indices p and q to zero out all of the off-diagonal elements of
Figure imgf000013_0015
The indices p and q may be selected in a predetermined manner by sweeping through all possible values.
[0044] A single sweep across all possible values for indices p and q may be performed as follows. The index p may be stepped from 1 through N -I in increments of one. For each value of p, the index q may be stepped from p + 1 through N in increments of one. An iteration of the Jacobi rotation to updat
Figure imgf000013_0016
nd
Figure imgf000013_0017
ay be performed for each different combination of values for p and q. For each iteration,
Figure imgf000014_0001
is formed based on the values of p and q and the curren for that iteration, s computed for
Figure imgf000014_0002
as shown in equation set (11), s formed with as shown in equation (14),
Figure imgf000014_0003
Figure imgf000014_0004
s updated as shown in equation (15), an
Figure imgf000014_0005
s updated as shown in equation (16). For a given combination of values for p and q, the Jacobi rotation to update nd
Figure imgf000014_0006
may be skipped if the magnitude of the off-diagonal elements at locations (p,q) and (q, p) i is below a predetermined threshold.
[0045] A sweep consists of N - (N -I)/ 2 iterations of the Jacobi rotation to update
Figure imgf000014_0008
an or all possible values of p and q. Each iteration of the Jacobi rotation zeros ou
Figure imgf000014_0009
two off-diagonal elements o but may alter other elements that might have been
Figure imgf000014_0010
zeroed out earlier. The effect of sweeping through indices p and q is to reduce the magnitude of all off-diagonal elements of
Figure imgf000014_0011
so that approaches the diagonal
Figure imgf000014_0012
matri contains an accumulation of all Jacobi rotation matrices that collectively
Figure imgf000014_0013
giv Thus,
Figure imgf000014_0014
approaches approaches A .
Figure imgf000014_0015
[0046] Any number of sweeps may be performed to obtain more and more accurate approximations o
Figure imgf000014_0016
and
Figure imgf000014_0017
Computer simulations have shown that four sweeps should be sufficient to reduce the off -diagonal elements o
Figure imgf000014_0018
o a negligible level, and three sweeps should be sufficient for most applications. A predetermined number of sweeps (e.g., three or four sweeps) may be performed. Alternatively, the off-diagonal elements of
Figure imgf000014_0019
may be checked after each sweep to determine whether is
Figure imgf000014_0020
sufficiently accurate. For example, the total error (e.g., the power in all off-diagonal elements of
Figure imgf000014_0021
may be computed after each sweep and compared against an error threshold, and the iterative process may be terminated if the total error is below the error threshold. Other conditions or criteria may also be used to terminate the iterative process.
[0047] The values for indices p and q may also be selected in a deterministic manner.
As an example, for each iteration i, the largest off-diagonal element of may be
Figure imgf000014_0022
identified and denoted as Jacobi rotation may then be performed with
Figure imgf000014_0023
Figure imgf000014_0024
containing this largest off-diagonal element dPA and three other elements at locations (p, p) , (q, p) , and {q,q) in The iterative process may be performed until a termination condition is encountered. The termination condition may be, for example, completion of a predetermined number of iterations, satisfaction of the error criterion described above, or some other condition or criterion.
[0048] Upon termination of the iterative process, the final
Figure imgf000015_0002
s a good approximation of and the final
Figure imgf000015_0001
s a good approximation of
Figure imgf000015_0003
The columns of ay be
Figure imgf000015_0004
provided as the eigenvectors o
Figure imgf000015_0006
and the diagonal elements o
Figure imgf000015_0005
ay be provided as the eigenvalues of
Figure imgf000015_0007
. The eigenvalues in the final
Figure imgf000015_0008
re ordered from largest to smallest because the eigenvectors in
Figure imgf000015_0009
for each iteration are ordered. The eigenvectors in the fin
Figure imgf000015_0010
are also ordered based on their associated eigenvalues in
[0049] FIG. 1 shows an iterative process 100 for performing eigenvalue decomposition of an NxN Hermitian matrix
Figure imgf000015_0011
where N > 2 , using Jacobi rotation. Matrices
Figure imgf000015_0012
and are initialized a
Figure imgf000015_0014
and
Figure imgf000015_0013
and index i is initialized as i = 1 (block
110).
[0050] For iteration i, the values for indices p and q are selected in a predetermined manner (e.g., by stepping through all possible values for these indices) or a deterministic manner (e.g., by selecting the index values for the largest off-diagonal element) (block 112). A 2x2 matri is then formed with four elements of matrix
Figure imgf000015_0015
at the locations determined by indices p and q (block 114). Eigenvalue decomposition o
Figure imgf000015_0016
is then performed, e.g., as shown in equation set (11), to obtain a 2x2 matrix of eigenvectors of block 116). An NxN complex Jacobi
Figure imgf000015_0017
Figure imgf000015_0018
rotation matri
Figure imgf000015_0020
is then formed based on matrix
Figure imgf000015_0019
as shown in equation (14) (block 118). Matrix
Figure imgf000015_0021
is then updated based on s shown in equation (15) (block
Figure imgf000015_0022
120). Matri
Figure imgf000015_0024
is also updated based on s shown in equation (16) (block 122).
Figure imgf000015_0023
[0051] A determination is then made whether to terminate the eigenvalue decomposition of block 124). The termination criterion may be based on the
Figure imgf000015_0025
number of iterations or sweeps already performed, an error criterion, and so on. If the answer is 'No' for block 124, then index / is incremented (block 126), and the process returns to block 112 for the next iteration. Otherwise, if termination is reached, then matrix is provided as an approximation of diagonal matrix
Figure imgf000016_0001
and matri
Figure imgf000016_0002
is provided as an approximation of matrix of eigenvectors o
Figure imgf000016_0003
(block 128). [0052] For a MIMO system with multiple subbands (e.g., a MIMO system that utilizes
OFDM), multiple channel response matrices
Figure imgf000016_0004
may be obtained for different subbands. The iterative process may be performed for each channel response matrix to obtain matrices and , which are approximations of diagonal
Figure imgf000016_0006
Figure imgf000016_0005
Figure imgf000016_0007
matrix nd matri f eigenvectors, respectively, o
Figure imgf000016_0009
Figure imgf000016_0008
Figure imgf000016_0010
[0053] A high degree of correlation typically exists between adjacent subbands in a
MBvIO channel. This correlation may be exploited by the iterative process to reduce the amount of computation to derive
Figure imgf000016_0011
and for the subbands of interest. For
Figure imgf000016_0012
example, the iterative process may be performed for one subband at a time, starting from one end of the system bandwidth and traversing toward the other end of the system bandwidth. For each subband k except for the first subband, the final solutio
Figure imgf000016_0013
obtained for the prior subband Jc -I may be used as an initial solution for the current subband Jc. The initialization for each subband Jc may be given as:
Figure imgf000016_0014
and
Figure imgf000016_0015
The iterative process then operates on the initial solutions of and for subband Jc until a termination condition is
Figure imgf000016_0016
Figure imgf000016_0017
encountered.
[0054] The concept described above may also be used across time. For each time interval t, the final solution obtained for a prior time interval t - 1 may be
Figure imgf000016_0018
used as an initial solution for the current time interval t. The initialization for each time and where
Figure imgf000016_0020
esponse matrix for time interval t. The
Figure imgf000016_0019
iterative process then operates on the initial solutions of
Figure imgf000016_0021
and
Figure imgf000016_0022
for time interval t until a termination condition is encountered. The concept may also be used across both frequency and time. For each subband in each time interval, the final solution obtained for a prior subband and/or the final solution obtained for a prior time interval may be used as an initial solution for the current subband and time interval. 2. Singular Value Decomposition
[0055] The iterative process may also be used for singular value decomposition of an arbitrary complex matri
Figure imgf000017_0002
that is larger than 2x2. The singular value decomposition o is given as
Figure imgf000017_0003
. The following observations may be made regarding First, matrix
Figure imgf000017_0004
and matri
Figure imgf000017_0005
are both Hermitian matrices. Second, right singular vectors o
Figure imgf000017_0006
which are the columns of
Figure imgf000017_0007
are also eigenvectors o Correspondingly, left singular vectors of
Figure imgf000017_0008
which are the columns of
Figure imgf000017_0009
are also eigenvectors of
Figure imgf000017_0010
Third, the non-zero eigenvalues o
Figure imgf000017_0011
re equal to the non-zero eigenvalues o
Figure imgf000017_0012
and are the square of corresponding singular values of
Figure imgf000017_0013
[0056] A 2x2 matrix
Figure imgf000017_0014
f complex values may be expressed as:
Figure imgf000017_0015
where is a 2x1 vector with the elements in the first column o and
Figure imgf000017_0016
s a 2x1 vector with the elements in the second column of
Figure imgf000017_0017
[0057] The right singular vectors o
Figure imgf000017_0018
are the eigenvectors of and may
Figure imgf000017_0019
be computed using the eigenvalue decomposition described above in equation set (11). A 2 x 2 Hermitian matrix
Figure imgf000017_0020
is defined as and the elements of
Figure imgf000017_0021
may be computed based on the elements o , as follows:
Figure imgf000017_0022
Figure imgf000017_0023
Figure imgf000017_0001
For Hermitian matrix
Figure imgf000018_0002
does not need to be computed since
Figure imgf000018_0003
Equation set (11) may be applied t
Figure imgf000018_0004
to obtain a matri ontains the eigenvectors
Figure imgf000018_0005
o
Figure imgf000018_0006
which are also the right singular vectors of
Figure imgf000018_0007
[0058] The left singular vectors o
Figure imgf000018_0008
are the eigenvectors of
Figure imgf000018_0009
and may also be computed using the eigenvalue decomposition described above in equation set (11). A 2x2 Hermitian matrix
Figure imgf000018_0010
is defined as and the elements
Figure imgf000018_0011
of may be computed based on the elements o
Figure imgf000018_0012
as follows:
Figure imgf000018_0001
Equation set (11) may be applied to o obtain a matrix contains the
Figure imgf000018_0013
Figure imgf000018_0014
eigenvectors of
Figure imgf000018_0015
which are also the left singular vectors o
Figure imgf000018_0016
[0059] The iterative process described above for eigenvalue decomposition of an
N xN Hermitian matrix
Figure imgf000018_0017
ay be used for singular value decomposition of an arbitrary complex matrix
Figure imgf000018_0018
larger than 2x2.
Figure imgf000018_0019
as a dimension of R xT , where R is the number of rows and T is the number of columns. The iterative process for singular value decomposition (SVD) o may be performed in several manners.
Figure imgf000018_0020
[0060] In a first SVD embodiment, the iterative process derives approximations of the right singular vectors in and the scaled left singular vectors in For this
Figure imgf000018_0021
Figure imgf000018_0022
embodiment, a T xT matrix
Figure imgf000018_0023
is an approximation of and is initialized as
Figure imgf000018_0024
Figure imgf000018_0025
An R x T matrix is an approximation o and is initialized as
Figure imgf000018_0028
Figure imgf000018_0026
Figure imgf000018_0027
[0061] For the first SVD embodiment, a single iteration of the Jacobi rotation to update matrices and
Figure imgf000018_0029
ay be performed as follows. First, a 2x2 Hermitian matrix
Figure imgf000018_0030
is formed based on the current is a 2x2 submatrix of and
Figure imgf000018_0031
Figure imgf000018_0032
contains four elements at locations (p,p) , (p,q) , (q, p) and (q,q) in
Figure imgf000019_0002
The elements o
Figure imgf000019_0003
may be computed as follows:
Figure imgf000019_0001
where s column p o is column q of and is the element at
Figure imgf000019_0004
Figure imgf000019_0005
Figure imgf000019_0006
location (£,p) in
Figure imgf000019_0007
Indices p and g are such that p& {1,...,T } , qe {1,...,T }, and p ≠ q . The values for indices p and q may be selected in various manners, as described below. [0062] Eigenvalue decomposition of
Figure imgf000019_0008
is then performed, e.g., as shown in equation set (11), to obtain a 2x2 unitary matrix
Figure imgf000019_0009
of eigenvectors of
Figure imgf000019_0010
For this eigenvalue decomposition,
Figure imgf000019_0011
is replaced wit an is provided a
Figure imgf000019_0012
Figure imgf000019_0013
Figure imgf000019_0014
[0063] A T xT complex Jacobi rotation matrix
Figure imgf000019_0015
is then formed with matrix
Figure imgf000019_0016
is an identity matrix with the four elements at locations (p, p) , (p,q) , (q, p) and (q, q) replaced with the (1, 1), (1, 2), (2, 1) and (2, 2) elements, respectively, of
Figure imgf000019_0017
has the form shown in equation (14).
[0064] Matri
Figure imgf000019_0018
is then updated as follows:
Figure imgf000019_0019
[0065] Matrix
Figure imgf000019_0021
is also updated as follows:
Figure imgf000019_0020
[0066] For the first SVD embodiment, the iterative process repeatedly zeros out off- diagonal elements of
Figure imgf000020_0001
without explicitly computin
Figure imgf000020_0002
The indices p and q may be swept by stepping p from 1 through T - I and, for each value of p, stepping q from p + 1 through T. Alternatively, the values of p and q for which is
Figure imgf000020_0003
largest may be selected for each iteration. The iterative process is performed until a termination condition is encountered, which may be a predetermined number of sweeps, a predetermined number of iterations, satisfaction of an error criterion, and so on. [0067] Upon termination of the iterative process, the fina
Figure imgf000020_0004
is a good approximation of and the final
Figure imgf000020_0005
is a good approximation of
Figure imgf000020_0006
When converged,
Figure imgf000020_0007
where " τ " denotes a transpose. For a square diagonal matrix, the final solution o
Figure imgf000020_0012
may be given as
Figure imgf000020_0008
For a non- square diagonal matrix, the non-zero diagonal elements of
Figure imgf000020_0011
re given by the square roots of the diagonal elements of
Figure imgf000020_0009
The final solution of ay be given as:
Figure imgf000020_0010
Figure imgf000020_0013
[0068] . 2 shows an iterative process 200 for performing singular value decomposition of an arbitrary complex matrix
Figure imgf000020_0014
hat is larger than 2x2 using Jacobi rotation, in accordance with the first SVD embodiment. Matrices and re
Figure imgf000020_0015
Figure imgf000020_0016
initialized
Figure imgf000020_0017
and index i is initialized as i = 1 (block 210).
[0069] For iteration i, the values for indices p and q are selected in a predetermined or deterministic manner (block 212). A 2x2 matrix
Figure imgf000020_0018
s then formed with four elements of matrix 1 at the locations determined by indices p and q as shown in
Figure imgf000020_0019
equation set (20) (block 214). Eigenvalue decomposition o
Figure imgf000020_0020
is then performed, e.g., as shown in equation set (11), to obtain a 2x2 matrix
Figure imgf000020_0022
of eigenvectors of
Figure imgf000020_0021
(block 216). A TxT complex Jacobi rotation matri
Figure imgf000020_0023
formed based on matrix , as shown in equation (14) (block 218). Matrix
Figure imgf000020_0024
is then updated based o
Figure imgf000020_0026
as shown in equation (21) (block 220). Matrix
Figure imgf000020_0025
s also updated based on
Figure imgf000020_0027
as shown in equation (22) (block 222).
[0070] A determination is then made whether to terminate the singular value decomposition of lock 224). The termination criterion may be based on the
Figure imgf000020_0028
number of iterations or sweeps already performed, an error criterion, and so on. If the answer is 'No' for block 224, then index i is incremented (block 226), and the process returns to block 212 for the next iteration. Otherwise, if termination is reached, then post processing is performed on to obtain d (block 228). Matrix is
Figure imgf000021_0001
Figure imgf000021_0002
Figure imgf000021_0003
Figure imgf000021_0004
provided as an approximation of matrix
Figure imgf000021_0007
of right singular vectors o
Figure imgf000021_0006
, matrix
Figure imgf000021_0005
is provided as an approximation of matri
Figure imgf000021_0008
of left singular vectors of
Figure imgf000021_0009
nd matrix
Figure imgf000021_0010
is provided as an approximation of matri f singular values o
Figure imgf000021_0011
(block 230)
Figure imgf000021_0012
[0071] The left singular vectors of
Figure imgf000021_0013
may be obtained by performing the first SVD embodiment and solving for scaled left singular vectors
Figure imgf000021_0014
and then normalizing. The left singular vectors of
Figure imgf000021_0015
may also be obtained by performing the iterative process for eigenvalue decomposition o
Figure imgf000021_0016
[0072] In a second SVD embodiment, the iterative process directly derives approximations of the right singular vectors in
Figure imgf000021_0017
and the left singular vectors in
Figure imgf000021_0018
. This SVD embodiment applies the Jacobi rotation on a two-sided basis to simultaneously solve for the left and right singular vectors. For an arbitrary complex
2x2 matri he conjugate transpose of this matrix i
Figure imgf000021_0020
Figure imgf000021_0019
where an
Figure imgf000021_0021
e the two columns o
Figure imgf000021_0022
and are also the complex conjugates of the rows of
Figure imgf000021_0023
. The left singular vectors o
Figure imgf000021_0024
re also the right singular vectors of The right singular vectors of may be computed using Jacobi rotation, as
Figure imgf000021_0026
Figure imgf000021_0025
described above for equation set (18). The left singular vectors of ay be
Figure imgf000021_0027
obtained by computing the right singular vectors of
Figure imgf000021_0028
sing Jacobi rotation, as described above for equation set (19). [0073] For the second SVD embodiment, a T xT matri is an approximation of
Figure imgf000021_0029
Figure imgf000021_0030
and is initialized as An R X R matrix s an approximation of n is
Figure imgf000021_0033
Figure imgf000021_0032
Figure imgf000021_0031
initialized a
Figure imgf000021_0034
An R xT matri
Figure imgf000021_0035
is an approximation of Σ and is initialized as
Figure imgf000021_0036
[0074] the second SVD embodiment, a single iteration of the Jacobi rotation to update matrices
Figure imgf000021_0037
and
Figure imgf000021_0038
may be performed as follows. First, a 2x2 Hermitian matrix s formed based on the current s a 2x2 submatrix of
Figure imgf000021_0039
Figure imgf000021_0040
Figure imgf000021_0041
and contains four elements at locations (P1^1) , (^1, #1) > (^v P\) an<^ (#i>#i) m
Figure imgf000022_0003
The four elements of
Figure imgf000022_0004
may be computed as follows:
Figure imgf000022_0001
where is colum is colum and s the element at
Figure imgf000022_0005
Figure imgf000022_0006
Figure imgf000022_0007
location
Figure imgf000022_0008
Indices p\ and q\ are such that
Figure imgf000022_0009
and px ≠ qx . Indices p\ and ^1 may be selected in various manners, as described below.
[0075] Eigenvalue decomposition of is then performed, e.g., as shown in
Figure imgf000022_0010
equation set (11), to obtain a 2x2 matrix of eigenvectors of For this
Figure imgf000022_0011
Figure imgf000022_0012
eigenvalue decomposition,
Figure imgf000022_0013
is replaced with
Figure imgf000022_0014
and is provided as
Figure imgf000022_0015
Figure imgf000022_0016
A TxT complex Jacobi rotation matrix
Figure imgf000022_0017
is then formed with matrix and
Figure imgf000022_0018
contains the four elements of
Figure imgf000022_0019
at location
Figure imgf000022_0029
and
Figure imgf000022_0030
Figure imgf000022_0020
has the form shown in equation (14).
[0076] Another 2x2 Hermitian matrix
Figure imgf000022_0021
is also formed based on the current
Figure imgf000022_0022
Figure imgf000022_0023
is a 2x2 submatrix of and contains elements at locations (p2,p2) ,
Figure imgf000022_0024
Figure imgf000022_0027
anc*
Figure imgf000022_0028
m
Figure imgf000022_0025
The elements o
Figure imgf000022_0026
may be computed as follows:
Figure imgf000022_0002
Figure imgf000023_0001
wher is row /?2 o
Figure imgf000023_0003
is row q2 o
Figure imgf000023_0004
and is the element at location
Figure imgf000023_0005
(p2,£) in
Figure imgf000023_0006
Indices p% and g2 are such that , and
Figure imgf000023_0007
P2 ≠ q2. Indices p2 and qt may also be selected in various manners, as described below. [0077] Eigenvalue decomposition of is then performed, e.g., as shown in
Figure imgf000023_0008
equation set (11), to obtain a 2x2 matrix HP2 q2 of eigenvecto For this eigenvalue decomposition, s replaced with and vided as
Figure imgf000023_0010
Figure imgf000023_0011
Figure imgf000023_0009
. An R xR complex Jaco
Figure imgf000023_0012
r bi rotation matri is then formed with matrix
Figure imgf000023_0013
and contains the four elements o at locations
Figure imgf000023_0014
Figure imgf000023_0015
Figure imgf000023_0016
and has the form shown in equation (14).
Figure imgf000023_0017
[0078] Matrix
Figure imgf000023_0018
is then updated as follows:
Figure imgf000023_0019
[0079] Matrix
Figure imgf000023_0020
is updated as follows:
Figure imgf000023_0021
[0080] Matri s updated as follows:
Figure imgf000023_0022
Figure imgf000023_0002
[0081] For the second SVD embodiment, the iterative process alternately finds (1) the
Jacobi rotation that zeros out the off-diagonal elements with indices p\ and q\ i
Figure imgf000023_0023
and (2) the Jacobi rotation that zeros out the off-diagonal elements with indices p2 and ^2 i
Figure imgf000023_0024
The indices p\ and q\ may be swept by stepping p\ from 1 through T- I and, for each value of p\, stepping q\ from P1 + 1 through T. The indices p2 and <j2 may also be swept by stepping ^2 from 1 through R -I and, for each value of p2, stepping qt from p2 + 1 through R. As an example, for a square matrix
Figure imgf000024_0001
the indices may be set as P1 = p2 and qx - q2 . As another example, for a square or non-square matrix
Figure imgf000024_0002
a set of p\ and q\ may be selected, then a set of p2 and g2 may be selected, then a new set of pi and ^r1 may be select, then a new set of /?2 and ^2 may be selected, and so on, so that new values are alternately selected for indices p\ and q\ and indices /?2 and ^2.
Alternatively, for each iteration, the values Of ^1 and q\ for whic is largest
Figure imgf000024_0003
may be selected, and the values of /?2 and g2 for which is largest may be
Figure imgf000024_0004
selected. The iterative process is performed until a termination condition is encountered, which may be a predetermined number of sweeps, a predetermined number of iterations, satisfaction of an error criterion, and so on. [0082] Upon termination of the iterative process, the final is a good approximation
Figure imgf000024_0005
o the final
Figure imgf000024_0006
is a good approximation of and the final is a good
Figure imgf000024_0007
Figure imgf000024_0008
approximation o where and may be rotated versions of and
Figure imgf000024_0010
Figure imgf000024_0013
Figure imgf000024_0011
Figure imgf000024_0012
Figure imgf000024_0009
respectively. The computation described above does not sufficiently constrain the left and right singular vector solutions so that the diagonal elements of the final
Figure imgf000024_0018
are positive real values. The elements of the final
Figure imgf000024_0014
may be complex values whose magnitudes are equal to the singular values o
Figure imgf000024_0015
an may be unrotated as
Figure imgf000024_0016
Figure imgf000024_0017
follows:
Figure imgf000024_0019
where is a TxT diagonal matrix with diagonal elements having unit magnitude and phases that are the negative of the phases of the corresponding diagonal elements of
Figure imgf000024_0020
Figure imgf000024_0021
re the final approximations of
Figure imgf000024_0022
, respectively.
[0083] FIG. 3 shows an iterative process 300 for performing singular value decomposition of an arbitrary complex matrix
Figure imgf000024_0023
that is larger than 2x2 using Jacobi rotation, in accordance with the second SVD embodiment. Matrices and are
Figure imgf000024_0024
Figure imgf000024_0025
initialized a
Figure imgf000024_0026
and index i is initialized as i = 1 (block 310). [0084] For iteration i, the values for indices p\, q\, p2 and q2 are selected in a predetermined or deterministic manner (block 312). A 2x2 matrix
Figure imgf000025_0001
is formed with four elements of matrix
Figure imgf000025_0002
at the locations determined by indices p\ and q\, as shown in equation set (23) (block 314). Eigenvalue decomposition of is then
Figure imgf000025_0003
performed, e.g., as shown in equation set (11), to obtain a 2x2 matrix of
Figure imgf000025_0004
eigenvectors o
Figure imgf000025_0010
(block 316). A TxT complex Jacobi rotation matrix is
Figure imgf000025_0005
then formed based on matri
Figure imgf000025_0011
( vblock 318) '. A 2x2 matrix s also formed
Figure imgf000025_0006
with four elements of matrix at the locations determined by indices p2 and #2, as
Figure imgf000025_0012
shown in equation set (24) (block 324). Eigenvalue decomposition of
Figure imgf000025_0007
is then performed, e.g., as shown in equation set (11), to obtain a 2x2 matrix of
Figure imgf000025_0008
eigenvectors of
Figure imgf000025_0013
block 326). An R xR complex Jacobi rotation matrix s
Figure imgf000025_0009
then formed based on matri (block 328).
Figure imgf000025_0014
[0085] Matrix
Figure imgf000025_0015
is then updated based on as shown in equation (25) (block
Figure imgf000025_0016
330). Matrix
Figure imgf000025_0018
is updated based on as shown in equation (26) (block 332).
Figure imgf000025_0017
Matrix is updated based on and as shown in equation (27) (block 334).
Figure imgf000025_0019
Figure imgf000025_0020
[0086] A determination is then made whether to terminate the singular value decomposition of
Figure imgf000025_0021
(block 336). The termination criterion may be based on the number of iterations or sweeps already performed, an error criterion, and so on. If the answer is 'No' for block 336, then index i is incremented (block 338), and the process returns to block 312 for the next iteration. Otherwise, if termination is reached, then post processing is performed on nd obtai nd block 340). Matrix
Figure imgf000025_0022
Figure imgf000025_0023
Figure imgf000025_0024
Figure imgf000025_0025
Figure imgf000025_0026
is provided as an approximation o
Figure imgf000025_0027
, matrix
Figure imgf000025_0028
is provided as an approximation , and matrix
Figure imgf000025_0029
s provided as an approximation of
Figure imgf000025_0030
block 342)
[0087] For both the first and second SVD embodiments, the right singular vectors in the final nd the left singular vectors in the final or are ordered from the largest
Figure imgf000025_0031
Figure imgf000025_0032
to smallest singular values because the eigenvectors in
Figure imgf000025_0033
(for the first SVD embodiment) and the eigenvectors in and (for the second SVD
Figure imgf000025_0034
Figure imgf000025_0035
embodiment) for each iteration are ordered. [0088] For a MIMO system with multiple subbands, the iterative process may be performed for each channel response matrix
Figure imgf000026_0001
to obtain matrices
Figure imgf000026_0002
an
Figure imgf000026_0003
which are approximations of the matrix
Figure imgf000026_0005
of right singular vectors, the matrix of left singular vectors, and the diagonal matrix f singular values,
Figure imgf000026_0006
respectively, for tha
Figure imgf000026_0004
The iterative process may be performed for one subband at a time, starting from one end of the system bandwidth and traversing toward the other end of the system bandwidth. For the first SVD embodiment, for each subband k except for the first subband, the final solutio
Figure imgf000026_0007
obtained for the prior subband k - 1 may be used as an initial solution for the current subband k, so that
Figure imgf000026_0008
and For the second SVD embodiment, for each subband k
Figure imgf000026_0009
except for the first subband, the final solution
Figure imgf000026_0010
nd btained for the
Figure imgf000026_0011
prior subband k — 1 may be used as initial solutions for the current subband k, so that For both
Figure imgf000026_0012
embodiments, the iterative process operates on the initial solutions for subband k until a termination condition is encountered for the subband. The concept may also be used across time or both frequency and time, as described above.
[0089] FIG. 4 shows a process 400 for decomposing a matrix using Jacobi rotation.
Multiple iterations of Jacobi rotation are performed on a first matrix of complex values with multiple Jacobi rotation matrices of complex values (block 412). The first matrix may be a channel response matri
Figure imgf000026_0013
, a correlation or some other matrix. The Jacobi rotation matrices may b r some
Figure imgf000026_0014
other matrices. For each iteration, a submatrix may be formed based on the first matrix and decomposed to obtain eigenvectors for the submatrix, and a Jacobi rotation matrix may be formed with the eigenvectors and used to update the first matrix. A second matrix of complex values is derived based on the multiple Jacobi rotation matrices (block 414). The second matrix contains orthogonal vectors and may be matrix
Figure imgf000026_0017
of right singular vectors o
Figure imgf000026_0015
r eigenvectors o
Figure imgf000026_0016
[0090] For eigenvalue decomposition, as determined in block 416, a third matrix f
Figure imgf000026_0018
eigenvalues may be derived based on the multiple Jacobi rotation matrices (block 420). For singular value decomposition based on the first SVD embodiment or scheme, a third matri of complex values may be derived based on the multiple Jacobi rotation matrices, a fourth matri
Figure imgf000027_0001
with orthogonal vectors may be derived based on the third matrix , and a matri
Figure imgf000027_0002
of singular values may also be derived based on the third matri (block 422). For singular value decomposition based on the second SVD embodiment, a third matrix
Figure imgf000027_0003
with orthogonal vectors and a matrix
Figure imgf000027_0004
of singular values may be derived based on the multiple Jacobi rotation matrices (block 424).
[0091] FIG. 5 shows an apparatus 500 for decomposing a matrix using Jacobi rotation.
Apparatus 500 includes means for performing multiple iterations of Jacobi rotation on a first matrix of complex values with multiple Jacobi rotation matrices of complex values (block 512) and means for deriving a second matri
Figure imgf000027_0005
of complex values based on the multiple Jacobi rotation matrices (block 514).
[0092] For eigenvalue decomposition, apparatus 500 further includes means for deriving a third matri f eigenvalues based on the multiple Jacobi rotation matrices
Figure imgf000027_0006
(block 520). For singular value decomposition based on the first SVD embodiment, apparatus 500 further includes means for deriving a third matrix
Figure imgf000027_0007
of complex values based on the multiple Jacobi rotation matrices, a fourth matrix
Figure imgf000027_0008
with orthogonal vectors based on the third matrix, and a matrix
Figure imgf000027_0009
of singular values based on the third matrix (block 522). For singular value decomposition based on the second SVD embodiment, apparatus 500 further includes means for deriving a third matri
Figure imgf000027_0010
ith orthogonal vectors and a matrix of singular values based on the multiple Jacobi
Figure imgf000027_0011
rotation matrices (block 524).
3. System
[0093] FIG. 6 shows a block diagram of an embodiment of an access point 610 and a user terminal 650 in a MJJVIO system 600. Access point 610 is equipped with multiple (Nap) antennas that may be used for data transmission and reception. User terminal 650 is equipped with multiple (Nut) antennas that may be used for data transmission and reception. For simplicity, the following description assumes that MDVIO system 600 uses time division duplexing (TDD), and the downlink channel response matrix
Figure imgf000027_0012
for each subband k is reciprocal of the uplink channel response matrix for that
Figure imgf000027_0013
subband, o
Figure imgf000027_0014
[0094] On the downlink, at access point 610, a transmit (TX) data processor 614 receives traffic data from a data source 612 and other data from a controller/processor 630. TX data processor 614 formats, encodes, interleaves, and modulates the received data and generates data symbols, which are modulation symbols for data. A TX spatial processor 620 receives and multiplexes the data symbols with pilot symbols, performs spatial processing with eigenvectors or right singular vectors if applicable, and provides Nap streams of transmit symbols to Nap transmitters (TMTR) 622a through 622ap. Each transmitter 622 processes its transmit symbol stream and generates a downlink modulated signal. Nap downlink modulated signals from transmitters 622a through 622ap are transmitted from antennas 624a through 624ap, respectively.
[0095] At user terminal 650, Nut antennas 652a through 652ut receive the transmitted downlink modulated signals, and each antenna 652 provides a received signal to a respective receiver (RCVR) 654. Each receiver 654 performs processing complementary to the processing performed by transmitters 622 and provides received symbols. A receive (RX) spatial processor 660 performs spatial matched filtering on the received symbols from all receivers 654a through 654ut and provides detected data symbols, which are estimates of the data symbols transmitted by access point 610. An RX data processor 670 further processes (e.g., symbol demaps, deinterleaves, and decodes) the detected data symbols and provides decoded data to a data sink 672 and/or a controller/processor 680.
[0096] A channel processor 678 processes received pilot symbols and provides an estimate of the downlink channel response, for each subband of interest.
Figure imgf000028_0001
Processor 678 and/or 680 may decompose each matrix
Figure imgf000028_0002
using the techniques described herein to obtai an hich are estimates of nd or
Figure imgf000028_0005
Figure imgf000028_0006
Figure imgf000028_0003
Figure imgf000028_0004
the downlink channel response matrix Processor 678 and/or 680 may derive a
Figure imgf000028_0007
downlink spatial filter matrix
Figure imgf000028_0008
for each subband of interest based on as
Figure imgf000028_0009
shown in Table 1. Processor 680 may provid
Figure imgf000028_0010
RX spatial processor 660 for downlink matched filtering and/o to a TX spatial processor 690 for uplink spatial
Figure imgf000028_0011
processing.
[0097] The processing for the uplink may be the same or different from the processing for the downlink. Traffic data from a data source 686 and other data from controller/ processor 680 are processed (e.g., encoded, interleaved, and modulated) by a TX data processor 688, multiplexed with pilot symbols, and further spatially processed by a TX spatial processor 690 with
Figure imgf000029_0009
for each subband of interest. The transmit symbols from TX spatial processor 690 are further processed by transmitters 654a through 654ut to generate Nut uplink modulated signals, which are transmitted via antennas 652a through 652ut.
[0098] At access point 610, the uplink modulated signals are received by antennas 624a through 624ap and processed by receivers 622a through 622ap to generate received symbols for the uplink transmission. An RX spatial processor 640 performs spatial matched filtering on the received data symbols and provides detected data symbols. An RX data processor 642 further processes the detected data symbols and provides decoded data to a data sink 644 and/or controller/processor 630.
[0099] A channel processor 628 processes received pilot symbols and provides an estimate of either
Figure imgf000029_0001
or
Figure imgf000029_0002
for each subband of interest, depending on the manner in which the uplink pilot is transmitted. Processor 628 and/or 630 may decompose each matrix
Figure imgf000029_0003
using the techniques described herein to obtain
Figure imgf000029_0004
Processor 628 and/or 630 may also derive an uplink spatial filter matrix
Figure imgf000029_0005
for each subband of interest based on Processor 680 may provide to RX
Figure imgf000029_0008
Figure imgf000029_0006
spatial processor 640 for uplink spatial matched filtering and/or
Figure imgf000029_0007
to TX spatial processor 620 for downlink spatial processing.
[00100] Controllers/processors 630 and 680 control the operation at access point 610 and user terminal 650, respectively. Memories 632 and 682 store data and program codes for access point 610 and user terminal 650, respectively. Processors 628, 630, 678, 680 and/or other processors may perform eigenvalue decomposition and/or singular value decomposition of the channel response matrices.
[00101] The matrix decomposition techniques described herein may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or a combination thereof. For a hardware implementation, the processing units used to perform matrix decomposition may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro- controllers, microprocessors, other electronic units designed to perform the functions described herein, or a combination thereof.
[00102] For a firmware and/or software implementation, the matrix decomposition techniques may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. The software codes may be stored in a memory (e.g., memory 632 or 682 in FIG. 6 and executed by a processor (e.g., processor 630 or 680). The memory unit may be implemented within the processor or external to the processor.
[00103] Headings are included herein for reference and to aid in locating certain sections. These headings are not intended to limit the scope of the concepts described therein under, and these concepts may have applicability in other sections throughout the entire specification.
[00104] The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
[00105] WHAT IS CLAIMED IS:

Claims

1. An apparatus comprising: at least one processor configured to perform a plurality of iterations of Jacobi rotation on a first matrix of complex values with a plurality of Jacobi rotation matrices of complex values, and to derive a second matrix of complex values based on the plurality of Jacobi rotation matrices, the second matrix comprising orthogonal vectors; and a memory coupled to the at least one processor.
2. The apparatus of claim 1, wherein for each of the plurality of iterations the at least one processor is configured to form a submatrix based on the first matrix, to decompose the submatrix to obtain eigenvectors for the submatrix, to form a Jacobi rotation matrix with the eigenvectors, and to update the first matrix with the Jacobi rotation matrix.
3. The apparatus of claim 2, wherein for each of the plurality of iterations, the at least one processor is configured to order the eigenvectors for the submatrix based on eigenvalues for the submatrix.
4. The apparatus of claim 1, wherein the at least one processor is configured to derive a third matrix of eigenvalues based on the plurality of Jacobi rotation matrices.
5. The apparatus of claim 1, wherein the at least one processor is configured to derive a third matrix of complex values based on the plurality of Jacobi rotation matrices; and to derive a fourth matrix with orthogonal vectors based on the third matrix.
6. The apparatus of claim 5, wherein the at least one processor is configured to derive a matrix of singular values based on the third matrix.
7. The apparatus of claim 1, wherein the at least one processor is configured to derive a third matrix with orthogonal vectors based on the plurality of Jacobi rotation matrices.
8. The apparatus of claim 7, wherein the at least one processor is configured to derive a matrix of singular values based on the plurality of Jacobi rotation matrices.
9. The apparatus of claim 1, wherein the at least one processor is configured to select different values for row and column indices of the first matrix for the plurality of iterations of the Jacobi rotation.
10. The apparatus of claim 1, wherein for each of the plurality of iterations the at least one processor is configured to identify a largest off-diagonal element in the first matrix, and to perform the Jacobi rotation based on the largest off-diagonal element.
11. The apparatus of claim 1, wherein the at least one processor is configured to terminate the Jacobi rotation on the first matrix after a predetermined number of iterations.
12. The apparatus of claim 1, wherein the at least one processor is configured to determine whether an error criterion is satisfied, and to terminate the plurality of iterations of the Jacobi rotation upon satisfaction of the error criterion.
13. The apparatus of claim 1, wherein the first matrix has a dimension larger than 2x2.
14. A method comprising: performing a plurality of iterations of Jacobi rotation on a first matrix of complex values with a plurality of Jacobi rotation matrices of complex values; and deriving a second matrix of complex values based on the plurality of Jacobi rotation matrices, the second matrix comprising orthogonal vectors.
15. The method of claim 14, wherein the performing the plurality of iterations of Jacobi rotation on the first matrix comprises, for each iteration, forming a submatrix based on the first matrix, decomposing the submatrix to obtain eigenvectors for the submatrix, forming a Jacobi rotation matrix with the eigenvectors, and updating the first matrix with the Jacobi rotation matrix.
16. The method of claim 14, further comprising: deriving a third matrix of complex values based on the plurality of Jacobi rotation matrices; and deriving a fourth matrix with orthogonal vectors based on the third matrix.
17. The method of claim 14, further comprising: deriving a third matrix with orthogonal vectors based on the plurality of Jacobi rotation matrices.
18. An apparatus comprising: means for performing a plurality of iterations of Jacobi rotation on a first matrix of complex values with a plurality of Jacobi rotation matrices of complex values; and means for deriving a second matrix of complex values based on the plurality of Jacobi rotation matrices, the second matrix comprising orthogonal vectors.
19. The apparatus of claim 18, wherein the means for performing the plurality of iterations of Jacobi rotation on the first matrix comprises, for each iteration, means for forming a submatrix based on the first matrix, means for decomposing the submatrix to obtain eigenvectors for the submatrix, means for forming a Jacobi rotation matrix with the eigenvectors, and means for updating the first matrix with the Jacobi rotation matrix.
20. The apparatus of claim 18, further comprising: means for deriving a third matrix of complex values based on the plurality of Jacobi rotation matrices; and means for deriving a fourth matrix with orthogonal vectors based on the third matrix.
21. The apparatus of claim 18, further comprising: means for deriving a third matrix with orthogonal vectors based on the plurality of Jacobi rotation matrices.
22. An apparatus comprising: at least one processor configured to initialize a first matrix to an identity matrix, to initialize a second matrix to a Hermitian matrix of complex values, to perform a plurality of iterations of Jacobi rotation on the second matrix by forming a Jacobi rotation matrix of complex values for each iteration based on the second matrix, and updating the first and second matrices for each iteration based on the
Jacobi rotation matrix for the iteration, to provide the first matrix as a matrix of eigenvectors, and to provide the second matrix as a matrix of eigenvalues; and a memory coupled to the at least one processor.
23. The apparatus of claim 22, wherein for each of the plurality of iterations the at least one processor is configured to form a submatrix based on the second matrix, to decompose the submatrix to obtain eigenvectors for the submatrix, and to form the Jacobi rotation matrix with the eigenvectors for the submatrix.
24. An apparatus comprising: means for initializing a first matrix to an identity matrix; means for initializing a second matrix to a Hermitian matrix of complex values; means for performing a plurality of iterations of Jacobi rotation on the second matrix, comprising means for forming a Jacobi rotation matrix of complex values for each iteration based on the second matrix, and means for updating the first and second matrices for each iteration based on the Jacobi rotation matrix for the iteration; means for providing the first matrix as a matrix of eigenvectors; and means for providing the second matrix as a matrix of eigenvalues.
25. The apparatus of claim 24, wherein the means for forming the Jacobi rotation matrix of complex values for each iteration comprises means for forming a submatrix based on the second matrix, means for decomposing the submatrix to obtain eigenvectors for the submatrix, and means for forming the Jacobi rotation matrix with the eigenvectors for the submatrix.
26. An apparatus comprising: at least one processor is configured to initialize a first matrix to an identity matrix, to initialize a second matrix to a matrix of complex values, to perform a plurality of iterations of Jacobi rotation on the second matrix by forming a Jacobi rotation matrix for each iteration based on the second matrix, and updating the first and second matrices for each iteration based on the Jacobi rotation matrix for the iteration, and to provide the first matrix as a matrix of right singular vectors; and a memory coupled to the at least one processor.
27. The apparatus of claim 26, wherein for each of the plurality of iterations the at least one processor is configured to form a submatrix based on the second matrix, to decompose the submatrix to obtain eigenvectors for the submatrix, and to form the Jacobi rotation matrix with the eigenvectors.
28. The apparatus of claim 26, wherein the at least one processor is configured to derive a matrix of singular values based on the second matrix.
29. The apparatus of claim 26, wherein the at least one processor is configured to derive a matrix of left singular vectors based on second matrix.
30. An apparatus comprising: means for initializing a first matrix to an identity matrix; means for initializing a second matrix to a matrix of complex values; means for performing a plurality of iterations of Jacobi rotation on the second matrix, comprising means for forming a Jacobi rotation matrix for each iteration based on the second matrix, and means for updating the first and second matrices for each iteration based on the Jacobi rotation matrix for the iteration; and means for provide the first matrix as a matrix of right singular vectors.
31. The apparatus of claim 30, wherein the means for forming the Jacobi rotation matrix for each iteration comprises means for forming a submatrix based on the second matrix, means for decomposing the submatrix to obtain eigenvectors for the submatrix, and means for forming the Jacobi rotation matrix with the eigenvectors.
32. An apparatus comprising: at least one processor is configured to initialize a first matrix to an identity matrix, to initialize a second matrix to the identity matrix, to initialize a third matrix to a matrix of complex values, to perform a plurality of iterations of Jacobi rotation on the third matrix by, for each iteration, forming a first Jacobi rotation matrix based on the third matrix, forming a second Jacobi rotation matrix based on the third matrix, updating the first matrix based on the first Jacobi rotation matrix, updating the second matrix based on the second Jacobi rotation matrix, and updating the third matrix based on the first and second Jacobi rotation matrices, and to provide the second matrix as a matrix of left singular vectors; and a memory coupled to the at least one processor.
33. The apparatus of claim 32, wherein for each of the plurality of iterations the at least one processor is configured to form a first submatrix based on the third matrix, to decompose the first submatrix to obtain eigenvectors for the first submatrix, and to form the first Jacobi rotation matrix with the eigenvectors for the first submatrix.
34. The apparatus of claim 33, wherein for each of the plurality of iterations the at least one processor is configured to form a second submatrix based on the third matrix, to decompose the second submatrix to obtain eigenvectors for the second submatrix, and to form the second Jacobi rotation matrix with the eigenvectors for the second submatrix.
35. The apparatus of claim 32, wherein the at least one processor is configured to derive a matrix of right singular vectors based on the first matrix.
36. The apparatus of claim 32, wherein the at least one processor is configured to derive a matrix of singular values based on the third matrix.
37. An apparatus comprising: means for initializing a first matrix to an identity matrix; means for initializing a second matrix to the identity matrix; means for initializing a third matrix to a matrix of complex values, means for performing a plurality of iterations of Jacobi rotation on the third matrix comprising, for each iteration, means for forming a first Jacobi rotation matrix based on the third matrix, means for forming a second Jacobi rotation matrix based on the third matrix, means for updating the first matrix based on the first Jacobi rotation matrix, means for updating the second matrix based on the second Jacobi rotation matrix, and means for updating the third matrix based on the first and second Jacobi rotation matrices; and means for providing the second matrix as a matrix of left singular vectors.
38. The apparatus of claim 37, wherein the means for forming the first Jacobi rotation matrix comprises means for forming a first submatrix based on the third matrix, means for decomposing the first submatrix to obtain eigenvectors for the first submatrix, and means for forming the first Jacobi rotation matrix with the eigenvectors for the first submatrix.
39. The apparatus of claim 38, wherein the means for forming the second Jacobi rotation matrix comprises means for forming a second submatrix based on the third matrix, means for decomposing the second submatrix to obtain eigenvectors for the second submatrix, and means for forming the second Jacobi rotation matrix with the eigenvectors for the second submatrix.
40. An apparatus comprising: at least one processor is configured to perform a first plurality of iterations of Jacobi rotation on a first matrix of complex values to obtain a first unitary matrix with orthogonal vectors, and to perform a second plurality of iterations of the Jacobi rotation on a second matrix of complex values to obtain a second unitary matrix with orthogonal vectors, wherein the first unitary matrix is used as an initial solution for the second unitary matrix; and a memory coupled to the at least one processor.
41. The apparatus of claim 40, wherein the at least one processor is configured to perform a third plurality of iterations of the Jacobi rotation on a third matrix of complex values to obtain a third unitary matrix with orthogonal vectors, wherein the second unitary matrix is used as an initial solution for the third unitary matrix.
42. The apparatus of claim 40, wherein the first and second matrices of complex values are channel response matrices for two frequency subbands.
43. The apparatus of claim 40, wherein the first and second matrices of complex values are channel response matrices for two time intervals.
44. An apparatus comprising: means for performing a first plurality of iterations of Jacobi rotation on a first matrix of complex values to obtain a first unitary matrix with orthogonal vectors; and means for performing a second plurality of iterations of the Jacobi rotation on a second matrix of complex values to obtain a second unitary matrix with orthogonal vectors, wherein the first unitary matrix is used as an initial solution for the second unitary matrix.
45. The apparatus of claim 44, wherein the first and second matrices of complex values are channel response matrices for two frequency subbands.
PCT/US2005/041783 2004-11-15 2005-11-15 Eigenvalue decomposition and singular value decomposition of matrices using jacobi rotation WO2006053340A2 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CA2588176A CA2588176C (en) 2004-11-15 2005-11-15 Eigenvalue decomposition and singular value decomposition of matrices using jacobi rotation
KR1020077013411A KR101084792B1 (en) 2004-11-15 2005-11-15 Eigenvalue decomposition and singular value decomposition of matrices using jacobi rotation
EP20050851789 EP1828923A2 (en) 2004-11-15 2005-11-15 Eigenvalue decomposition and singular value decomposition of matrices using jacobi rotation
JP2007541491A JP4648401B2 (en) 2004-11-15 2005-11-15 Eigenvalue decomposition and singular value decomposition of matrix using Jacobi rotation
CN2005800464414A CN101390351B (en) 2004-11-15 2005-11-15 Eigenvalue decomposition and singular value decomposition of matrices using jacobi rotation
IN1928DEN2012 IN2012DN01928A (en) 2004-11-15 2007-11-15

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62832404P 2004-11-15 2004-11-15
US60/628,324 2004-11-15

Publications (2)

Publication Number Publication Date
WO2006053340A2 true WO2006053340A2 (en) 2006-05-18
WO2006053340A3 WO2006053340A3 (en) 2008-07-31

Family

ID=36129731

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/041783 WO2006053340A2 (en) 2004-11-15 2005-11-15 Eigenvalue decomposition and singular value decomposition of matrices using jacobi rotation

Country Status (9)

Country Link
EP (1) EP1828923A2 (en)
JP (1) JP4648401B2 (en)
KR (2) KR20090115822A (en)
CN (2) CN101390351B (en)
AR (1) AR051497A1 (en)
CA (1) CA2588176C (en)
IN (1) IN2012DN01928A (en)
TW (1) TWI407320B (en)
WO (1) WO2006053340A2 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1869854A2 (en) * 2005-04-01 2007-12-26 Interdigital Technology Corporation Method and apparatus for singular value decomposition of a channel matrix
WO2008021396A2 (en) * 2006-08-17 2008-02-21 Interdigital Technology Corporation Method and apparatus for providing efficient precoding feedback in a mimo wireless communication system
JP2009538578A (en) * 2006-05-22 2009-11-05 クゥアルコム・インコーポレイテッド Derivation and feedback of transmit steering matrix
US8204149B2 (en) 2003-12-17 2012-06-19 Qualcomm Incorporated Spatial spreading in a multi-antenna communication system
US8285226B2 (en) 2004-05-07 2012-10-09 Qualcomm Incorporated Steering diversity for an OFDM-based multi-antenna communication system
US8325844B2 (en) 2004-01-13 2012-12-04 Qualcomm Incorporated Data transmission with spatial spreading in a MIMO communication system
US8543070B2 (en) 2006-04-24 2013-09-24 Qualcomm Incorporated Reduced complexity beam-steered MIMO OFDM system
US8767701B2 (en) 2004-07-15 2014-07-01 Qualcomm Incorporated Unified MIMO transmission and reception
US8909174B2 (en) 2004-05-07 2014-12-09 Qualcomm Incorporated Continuous beamforming for a MIMO-OFDM system
EP2899913A4 (en) * 2012-10-19 2015-09-09 Huawei Tech Co Ltd Signal transmission method, system and device
WO2023108065A1 (en) * 2021-12-10 2023-06-15 Rampart Communications, Inc. Methods and apparatus for correcting timing and frequency offsets between communications receivers and transmitters

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488759B (en) * 2009-02-24 2012-04-11 东南大学 Decoding method for MIMO OFDM system low density correcting code
CN101908123B (en) * 2010-06-01 2012-06-27 福建新大陆电脑股份有限公司 Hardware logic implementation device for Hough operation
CN102013907B (en) * 2010-09-29 2013-12-11 中国科学院声学研究所 Channel information feedback method of beam shaping system with Mt*2MIMO (Multiple Input Multiple Output) characteristic
CN105323036A (en) * 2014-08-01 2016-02-10 中国移动通信集团公司 Method and device for performing singular value decomposition on complex matrix and computing equipment
CN105323037A (en) * 2014-08-01 2016-02-10 中国移动通信集团公司 Pre-coding method and device according to complex matrix
CN105871503B (en) * 2015-01-22 2019-03-12 华邦电子股份有限公司 Multiple input, multiple output wireless communication system and its channel decomposition method
CN104618293B (en) * 2015-01-27 2017-11-28 东南大学 A kind of optimization method of the unitary transformation matrix of smooth singular value decomposition
CN104636632B (en) * 2015-03-10 2017-12-15 中国人民解放军国防科学技术大学 The small amount of storage computation of table lookup method of high-precision phase position
CN105403865B (en) * 2015-10-23 2017-10-27 河海大学 Multi-carrier signal constant envelope modulation methodology
CA3053531A1 (en) * 2017-02-17 2018-08-23 Kyndi, Inc. Method and apparatus of machine learning using a network with software agents at the network nodes and then ranking network nodes
CN107102841A (en) * 2017-04-06 2017-08-29 上海晟矽微电子股份有限公司 A kind of coordinate transform parallel calculating method and device
CN108228536B (en) * 2018-02-07 2021-03-23 成都航天通信设备有限责任公司 Method for realizing Hermitian matrix decomposition by using FPGA (field programmable Gate array)
CN110110285B (en) * 2019-04-10 2020-05-22 浙江大学 Parallel Jacobi calculation acceleration implementation method for FPGA
CN110531866B (en) * 2019-10-29 2020-03-13 深圳市瑞立视多媒体科技有限公司 Method for performing attitude calculation based on improved inverse kinematics and related equipment
CN112015369B (en) * 2020-08-25 2022-09-16 湖南艾科诺维科技有限公司 FPGA-based signal processing method, electronic device and storage medium
CN114184837B (en) * 2021-12-09 2022-10-18 电子科技大学 Instantaneous frequency measurement method based on Cordic algorithm
CN116382617B (en) * 2023-06-07 2023-08-29 之江实验室 Singular value decomposition accelerator with parallel ordering function based on FPGA

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2976888B2 (en) * 1996-06-27 1999-11-10 日本電気株式会社 Circuit simulation method
DE19626984C1 (en) * 1996-07-04 1997-11-27 Siemens Ag Process for computer-aided determination of a system context function
US6510354B1 (en) * 1999-04-21 2003-01-21 Ching-Fang Lin Universal robust filtering process
US6859747B2 (en) * 2001-04-26 2005-02-22 Siemens Energy & Automation, Inc. Method and apparatus for self-calibrating a motion control system
US7327800B2 (en) * 2002-05-24 2008-02-05 Vecima Networks Inc. System and method for data detection in wireless communication systems

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Multi-level parallelism in the block-Jacobi SVD algorithm", IEEE PROCEEDINGS, 9TH EUROMICRO WORKSHOP, 2001, pages 306 - 313
F. SCHÄFER ET AL.: "Efficient tracking of eigenspaces and its applications to MIMO-systems", PROCEEDINGS OF THE 1ST MOBILE & WIRELESS COMMUNICATIONS SUMMIT, 2003
MICHALKE ET AL.: "Efficient tracking of eigenspace and its application to eigenbeamforming", 14TH IEEE PROCEEDINGS, vol. 2, 2003, pages 2847 - 2851
See also references of EP1828923A2

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8204149B2 (en) 2003-12-17 2012-06-19 Qualcomm Incorporated Spatial spreading in a multi-antenna communication system
US11171693B2 (en) 2003-12-17 2021-11-09 Qualcomm Incorporated Spatial spreading in a multi-antenna communication system
US10476560B2 (en) 2003-12-17 2019-11-12 Qualcomm Incorporated Spatial spreading in a multi-antenna communication system
US9787375B2 (en) 2003-12-17 2017-10-10 Qualcomm Incorporated Spatial spreading in a multi-antenna communication system
US8325844B2 (en) 2004-01-13 2012-12-04 Qualcomm Incorporated Data transmission with spatial spreading in a MIMO communication system
US8909174B2 (en) 2004-05-07 2014-12-09 Qualcomm Incorporated Continuous beamforming for a MIMO-OFDM system
US8285226B2 (en) 2004-05-07 2012-10-09 Qualcomm Incorporated Steering diversity for an OFDM-based multi-antenna communication system
US8923785B2 (en) 2004-05-07 2014-12-30 Qualcomm Incorporated Continuous beamforming for a MIMO-OFDM system
US8767701B2 (en) 2004-07-15 2014-07-01 Qualcomm Incorporated Unified MIMO transmission and reception
US8249186B2 (en) 2005-04-01 2012-08-21 Interdigital Technology Corporation Method and apparatus for singular value decomposition of a channel matrix
JP2008535400A (en) * 2005-04-01 2008-08-28 インターデイジタル テクノロジー コーポレーション Method and apparatus for singular value decomposition of channel matrix
EP1869854A4 (en) * 2005-04-01 2008-06-18 Interdigital Tech Corp Method and apparatus for singular value decomposition of a channel matrix
US7602855B2 (en) 2005-04-01 2009-10-13 Interdigital Technology Corporation Method and apparatus for singular value decomposition of a channel matrix
EP1869854A2 (en) * 2005-04-01 2007-12-26 Interdigital Technology Corporation Method and apparatus for singular value decomposition of a channel matrix
US8543070B2 (en) 2006-04-24 2013-09-24 Qualcomm Incorporated Reduced complexity beam-steered MIMO OFDM system
US8824583B2 (en) 2006-04-24 2014-09-02 Qualcomm Incorporated Reduced complexity beam-steered MIMO OFDM system
US8290089B2 (en) 2006-05-22 2012-10-16 Qualcomm Incorporated Derivation and feedback of transmit steering matrix
JP2009538578A (en) * 2006-05-22 2009-11-05 クゥアルコム・インコーポレイテッド Derivation and feedback of transmit steering matrix
WO2008021396A3 (en) * 2006-08-17 2008-08-28 Interdigital Tech Corp Method and apparatus for providing efficient precoding feedback in a mimo wireless communication system
US7881247B2 (en) 2006-08-17 2011-02-01 Interdigital Technology Corporation Method and apparatus for providing efficient precoding feedback in a MIMO wireless communication system
JP2010501136A (en) * 2006-08-17 2010-01-14 インターデイジタル テクノロジー コーポレーション Method and apparatus for providing efficient precoding feedback in a MIMO wireless communication system
EP2448145A1 (en) * 2006-08-17 2012-05-02 Interdigital Technology Corporation Method and apparatus for providing efficient precoding feedback in a MIMO wireless communication system
WO2008021396A2 (en) * 2006-08-17 2008-02-21 Interdigital Technology Corporation Method and apparatus for providing efficient precoding feedback in a mimo wireless communication system
EP2899913A4 (en) * 2012-10-19 2015-09-09 Huawei Tech Co Ltd Signal transmission method, system and device
US9344169B2 (en) 2012-10-19 2016-05-17 Huawel Technologies Co., Ltd. Signal transmission method, system, and device
WO2023108065A1 (en) * 2021-12-10 2023-06-15 Rampart Communications, Inc. Methods and apparatus for correcting timing and frequency offsets between communications receivers and transmitters

Also Published As

Publication number Publication date
KR20070086178A (en) 2007-08-27
CN101438277A (en) 2009-05-20
CN101390351B (en) 2012-10-10
CA2588176C (en) 2012-10-16
KR20090115822A (en) 2009-11-06
AR051497A1 (en) 2007-01-17
JP4648401B2 (en) 2011-03-09
EP1828923A2 (en) 2007-09-05
WO2006053340A3 (en) 2008-07-31
JP2008521294A (en) 2008-06-19
TWI407320B (en) 2013-09-01
TW200703039A (en) 2007-01-16
IN2012DN01928A (en) 2015-07-24
KR101084792B1 (en) 2011-11-21
CN101390351A (en) 2009-03-18
CA2588176A1 (en) 2006-05-18

Similar Documents

Publication Publication Date Title
WO2006053340A2 (en) Eigenvalue decomposition and singular value decomposition of matrices using jacobi rotation
US7895254B2 (en) Eigenvalue decomposition and singular value decomposition of matrices using Jacobi rotation
RU2404513C2 (en) Efficient filter weight computation for mimo system
JP4554679B2 (en) Iterative eigenvector computation for MIMO communication systems
US7711762B2 (en) Efficient computation for eigenvalue decomposition and singular value decomposition of matrices

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200580046441.4

Country of ref document: CN

AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KN KP KR KZ LC LK LR LS LT LU LV LY MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2588176

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 2007541491

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 3807/DELNP/2007

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2005851789

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020077013411

Country of ref document: KR

Ref document number: KR

WWP Wipo information: published in national office

Ref document number: 2005851789

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020097022241

Country of ref document: KR