MUMS Laboration Implementation of a Spatially Multiplexed Multiple Antenna System
1 Laboration Overview Throughout the laboration participants will become familiar with the different building blocks of a MIMO communication system. Implementation issues such equalization and frequency offsets are analyzed and overcome throughout the exercises. MIMO is introduced and Alamouti STBC as well as spatial multiplexing are investigated in terms of throughput, robustness and bit error rate (BER). See Figure 1 for an overview of the laboration exercises. Due too time limitation and prerequisite requirements all C-programming are left out of the exercises, and all DSP code is precompiled. An interface (MUMS host), allowing the user to set up the test bed as preferred, is provided. The measurements are visualized using a graphical user interface (written in Matlab) which illustrates many of the difficulties which are solved throughout the laboration. SISO Synchronization Equalization Tracking (DFE) TCM coding MIMO Feedback Alamouti STBC Spatial MUX Adaptive Mod. Figure 1: Overview of the lab exercise 2
1.1 The MUMS Host The MUMS host is an interface which allows the user to load all the DSP:s with the appropriate software. The MUMS host runs on both DSP host computers (Rx and Tx), of which the Rx computer should be run in Master mode, see Figure 2. Figure 2: MUMS Host, an interface to set up the test bed 3
1.1.1 Algorithm Selection Using the MUMS host several different Rx/Tx algorithms may be compared by running them in parallel (actually in rapid sequential order). The number of rounds that each algorithm is run is specified by the Number of rounds filed, agoodnumberbeing10orso. The different algorithms are loaded by entering an associated.txt file in the Algorithm X text field. The.txt files follow the name convention: SISO Alamouti SpatMult - FCorrON FCorrOFF - EqON EqOFF - TrackON TrackOFF - TCMON TCMOFF.txt For example SISO-FCorrON-EqON-TrackOFF-TCMOFF.txt will load the algorithm which set the system in SISO mode with frequency offset correction and equalization but without channel tracking and TCM coding. 1.1.2 Custom parameters Using the custom parameters, see 2, some additional aspects of the algorithms may be affected. The value of the custom parameters affect all algorithms equally. Most important in custom1 which sets the number of bits per symbol. Note also that the actual constellation depends on the coding employed. The possible values for custom1 are shown in the table below. In the adaptive mode the receiver select an appropriate constellation based on the estimated SNR at the input of the symbol detector or TCM decoder. custom1 Uncoded TCM Coded Bits per Symbol 0 Adaptive Adaptive 2-8 1 QPSK 8PSK 2 2 8PSK 16QAM 3 3 16QAM 32 cross QAM 4 4 32crossQAM 64QAM 5 5 64 QAM 128 cross QAM 6 6 128 cross QAM 256 QAM 7 7 256 QAM 512 cross QAM 8 custom2 sets a digital damping of the transmitter in db, e.g. custom2=1 is equal to 1dB of damping. This is useful when studying the system in a more controlled environment than what can be accomplished by physically moving the antennas around. Using custom3 the roles of transmitting and receiving antennas may be switched. This is sometimes useful to study the quality of different spatial links in the SISO system under quasistatic conditions for the wireless channel. The possible antenna configurations are summarized in the table below. 4
custom3 TX Antennas RX Antennas 0 Normal Normal 1 Switched Normal 2 Normal Switched 3 Switched Switched 1.1.3 Visualization The bottom matlab script field in Fig. 2 let you load a matlab script to illustrate the measured data. This field should be set to Illustrate.m which is a script which allows the user to analyze the measurements using a graphical user interface. 1.2 Matlab Interface for Analyzing the Resutls The MUMS host feeds all the received data to the matlab script Illustrate.m which automatically illustrates the measurements. The main window, see Figure 3, gives an overview of the performance of all algorithms. Each super frame is plotted as a bar with appropriate color. Bars in brighter color mark that there are bit errors. By clicking a bar of a specific super frame it is shown in a more detailed view, see Figure 4. If a fixed constellation is used, the received symbols of the entire super frame can be animated and compared to the actual constellation by pressing the Animate button, see Figure 5. This tool is helpful in illustrating frequency offsets and insufficient tracking. 5
Figure 3: Interface to illustrate the measurements. Each algorithm is described at the bottom. The top curve shows the throughput of each algorithm in each super frame. If there are bit errors, the bar is plotted in a brighter color. In the middle, the correlation of the received symbol buffer is plotted. More detailed information about a specific super frame is obtained by clicking the associated bar in the throughput plot. 6
Figure 4: Show Super Frame, an interface to illustrate a specific super frame. The interface is shown by clicking the associated bar in the main interface. At the top the measured SINR over the frames is plotted (one for each spatial stream). The bottom plot shows the total throughput in each frame, the darker color represents the fraction of correctly decoded bits. In the current example a substantial amount of bit errors occur due to a dropping SINR in the weakest spatial stream. In case a fixed constellation is used, there is an option to animate the received symbols by pressing the Animate button. 7
Figure 5: The received symbols (after channel and ISI compensation) are animated and compared to the chosen constellation (marked with x:s). The more recently received symbols are shown in darker color, which fade as the symbol gets older. This is an efficient tool to visualize the effects of frequency offsets and insufficient channel tracking. 8
2 Exercises 2.1 SISO, the basics Set up the test bed for SISO, QPSK transmission without TCM Coding, Channel Tracking and frequency offset compensation. The very basic, with only rough synchronization. Move the transmitter and receiver quite close to each other, to achieve a high SNR. 10 Superframes (rounds) should be enough to get a reasonable amount of data to study. You can use the constellation animation tool to plot the constellations. Alg1: SISO-FCorrOFF-EqOFF-TrackOFF-TCMOFF.txt custom1=1 1 What does the received constellation plots look like? 2 Why are not the four constellation points clearly visible? 2.1.1 Carrier offset correction Now add the carrier frequency offset module to compensate for differences in the various oscillators in the receiver and transmitter chains. Run the test again to get another 10 superframes. Alg1: SISO-FCorrON-EqOFF-TrackOFF-TCMOFF.txt custom1=1 3 What does the received constellation plots look like? Are the received symbols clustered around the true constellation points? 2.1.2 Adaptive equalization and channel estimation The individual bits transmitted are independent of each other and there is no correlation between the symbols transmitted. Run the same setup as before and study the correlation plot which show the correlation between symbols at the input of the symbol-detector in the receiver. 10 superframes should be sufficient to get a good measurement. 9
Alg1: SISO-FCorrON-EqOFF-TrackOFF-TCMOFF.txt custom1=1 4 Is there any correlation among the samples? 5 What is this a sign of and how does it affect the performance? Add the adaptive equalization module. The equalizer is computed from the received pilot frames and the equalizer and channel estimates are fixed during the data frames. Alg1: SISO-FCorrON-EqOFF-TrackOFF-TCMOFF.txt Alg2: SISO-FCorrON-EqON-TrackOFF-TCMOFF.txt custom1=1 6 Did the equalization affect the correlation among the symbols? 7 How did the equalization affect the SNR? 8 Is there a visible difference in the constellation plots? 9 What is the dominating factor in the remaining distortion of the constellation plots after equalization? Is there a difference between the beginning and the end of each superframe, in terms of SINR? If there is a difference then what is the cause of this difference? 10
2.1.3 Channel tracking Presumably, the largest source of degradation at this stage is that a small error in the frequency offset estimate will cause the constellation to rotate slowly which affects the performance of the system towards the end of each super frame. This can be handled by adaptively tracking the channel. Add adaptive channel tracking so that the equalizers and channels are continuously updated throughout the super frame using decision directed feedback (DFE). Alg1: SISO-FCorrON-EqON-TrackON-TCMOFF.txt custom1=1 10 Does adaptive channel tracking help mitigating the effect of errors in the frequency offset estimate? 11 Is there a notable difference in the constellation plots compared to prior of the channel tracking? 12 Is the SINR stationary throughout the super frame? 13 What dangers are there with decision directed feedback (training)? 2.1.4 Increasing the datarate At this stage the system should be able to operate at a data rate which is significantly above what the current QSPK constellation is offering. Try to increase the data rate by setting custom1 to values between 1 and 7 which correspond to constellations between QPSK and 256 QAM. Try also to move the antennas further apart to create different scenarios. 11
14 What is the highest data rate where the system can operate without any bit errors? How is this affected by moving the antennas further appart? 2.1.5 Coding The (reliable) data rate can be even further increased by using channel coding. The current system is able to use trellis coded modulation (TCM) to encode the transmitted bits. The implemented TCM code has a theoretical coding gain of roughly 4.5 db at a probability of error of 10 6. Setup the system to run the SISO with frequency correction, equalization, tracking, and both an uncoded and a TCM coded version of the DSP program. Pick an intermediate constellation, e.g. 32 QAM for the uncoded system and 64 QAM for the coded system (custom1=4). Move the antennas apparat into a position where reliable transmission is possible (i.e. no bit errors). By setting custom2 to an integer number, x, the transmitter can be made to reduce its effect by xdb. Increase the software damping (custom3) from zero and upwards in integer steps. Alg1: SISO-FCorrON-EqON-TrackON-TCMOFF.txt Alg2: SISO-FCorrON-EqON-TrackON-TCMON.txt custom1=4 15 When does bit errors start to occur? Is there a difference between the uncoded and coded system? Try to estimate the difference in SNRs required for the uncoded and coded system to operate without errors. 16 Is there any gain with the coded system and if so, how large is it? 17 Which system is better when there are a lot of bit errors? 12
2.2 MIMO Now it is time to use more than one antenna at the transmitter and the receiver. First without feedback of the channel and later with feedback. 2.2.1 Diversity through Alamouti coding First we deal with the case without feedback from the receiver to the transmitter. The transmitter does therefore not have any channel information. In such a scenario, a diversity rich space time block codes (STBC) are well suited. Here the Alamouti 2 2 STBC will be used. Move the transmitter and receiver and adjust the software dampening so that the SNR is a few db above what is required to transmit at the desired data rate (e.g. custom1=4 for 64QAM, depending on the situation). Run the SISO and Alamouti setup simultaneously and compare the performance. Hint: Make sure the system is limited by noise and not ISI. Otherwise theory and practise will not necessarily match. Alg1: SISO-FCorrON-EqON-TrackON-TCMON.txt Alg2: Alamouti-FCorrON-EqON-TrackON-TCMON.txt custom1=4 18 Is there a difference in performance? What does the theory say? Try introducing fading by moving around (wavering your arms around the antennas will usually do as well). You could also try to move the antennas around. 19 Can you notice any difference in robustness between the two setups? Is the SISO system more likely to have errors? 2.2.2 Increased data rate through Spatial Multiplexing If feedback from the receiver to the transmitter is available the additional antennas could be used to increase the data rate instead of increasing the diversity. One such technique is spatial multiplexing where two spatial data streams are created through the wireless interface. Set up the system for both Alamouti and the Spatial Multiplexing. Choose come fix constellation by changing custom1. The spatially multiplexed system should have twice the data rate of the Alamouti since now two symbols are 13
transmitted during each use of the wireless channel. Test different positions of the antennas and different constellations. Alg1: Alamouti-FCorrON-EqON-TrackON-TCMON.txt Alg2: SpatMult-FCorrON-EqON-TrackON-TCMON.txt custom1=1-7 20 Which system is most likely to have bit errors? 21 When bit errors occur in the spatially multiplexed system, on which spatial stream do you think they occur? 22 Is there a difference in robustness between the two setups 2.3 Adaptive rate and bit loading The spatially multiplexed system does not come to full justice without adaptive bit loading to ensure that each spatial stream is using an appropriate constellation. When there is feedback between the receiver and the transmitter it is possible for the highest reliably supported data rate to be sent back to the transmitter. This can of course also be done in the SISO and Alamouti systems. Set up SISO, Alamouti and Spatial Multiplexing with adaptive rate and TCM coding. Here it could be interesting to increase the number of rounds (up to 50 is reasonable). Alg1: SISO-FCorrON-EqON-TrackON-TCMON.txt Alg2: Alamouti-FCorrON-EqON-TrackON-TCMON.txt Alg3: SpatMult-FCorrON-EqON-TrackON-TCMON.txt custom1=0 23 Compare the performance of a. the adaptive rate, SISO system. b. the adaptive rate, MIMO system, with Alamouti coding c. the adaptive rate, MIMO system, with Spatial Multiplexing 14
24 Is there any difference in rate between the different systems? 25 How is the rate affected by moving the transmitter? 26 Which system is the most robust to channel fadings? 15