1. Field of the Invention
The invention relates to multiple-input-multiple-output (MIMO) communication systems and methods of operating MIMO systems.
2. Discussion of the Related Art
A MIMO communication system includes a transmitter with multiple transmitting antennas, a receiver with multiple receiving antennas, and a free space channel coupling the transmitting and receiving antennas. The transmitting antennas transmit on the same frequency band in each time slot. For that reason, a transmitter having M transmitting antennas can be viewed as sending a row of M signal values in each time slot. If the transmitter transmits a message over T time slots, the message is associated with a T×M dimensional matrix, U, of signal values.
The free space channel couples the multiple transmitting antennas to various ones of the receiving antennas. Thus, in each time slot, individual receiving antennas receive a signal combining transmitted signals from more than one of the transmitting antennas. A transmission matrix, H, whose elements are the complex channel attenuations between various pairs of transmitting and receiving antennas, defines these combinations. In T time slots, N receiving antennas will receive a message that is described by a T×N dimensional matrix Y. The matrix Y approximately satisfies Y=U·G·H+w where w is an additive noise matrix and G is a diagonal matrix of transmission gains.
Thus, knowledge of the transmission matrix, H, can enable the MIMO receiver to disentangle the signals transmitted by different ones of the transmitting antennas, e.g., if H is invertible. For that reason, it is sometimes desirable to measure the transmission matrix, H. One method of measuring H, involves transmitting standard pilot beams from various ones of the transmitting antennas and measuring the signals received in response to the transmission of the standard pilot beams. Unfortunately, the use of pilot beams is not convenient in all MIMO communication systems. For example, the uses of such pilot beams may not be enable measurements of the transmission matrix, H, for a channel whose properties are changing rapidly. In such MIMO communication systems, decoding is performed without a detailed knowledge of the transmission matrix.
Various embodiments provide for apparatus and method for operating portions of MIMO communication systems with advantageous codebooks.
In one aspect, an apparatus is able to transmit a sequence of messages via a MIMO channel. The apparatus includes a MIMO transmitter. The MIMO transmitter has an array of antennas, is capable of selecting any codeword of a codebook, and is configured to select one of the codewords in response to receiving each message of the sequence. Each codeword of the codebook is a matrix. For each one of the selected codewords, the transmitter is configured to transmit signals from the antennas in a series of time slots corresponding to the one of the selected codewords such that the array transmits one column of the one of the selected codewords from each antenna and such that one row of the one of the selected codewords is transmitted in each of the time slots of the corresponding series. The transmitter is configured such that each of the codewords of the codebook is equal to a matrix U(λ|a1, . . . , am|b1, . . . , bm) and is such that U(λ|a1, . . . , am|b1, . . . , bm)·U(λ|a1, . . . , am|b1, . . . , bm)† is a projection operator P(λ|a1, . . . , am|b1, . . . , bm)·P(λ|a1, . . . , am|b1, . . . , bm) is a unitary transformation of ½[I+λE(a1, . . . , am|b1, . . . , bm)]. Here, each of the (a1, . . . , am|b1, . . . , bm)'s is a nonzero vector whose components are zero or one, and each of the E(a1, . . . , am|b1, . . . , bm)'s is a direct product of m ej's, wherein each ej satisfies:
In another aspect, a method provides for transmitting a sequence of messages from a MIMO array of antennas. The method includes selecting a codeword from a preselected codebook for each message of the sequence. Each codeword of the codebook is a matrix. For each one of the selected codewords, the method includes transmitting signals from the MIMO array of antennas in a series of time slots corresponding to the one of the selected codewords such that the MIMO array transmits one column of the one of the selected codewords from each antenna and such that one row of the one of the selected codewords is transmitted in each of the time slots of the corresponding series. Each of the codewords of the codebook is given by a matrix U(λ|a1, . . . , am|b1, . . . , bm) left multiplied by a unitary matrix and right multiplied by a unitary matrix. The columns of each of the U(λ|a1, . . . , am|b1, . . . , bm)'s are given by uj
and wherein
In another aspect, a method of receiving information includes receiving a vector of signal values for a transmitted codeword in antennas of a MIMO receiver array in each of a sequence of time slots. Each vector forms one row of a matrix Y. Each antenna receives the signal values of one column of the matrix Y over the sequence of time slots such that one of the antennas receives the signal values of each column of the matrix Y. The method also includes evaluating a vector S(0, . . . , 0) for an associated zero m-component vector (0, . . . , 0). The vector S(0, . . . , 0) is given by a Hadamard transform of the diagonal part of the square matrix Y·Y†.
In another aspect, an apparatus includes a MIMO receiver. The MIMO receiver includes an array of antennas. The receiver is configured to receive a vector of signal values for a transmitted codeword via the antennas in each of a sequence of time slots. Each vector forms one row of a matrix Y. The receiver is such that each antenna receives the signal values of one column of the matrix Y over the sequence of time slots such that the signal values of each column of the matrix Y are received in one of the antennas of the array. The receiver is configured to evaluate a vector S(0, . . . , 0) for a zero m-component vector (0, . . . , 0) from the received signal values. The vector S(0, . . . , 0) is given by a Hadamard transform of the diagonal part of the square matrix Y·Y†.
Various embodiments are described in the Figures and Detailed Description of Illustrative Embodiments. Nevertheless, the invention may be embodied in various forms and is not limited to the embodiments described in the Figures and Detailed Description of Illustrative Embodiments.
In the Figures and text, like reference numerals indicate elements with similar functions.
The characteristics of the MIMO communication system 10 include transmission gains, a T×N-dimensional noise matrix w, and an M×N transmission matrix H. The transmission gains are ratios of the amplitudes of output signals over input signals at the transmission antennas 161, . . . , 16M. In the exemplary array 15, each transmission gain is equal to (ρ/M)1/2. In other embodiments, one or more of the transmission antennas 161, . . . , 16M may have different transmission gains. The noise matrix w describes additive noise at the array 17. In particular, component “wtj” of the noise matrix w is the additive noise at associated reception antenna 18j at communication time slot “t”. The transmission matrix, H, describes the channel attenuation, i.e., including amplitude and phase, between the transmission and reception arrays 15, 17. In particular, the (j, k) component, Hjk, describes the coupling between the transmission antenna 16j and the reception antenna 18k.
The method 20 includes selecting a codeword to transmit, wherein the selected codeword corresponds to the next message “d” awaiting transmission to the MIMO receiver 14 (step 22). The set of available codewords forms a UO-standard codebook. A UO-standard codebook has L different codewords where the number L is less than or equal to 22m+1−2 as described below.
The method 20 includes transmitting the UO-standard codeword that corresponds to the message “d” from the MIMO transmitter 12 to the MIMO receiver 14 (step 24). The transmitter 12 transmits the codeword, in a row-by-row manner over a sequence of T time slots, e.g., consecutive slots of equal length. In a time slot “t” of the sequence, the transmitter 12 transmits row “t” of the particular T×M matrix codeword, UOd, that corresponds to the selected message. In each time slot, the antennae 161, . . . , 16M of the transmitter 12 simultaneously transmit signals on the same frequency band. For example, antenna 16k of the transmitter 12 transmits a corresponding signal of amplitude (ρ/M)1/2utk in a time slot “t”. Over the T time slots for transmitting the selected codeword UOd, the antenna 16k of the transmitter 12 transmits a corresponding column of the selected codeword UOd. In particular, the k-th antenna 16k transmits the k-th column of the selected codeword UOd during the T time slots corresponding to the message “d”.
During T time slots, the method 20 includes receiving in the reception antennas 181, . . . , 18N signal amplitudes that together correspond to the transmitted codeword, UOd (step 26). During the T transmission time slots for the message “d”, the reception antennas 181, . . . , 18N together receive a T×N dimensional matrix Y of signal amplitudes. In particular, one row of Y is received in each of the time slots for the message “d”. Over the whole set of time slots for the message “d”, the j-th reception antenna 18j receives the j-th column of the matrix Y. The received matrix Y can be modelized by Y=(ρ/M)1/2UOd·H+w. Here, w is an additive noise matrix, e.g., channel and electronics noise.
The method 20 includes decoding the matrix Y of signal amplitudes received by the reception antennae 181, . . . , 18N during the T signaling periods to determine which the identity of the transmitted codeword and thus, to determine the identity of the message transmitted (step 28). The decoding determines the identifier “d” of the transmitted UO-standard codeword. In particular, the receiver 14 decodes the matrix Y based on its knowledge of the UO-standard codebook to determine “d”.
In some exemplary embodiments, the receiver 14 performs a decoding algorithm that provides a maximum likelihood determination of the identity of the transmitted codeword UOd. To perform such an algorithm, the receiver 14 evaluates the value of an inner product Tr[UOk·UOk†·Y·Y†] for each codeword, UOk, of the selected UO-standard codebook. Herein, Tr[A] refers to a trace of a matrix A. In such embodiments, the receiver 14 identifies the codeword that produced the largest inner product as being the transmitted codeword UOd. Indeed, Tr[UOk·UOk†·UOp·U)p†] is significantly smaller when k≠d than when k=d for codewords of a UO-standard codebook. For example, the inner product may be about 50% smaller when k≠d than when k=d. Thus, if the channel 13 does not cause much distortion, the above inner product provides a good indicator of the identity of the transmitted codeword.
Furthermore, the maximum likelihood-decoding algorithm does not require knowledge of the channel's transmission matrix, H. For that reason, this algorithm may be advantageous in embodiments where measuring H is inconvenient. For example, such situations occur when channel properties change too fast to conveniently measure H by using pilot beams. Nevertheless, it is preferable that channel properties are substantially constant over the T time slots used to transmit a codeword even if the channel properties vary too fast to conveniently measure the transmission matrix H.
The method 20 includes performing steps 22, 24, 26, and 28 for each message to be transmitted. Thus, the method 20 allows communication of a sequence of selected messages between the transmitter 12 and receiver 14 of the MIMO communication system 10.
To perform the MIMO communication method 20, both the transmitter 12 and receiver 14 of
A UO-standard codebook is a set of codewords, {UO1, UO2, . . . , UOL}, wherein each codeword UOk is a T×2m−1 matrix and T is ≦2m. Each UO-standard codeword is uniquely identified by a corresponding 2m+1 dimension identifying vector. The identifying vectors have the form (λ|a1, . . . , am|b1, . . . , bm) where λ ε {+1, −1}, ajε {1, 0}, and bjε {1, 0}. There is no identifying vector in which a1= . . . am=b1= . . . =bm=0. Thus, the total number, L, of codewords in a given UO-standard codebook is less than or equal to 22m+1−2. Here, 2m−1 is also the number, M, of antennas 161, . . . , 16M in the MIMO transmitter 12 of
Each UO-standard codebook is constructed from a U-standard codebook whose codewords are T×2m−1 matrices, which are referred to as U(λ|a1, . . . , am|b1, . . . , bm)'s. In this notation, the vector subscript is the codeword's identifying vector. Each codeword U(λ|a1, . . . , am|b1, . . . , bm) is constructed from 2m-dimension column vectors that will be referred to as uj
Each u(j
Each U-standard codeword is also related to a projection operator on CT. In particular, each matrix U(λ|a1, . . . , am|b1, . . . , bm) defines a corresponding projection operator P(λ|a1, . . . , am|b1 . . . , bm) by:
P(λ|a1, . . . , am|b1, . . . , bm)=U(λ|a1, . . . , am|b1, . . . , bm)[U(λ|a1, . . . , am|b1, . . . , bm)]†
where, “†” designates a Hermitian conjugation. The projection operators have the form:
P(λ|a1, . . . , am|b1, . . . , bm)=(½)[I+λE(a1, . . . , am|b1, . . . , bm)]
where I is the identity matrix and E(a1, . . . am|b1, . . . , bm)=e1{circle around (×)} . . . {circle around (×)} em. Here, each ej is a 2×2 matrix defined by the values of aj and bj in the “j”-th components of the identifying vector of the associated U-standard codeword. In particular, the ej's are defined as:
Herein, I is the identity matrix, e.g., the 2×2 identity matrix in the case of the ej's, and σx, σy, and σz are the 2×2 Pauli matrices, which are defined as follows:
From these definitions, it follows that the square of any P(λ|a1, . . . , am|b1, . . . , bm) is equal to itself and that each P(λ|a1, . . . , am|b1, . . . , bm) is Hermitian. Thus, each of the P(λ|a1, . . . , am|b1, . . . , bm)'s is a projection operator. Each of the projection operators, P(λ|a1, . . . , am|b1, . . . , bm), is also different. Finally, for each of the identifiers, (λ|a1, . . . , am|b1, . . . , bm), the corresponding codeword U(λ|a1, . . . , am|b1, . . . , bm) is a matrix whose columns are the eigenvectors having a particular eigenvalue, e.g., 1 or −1, for the projection operator that is associated to the same identifier, i.e., P(λ|a1, . . . , am|b1, . . . , bm). This provides a second definition of the code words of the U-standard codebook.
To construct a UO-standard codebook, the codewords of one of the U-standard codebooks of same dimension are transformed by a selected transformation. The selected transformation may include one or both of the following operations: (A) left multiplication of all U-standard codewords by the same unitary matrix and (B) right multiplication of each of the U-standard codewords by arbitrary unitary matrices. In the operations of type (B), the unitary matrices that may be the same for all codewords or may differ arbitrarily from codeword to codeword.
First, the method 40 includes evaluating a 2m-dimensional column vector, C(0), where the “j”-th element of C(0) is the “j”-th diagonal element of the matrix product Y·Y† (step 42). That is, the vector C(0) is the diagonal portion of the matrix product Y·Y†.
Second, the method 40 includes performing a fast Hadamard transform (FHT) of the vector C(0) (step 44). The FHT provides a 2m-dimensional column vector S(0), e.g., a real vector. The column vector S(0) is defined by S(0)=Hd·C(0) where Hd is the 2m×2m Hadamard matrix. The 2m×2m Hadamard matrix is defined by:
where the direct product has m factors of
Methods for performing FHTs are well known to those of skill in the art.
Third, the method 40 includes using the FHT to evaluate the quantities t(0, . . . , 0), j(0, . . . , 0), and λ(0, . . . . , 0) where the identifier (0, . . . , 0) is the m-dimension null vector (step 46). The number, t(0, . . . , 0), is the magnitude of the largest magnitude element of the vector S(0, . . . , 0) that is also not the first element. The number j(0, . . . , 0) is the row index of the same largest magnitude element, and the number λ(0, . . . , 0) is one if the sign of said same largest magnitude element is “+” and is minus one otherwise.
Fifth, the method 40 includes a loop execution (48) over all nonzero vectors a=(a1, . . . , am), wherein the elements, e.g., ak, of the vector a are selected from {0, 1}. Each loop execution includes evaluating 2m-dimensional column vector, C(a), whose components are the diagonal components of Y·Y†·E(a1, . . . , am|0, . . . , 0) (step 50). In these evaluations, it is advantageous to use the fact that E(a1, . . . , am|0, . . . , 0) is a permutation matrix on 2m objects to reduce the number of operations needed to obtain the diagonal components of Y·Y†·E(a1, . . . , am|0, . . . , 0). Next, each loop execution includes performing a FHT of C(a) to determine a 2m-dimensional column vector S(a1, . . . , am). That is, S(a1, . . . , am)=Hd·C(a) (step 52). Next, each loop execution includes evaluating the quantities t (a1, . . . , am)·j(a1, . . . , am), and λ(a1, . . . , am) (step 54). The number t(a1, . . . , am) is the magnitude of the element of S(a1, . . . , am) that has the largest magnitude. The integer number j(a1, . . . , am) is the row index of the said largest magnitude element. Finally, the λ(a1, . . . , am)'s have values of +1 or −1. In particular, λ(a1, . . . , am) is equal to one if said largest magnitude element is positive and is equal to minus one if the sign of said largest magnitude element is negative. The execution of the loop continues as long as nonzero vectors a exist, i.e., all values of the a-vector portion of the identifiers in the U-standard codebook.
Sixth, after terminating the loop execution (48), the method 40 returns an identifying vector ({circumflex over (λ)}|â|{circumflex over (b)}) as the maximum likelihood determination of the identifier for the transmitted U-standard codeword. In particular, this determination involves finding the specific (a1, . . . , am) for which t(a1, . . . , am) is maximum (step 56). This specific (a1, . . . , am) is the maximum likelihood estimate, â, i.e., for the (a1, . . . , am)-portion of the identifier for the transmitted codeword. The determination includes finding the binary representation of the integer number jâ that is associated with the vector â, i.e., one of the j(a1, . . . , am)'s of step 54 (step 58). This binary representation of jâ is the maximum likelihood estimate, {circumflex over (b)}, i.e., for the (b1, . . . , bm)-portion of the identifier of the transmitted code word. Finally, the determination includes finding the value of the λâ associated with the vector â, i.e., one of the λ(a1, . . . , am)'s of step 54 (step 60). This value, i.e., +1 or −1, is the maximum likelihood estimate, {circumflex over (λ)}, for the λ-portion of the identifier of the transmitted code word.
Above method 40 uses special properties of U-standard codebooks to simplify the inner product, i.e., Tr[Ud·Ud†·Y·Y†], as described below.
For f-type identifying vectors, which have the form (λ|0, . . . , 0|b1, . . . , bm), the decoding algorithm based on the above inner product requires evaluations as following:
Here, the projection operators, i.e., the P(λ|a1, . . . , am|b1, . . . , bm)'s, and the Ed-type matrices, i.e., the E(a1, . . . , am|b1, . . . , bm)'s, have already been defined. Also, max { . . . } are maxima of the object between the braces over the shown set of identifiers. Since the first term on the right-hand-side of the above equation is constant, it can be dropped for the maximization operation. Thus, the maximization operation the over the subset of codewords that have f-type identifying vectors involves evaluating the maximum of {Tr[λE(0, . . . , 0|b1, . . . , bm)·Y·Y†]}. But, the E(0, . . . , 0|b1, . . . , bm)'s are diagonal matrices, and their diagonal elements for the nonzero (b1, . . . , bm)'s are the rows of the Hadamard matrix that follow the first row of the Hadamard matrix. For these reasons, t(0, . . . , 0) and the binary form of j(0, . . . , 0) from steps 42-46 are the respective maximum of Tr[Ud·Ud†·Y·Y†] and the (b1, . . . , bm)-portion of the identifying vector for the codeword that maximizes the above trace over codewords with f-type identifying vectors.
For more general identifying vectors, the method 40 uses several other properties of the U-standard codebook to simplify the inner products needed in the procedure to identify the transmitted codeword according to the maximum likelihood algorithm. First, the maximum likelihood algorithm involves an evaluation over the set of codewords of the following expression:
Here, the third expression follows from the cyclic property of the trace and the fact that the square of any Ed-type matrix is the identity matrix. The fourth expression follows from the identity:
E(a|b)·E(a′|b′)=E(a⊕a′|b⊕b′)
where the direct sums of indices therein are modulo-2 sums. With these simplifications, the trace, the product of E(0, . . . , 0|b1, . . . , bm) times a right matrix is a FHT of the right matrix. Thus, the last expression explains the origin of the step 52 in the loop execution of the method 40.
In other embodiments, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or a digital signal processor (DSP) may be configured to perform the decoding method 40 as shown in
From the disclosure, drawings, and claims, other embodiments of the invention will be apparent to those skilled in the art.
This is a continuation-in-part application of application Ser. No. 11/219,126, filed Sep. 2, 2005 now abandoned.
Number | Name | Date | Kind |
---|---|---|---|
7139328 | Thomas et al. | Nov 2006 | B2 |
7216267 | Santraine et al. | May 2007 | B2 |
20050185734 | Hottinen et al. | Aug 2005 | A1 |
Number | Date | Country | |
---|---|---|---|
20070053460 A1 | Mar 2007 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11219126 | Sep 2005 | US |
Child | 11317140 | US |