4G/LTE - Basic Procedures

 

 

 

MIMO(Multiple Input Multiple Output)

 

MIMO is easy to state and hard to implement. Two antennas at each end, two data streams at once, and roughly twice the throughput. The gap between that sentence and a working receiver is what this page is about, and most of it is linear algebra.

I think everybody would know what MIMO is. Simply put, it is a technique to increase the data throughput by using multiple transmitter antenna and multiple reciever antenna.

Followings are topics that will be covered in this page.

Basic.. Basic .. Concept

Following illustration is showing a very basic and over-simplified concept of MIMO. In very strict sense, it may be a little misleading but this can show the most common sense of MIMO concept.

As you see in the illustration, with MIMO mutiple independent data streams are transmitted simulteneously and as a result it can achieve much higher data throughput in comparison to SISO (Single Input Single Output) case. However, there is almost no advantage in terms of reliability of data transfer (e.g, less error) comparing to SISO case.

Two data streams entering TX1 and TX2, crossing to RX1 and RX2, and a DSP block recovering both streams, headed MIMO: Multiple Stream is being transmitted simultaneously

MIMO in one picture. Two streams go in and two come out, and the two ticks at the top say what that buys and what it does not.

  • The heading reads MIMO : Multiple Stream is being transmitted simultaneously, and the two ticks under it read Gain in Throughput and No Gain in Reliability.
  • Data Stream 1 enters TX1 as x1(t) and Data Stream 2 enters TX2 as x2(t). Two different streams, not two copies of one.
  • The red paths between the antennas cross, so RX1 and RX2 each hear both transmitters. The received signals y1(t) and y2(t) are therefore mixtures rather than the streams themselves.
  • The DSP block is what separates them again. Everything difficult about MIMO is inside that box, and the rest of this page is about what it has to do.

There is another concept which is often confused with MIMO. It is Diversity. What would be the difference between MIMO and Diversity ?

Following illustration would show the concept of Diversity. There are basically two types of Diversity called Reciever Diversity and Transmitter Diversity.

As you see in the illustration, in this Diversity configuration Single copy of one bit stream is being transmitted and reaches to multiple reciever antenna via a little different path, it means the reciever can have multiple versions of same data. Out of the multiple version, the reciever can select the best one or combine them all together in such a way to improve data quality. By doing this, communication reliability (less error) can be increased.. but no advantage in terms data throughput.  

One data stream leaving a single TX1 antenna, reaching RX1 and RX2 by two paths, and a Selection/Combining block producing the same stream, headed Diversity: Same Data is recieved by multiple Antenna simultaneously

Receive diversity. One stream, two paths, and the ticks at the top read the opposite way round from the MIMO drawing.

  • The two ticks now read Gain in Reliability and No Gain in Throughput. That pair is the exact reverse of the MIMO drawing above.
  • Only Data Stream 1 exists. It leaves one transmit antenna and arrives at RX1 and RX2 as y1(t) and y2(t).
  • The receiver block is labelled Selection/Combining rather than DSP. It is choosing the better copy or adding them, not solving for two unknowns.
  • One stream goes in and the same one comes out. The throughput is what a single antenna would have given.

Here goes another type of Diversity. In this Diversity configuration, Multiple copies of one(single) bit stream is being transmitted via multiple Tx antenna and reaches to single reciever antenna via a little different path, it means the reciever can have multiple versions of same data. Out of the multiple version, the reciever can select the best one or combine them all together in such a way to improve data quality. By doing this, communication reliability (less error) can be increased.. but no advantage in terms data throughput.  

The same data stream leaving TX1 and TX2, reaching one RX1 antenna, and a Selection/Combining block producing the stream, headed Diversity: Same Data is transmitted by multiple Antenna simultaneously

Transmit diversity. The antennas have swapped ends, and everything else about the argument is unchanged.

  • Data Stream 1 appears twice on the left, once into TX1 and once into TX2. Both carry x1(t), so they are copies rather than different streams.
  • There is one receive antenna. The two paths converge before RX1, so the combining happens over the air as well as in the receiver.
  • The ticks are the same as the drawing above: Gain in Reliability and No Gain in Throughput.
  • Comparing the three drawings, the count of streams decides the answer. Two streams give throughput, one stream over two paths gives reliability, and the antenna count alone tells you neither.

