[通信系统设计]Lab3 MIMO Programming
Introduction In this lab, we learnt the principles of Multiple-Input-Multiple-Output (MIMO) systems, which use multiple antennas at the transmitter and receiver ends of a wireless communication system. MIMO systems are increasingly being adopted in communication systems for the potential gains in capacity they realize when using multiple antennas. Multiple antennas use the spatial dimension in addition to the time and frequency ones, without changing the bandwidth requirements of the system. To achieve the higher capacity which is close to Shannon capacity (C=Blog_2 (1+SNR)), we need a lot of method to decrease BER, space time code is a method. It is assumed here that the channel undergoes independent fading between the multiple transmit-receive antenna pairs. Space–time block coding combines all the copies of the received signal in an optimal way to extract as much information from each of them as possible. The data are constructed as a matrix which has its columns equal to the number of the transmit antennas and its rows equal to the number of the time slots required to transmit the data. At the receiver side, the signals received are first combined and then sent to the maximum likelihood detector where the decision rules are applied. Space-time block codes were designed to achieve the maximum diversity order for the given number of transmit and receive antennas subject to the constraint of having a simple linear decoding algorithm. This has made space-time block codes a very popular and most widely used scheme. In this lab, we mainly care the Alamouti scheme which can achieve diversity gain is 2 when CSIT isn’t known and the number of transmit antennas is 2. Theoretical knowledge: Alamouti scheme is the basis of the Space Time Coding technique. The mathematical explanation of the scheme with two transmitting and one receiving antenna is also explained here. In this work, a two-branch transmit diversity scheme is implemented. Using two transmit antennas and one receive antenna, the scheme provides the same diversity order as maximal-ratio receiver combining (MRRC) with one transmit antenna and two receive antennas. At the transmitter side, a block of two symbols is taken from the source data and sent to the modulator. After that, Alamouti space-time encoder takes the two modulated symbols, in this case called s1 S=s1-s2*s2s1* In receive antenna, we can get: r1=h1s1+h2s2+n1r2=-h1s2*+h2s1*+n2 We can convert above equations to a matrix operation: r1r2*=h1h2h2*-h1*s1s2+n1n2* We defined: r=r1r2* S=s1s2 n=n2n2* H=h1h2h2*-h1* We can get: r=HS+n Then, we use HH HHr=S+HHn Then, we can get: h1*h2h2*-h1r1r2*=(h12+h22)s1s2+h1*n1h2n2*h2*n1-h1n2* So, by this way, even if we don’t know the CSIT, we can use Alamouti scheme to achieve diversity gain is 2. The slope of BER with SNR become larger.
Lab results & Analysis: First, we can try to achieve the example ‘Introduction to MIMO Systems’ in Communications System Toolbox The results are shown in these two figures: Figure 1 The results of the Introduction to MIMO Systems
Then we can start completing the question of this lab: The steps of MATLAB script performs the following:
Question one: Implement Alamouti 2X1 and 2X2 simulation (QPSK and 16QAM) The key part of the MATLAB codes of question one are shown: Alamouti STBC
Forming the equalization matrix by using the formula:
Then should change message to ['Hello world 0000','Hello world 0001','Hello world 0002','Hello world 0003','Hello world 0004','Hello world 0005','Hello world 0006'…]. The results are shown in these figures: Figure 2 the relationship between BER and EBN0
By obverting the results of this question, we can find that when EBN0 and modulation method are same, BER of the 2*2 is smaller than 2*1. Compared to the BER plot for nTx=2, nRx=1, we can see the Alamouti Space Time Block Coding has around 3dB poorer performance. This is because the effective channel concatenating the information from 2 receive antennas over two symbols results in a diversity order of 4. In general, with m We can compare the result we got with the figure mentioned in this paper “BER Analysis of Alamouti Space Time Block Coded 2x2 MIMO Systems using Rayleigh Dent Mobile Radio Channel” We can find that the extension of our result is as same as the results in this paper which indicates our program and stimulation are successful. Question two: Apply Alamouti 2X2 to the QPSK transceiver In this question, a QPSK modulated Alamouti STBC is simulated over a 2x2 quasi-static frequency-flat Rayleigh channel. The SNR range to be simulated is 0 to 10 dB The key part of the MATLAB codes of question two are shown: Create objects to perform QPSK modulation and demodulation, Alamouti encoding and combining, channel as well as BER calculation.
A two-element resonant dipole array is used at both transmit (Tx) and receive (Rx) side. At Tx, the dipoles are spaced a half-wavelength apart. At Rx, the spacing is a tenth of a wavelength.
Then should change message to ['Hello world 0000','Hello world 0001','Hello world 0002','Hello world 0003','Hello world 0004','Hello world 0005','Hello world 0006'…]. The results are shown in these figures: Figure 2 the BER and Results of EBN0=0 and 10dB Then we can plot the relationship between BER and EBN0 curve. In addition, we can try to compare the capacity of SISO and MIMO by using MATLAB program. The key part of the MATLAB codes of this section are shown: In this section we choose 2*2 MIMO as an example to explore the differences of capacity of SISO and MIMO.
The result was shown in this figure: Figure 1 We can find that with SNR increasing, the differences between SISO and MIMO increases. And the capacity of MIMO is much larger than SISO which are same as we learnt in the theory class. |
||||||
Experience:
The fact that HHH 2. The noise term is still white.
Feedback: 1. We should copy the original function libraries before we change the parameters of them. Because if we change the original program directly, the initial function libraries will not recovery. 2. Compare to Lab2, in this lab, a lot of matrix operations should be thought. I observe a lot of problems about the matrix operations, so we should change the message length, frame size and so on. By this way, we can get the correct values to satisfy the matrix operations. 3. We can try to use convolutional code in STBC. By combining the knowledge which we learnt in the theory class of this class, we can find that there is one of the mode in 802.11n has convolutional code + STBC.
|