This page builds the MIMO channel model up to the point where SVD becomes useful, and then shows what SVD buys. The argument runs in one line. Recovering the transmitted data means undoing the channel matrix, undoing it by inversion is awkward, and SVD replaces the inversion with a pair of matrices that the two ends apply separately.
- The 2 x 2 channel matrix
- Recovering the transmitted data
- What SVD does to the channel matrix
- Closed loop MIMO and the codebook
- Considerations for Reality
- Reference
The 2 x 2 channel matrix
In case of 2 x 2, overall data transmission process can be illustrated as follows. The red arrow and four blocks (h11,h12,h21,h22) between the two antenna is to illustrate the possible data path between the two Tx and two Rx antenna.
- Two data streams enter on the left. x1(t) goes into TX1 and x2(t) goes into TX2, and each transmitter drives its own antenna.
- Four paths cross the gap. h11 and h22 are the direct paths, and h21 and h12 are the cross paths drawn in red.
- RX1 and RX2 pick up y1(t) and y2(t). Each receive antenna hears both transmit antennas rather than one.
- The DSP block on the right turns the two received signals back into the two data streams. That block is what the rest of this page is about.
One label in the drawing is mistyped. The lower output on the right reads Data Stream 1 above x2(t), and it should read Data Stream 2.
h11, h12,h21,h22 are special numbers (coefficient) to show how much of the data is going through each of the possible path. The greater the value is, the larger portions of data is being transmitted in that path. A matrix which is made up of these channel path coefficient is called "Channel Information Matrix". The reciever and transmitter relationship is represented as follows.
The drawing above collects the four coefficients into one matrix and writes the whole system as y = Hx. Read it from the left. y holds the two received values, H holds the four path coefficients, and x holds the two transmitted symbols. The bottom line writes the same equation out in full, so the row structure of H becomes visible. Row 1 of H is what RX1 hears, and row 2 is what RX2 hears.
Recovering the transmitted data
As I said the math itself is very simple. It would be like a first example at the first chapter of any linear algebra book. The important this is how to interpret this equation into real implementation. If I interpret it in an illustration, it would be as the path represented in green arrows. By this way, we can mathematically represent the recieved data (data distorted by the air path between transmitter and reciever antenna), but just calculating the recieved is not our goal (not the function of the reciever). Our goal is to extract/figure out the 'transmitted data (original data)'. Mathematically this is also simple and it is represented in green arrows.
The drawing above carries two equations rather than one. The blue arrows build y = Hx out of the picture. The green arrows run the other way and give x as the inverse of H multiplied by y. That inverse is the whole of the receiver in this idealised model.
One caption in the drawing is loose. It says the receiver recovers the transmitted data by multiplying the channel information matrix and the received data, while the formula beside it uses the inverse of that matrix. The paragraph below states it correctly.
As you see in the process illustrated in green arrow, to recover the transmitted data (original data) from the received data we need to take inverse of the channel information matrix. Unfortunately there are a couple of issues with this method.
i) Not all matrix is invertable. There are some matrix for which inverse matrix does not exists. (Please refer to Matrix section and see what kind of matrix is the one which is not invertable).
ii) Calculating the inverse matrix is not the simple process.
Both problems come from the same source. Inversion needs H to be well behaved, and it needs the receiver to redo the work every time H changes. A channel matrix close to singular fails the first requirement. A fast changing channel makes the second one expensive. The section below replaces the inversion rather than making it cheaper.
What SVD does to the channel matrix
To workaround these problems, we change the channel information matrix into three matrices by the method called SVD(Singular Value Decomposition). See the SVD section in Marix page and clearly understand the meaning of this process. Probably my page would not be enough to give you full understanding about SVD. Google as much materials about this as possible and try to have some "Intuitive" understanding of the concept.
When we apply any mathematical technique in engineering area, it should be meaningful in the engineering sense and should be implementable. The meaning and implementation of SVD can be illustrated as follows.
- The line at the top states the decomposition, H = U SIGMA VH. SIGMA is diagonal, and U and V are unitary matrices.
- V goes into the transmitter as the Pre-Coding Matrix, drawn as the block in front of TX1 and TX2.
- UH goes into the receiver as the Reciever Matrix, drawn as the block after RX1 and RX2.
- The three lines underneath do the cancelling, and they end at y = SIGMA x.
Nothing in that sequence inverts anything. The middle line reads UH (U SIGMA VH) V x, and the two underlined pairs each reduce to an identity matrix. U and V are unitary, so UH U and VH V collapse by construction, and the cancelling costs a multiplication instead of an inversion. That answers both of the problems listed in the section above.
The important point is that by implementing this method, we can express the channel information matrix as a simple 'diagonal matrix'. That diagonal matrix is expressed as follows and can be illustrated as follows. Isn't it look simple and clear ? -:)
The drawing above spells out what y = SIGMA x means at the antennas. The diagonal holds lambda1 and lambda2, the off diagonal entries are zero, and the picture under the matrix redraws the link as two independent paths. Stream 1 reaches RX1 through lambda1 alone, and stream 2 reaches RX2 through lambda2 alone. The cross paths have gone.
The two lambdas are rarely equal, and that matters. Each one is the gain of its own path, so the two streams arrive with different SNR even though they left with the same power. A channel with one small lambda therefore carries one good stream and one poor one. That is the same conditioning that drives noise amplification on the Zero Forcing page, seen here as a singular value rather than as a determinant.
Closed loop MIMO and the codebook
For some MIMO implementation (e.g, TM4 in LTE = Closed Loop MIMO), you estimate the channel and select a specific precoding matrix and send it back to the transmitter as shown below.
- The transmitter on the left holds a Codebook and a Precoder. Codebook Selection there decides which entry the Precoder applies.
- The receiver on the right runs a Channel Estimator, and its own Codebook Selection compares that estimate against the same Codebook.
- The PMI bar along the bottom carries the chosen index from the receiver back to the transmitter. That single index is the whole of the feedback.
- Both ends hold identical copies of the codebook, which is why an index is enough and the matrix itself never crosses the air.
The algorithm by which UE select the codebook which is best fit for the channel at specific moment is as follows.
The three steps above are the selection rule. Step 1 computes a quantity from the channel matrix and each candidate W in turn. Step 2 picks the candidate that gives the minimum value. Step 3 reports the index of that candidate as the PMI.
Step 3 in the picture says the report goes to the receiver, and it goes to the transmitter. The PMI arrow in the diagram above shows the correct direction.
Once a specific codebook element (precoding matrix) is selected as shown here, that precoding matrix is used to transform the incoming bits as explained in Precoding section.
Considerations for Reality
Now you know about various aspect of MIMO channel model and conceptual mathematical representation. I hope it make sense to you at least in terms of mathematically. But as you know, when you try to implement the mathematical model into a real system, almost always you would meet something you haven't imagined when you are playing only in mathematical world.
Let's look into folloing mathematical model again.