So.. overall concept is simple, but detailed process and implementation is not as simple as you may think. If you just want to get a common sense of MIMO. This would be enough.

However, if you want to know very details of MIMO/Diversity especially about what's going on in physical layer, it would be almost impossible to understand the details of MIMO/Diversity concept without going through underlying mathmatics. Actually math itself is not that complicated but interpreting the math and translate the math into real implementation is difficult. I hope my math section in this site would helpful on this. (Please see the Engineering Math - Matrix as you go along this section).

However describing and explain the full details of MIMO math would be huge task and it would take several month.. meaning this page will get updated for a while.

Overall Configuration and Procedure

Before jump into mathematical details, I want to summrize overall MIMO configurations that are most commonly accepted or discussed, and the PHY/MAC procedures that are used to implement each configuration. This is purely my personal classification. You may agree in terms of big picture, but may not agree in detailed level. The point is to show several keywords and key technologies related to MIMO.

I don't think I can describe/explain all of these at mathematical level (at least in near future), I will be satisfied if I can successfully describe at least "SU-MIMO with Open Loop".

MIMO Configuration on the left listing MU-MIMO, SU-MIMO, CoMP and Massive MIMO, MIMO Procedure on the right listing PreCoding, CSI Report, Open Loop, Closed Loop and Adaptive BeamForming, with green lines running many to many between them

Configuration on the left, procedure on the right. The green lines run many to many, which is the whole point of separating the two columns.

  • The purple column holds four configurations: MU-MIMO, SU-MIMO, CoMP and Massive MIMO. The orange column holds five procedures: PreCoding, CSI Report, Open Loop, Closed Loop and Adaptive BeamForming.
  • The green lines between the columns cross repeatedly. No configuration connects to exactly one procedure, and no procedure serves exactly one configuration.
  • Two green notes date the lower entries. CoMP is marked Release 12, and Massive MIMO is marked 5 G with a question mark. The question mark is the drawing’s own.
  • The caption under the left column reads Overall Configuration based on Antenna Configuration or Beam Formation. The one under the right reads Procedure (mainly physical layer) to implement a specific MIMO configuration.

The many to many wiring is what the drawing is for. Choosing a configuration does not choose a procedure. SU-MIMO can run open loop or closed loop, and either way it still needs precoding, so a real setup picks more than one box from the right column.

The dates on the left are worth reading as a timeline. Two of the four entries were still ahead of LTE when the drawing was made, and the two without dates are SU-MIMO and MU-MIMO. Those two are the ones the rest of this page covers.

Of the five procedures, this page reaches three. Precoding gets a section further down, closed loop appears as LTE TM4, and the CSI report is what carries the rank and the precoder index back to the network. Adaptive BeamForming is named in this drawing and nowhere else on the page.

  • Configuration and procedure are separate axes : naming one does not name the other, which is why the drawing needs two columns and a tangle of lines between them.
  • The classification is the author’s own : the paragraph above says so, and the drawing is a map of the area rather than a 3GPP taxonomy.
  • Open loop and closed loop are procedures, not configurations : they sit in the orange column, so the same SU-MIMO setup can use either.
  • Two entries were future work : CoMP is dated Release 12 and Massive MIMO carries a question mark against 5 G.

Mathematical Modeling of MIMO

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 transmit and two receive antennas with four labelled paths h11, h21, h12 and h22 drawn between them

The four paths named. The labels h11, h21, h12 and h22 cover every way a signal can get from a transmit antenna to a receive antenna.

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 equation y = Hx with y labelled Recieved data, H labelled Channel Information Matrix and x labelled Transmitted data, expanded into two by two matrix form

y = Hx, with each symbol named. Three letters carry the whole model, and the expansion underneath shows what each one contains.

  • y is the received data and holds y1 and y2, one per receive antenna. x is the transmitted data and holds x1 and x2.
  • H is labelled Channel Information Matrix and holds the four path coefficients in the layout [h11 h12; h21 h22].
  • The row order matters. The first row of H produces y1, so h12 is the path from transmit antenna 2 into receive antenna 1.
  • Everything below is an attempt to undo this one multiplication.

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 same two by two setup with the forward equation y = Hx drawn in blue and the recovery equation x = H inverse y drawn in green

The forward model in blue and the recovery in green. The green route needs an inverse, and the two objections in the list below are about that inverse.

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 here and see what kind of matrix is the one which is not invertable).

    ii) Calculating the inverse matrix is not the simple process. So if there is some way to preprocess the data in such a way that UE can decode the data without doing inverse matrix calculation of 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 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.

SVD applied to the channel, showing H = U Sigma V Hermitian, a Pre-Coding Matrix V at the transmitter, a Reciever Matrix U Hermitian at the receiver, and the product collapsing to y = Sigma x

What SVD buys. Put V at the transmitter and UH at the receiver, and the three matrices in the middle cancel.

  • The transmitter block is labelled Pre-Coding Matrix V and the receiver block Reciever Matrix UH. The spellings are the drawing’s own.
  • The cancellation runs down the page in three steps. It starts at y = UH(U Σ VH)Vx, then both unitary products become identity matrices, and it ends at y = Σx.
  • Nothing here inverts anything. U and V are unitary, so UHU is the identity by construction rather than by calculation.
  • The channel is still in the middle of the diagram, untouched. What changed is that a matrix was placed at each end to absorb it.

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 ? -:)

y = Sigma x expanded to a diagonal matrix of lambda 1 and lambda 2, with a block diagram showing two independent paths labelled lambda 1 and lambda 2

The result drawn as hardware. Two independent paths with one gain each, and no crosstalk left between them.

  • The matrix is diagonal, so y1 depends only on x1 and y2 only on x2.
  • In the diagram the crossing paths of the earlier figures are gone. Each transmit antenna now reaches its own receive antenna through a single box marked λ.
  • λ1 and λ2 are the two numbers the rest of the page measures. Rank Indicator counts them and Condition Number compares them.

Note : for more intuitive understandings on how SVD is used for precoding and equalization process, I posted another type of tutorial at here.

How the transmitter can figure out Precoding matrix ?

In previous section, I roughly explained how to design(implement) Precoder. Simply put, take the channel matrix (H) and do SVD of the matrix and take the unitary matrix of the SVD result.

Sound simple ? Maybe... Anyway let's assume that it sound simple and everybody understand this -:)

However, in reality there is a critical issues that were not mentioned above. In previous section, the channel matrix H should be given to find Precoding matrix. Next question is, who (transmitter or reciever) can figure out H.  It is the reciever because the reciever(UE in this case) can perform the channel estimation based on specific reference signal transmitted by the transmitter (eNB in this case). However, the precoding matrix is needed at transmitter(eNB).

Then, how can the transmitter know of the precoding matrix ? Conceptually the simplest way would be that the reciever (UE) notify eNB of the whole precoding matrix. This is simple only in concept, but it is not simple to implement since it would require pretty big bandwidth to send the whole precoding matrix and this can be a huge overhead.

To workaround this kind of overhead problem, 3GPP came up with a little bit of short cut as described below. In this method, they predefines a set of matrix based on the extensive investigation of the radio channel during the standardization process. These predefined matrix are known to both UE and eNB.

And then UE select a specific precoder(precoding matrix) based on the its own channel estimation and informs eNB of the index of the precoding matrix that it selected. Since this is only the index of the matrix (not the matrix itself), we can implement this method without causing much overhead.

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 receiver as shown below.

Closed loop arrangement with a Codebook and Codebook Selection block at the transmitter, a Channel Estimator, Codebook Selection and Code book at the receiver, and a PMI bar running back from receiver to transmitter

The codebook shortcut drawn end to end. Both ends hold the same table, and only an index crosses the air.

  • Codebook appears twice, once at each end. The receiver selects from its copy and the transmitter looks the same index up in its own.
  • The Channel Estimator feeds Codebook Selection at the receiver. The choice is made where the channel is measured.
  • The bar along the foot is labelled PMI and runs from the receiver back to Codebook Selection at the transmitter. That single path is what replaces sending the whole matrix.
  • The Precoder at the transmitter takes its matrix from the codebook rather than from a calculation, which is the compromise the paragraphs above describe.

The algorithm by which UE select the codebook which is best fit for the channel at specific moment is as follows.

Three numbered steps for codebook selection, with Step 1 giving Omega = W times H Hermitian H times W Hermitian, Step 2 selecting the minimum and Step 3 reporting the index