Can you guess what is known variable and what is unknown variable for each side (reciever and transmitter side) ? We can think of followings as a kind of known variables.
- The three matrix at the center can be a known at least to the reciever since the reciever can estimate channel Matrix H from the received signa and calculate these matrix from H.
- The vector x is known to transmitter since it is just the data that's transmitted.
- The matrix U can be a known to the reciever since it can be derived from H.
The issue is how to figure out the matrix V. About this matrix, there are two main problems.
- This is the one that should be used by transmitter, but transmitter does not have any information about H. So it cannot be directly calculatable on transmitter side.
- This matrix is used in transmitter side BEFORE the data (the vector x) is transmitted. How can transmitter know something before it happens ?
One of the most common solution for this is that the reciever analyze channel matrix (H) and inform the transmitter of the best matrix V. This is called 'Closed loop MIMO' and LTE TM4 (Transmission Mode 4) belongs to this category.
Now this kind of closed-loop method can solve all the problems listed above ? Unfortunately No.
What are the problems now ?
The problems that you can easily think of would be as follows :
- Even though UE can figure out the matrix V, it is from the data it just recieved. If it send this information to transmitter, the transmitter will use the information for NEXT transmission. If there is not much difference in channel condition between the current transmission and next transmission, this information from reciever can help a lot for next transmission on transmitter. But if the channel condition changes so fast, the information may not be useful.
- Even though UE figured out correct matrix V, it is huge amount of data and overhead to send the whole matrix itself to the transmitter. In some case like LTE, they use a kind of a workaround. In the workaround, we use only a few/several pre-defined matrices for V and the receiver evaluate each of the candidates and pick the best one and inform the transmitter of the index of the candidate matrix in stead of the whole matrix contents. For example, in LTE TM4 they defined only 4 candidate V matrix (precoding matrix) for 2 x 2 MIMO and 16 candidates for 4 x 4 MIMO. The selected candidate may not be the best fit in terms of mathematics, but it can be a best-effort in terms of trade-off between mathematical accuracy and report overhead.
- In LTE TM 8,9,10 they introduced a method by which the transmiter can use any precoding matrix (V). In this case, the transmitter is using special reference signal called UE-specific (reciever specific) reference signal to help better decoding on the reciever side.
Reference