The selection rule in three steps. Step 1 is evaluated once per codebook entry, which is why a small codebook matters.

  • Step 1 computes Ω = W(HHH)WH for every element in the code book. W is labelled Codebook Element (Precoding Matrix) and H is labelled Channel Information Matrix.
  • Step 2 selects the codebook element which gives the minimum value, so the search is exhaustive rather than analytic.
  • Step 3 reports the index of the selected element as the PMI.
  • Step 3 says to the receiver, which reads the wrong way round. The UE is the receiver and it is the one reporting, so the index travels to the transmitter. The paragraphs above say so, and the drawing of the closed loop arrangement shows the PMI arrow pointing at the transmitter.

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.

The equation y = U Hermitian (U Sigma V Hermitian) V x with green notes saying Reciever should know this, This is from channel, and Transmitter should know

The same product, split by who has to know what. Three groups, three owners, and only one of them is measurable directly.

  • The note on the left points at UH and reads Reciever should know this. The note on the right points at V and reads Transmitter should know.
  • The note underneath points at the bracketed middle group and reads This is from channel (Information from Channel).
  • The receiver can measure the middle group, because that is what channel estimation gives it. It therefore has what it needs for UH.
  • V sits at the far end from the measurement. That mismatch is the problem the whole closed loop arrangement exists to solve.

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.

Rank Indicator

The term Rank Indicator came from the pure mathematical term Rank Index. So, simply put, Rank Indicator is a special kind of UE measurement that reports Rank Index.

Putting it in more practical aspect, Rank Indicator is a kind of number (indicator) that represents how well a MIMO communication works. For example, let's assume that a UE is communicating with a eNB with 2x2 MIMO configuration and UE reports RI(Rank Indicator) of '2', it implies that the 2x2 MIMO is performing as a real MIMO fashion. However, if UE reports RI of '1', it implies that the communication is going on as if it is with single antenna. It means that the 2x2 MIMO is not performing with the best efficiency.

Explaining the same thing in a more formal way, it would go as follos :

Let's remind us of the definition of Singular Matrix. It is defined as follows. It is a diagonal matrix. Once you get the singular matrix of a channel you can extract a couple of very important information from it.

The singular matrix Sigma written as a two by two diagonal matrix holding lambda 1 and lambda 2

The singular matrix. Two numbers on the diagonal and zeros everywhere else.

One of the most important information you can get from the singular matrix is Rank Indicator. Rank Indicator is defined as Number of the diagonal elements which is not zero. Physical meaning of Rank Indicator is the number of independent communication channel. In case of 2 x 2 Singular matrix (for 2 x 2 MIMO) as an example, if the Rank Indictor is 2. Both diagonal elements as shown below is non-zero value and two separate communication pipe is established. If the Rank Indicator of the matrix is 1, one of the diagonal element (Lamda 1 or Lamda 2) is zero. It means even though we setup two antenna, the really working data stream is only 1, implying that the signal from one of the antenna is totally got lost or burried under noise which cannot be decoded.

The same diagonal matrix with the diagonal highlighted and a note reading Rank Indicator = Number of Nonzero value in Singular Matrix

Rank Indicator defined on the picture: count the non-zero values on the highlighted diagonal, and that count is the RI.

Example 1 > RI Report from a drive test on a High Way under 2x2 TM3

Following plot is from the data captured by a drive test tool Azenqos Drive Test tool (AZQ Android). I got the log captured by the tool and exported the data as csv file and then plot it on Microsoft Excel. The map displaying the path of the measurement shown at the bottom is the one automatically created by AZQ reporting tool.

In this specific example, you would see a considerable amount of report with RI = 1, it implies that in many case 2x2 MIMO does not work with the full efficiency.

Drive test plot of Rank Indicator against time with PCI values along the top, annotations giving RI = 2 for 1001 of 1622 reports and RI = 1 for 621 of 1622, and a map of the route underneath

RI reported on a real 2x2 link over about six and a half minutes. Two values only, and neither of them is rare.

  • The vertical axis is RI and carries values 1 and 2 only. The time axis runs from 35:16.8 to about 41:45.6.
  • The two annotations give the counts: RI = 2 on 1001 of 1622 reports and RI = 1 on 621 of 1622. The two add to 1622, so every report is accounted for.
  • RI = 1 is therefore 38 per cent of the run. On a 2x2 link that is the share of the time the second stream was not usable.
  • The alternating blue and yellow bands are cells, and the numbers along the top are their PCI values: 343, 95, 94, 261, 263, 43, 42, 386 and 384.
  • The map underneath is the route the measurement was taken along, and it is roughly a straight line, which is what a highway drive test looks like.

Condition Number

Then you might have question. Rank Indictor cares only on the number of non-zero values in the singular matrix. Does this mean that the amount of these number doesn't matter ? For example, isn't there any difference in terms of real communication performance between (lamda1 = 1, lamda2 = 1) and (lamda1 = 2, lamda2 = 0.1) ? In both case, Rank Indicator is same but real communication performance is different. So in order to properly estimate the real performance of MIMO channel we may need another indicator, that indicator is Condition Number as defined as below (according to reference [1]. I strongly recommend you to read this reference)

The condition number defined as kappa of H equals lambda max over lambda min, with notes giving the optimal case as kappa near 1 and the non-optimal case as kappa much greater than 1

Condition number defined. One ratio, and the two notes beside it fix which end of the range is good.

  • κ(H) is λmax divided by λmin, so it is never less than 1.
  • The upper note reads Optimal Scenario for Spacial Multiplexing is when κ(H) ≈ 1. The lower reads Non-Optimal Scenario for Spacial Multiplexing is when κ(H) >> 1.
  • Rank Indicator counts the non-zero λ values and this counts nothing. It compares them, which is the information RI throws away.

As stated above, as the difference among the diagonal numbers are less and less, the more optimal the MIMO channel works. Following graph from [1] shows this property. Horizonal axis indicates Condition Number in dB unit and Vertical Axis indicates the SNR in dB unit. Each line shows the case where the same amount of data rate is achieved. Each points on the line indicate 'To achieve a certain performance(data rate) at a certain condition number, how much SNR is required ?". or you can interpret it as "How much performance (data rate) you can get when you were given a certain condition number and a certain SNR".

For example, let's look at the point labed (B). This point tells "In this specific communication system, when the condition number is 10 dB and SNR is 20 dB, we can achieve max 12 bits/s/Hz data rate". In order words, "to achieve 12 Bits/s/Hz data rate at the condition number 10 dB, we need at least 20 dB SNR".

Now let's look at point (A). It tells "In this specific communication system, when the condition number is 0 dB  and SNR is 18 dB, we can achieve max 12 bits/s/Hz data rate". In order words, "to achieve 12 Bits/s/Hz data rate at the condition number 0 dB, we need at least 18 dB SNR".

What would you tell if you compare point (A) and point (B) ? At both points, we can achive the same performance (data rate), but at point (A) we could achieve the data rate even with poorer SNR comparing to point (B). In other words, as Condition Number get closer to 0 dB, we can achieve the data rate with poorer SNR.

Try to pick some other places and describe the situation as I did until you get familiar with the interpretation of the graph and you will get the practical understanding of Condition Number.

Graph of SNR in dB against Condition Number in dB with six curves labelled 2 to 12 Bits/s/Hz, a blue marker (A) at condition number 0 and a red marker (B) at condition number 10

Equal data rate curves. Each line joins the points where the same rate is achieved, so moving along a line trades condition number against SNR.

  • The horizontal axis is Condition Number in dB and runs to 40. The vertical axis is SNR in dB and is marked at 5, 10, 15, 20, 25 and 30.
  • Six curves are labelled at the right edge: 2, 4, 6, 8, 10 and 12 Bits/s/Hz, lowest to highest.
  • Marker (A) sits on the vertical axis, so its condition number is 0 dB, and it lies on the 12 Bits/s/Hz curve at about 18 dB SNR.
  • Marker (B) sits at condition number 10 dB on the same 12 Bits/s/Hz curve, at 20 dB SNR.
  • Every curve rises from left to right. A worse condition number always costs SNR for the same rate, and the cost grows as the curves steepen past about 10 dB.

Now let's look into a couple of example of channel matrix and see how/what information we can get out of them. The example matrix itself comes from reference [1] and the tool that I used to perform SVD is reference [2] (Wolfram Alpha).

First example goes as follows. Can you visualize the physical setup of transmitter and reciever from this matrix ?

Since it is 2 x 2, you would have two transmitter antenna and two reciever antenna. It is 2 x 2 matrix. The elements except those on diagonal line are all zero. It means that there is no crosstalk between each antenna path. All the elements in the diagonal line are all '1'. It means 100% energy from transmitter antenna 1 is delivered to reciever antenna 1 without any loss and 100% energy from transmitter antenna 2 is delivered to reciever antenna 2 without any loss. Of course, you would never have this kind of condition in real wireless communication. But you can have this kind of condition when you do a lab test connecting 2 DUD antenna to 2 communication port on a test equipment.

The channel matrix H equal to the two by two identity matrix

The first channel: the identity. No crosstalk, and no loss on either path.

Now let's do SVD to get Singular Matrix. Using Wolfram Alpha, I got the following result.

The SVD of the identity channel, with U, Sigma and V Hermitian all equal to the identity matrix

Its SVD is three identity matrices. Σ is already the identity, so both singular values are 1.

Now let's extract some information from the singular matrix. First.. what is Rank Indicator value ? It is 2 since the number of Non-zero elements on diagonal line is 2.

Then let's take the condition number. It is '1' as shown below. It means it is perfect condition for spatial multiplexing and you should have maximum performance from this channel.

The condition number of the identity channel computed as 1 over 1 equals 1

κ = 1/1 = 1, the best value the ratio can take.

Second example goes as follows. Can you visualize the physical setup of transmitter and reciever from this matrix ?

Since it is 2 x 2, you would have two transmitter antenna and two reciever antenna. It is 2 x 2 matrix. All the  elements even non-diagonal elements are none zero. It means that there is crosstalk in all the possible ways. All the elements in the matrix are are same value which is 1/sqrt(2). It means 50% energy from transmitter antenna 1 is delivered to reciever antenna 1 and another 50% energy from transmitter antenna 1 is delivered to reciever antenna 2. and it also means 50% energy from transmitter antenna 2 is delivered to reciever antenna 1 and another 50% energy from transmitter antenna 2 is delivered to reciever antenna 2.

The channel matrix H with all four entries equal to 1 over root 2

The second channel: every entry 1/√2. Both transmit antennas reach both receive antennas equally.

Now let's do SVD to get Singular Matrix. Using Wolfram Alpha, I got the following result.

The SVD of the all-equal channel, with Sigma holding root 2 and 0 on its diagonal

Σ reads √2 and 0. The second singular value has collapsed to zero, so only one path survives.

Now let's extract some information from the singular matrix. First.. what is Rank Indicator value ? It is 1 since the number of Non-zero elements on diagonal line is only 1.

Then let's take the condition number. In pure mathematical sense, it cannot be calculated since the denominator is zero. But in practical sense, you can think of '0' as a very small number. In that case, you can get the condition number as shown below which is very large number. It means this channel is the worst condition for MIMO.

The condition number of the all-equal channel computed as root 2 over 0, approximately infinity

κ = √2 / 0, which the figure writes as approximately infinity. The worst case the ratio can reach.

Third example goes as follows. Can you visualize the physical setup of transmitter and reciever from this matrix ?

Since it is 2 x 2, you would have two transmitter antenna and two reciever antenna. It is 2 x 2 matrix. All the  elements even non-diagonal elements are none zero. It means that there is crosstalk in all the possible ways, but the value between diagonal element and non-diagonal elements has 90 degree phase shift. It means 50% energy from transmitter antenna 1 is delivered to reciever antenna 1 and another 50% energy from transmitter antenna 1 is delivered to reciever antenna 2 with 90 degree phase shift. and it also means 50% energy from transmitter antenna 2 is delivered to reciever antenna 1 with 90 degree phase shift and another 50% energy from transmitter antenna 2 is delivered to reciever antenna 2. It means two signals transmitted from two transmitter antenna and comming into one reciever antenna does not interfere at all.

The channel matrix H with 1 over root 2 on the diagonal and j over root 2 off the diagonal

The third channel: the same magnitudes as the second, with j on the off diagonal instead of 1.

Now let's do SVD to get Singular Matrix. Using Wolfram Alpha, I got the following result.

The SVD of the third channel, with Sigma and V Hermitian both equal to the identity matrix

Σ comes back as the identity. Crosstalk of this shape costs nothing at all.

Now let's extract some information from the singular matrix. First.. what is Rank Indicator value ? It is 2 since the number of Non-zero elements on diagonal line is 2.

Then let's take the condition number. It is calculated to be 1 which means the perfect condition for MIMO. As you see here, even though there is cross talk between two communication path. It can be a very good condition for MIMO depending on the characteristics of the crosstalk. Would there be any way to implement this kind of channel condition ? Yes.. there is. If you cross polarize the antenna,you can have this kind of channel condition.

The condition number of the third channel computed as 1 over 1 equals 1

κ = 1 again, matching the identity channel despite the crosstalk.

Here goes another example which can be more realistic. Can you visualize the physical setup of transmitter and reciever from this matrix ?

Since it is 2 x 2, you would have two transmitter antenna and two reciever antenna. It is 2 x 2 matrix. All the  elements even non-diagonal elements are none zero. It means that there is crosstalk in all the possible ways, but it is not easy to intuitively know exactly how much engergy goes to which antenna. Of course you can calculate this by taking the magnitue and angle of all of these complex numbers.. but let's just think of intuitive meaning. Since the magnitude and angle of all the elements are not the same, the crosstalk between the communication paths would not go 100% destructive way.

The channel matrix H with four complex entries, 0.9 + j0.1 and 0.2 - j0.3 on the first row and -0.3 + j0.5 and -0.7 - j0.1 on the second

The fourth channel: four arbitrary complex entries, and nothing readable by eye.

In this kind of situation, SVD can play important role. I got the result as below using Wolfram Alpha.

The SVD of the fourth channel, with Sigma holding 1.1457 and 0.6909 on its diagonal

Σ reads 1.1457 and 0.6909. Two non-zero values, so the rank is 2, and they are close but not equal.

Now let's extract some information from the singular matrix. First.. what is Rank Indicator value ? It is 2 since the number of Non-zero elements on diagonal line is 2.

Then let's take the condition number. It is calculated to be 1.6583 which is not the best case for MIMO and not the worst case either.  It is less than 3 in dB unit. If you plug this number into the graph you saw above, it is pretty good condition for MIMO.

The condition number of the fourth channel computed as 1.1457 over 0.6909 equals 1.6583

κ = 1.1457 / 0.6909 = 1.6583. Between the two extremes above, and the only one of the four that a real channel would produce.

Note : for more intuitive understandings on how SVD is used for precoding and equalization process, I posted another type of tutorial at here.

  • Rank and condition number answer different questions : the first counts how many streams exist, the second says how evenly they carry.
  • Crosstalk is not the enemy : the third example mixes the antennas completely and still gives κ = 1, while the second mixes them equally and gives infinity. The phase relationship decides it, not the amount.
  • Rank 2 can still be a poor channel : the first and fourth examples both report rank 2, and their condition numbers are 1 and 1.6583.
  • A worse condition number costs SNR, not rank : the equal rate curves rise from left to right, so the same throughput needs more power as κ grows.
  • Field data shows the theory biting : on the drive test above, 621 of 1622 reports came back at RI = 1 on a 2x2 link.

How UE and Network can figure out MIMO capability of each other ?

In early stage of LTE deployment, most of UE supported only Category 3 or 4. In this case it is assumed that both Network and UE can support up to only 2x2 MIMO.

However, recently (as of Jul 2017) we see the UEs and Networks supporting more than 2 antenna and all of the following MIMO configurations are becoming a common capability.

  • 2x2
  • 4x2
  • 4x4
  • 8x2 (This is still not that common, but being adopted in some TDD network)

With these many options, Network need to know of the exact UE capability of Antenna configuration. Technically UE does not need to know about the network capability because UE is supposed to use whatever the network ask for, it is up to Network to figure out UE capability and configure the MIMO configuration not to exceed UE capability. However, there is way by which a UE can figure out Network (eNB) antenna configuration as well.

How a UE can figure out the MIMO Capability of eNB : UE can figure out how many antenna eNB is using by checking PBCH CRC Mask. However, UE can figure out only the number of Antenna that eNB is using, it cannot figure out whether the Network can use all those antenna in MIMO or the Network use them in diversity purpose until it reaches RRC Connection Setup or RRC Connection Reconfiguration.

How a NW can figure out the MIMO Capability of UE : Network can figure out the MIMO capability of UE via UE Capability Information message. Actually UE Capability Information does not carry any explicit information of UE MIMO capability. However Network can figure out UE MIMO capability indirectly from UE Category reported in UE Capability Information message. In UE Category table, you can figure out the number of layers that can be supported. From this information, the Network can indirectly figure out UE MIMO capability. For example, if the UE category says the UE category support the number of layer 2, it implies that the UE would support 2x2 or 4x2. If the UE category says the UE category support the number of layer 4, it implies that the UE would support 4x4

The four captures below are all the antennaInfo branch of an RRC Connection Reconfiguration, taken from four different setups. Reading them side by side is the quickest way to see which field actually carries the antenna count, because only two lines differ between them.

36.331 v19.3.0 (Release 19) gives codebookSubsetRestriction eight branches inside AntennaInfoDedicated, and each one fixes its own width: n2TxAntenna-tm3 is SIZE(2), n4TxAntenna-tm3 is SIZE(4), n2TxAntenna-tm4 is SIZE(6) and n4TxAntenna-tm4 is SIZE(64).

Note : the captures disagree with themselves on that point, and they are left exactly as they were logged. In each one the CHOICE line and the bit value agree with 36.331, while the child field name does not. Example 1 chooses n2TxAntenna-tm4 and shows six bits, which is SIZE(6) and correct, but names the child n2TxAntenna-tm3 and prints SIZE(2). Examples 3 and 4 choose n4TxAntenna-tm4 and show sixty four bits, which is SIZE(64) and correct, but name the child n4TxAntenna-tm3. The decoder is labelling the branch wrongly, so trust the CHOICE line and the bit count rather than the child name.

Example 1 > 2x2 TM3

Decoded RRC, decoder tree format. The field values are from a live capture, not from the specification.

  | | +-antennaInfo ::= CHOICE [explicitValue] OPTIONAL:Exist
  | | | +-explicitValue ::= SEQUENCE [1]
  | | |   +-transmissionMode ::= ENUMERATED [tm3]
  | | |   +-codebookSubsetRestriction ::= CHOICE [n2TxAntenna-tm4] OPTIONAL:Exist
  | | |   | +-n2TxAntenna-tm3 ::= BIT STRING SIZE(2) [111111

Example 2 > 2x2 TM4

Decoded RRC, decoder tree format. The field values are from a live capture, not from the specification.

  | | +-antennaInfo ::= CHOICE [explicitValue] OPTIONAL:Exist
  | | | +-explicitValue ::= SEQUENCE [1]
  | | |   +-transmissionMode ::= ENUMERATED [tm4]
  | | |   +-codebookSubsetRestriction ::= CHOICE [n2TxAntenna-tm4] OPTIONAL:Exist
  | | |   | +-n2TxAntenna-tm4 ::= BIT STRING SIZE(2) [111111

 

Example 3 > 4x2 TM3

Decoded RRC, decoder tree format. The field values are from a live capture, not from the specification.

  | | +-antennaInfo ::= CHOICE [explicitValue] OPTIONAL:Exist
  | | | +-explicitValue ::= SEQUENCE [1]
  | | |   +-transmissionMode ::= ENUMERATED [tm3]
  | | |   +-codebookSubsetRestriction ::= CHOICE [n4TxAntenna-tm4] OPTIONAL:Exist
  | | |   | +-n4TxAntenna-tm3 ::= BIT STRING SIZE(64)
                              [1111111111111111111111111111111111111111111111111111111111111111]

 

Example 4 > 4x4 TM3

Decoded RRC, decoder tree format. The field values are from a live capture, not from the specification.

  | | +-antennaInfo ::= CHOICE [explicitValue] OPTIONAL:Exist
  | | | +-explicitValue ::= SEQUENCE [1]
  | | |   +-transmissionMode ::= ENUMERATED [tm3]
  | | |   +-codebookSubsetRestriction ::= CHOICE [n4TxAntenna-tm4] OPTIONAL:Exist
  | | |   | +-n4TxAntenna-tm3 ::= BIT STRING SIZE(64)
                              [1111111111111111111111111111111111111111111111111111111111111111]

  +-nonCriticalExtension ::= SEQUENCE [10] OPTIONAL:Exist
    +-lateNonCriticalExtension ::= OCTET STRING CONSTRAINTED [0000000101101010] OPTIONAL:Exist
    | +-RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE [01]
    |   +-lateNonCriticalExtension ::= OCTET STRING OPTIONAL:Omit
    |   +-nonCriticalExtension ::= SEQUENCE [10] OPTIONAL:Exist
    |     +-antennaInfoDedicatedPCell-v10i0 ::= SEQUENCE [1] OPTIONAL:Exist
    |     | +-maxLayersMIMO-r10 ::= ENUMERATED [fourLayers] OPTIONAL:Exist
    |     +-nonCriticalExtension ::= SEQUENCE OPTIONAL:Omit

Reference