0% found this document useful (0 votes)
114 views

Performance Analysis of Efficient and Low Complexity MIMO-OFDM Using STBC and V-BLAST

The document discusses V-BLAST and STBC techniques for MIMO-OFDM systems. It analyzes the performance of V-BLAST based on BER for different detection techniques like zero forcing, MMSE, and maximum likelihood. Simulation results show V-BLAST has better performance than conventional methods. The document also reviews literature on transmit diversity techniques.

Uploaded by

Dheeksha Reddy
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
114 views

Performance Analysis of Efficient and Low Complexity MIMO-OFDM Using STBC and V-BLAST

The document discusses V-BLAST and STBC techniques for MIMO-OFDM systems. It analyzes the performance of V-BLAST based on BER for different detection techniques like zero forcing, MMSE, and maximum likelihood. Simulation results show V-BLAST has better performance than conventional methods. The document also reviews literature on transmit diversity techniques.

Uploaded by

Dheeksha Reddy
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 66

ABSTRACT

This paper presents the performance of VBLAST and STBC on MIMO-OFDM.V-BLAST is


superior in terms of spectral efficiency and bit error rate. The performance analysis of V-
BLAST based multiple input multiple output orthogonal frequency division multiplexing
(MIMO-OFDM) system also analyzed with respect to bit error rate per signal to noise ratio
(BER/SNR) for various detection techniques i.e. zero forcing (ZF), minimum mean square
error (MMSE) and maximum likelihood (ML). A 2X2 MIMO-OFDM system is used for the
performance evaluation. The simulation results show that the performance of V-BLAST
based detection techniques is superior than to that of conventional methods.
INTRODUCTION
The techniques that can be applied to MIMO-OFDM systems are V-BLAST and STBC.
Space time processing techniques falls into categories such as data rate maximization and
diversity gain. The demand for the use of MIMO systems has increased due to its robustness
against Multipath fading and increase in the Spatial Multiplexing Gain and Spatial Diversity
Gain. Orthogonal Frequency Division Multiplexing (OFDM) is one of the best digital
multiplexing schemes, where signal is divided into number of narrow band channels to obtain
spectral efficiency by minimizing the Inter Symbol Interference. Orthogonal frequency
division multiplexing transforms a frequency selective channel into a set of parallel flat
channels for broadband communications which minimizes the receiver complexity
significantly. Here the idea of combined MIMO and OFDM technologies into one, which is
implemented through STBC and V-BLAST, where STBC is a Space Time Coding technique
and VBLAST is a detection algorithm developed for MIMO. The main challenge of future
wireless communication systems is to provide high data rate wireless access at high quality of
service efficiency through spatial multiplexing gain and improved link reliability due to
antenna diversity gain [1]. The MIMO system containing multiple antennas both at
transmitter and receiver end can potentially meet the growing demand for higher capacity in
wireless communications [4]. The important feature of OFDM is conversion of a Frequency-
selective channel into frequency flat sub channels frequency. Hence, very efficiently [5]
available bandwidth utilization can be done. The combination of the two powerful
techniques, MIMO and OFDM, is very attractive, and has become a most promising
broadband wireless access scheme [3]. The information capacity of wireless communication
systems increases efficiently by using multiple transmitting and receiving antennas. Space-
time coding, an effective approach for increasing data rate over wireless channels, employs
coding techniques appropriate to multiple transmitting and receiving antennas. Also, they aim
to achieve closer values to the Shannon capacity limit. DBLAST (Diagonal Bell Labs
Layered Space Time) and VBLAST) are such schemes used for detection and suppression the
interference in MIMO systems.. However in D-BLAST, due to complexity of implementing
the algorithm, V-Blast algorithm was proposed. It was established in 1996 at Bell Labs. It
demultiplexes the transmitted signal and then maps bit to symbol independently for each sub
stream.
LITERATURE REVIEW
IN “ALAMOUTI S.M., A SIMPLE TRANSMIT DIVERSITY TECHNIQUE FOR
WIRELESS COMMUNICATIONS, IEEE J. SELECT AREAS COMMUNICATIONS.,
VOL. 16, PP.1451–1458, OCT. 1998.” This paper presents a simple two-branch transmit
diversity scheme. 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. It is also shown that the scheme may easily be generalized
to two transmit antennas and M receive antennas to provide a diversity order of 2M. The new
scheme does not require any bandwidth expansion any feedback from the receiver to the
transmitter and its computation complexity is similar to MRRC THE NEXT-generation
wireless systems are required to have high voice quality as compared to current cellular
mobile radio standards and provide high bit rate data services (up to 2 Mbits/s). At the same
time, the remote units are supposed to be small lightweight pocket communicators.
Furthermore, they are to operate reliably in different types of environments: macro, micro,
and picocellular; urban, suburban, and rural; indoor and outdoor. In other words, the next
generation systems are supposed to have better quality and coverage, be more power and
bandwidth efficient, and be deployed in diverse environments. Yet the services must remain
affordable for widespread market acceptance. Inevitably, the new pocket communicators
must remain relatively simple. Fortunately, however, the economy of scale may allow more
complex base stations. In fact, it appears that base station complexity may be the only
plausible trade space for achieving the requirements of next generation wireless systems. The
fundamental phenomenon which makes reliable wireless transmission difficult is time-
varying multipath fading [1]. It is this phenomenon which makes tetherless transmission a
challenge when compared to fiber, coaxial cable, line-of-sight microwave or even satellite
transmissions. Increasing the quality or reducing the effective error rate in a multipath fading
channel is extremely difficult. In additive white Gaussian noise (AWGN), using typical
modulation and coding schemes, reducing the effective bit error rate (BER) from 10 to 10
may require only 1- or 2-dB higher signalto-noise ratio (SNR). Achieving the same in a
multipath fading environment, however, may require up to 10 dB improvement in SNR. The
improvement in SNR may not be achieved by higher transmit power or additional bandwidth,
as it is contrary to the requirements of next generation systems. It is therefore crucial to
effectively combat or reduce the effect of fading at both the remote units and the base
stations, without additional power or any sacrifice in bandwidth. Theoretically, the most
effective technique to mitigate multipath fading in a wireless channel is transmitter power
control. If channel conditions as experienced by the receiver on one side of the link are
known at the transmitter on the other side, the transmitter can predistort the signal in order to
overcome the effect of the channel at the receiver. There are two fundamental problems with
this approach. The major problem is the required transmitter dynamic range. For the
transmitter to overcome a certain level of fading, it must increase its power by that same
level, which in most cases is not practical because of radiation power limitations and the size
and cost of the amplifiers. The second problem is that the transmitter does not have any
knowledge of the channel experienced by the receiver except in systems where the uplink
(remote to base) and downlink (base to remote) transmissions are carried over the same
frequency. Hence, the channel information has to be fed back from the receiver to the
transmitter, which results in throughput degradation and considerable added complexity to
both the transmitter and the receiver. Moreover, in some applications there may not be a link
to feed back the channel information. Other effective techniques are time and frequency
diversity. Time interleaving, together with error correction coding, can provide diversity
improvement. The same holds for spread spectrum. However, time interleaving results in
large delays when the channel is slowly varying. Equivalently, spread spectrum techniques
are ineffective when the coherence bandwidth of the channel is larger than the spreading
bandwidth or, equivalently, where there is relatively small delay spread in the channel. In
most scattering environments, antenna diversity is a practical, effective and, hence, a widely
applied technique for reducing the effect of multipath fading [1]. The classical approach is to
use multiple antennas at the receiver and perform combining or selection and switching in
order to improve the quality of the received signal. The major problem with using the receive
diversity approach is the cost, size, and power of the remote units. The use of multiple
antennas and radio frequency (RF) chains (or selection and switching circuits) makes the
remote units larger and more expensive. As a result, diversity techniques have almost
exclusively been applied to base stations to improve their reception quality. A base station
often serves hundreds to thousands of remote units. It is therefore more economical to add
equipment to base stations rather than the remote units. For this reason, transmit diversity
schemes are very attractive. For instance, one antenna and one transmit chain may be added
to a base station to improve the reception quality of all the remote units in that base station’s
coverage area.1 The alternative is to add more antennas and receivers to all the remote units.
The first solution is definitely more economical. Recently, some interesting approaches for
transmit diversity have been suggested. A delay diversity scheme was proposed by Wittneben
[2], [3] for base station simulcasting and later, independently, a similar scheme was suggested
by Seshadri and Winters [4], [5] for a single base station in which copies of the same symbol
are transmitted through multiple antennas at different times, hence creating an artificial
multipath distortion. A maximum likelihood sequence estimator (MLSE) or a minimum mean
squared error (MMSE) equalizer is then used to resolve multipath distortion and obtain
diversity gain. Another interesting approach is space–time trellis coding, introduced in [6],
where symbols are encoded according to the antennas through which they are simultaneously
transmitted and are decoded using a maximum likelihood decoder. This scheme is very
effective, as it combines the benefits of forward error correction (FEC) coding and diversity
transmission to provide considerable performance gains. The cost for this scheme is
additional processing, which increases exponentially as a function of bandwidth efficiency
(bits/s/Hz) and the required diversity order. Therefore, for some applications it may not be
practical or cost-effective. The technique proposed in this paper is a simple transmit diversity
scheme which improves the signal quality at the receiver on one side of the link by simple
processing across two transmit antennas on the opposite side. The obtained diversity order is
equal to applying maximal-ratio receiver combining (MRRC) with two antennas at the
receiver. The scheme may easily be generalized to two transmit antennas and receive
antennas to provide a diversity order of . This is done without any feedback from the receiver
to the transmitter and with small computation complexity. The scheme requires no bandwidth
expansion, as redundancy is applied in space across multiple antennas, not in time or
frequency. The new transmit diversity scheme can improve the error performance, data rate,
or capacity of wireless communications systems. The decreased sensitivity to fading may
allow the use of higher level modulation schemes to increase the effective data rate, or
smaller reuse factors in a multicell environment to increase system capacity. The scheme may
also be used to increase the range or the coverage area of wireless systems. In other words,
the new scheme is effective in all of the applications where system capacity is limited by
multipath fading and, hence, may be a simple and cost-effective way to address the market
demands for quality and efficiency without a complete redesign of existing systems.
Furthermore, the scheme seems to be a superb candidate for next-generation wireless
systems, 1 In fact, many cellular base stations already have two receive antennas for receive
diversity. The same antennas may be used for transmit diversity. as it effectively reduces the
effect of fading at the remote units using multiple transmit antennas at the base stations
IN “WINTERSJ. H., THE DIVERSITY GAIN OF TRANSMIT DIVERSITY IN
WIRELESS SYSTEMS WITH RAYLEIGH FADING,IEEE INT.CONF.
COMMUNICATIONS,VOL. 2, PP. 1121–1125, 1998.” In this paper, we study the ability
of transmit diversity to provide diversity benefit to a receiver in a Rayleigh fading
environment. With transmit diversity, multiple antennas transmit delayed versions of a signal
to create frequency-selective fading at a single antenna at the receiver, which uses
equalization to obtain diversity gain against fading. We use Monte Carlo simulation to study
transmit diversity for the case of independent Rayleigh fading from each transmit antenna to
the receive antenna and maximum likelihood sequence estimation for equalization at the
receiver. Our results show that transmit diversity with M transmit antennas provides a
diversity gain within 0.1 dB of that with M receive antennas for any number of antennas.
Thus, we can obtain the same diversity benefit at the remotes and base stations using multiple
base-station antennas only THE EFFECT of multipath fading in wireless systems can be
reduced by using antenna diversity. In many systems, though, additional antennas may be
expensive or impractical at the remote or even at the base station. In these cases, transmit
diversity can be used to provide diversity benefit at a receiver with multiple transmit antennas
only. With transmit diversity, multiple antennas transmit delayed versions of a signal,
creating frequency-selective fading, which is equalized at the receiver to provide diversity
gain. Previous papers have studied the performance of transmit diversity with narrowband
signals [1]–[5] using linear equalization, decision feedback equalization, maximum
likelihood sequence estimation (MLSE), and spread-spectrum signals [6]–[8] using a RAKE
receiver. Monte Carlo simulation results [3], [5] showed that, using MLSE with narrowband
signals, the diversity gain with two transmit antennas was similar to that with two receive
antennas using maximal ratio combining.1 However, with three transmit antennas, the
diversity gain was less than that of three-antenna receive diversity at high bit-error rates
(BER’s). In this paper, we study the diversity gain of transmit diversity with ideal MLSE and
an arbitrary number of antennas and compare the results to receive diversity with maximal
ratio combining. We consider binary-phase-shift-keyed (BPSK) modulation with coherent
detection and assume independent Rayleigh fading between each transmit antenna and the
receive antenna with the delay between the transmitted signals such that the received signals
are uncorrelated. This comparison of -antenna transmit diversity to receive diversity is shown
to be the same as comparing ideal MLSE to the matched filter bound with an -symbol-spaced
impulse response. With a double impulse response, MLSE can achieve the matched filter
bound for all channels [9]. However, with more than a double impulse response, there exist
channels for which MLSE cannot achieve the matched filter bound [9]. Using Monte Carlo
simulation with Rayleigh fading, we determine the probability distribution of the Euclidean
distance between MLSE and the matched filter bound and the resulting degradation in
performance. Although this degradation can be several dB for some channel instances,2 our
results show that large degradation occurs with low probability and, when it does occur, is
usually on channels with good performance. Therefore, the degradation has little effect on the
distribution of the BER with Rayleigh fading. Specifically, our results for 2–30 antennas
show that transmit diversity can achieve diversity gains within 0.1 dB of receive diversity.
Thus, we can obtain the same diversity benefit at the remotes and base stations using multiple
base-station antennas only.
IN “TIAN-MING MA, YU-SONG SHI, AND YING-GUAN WANG,“A LOW
COMPLEXITY MMSE FOR OFDM SYSTEMS OVERFREQUENCY-SELECTIVE
FADING CHANNELS”, IEEE COMMUNICATIONS LETTERS, VOL.-16, NO.-3,
MARCH 2012.” —Channel estimation is one of the key technologies in Orthogonal
Frequency Division Multiplexing (OFDM) systems, which has received more and more
consideration. A modified Minimum Mean Square Error (MMSE) is proposed and simulated
by MATLAB over a frequency-selective fading channel. Comparing with the conventional
MMSE, this algorithm has the advantage of low complexity. Meanwhile, it shows little
attenuation of Mean Square Error (MSE) and Bit Error Rate (BER) performances according
to the final simulation results, which is promising for practical applications OFDM
technology is a popular technique for transmission of signals over wireless channels, due to
its many advantages such as the high spectral efficiency, robustness to frequency selective
fading, and the feasibility of low-cost transceiver implementations [1]. For wideband wireless
communication, it is necessary to dynamically estimate the channel before demodulating the
signals. There are two kind methods for channel estimation. The first is the pilot assisted
estimation, the pilot signals are embedded in certain sub-carriers of each OFDM symbol. At
the receiver, the channel components estimated using these pilots are interpolated for
estimating the complete channel. Based on the criterion of realization, it can be classified as
Least Square (LS)[2], MMSE[3]-[4], maximum likelihood estimator[5] and so on. The
second category is the blind channel estimation[6]. The blind schemes avoid the use of pilots,
for achieving high spectral sufficiency. This is achieved at the cost of higher implementation
complexity and some amount of performance loss. In this paper, we propose a low
complexity MMSE estimation scheme which can reduce computational complexity but cause
little attenuation of performance. The final scheme shows to be efficient according to our
extensive computer simulations.
IN “D. GESBERT, M. SHAFI, DA-SHAN SHIU, P. J. SMITH, A. NAGUIB, “FROM
THEORY TO PRACTICE: AN OVERVIEW OF MIMO SPACE-TIME CODED
WIRELESS SYSTEMS”, SELECTED AREAS IN COMMUNICATIONS, IEEE
JOURNAL, VOL.-21, PP. 281-302, APRIL 2003.” This paper presents an overview of
recent progress in the area of multiple-input–multiple-output (MIMO) space–time coded
wireless systems. After some background on the research leading to the discovery of the
enormous potential of MIMO wireless links, we highlight the different classes of techniques
and algorithms proposed which attempt to realize the various benefits of MIMO including
spatial multiplexing and space–time coding schemes. These algorithms are often derived and
analyzed under ideal independent fading conditions. We present the state of the art in channel
modeling and measurements, leading to a better understanding of actual MIMO gains.
Finally, the paper addresses current questions regarding the integration of MIMO links in
practical wireless systems and standards. DIGITAL communication using multiple-input–
multipleoutput (MIMO), sometimes called a “volume-to-volume” wireless link, has recently
emerged as one of the most significant technical breakthroughs in modern communications.
The technology figures prominently on the list of recent technical advances with a chance of
resolving the bottleneck of traffic capacity in future Internet-intensive wireless networks.
Perhaps even more surprising is that just a few years after its invention the technology seems
poised to penetrate large-scale standards-driven commercial wireless products and networks
such as broadband wireless access systems, wireless loca area networks (WLAN), third-
generation (3G)1 networks and beyond. MIMO systems can be defined simply. Given an
arbitrary wireless communication system, we consider a link for which the transmitting end
as well as the receiving end is equipped with multiple antenna elements. Such a setup is
illustrated in Fig. 1. The idea behind MIMO is that the signals on the transmit (TX) antennas
at one end and the receive (RX) antennas at the other end are “combined” in such a way that
the quality (bit-error rate or BER) or the data rate (bits/sec) of the communication for each
MIMO user will be improved. Such an advantage can be used to increase both the network’s
quality of service and the operator’s revenues significantly. A core idea in MIMO systems is
space–time signal processing in which time (the natural dimension of digital communication
data) is complemented with the spatial dimension inherent in the use of multiple spatially
distributed antennas. As such MIMO systems can be viewed as an extension of the so-called
smart antennas, a popular technology using antenna arrays for improving wireless
transmission dating back several decades. A key feature of MIMO systems is the ability to
turn multipath propagation, traditionally a pitfall of wireless transmission, into a benefit for
the user. MIMO effectively takes advantage of random fading [1]–[3] and when available,
multipath delay spread [4], [5], for multiplying transfer rates. The prospect of many orders of
magnitude improvement in wireless communication performance at no cost of extra spectrum
(only hardware and complexity are added) is largely responsible for the success of MIMO as
a topic for new research. This has prompted progress in areas as diverse as channel modeling,
information theory and coding, signal processing, antenna design and multiantenna-aware
cellular design, fixed or mobile. This paper discusses the recent advances, adopting
successively several complementing views from theory to real-world network applications.
Because of the rapidly intensifying efforts in MIMO research at the time of writing, as
exemplified by the numerous papers submitted to this special issue of JSAC, a complete and
accurate survey is not possible. Instead this paper forms a synthesis of the more fundamental
ideas presented over the last few years in this area, although some very recent progress is also
mentioned. Consider the multiantenna system diagram in Fig. 1. A compressed digital source
in the form of a binary data stream is fed to a simplified transmitting block encompassing the
functions of error control coding and (possibly joined with) mapping to complex modulation
symbols (quaternary phase-shift keying (QPSK), M-QAM, etc.). The latter produces several
separate symbol streams which range from independent to partially redundant to fully
redundant. Each is then mapped onto one of the multiple TX antennas. Mapping may include
linear spatial weighting of the antenna elements or linear antenna space–time precoding.
After upward frequency conversion, filtering and amplification, the signals are launched into
the wireless channel. At the receiver, the signals are captured by possibly multiple antennas
and demodulation and demapping operations are performed to recover the message. The level
of intelligence, complexity, and a priori channel knowledge used in selecting the coding and
antenna mapping algorithms can vary a great deal depending on the application. This
determines the class and performance of the multiantenna solution that is implemented. In the
conventional smart antenna terminology, only the transmitter or the receiver is actually
equipped with more than one element, being typically the base station (BTS), where the extra
cost and space have so far been perceived as more easily affordable than on a small phone
handset. Traditionally, the intelligence of the multiantenna system is located in the weight
selection algorithm rather than in the coding side although the development of space–time
codes (STCs) is transforming this view. Simple linear antenna array combining can offer a
more reliable communications link in the presence of adverse propagation conditions such as
multipath fading and interference. A key concept in smart antennas is that of beamforming by
which one increases the average signal-to-noise ratio (SNR) through focusing energy into
desired directions, in either transmit or receiver. Indeed, if one estimates the response of each
antenna element to a given desired signal, and possibly to interference signal(s), one can
optimally combine the elements with weights selected as a function of each element response.
One can then maximize the average desired signal level or minimize the level of other
components whether noise or co-channel interference. Another powerful effect of smart
antennas lies in the concept of spatial diversity. In the presence of random fading caused by
multipath propagation, the probability of losing the signal vanishes exponentially with the
number of decorrelated antenna elements being used. A key concept here is that of diversity
order which is defined by the number of decorrelated spatial branches available at the
transmitter or receiver. When combined together, leverages of smart antennas are shown to
improve the coverage range versus quality tradeoff offered to the wireless user [6]. As
subscriber units (SU) are gradually evolving to become sophisticated wireless Internet access
devices rather than just pocket telephones, the stringent size and complexity constraints are
becoming somewhat more relaxed. This makes multiple antenna elements transceivers a
possibility at both sides of the link, even though pushing much of the processing and cost to
the network’s side (i.e., BTS) still makes engineering sense. Clearly, in a MIMO link, the
benefits of conventional smart antennas are retained since the optimization of the
multiantenna signals is carried out in a larger space, thus providing additional degrees of
freedom. In particular, MIMO systems can provide a joint transmit-receive diversity gain, as
well as an array gain upon coherent combining of the antenna elements (assuming prior
channel estimation). In fact, the advantages of MIMO are far more fundamental. The
underlying mathematical nature of MIMO, where data is transmitted over a matrix rather than
a vector channel, creates new and enormous opportunities beyond just the added diversity or
array gain benefits. This was shown in [2], where the author shows how one may under
certain conditions transmit independent data streams simultaneously over the eigenmodes of
a matrix channel created by TX and RX antennas. A little known yet earlier version of this
ground breaking result was also released in [7] for application to broadcast digital TV.
However, to our knowledge, the first results hinting at the capacity gains of MIMO were
published by Winters in [8]. Information theory can be used to demonstrate these gains
rigorously (see Section III). However, intuition is perhaps best given by a simple example of
such a transmission algorithm over MIMO often referred to in the literature as V-BLAST2
[9], [10] or more generically called here spatial multiplexing. In Fig. 2, a high-rate bit stream
(left) is decomposed into three independent -rate bit sequences which are then transmitted
simultaneously using multiple antennas, thus consuming one third of the nominal spectrum.
The signals are launched and naturally mix together in the wireless channel as they use the
same frequency spectrum. At the receiver, after having identified the mixing channel matrix
through training symbols, the individual bit streams are separated and estimated. This occurs
in the same way as three unknowns are resolved from a linear system of three equations. This
assumes that each pair of transmit receive antennas yields a single scalar channel coefficient,
hence flat fading conditions. However, extensions to frequency selective cases are indeed
possible using either a straightforward multiple-carrier approach (e.g., in orthogonal
frequency division multiplexing (OFDM), the detection is performed over each flat
subcarrier) or in the time domain by combining the MIMO space–time detector with an
equalizer A strong analogy can be made with code-division multiple-access (CDMA)
transmission in which multiple users sharing the same time/frequency channel are mixed
upon transmission and recovered through their unique codes. Here, however, the advantage
of MIMO is that the unique signatures of input streams (“virtual users”) are provided by
nature in a close-to-orthogonal manner (depending however on the fading correlation)
without frequency spreading, hence at no cost of spectrum efficiency. Another advantage of
MIMO is the ability to jointly code and decode the multiple streams since those are intended
to the same user. However, the isomorphism between MIMO and CDMA can extend quite far
into the domain of receiver algorithm design
IN “KAI YU AND BJORN OTTERSTEN, “MODELS FOR MIMO PROPAGATION
CHANNELS, A REVIEW”, IN SPECIAL ISSUE ON “ADAPTIVE ANTENNAS AND
MIMO SYSTEMS”, WILEY JOURNAL ON WIRELESS COMM. AND MOBILE
COMPUTING, VOL.-2, ISSUE 7, PP. 653-666, NOVEMBER 2002” This paper reviews
recently published results on multiple input multiple output (MIMO) channel modeling. Both
narrowband and wideband models are considered. We distinguish between two main
approaches to MIMO channel modeling, that is, physically based and nonphysically based
modeling. The nonphysical models primarily rely on the statistical characteristics of the
MIMO channels obtained from the measured data, while the physical models describe the
MIMO channel (or its distribution) via some physical parameters. We briefly review different
MIMO channel models and discuss their relationships. Some interesting aspects will be
described in more detail and we note areas in which few results are available The increasing
demand for high data rates and the limited available bandwidth motivates the investigation of
wireless systems that efficiently exploit the spatial domain. Because of cost, size, and
complexity limitations at the terminal, antenna arrays are usually considered only at the base
stations (access points) to spatially discriminate the desired signal from interference and
noise. The use of spatial diversity, both on reception as well as transmission, can improve
throughput and coverage in addition to allowing a higher degree of spectral reuse and thereby
increase the system capacity. As recently reported in References [1,2], channel capacity can
be greatly increased by using antenna array at both the transmit and the receive side of the so-
called MIMO systems as long as the environment provides sufficient scattering.
Conceptually, an MIMO channel can be seen as a parallel spatial subchannel that allows the
transmission of parallel symbol streams. Therefore, the MIMO channel capacity can
potentially increase linearly with the number of spatial subchannels (a minimum of the
number of receive or transmit antenna elements). This has been demonstrated in Reference
[3], in which an architecture (BLAST) was proposed along with a coding and decoding
scheme. Some field measurements investigating MIMO channel capacity have recently been
reported in References [4–10]. Several of the reported results are encouraging in that the
scattering has been sufficiently rich to provide capacities close to the ideal situation. The
propagation conditions determine the channel capacity that can be expected for an MIMO
system. It is of great interest to characterize and model the MIMO channel for different
conditions in order to predict, simulate, and design high-performance communication
systems. Among other advantages, the simulation of MIMO propagation channel can assist in
the choice of efficient modulation schemes under different scenarios and system performance
can be accurately predicted. Much work has been reported in the single input single output
(SISO) channel modeling area. The models for indoor radio channels were reported in
References [11–17] while the examples of outdoor channel models can be found in
References [18,19]. However, extending these models to the MIMO case is not
straightforward. The spatial dimension must now be characterized either directly or
indirectly.
IMPLEMENTATION
SPACE TIME BLOCK CODE
The main goal of space time codes is to achieve send side diversity by coding the information
in spatial and temporal dimensions. Replication of a single stream of data is done and then
transmitted over multiple antennas. Space Time Codes, which are a mathematical algorithm,
are then used to encode redundant data. This ensures each transmitted signal to be orthogonal
to the rest of the transmitted signal thus more reducing the interference among the signals and
improving the receiver’s capability to distinguish the multiple signals it receives. After the
Space Time Codes, the Space Time Block Codes (STBC) was developed to lessen the
complexity at the receiver. This leads to simpler receiver

STBC-OFDM SYSTEM
The proposed scheme has better performances than the standard MIMO-OFDM system.
Besides the performance of this scheme, its complexity is low and there are no needs of
complicate MIMO encoder or channel estimation at the reception. In addition, to the
simplification of the conventional MIMO-OFDM transceiver structure, bandwidth efficiency
can be highly increased In new transmission scheme for MIMO-OFDM, from the pilot data
Transmitted by the receiver end, channel parameters are estimated With the help of channel
coding block to adapt the transmitter signal to the diverse channel impairments and
variations, these estimated parameters are used the new transmission scheme and
conventional MIMO-OFDM graph based on Almouti STBC coding. Better performance
using this than the conventional MIMO-OFDM as shown in this figure shows the variation of
BER as a function of Es/N0. The proposed scheme has better performances than the standard
MIMO-OFDM system. Besides the performance of this scheme, its complexity is low and
there are no needs of complicate MIMO encoder or channel estimation at the reception. In
addition, to the simplification of the conventional MIMO-OFDM transceiver structure,
bandwidth efficiency (also frame efficiency) can be highly increased. The modulation method
in these systems usually is M Quadrature Amplitude Modulation (MQAM). QAM is
combination of phase modulation and amplitude +modulation, making it an efficient method
for transmitting data over a limited bandwidth channel. BLAST's receivers operate co-
channel, each receiving the signals from all the transmitting antennas. VBLAST performs a
non-linear detection that extracts data streams by a ZF (or MMSE) filter w(k) with ordered
successive interference cancellation. Here we use Zero forcing V-Blast detection. The two
main operations of the detection process are interference Suppression and interference
cancellation. The sub-stream are encoded and mapped into symbols and given to a separate
transmitter. Usually M Quadrature Amplitude Modulation (MQAM) is used in these
systems.QAM is a combination of phase modulation and amplitude modulation, which makes
it an efficient method for transmitting data over a limited channel bandwidth. BLAST's
receivers operate co-channel, each receiving the signals from all the transmitting antennas.
Non-linear detection performed by VBLAST that extracts data streams by a ZF (or MMSE)
filter w(k) with ordered successive interference cancellation (OSIC).

Fig : New Transmission Scheme for Multiple-Input Multiple-Output (MIMO) Orthogonal


Frequency Division Multiplexing (OFDM) Systems

MIMO
In radio, multiple-input and multiple-output, or MIMO (/ˈmaɪmoʊ, ˈmiːmoʊ/), is a method for
multiplying the capacity of a radio link using multiple transmission and receiving antennas to
exploit multipath propagation.[1] MIMO has become an essential element of wireless
communication standards including IEEE 802.11n (Wi-Fi), IEEE 802.11ac (Wi-Fi), HSPA+
(3G), WiMAX, and Long Term Evolution (LTE). More recently, MIMO has been applied to
power-line communication for three-wire installations as part of the ITU G.hn standard and
of the HomePlug AV2 specification.[2][3]

At one time, in wireless the term "MIMO" referred to the use of multiple antennas at the
transmitter and the receiver. In modern usage, "MIMO" specifically refers to a practical
technique for sending and receiving more than one data signal simultaneously over the same
radio channel by exploiting multipath propagation. Although this "multipath" phenomena
may be interesting, it's the use of orthogonal frequency division multiplexing to encode the
channels that's responsible for the increase in data capacity. MIMO is fundamentally different
from smart antenna techniques developed to enhance the performance of a single data signal,
such as beamforming and diversity
Early research
MIMO is often traced back to 1970s research papers concerning multi-channel digital
transmission systems and interference (crosstalk) between wire pairs in a cable bundle: AR
Kaye and DA George (1970),[4] Branderburg and Wyner (1974),[5] and W. van Etten (1975,
1976).[6] Although these are not examples of exploiting multipath propagation to send
multiple information streams, some of the mathematical techniques for dealing with mutual
interference proved useful to MIMO development. In the mid-1980s Jack Salz at Bell
Laboratories took this research a step further, investigating multi-user systems operating over
"mutually cross-coupled linear networks with additive noise sources" such as time-division
multiplexing and dually-polarized radio systems.[7]

Methods were developed to improve the performance of cellular radio networks and enable
more aggressive frequency reuse in the early 1990s. Space-division multiple access (SDMA)
uses directional or smart antennas to communicate on the same frequency with users in
different locations within range of the same base station. An SDMA system was proposed by
Richard Roy and Björn Ottersten, researchers at ArrayComm, in 1991. Their US patent (No.
5515378 issued in 1996[8]) describes a method for increasing capacity using "an array of
receiving antennas at the base station" with a "plurality of remote users."

Invention
Arogyaswami Paulraj and Thomas Kailath proposed an SDMA-based inverse multiplexing
technique in 1993. Their US patent (No. 5,345,599 issued in 1994[9]) described a method of
broadcasting at high data rates by splitting a high-rate signal "into several low-rate signals" to
be transmitted from "spatially separated transmitters" and recovered by the receive antenna
array based on differences in "directions-of-arrival." Paulraj was awarded the prestigious
Marconi Prize in 2014 for "his pioneering contributions to developing the theory and
applications of MIMO antennas. ... His idea for using multiple antennas at both the
transmitting and receiving stations – which is at the heart of the current high speed WiFi and
4G mobile systems – has revolutionized high speed wireless."[10]

In an April 1996 paper and subsequent patent, Greg Raleigh proposed that natural multipath
propagation can be exploited to transmit multiple, independent information streams using co-
located antennas and multi-dimensional signal processing.[11] The paper also identified
practical solutions for modulation (MIMO-OFDM), coding, synchronization, and channel
estimation. Later that year (September 1996) Gerard J. Foschini submitted a paper that also
suggested it is possible to multiply the capacity of a wireless link using what the author
described as "layered space-time architecture."[12]

Greg Raleigh, V. K. Jones, and Michael Pollack founded Clarity Wireless in 1996, and built
and field-tested a prototype MIMO system.[13] Cisco Systems acquired Clarity Wireless in
1998.[14] Bell Labs built a laboratory prototype demonstrating its V-BLAST (Vertical-Bell
Laboratories Layered Space-Time) technology in 1998.[15] Arogyaswami Paulraj founded
Iospan Wireless in late 1998 to develop MIMO-OFDM products. Iospan was acquired by
Intel in 2003.[16] V-BLAST was never commercialized, and neither Clarity Wireless nor
Iospan Wireless shipped MIMO-OFDM products before being acquired.[17]

Standards and commercialization


See also: MIMO technology in WiMAX and MIMO technology in 3G mobile standards
MIMO technology has been standardized for wireless LANs, 3G mobile phone networks, and
4G mobile phone networks and is now in widespread commercial use. Greg Raleigh and V.
K. Jones founded Airgo Networks in 2001 to develop MIMO-OFDM chipsets for wireless
LANs. The Institute of Electrical and Electronics Engineers (IEEE) created a task group in
late 2003 to develop a wireless LAN standard delivering at least 100 Mbit/s of user data
throughput. There were two major competing proposals: TGn Sync was backed by companies
including Intel and Philips, and WWiSE was supported by companies including Airgo
Networks, Broadcom, and Texas Instruments. Both groups agreed that the 802.11n standard
would be based on MIMO-OFDM with 20 MHz and 40 MHz channel options.[18] TGn
Sync, WWiSE, and a third proposal (MITMOT, backed by Motorola and Mitsubishi) were
merged to create what was called the Joint Proposal.[19] In 2004, Airgo became the first
company to ship MIMO-OFDM products.[20] Qualcomm acquired Airgo Networks in late
2006.[21] The final 802.11n standard supported speeds up to 600 Mbit/s (using four
simultaneous data streams) and was published in late 2009.[22]

Surendra Babu Mandava and Arogyaswami Paulraj founded Beceem Communications in


2004 to produce MIMO-OFDM chipsets for WiMAX. The company was acquired by
Broadcom in 2010.[23] WiMAX was developed as an alternative to cellular standards, is
based on the 802.16e standard, and uses MIMO-OFDM to deliver speeds up to 138 Mbit/s.
The more advanced 802.16m standard enables download speeds up to 1 Gbit/s.[24] A
nationwide WiMAX network was built in the United States by Clearwire, a subsidiary of
Sprint-Nextel, covering 130 million points of presence (PoP) by mid-2012.[25] Sprint
subsequently announced plans to deploy LTE (the cellular 4G standard) covering 31 cities by
mid-2013[26] and to shut down its WiMAX network by the end of 2015.[27]

The first 4G cellular standard was proposed by NTT DoCoMo in 2004.[28] Long term
evolution (LTE) is based on MIMO-OFDM and continues to be developed by the 3rd
Generation Partnership Project (3GPP). LTE specifies downlink rates up to 300 Mbit/s,
uplink rates up to 75 Mbit/s, and quality of service parameters such as low latency.[29] LTE
Advanced adds support for picocells, femtocells, and multi-carrier channels up to 100 MHz
wide. LTE has been embraced by both GSM/UMTS and CDMA operators.[30]

The first LTE services were launched in Oslo and Stockholm by TeliaSonera in 2009.[31]
There are currently more than 360 LTE networks in 123 countries operational with
approximately 373 million connections (devices).[32]

Functions
MIMO can be sub-divided into three main categories: precoding, spatial multiplexing (SM),
and diversity coding.

Precoding is multi-stream beamforming, in the narrowest definition. In more general terms, it


is considered to be all spatial processing that occurs at the transmitter. In (single-stream)
beamforming, the same signal is emitted from each of the transmit antennas with appropriate
phase and gain weighting such that the signal power is maximized at the receiver input. The
benefits of beamforming are to increase the received signal gain – by making signals emitted
from different antennas add up constructively – and to reduce the multipath fading effect. In
line-of-sight propagation, beamforming results in a well-defined directional pattern.
However, conventional beams are not a good analogy in cellular networks, which are mainly
characterized by multipath propagation. When the receiver has multiple antennas, the
transmit beamforming cannot simultaneously maximize the signal level at all of the receive
antennas, and precoding with multiple streams is often beneficial. Note that precoding
requires knowledge of channel state information (CSI) at the transmitter and the receiver.

Spatial multiplexing requires MIMO antenna configuration. In spatial multiplexing,[33] a


high-rate signal is split into multiple lower-rate streams and each stream is transmitted from a
different transmit antenna in the same frequency channel. If these signals arrive at the
receiver antenna array with sufficiently different spatial signatures and the receiver has
accurate CSI, it can separate these streams into (almost) parallel channels. Spatial
multiplexing is a very powerful technique for increasing channel capacity at higher signal-to-
noise ratios (SNR). The maximum number of spatial streams is limited by the lesser of the
number of antennas at the transmitter or receiver. Spatial multiplexing can be used without
CSI at the transmitter, but can be combined with precoding if CSI is available. Spatial
multiplexing can also be used for simultaneous transmission to multiple receivers, known as
space-division multiple access or multi-user MIMO, in which case CSI is required at the
transmitter.[34] The scheduling of receivers with different spatial signatures allows good
separability.

Diversity coding techniques are used when there is no channel knowledge at the transmitter.
In diversity methods, a single stream (unlike multiple streams in spatial multiplexing) is
transmitted, but the signal is coded using techniques called space-time coding. The signal is
emitted from each of the transmit antennas with full or near orthogonal coding. Diversity
coding exploits the independent fading in the multiple antenna links to enhance signal
diversity. Because there is no channel knowledge, there is no beamforming or array gain from
diversity coding. Diversity coding can be combined with spatial multiplexing when some
channel knowledge is available at the receiver.
Multi-antenna types
Multi-antenna MIMO (or single-user MIMO) technology has been developed and
implemented in some standards, e.g., 802.11n products.

SISO/SIMO/MISO are special cases of MIMO.


Multiple-input single-output (MISO) is a special case when the receiver has a single antenna.
[35]
Single-input multiple-output (SIMO) is a special case when the transmitter has a single
antenna.[35]
Single-input single-output (SISO) is a conventional radio system where neither transmitter
nor receiver has multiple antennas.
Principal single-user MIMO techniques
Bell Laboratories Layered Space-Time (BLAST), Gerard. J. Foschini (1996)
Per Antenna Rate Control (PARC), Varanasi, Guess (1998), Chung, Huang, Lozano (2001)
Selective Per Antenna Rate Control (SPARC), Ericsson (2004)
Some limitations
The physical antenna spacing is selected to be large; multiple wavelengths at the base station.
The antenna separation at the receiver is heavily space-constrained in handsets, though
advanced antenna design and algorithm techniques are under discussion. Refer to: multi-user
MIMO
Multi-user types
Main article: Multi-user MIMO
Recently, results of research on multi-user MIMO technology have been emerging. While full
multi-user MIMO (or network MIMO) can have a higher potential, practically, the research
on (partial) multi-user MIMO (or multi-user and multi-antenna MIMO) technology is more
active.[36]

Multi-user MIMO (MU-MIMO)


In recent 3GPP and WiMAX standards, MU-MIMO is being treated as one of the candidate
technologies adoptable in the specification by a number of companies, including Samsung,
Intel, Qualcomm, Ericsson, TI, Huawei, Philips, Nokia, and Freescale. For these and other
firms active in the mobile hardware market, MU-MIMO is more feasible for low-complexity
cell phones with a small number of reception antennas, whereas single-user SU-MIMO's
higher per-user throughput is better suited to more complex user devices with more antennas.
Enhanced multiuser MIMO: 1) Employs advanced decoding techniques, 2) Employs
advanced precoding techniques
SDMA represents either space-division multiple access or super-division multiple access
where super emphasises that orthogonal division such as frequency and time division is not
used but non-orthogonal approaches such as superposition coding are used.
Cooperative MIMO (CO-MIMO)
Uses multiple neighboring base stations to jointly transmit/receive data to/from users. As a
result, neighboring base stations don't cause intercell interference as in the conventional
MIMO systems.
Macrodiversity MIMO
A form of space diversity scheme which uses multiple transmit or receive base stations for
communicating coherently with single or multiple users which are possibly distributed in the
coverage area, in the same time and frequency resource.[37][38][39]
The transmitters are far apart in contrast to traditional microdiversity MIMO schemes such as
single-user MIMO. In a multi-user macrodiversity MIMO scenario, users may also be far
apart. Therefore, every constituent link in the virtual MIMO link has distinct average link
SNR. This difference is mainly due to the different long-term channel impairments such as
path loss and shadow fading which are experienced by different links.
Macrodiversity MIMO schemes pose unprecedented theoretical and practical challenges.
Among many theoretical challenges, perhaps the most fundamental challenge is to understand
how the different average link SNRs affect the overall system capacity and individual user
performance in fading environments.[40]
MIMO Routing
Routing a cluster by a cluster in each hop, where the number of nodes in each cluster is larger
or equal to one. MIMO routing is different from conventional (SISO) routing since
conventional routing protocols route node-by-node in each hop.[41]
Massive MIMO
a technology where the number of terminals is much less than the number of base station
(mobile station) antennas.[42] In a rich scattering environment, the full advantages of the
massive MIMO system can be exploited using simple beamforming strategies such as
maximum ratio transmission (MRT),[43] maximum ratio-combining (MRC)[44] or zero
forcing (ZF). To achieve these benefits of massive MIMO, accurate CSI must be available
perfectly. However, in practice, the channel between the transmitter and receiver is estimated
from orthogonal pilot sequences which are limited by the coherence time of the channel.
Most importantly, in a multicell setup, the reuse of pilot sequences of several co-channel cells
will create pilot contamination. When there is pilot contamination, the performance of
massive MIMO degrades quite drastically. To alleviate the effect of pilot contamination, the
work of[45] proposes a simple pilot assignment and channel estimation method from limited
training sequences. However, in 2018 research by Emil Björnson, Jakob Hoydis, Luca
Sanguinetti was published which has shown that pilot contamination is soluble and have
found that capacity of a channel can always be increased, both in theory and practice by
increasing the number of antennas.
Applications
See also: Cooperative MIMO
Third Generation (3G) (CDMA and UMTS) allows for implementing space-time transmit
diversity schemes, in combination with transmit beamforming at base stations. Fourth
Generation (4G) LTE And LTE Advanced define very advanced air interfaces extensively
relying on MIMO techniques. LTE primarily focuses on single-link MIMO relying on
SpatialMultiplexing and space-time coding while LTE-Advanced further extends the design
to multi-user MIMO. In wireless local area networks (WLAN), the IEEE 802.11n (Wi-Fi),
MIMO technology is implemented in the standard using three different techniques: antenna
selection, space-time coding and possibly beamforming.[46]

Spatial multiplexing techniques make the receivers very complex, and therefore they are
typically combined with Orthogonal frequency-division multiplexing (OFDM) or with
Orthogonal Frequency Division Multiple Access (OFDMA) modulation, where the problems
created by a multi-path channel are handled efficiently. The IEEE 802.16e standard
incorporates MIMO-OFDMA. The IEEE 802.11n standard, released in October 2009,
recommends MIMO-OFDM.

MIMO is also planned to be used in Mobile radio telephone standards such as recent 3GPP
and 3GPP2. In 3GPP, High-Speed Packet Access plus (HSPA+) and Long Term Evolution
(LTE) standards take MIMO into account. Moreover, to fully support cellular environments,
MIMO research consortia including IST-MASCOT propose to develop advanced MIMO
techniques, e.g., multi-user MIMO (MU-MIMO).

MIMO wireless communications architectures and processing techniques can be applied to


sensing problems. This is studied in a sub-discipline called MIMO radar.
MIMO technology can be used in non-wireless communications systems. One example is the
home networking standard ITU-T G.9963, which defines a powerline communications
system that uses MIMO techniques to transmit multiple signals over multiple AC wires
(phase, neutral and ground)

MAXIMUM LIKELIHOOD DETECTION

Maximum likelihood detection is a non-linear technique. The bit error rate results of ML are

better than MMSE detector at the cost of additional complexity [6]. So Maximum likelihood

detection is used in applications where the need of high efficiency.

From the above receiver structures, we saw that MMSE equalisation with optimally
ordered Successive Interference Cancellation gave the best performance. In this post, we
will discuss another receiver structure called Maximum Likelihood (ML) decoding which
gives us an even better performance. We will assume that the channel is a flat
fading Rayleigh multipath channel and the modulation is BPSK.

MIMO channel

In a MIMO channel, probable usage of the available 2 transmit antennas can be as follows:

1. Consider that we have a transmission sequence, for example 

2. In normal transmission, we will be sending  in the first time slot,  in the second time
slot,   and so on.

3. However, as we now have 2 transmit antennas, we may group the symbols into groups of
two. In the first time slot, send  and  from the first and second antenna. In second time
slot, send   and  from the first and second antenna, send   and  in the third time
slot and so on.

4. Notice that as we are grouping two symbols and sending them in one time slot, we need

only   time slots to complete the transmission – data rate is doubled ! 


5. This forms the simple explanation of a probable MIMO transmission scheme with 2
transmit antennas and 2 receive antennas.

Figure: 2 Transmit 2 Receive (2×2) MIMO channel


Let us now try to understand the math for extracting the two symbols which interfered with
each other. In the first time slot, the received signal on the first receive antenna is,

The received signal on the second receive antenna is,

where

,   are the received symbol on the first and second antenna respectively,

 is the channel from   transmit antenna to   receive antenna,

 is the channel from   transmit antenna to   receive antenna,

 is the channel from   transmit antenna to   receive antenna,


 is the channel from   transmit antenna to   receive antenna,

,  are the transmitted symbols and

 is the noise on   receive antennas.

We assume that the receiver knows  ,  ,  and  . The receiver also knows   
and  . The unknown s are  and  .
For convenience, the above equation can be represented in matrix notation as follows:

Equivalently,

Other Assumptions

1. The channel is flat fading – In simple terms, it means that the multipath channel has only
one tap. So, the convolution operation reduces to a simple multiplication. For a more rigorous
discussion on flat fading and frequency selective fading, may I urge you to review Chapter
15.3 Signal Time-Spreading from [DIGITAL COMMUNICATIONS: SKLAR]
2. The channel experience by each transmit antenna is independent from the channel
experienced by other transmit antennas.

3. For the   transmit antenna to   receive antenna, each transmitted symbol gets

multiplied by a randomly varying complex number  . As the channel under consideration

is a Rayleigh channel, the real and imaginary parts of   are Gaussian distributed having

mean   and variance  .

4. The channel experienced between each transmit to the receive antenna is independent and
randomly varying in time.
5. On the receive antenna, the noise  has the Gaussian probability density function with

 with   and  .

7. The channel   is known at the receiver.

Maximum Likelihood (ML)Receiver

The Maximum Likelihood receiver tries to find   which minimizes, 

Since the modulation is BPSK, the possible values of  is +1 or -1 Similarly   also take
values +1 or -1. So, to find the Maximum Likelihood solution, we need to find the minimum
from the all four combinations of  and  .

The estimate of the transmit symbol is chosen based on the minimum value from the above
four values i.e

if the minimum is  ,

if the minimum is  ,

if the minimum is   and

if the minimum is  .

VBLAST
On applying V-BLAST algorithm to ML, the performance will be better than Maximum
likelihood detector. There are two main steps of detection process. We use Zero forcing V-
Blast detection operations interference Suppression (Nulling) and interference cancellation
(Subtraction).
Fig.: VBlast System

MINIMUM MEAN SQUARE ERROR


For noisy channel, MMSE is more reliable than the zero forcing. MMSE does not apply
pseudo inverse of signal to make decision about one user, instead it attenuates them to noise
level, hence reducing the order of diversity. Filter matrix for MMSE is V-BLAST algorithm
that can be applied over above filter matrix and results can be generated.
n a 2×2 MIMO channel, probable usage of the available 2 transmit antennas can be as
follows:

1. Consider that we have a transmission sequence, for example 

2. In normal transmission, we will be sending  in the first time slot,  in the second time
slot,   and so on.

3. However, as we now have 2 transmit antennas, we may group the symbols into groups of
two. In the first time slot, send  and  from the first and second antenna. In second time
slot, send   and  from the first and second antenna, send   and  in the third time
slot and so on.

4. Notice that as we are grouping two symbols and sending them in one time slot, we need

only   time slots to complete the transmission – data rate is doubled ! 


5. This forms the simple explanation of a probable MIMO transmission scheme with 2
transmit antennas and 2 receive antennas.

Figure: 2 Transmit 2 Receive (2×2) MIMO channel

Other Assumptions

1. The channel is flat fading – In simple terms, it means that the multipath channel has only
one tap. So, the convolution operation reduces to a simple multiplication. For a more rigorous
discussion on flat fading and frequency selective fading, may I urge you to review Chapter
15.3 Signal Time-Spreading from [DIGITAL COMMUNICATIONS: SKLAR]
2. The channel experience by each transmit antenna is independent from the channel
experienced by other transmit antennas.

3. For the   transmit antenna to   receive antenna, each transmitted symbol gets

multiplied by a randomly varying complex number  . As the channel under consideration

is a Rayleigh channel, the real and imaginary parts of   are Gaussian distributed having

mean   and variance  .

4. The channel experienced between each transmit to the receive antenna is independent and
randomly varying in time.
5. On the receive antenna, the noise  has the Gaussian probability density function with

 with   and  .

7. The channel   is known at the receiver.

Minimum Mean Square Error (MMSE) equalizer for 2×2 MIMO channel

Let us now try to understand the math for extracting the two symbols which interfered with
each other. In the first time slot, the received signal on the first receive antenna is,

The received signal on the second receive antenna is,

where

,   are the received symbol on the first and second antenna respectively,

 is the channel from   transmit antenna to   receive antenna,

 is the channel from   transmit antenna to   receive antenna,

 is the channel from   transmit antenna to   receive antenna,

 is the channel from   transmit antenna to   receive antenna,

,  are the transmitted symbols and

 is the noise on   receive antennas.


We assume that the receiver knows  ,  ,  and  . The receiver also knows   
and  . For convenience, the above equation can be represented in matrix notation as
follows:

Equivalently,

The Minimum Mean Square Error (MMSE) approach tries to find a coefficient   which


minimizes the criterion,

Solving,

When comparing to the equation in Zero Forcing equalizer, apart from the  term both
the equations are comparable. Infact, when the noise term is zero, the MMSE equalizer
reduces to Zero Forcing equalizer

ZERO FORCING
Zero Forcing is a linear detection technique. The pseudo inverse of the signal is applied to the
received signal in order to make a decision about one user. So the equation for filter matrix G
for zero forcing will be, In this way the received signal is detected by zero forcing detectors.
If V-BLAST algorithm is applied to ZF detector, the performance comparison of ZF and ZF-
VBLAST analyzed. It is evident from the figure that the ZF with V-BLAST shows better
performance than the normal ZF in terms of bit error rate ( BER) verses SNR.
Fig: Block Diagram of a 2X2 MIMO-OFDM System
We will assume that the channel is a flat fading Rayleigh multipath channel and the
modulation is BPSK.

Figure: 2 transmit 2 receive MIMO channel

V-BLAST transmission for 2×2 MIMO channel

In a 2×2 MIMO channel, probable usage of the available 2 transmit antennas can be as
follows:

1. Consider that we have a transmission sequence, for example 

2. In normal transmission, we will be sending  in the first time slot,  in the second time
slot,   and so on.

3. However, as we now have 2 transmit antennas, we may group the symbols into groups of
two. In the first time slot, send  and  from the first and second antenna. In second time
slot, send   and  from the first and second antenna, send   and  in the third time
slot and so on.

4. Notice that as we are grouping two symbols and sending them in one time slot, we need

only   time slots to complete the transmission – data rate is doubled ! 


5. This forms the simple explanation of a probable MIMO transmission scheme with 2
transmit antennas and 2 receive antennas.

Other Assumptions

1. The channel is flat fading – In simple terms, it means that the multipath channel has only
one tap. So, the convolution operation reduces to a simple multiplication. For a more rigorous
discussion on flat fading and frequency selective fading, may I urge you to review Chapter
15.3 Signal Time-Spreading from [DIGITAL COMMUNICATIONS: SKLAR]
2. The channel experience by each transmit antenna is independent from the channel
experienced by other transmit antennas.

3. For the   transmit antenna to   receive antenna, each transmitted symbol gets

multiplied by a randomly varying complex number  . As the channel under consideration

is a Rayleigh channel, the real and imaginary parts of   are Gaussian distributed having

mean   and variance  .

4. The channel experienced between each transmit to the receive antenna is independent and
randomly varying in time.

5. On the receive antenna, the noise  has the Gaussian probability density function with

 with   and  .

7. The channel   is known at the receiver.

System Model
The received signal on the first receive antenna is,

The received signal on the second receive antenna is,

where

,   are the received symbol on the first and second antenna respectively,

 is the channel from   transmit antenna to   receive antenna,

 is the channel from   transmit antenna to   receive antenna,

 is the channel from   transmit antenna to   receive antenna,

 is the channel from   transmit antenna to   receive antenna,

,  are the transmitted symbols and

 is the noise on   receive antennas.

We assume that the receiver knows  ,  ,  and  . The receiver also knows   
and  . The unknown s are  and  . Two equations and two unknowns. Can we solve
it? Answer is YES. 
For convenience, the above equation can be represented in matrix notation as follows:

Equivalently,
MIMO channel, probable usage of the available 2 transmit antennas can be as follows:

1. Consider that we have a transmission sequence, for example 

2. In normal transmission, we will be sending  in the first time slot,  in the second time
slot,   and so on.

3. However, as we now have 2 transmit antennas, we may group the symbols into groups of
two. In the first time slot, send  and  from the first and second antenna. In second time
slot, send   and  from the first and second antenna, send   and  in the third time
slot and so on.

4. Notice that as we are grouping two symbols and sending them in one time slot, we need

only   time slots to complete the transmission – data rate is doubled ! 


5. This forms the simple explanation of a probable MIMO transmission scheme with 2
transmit antennas and 2 receive antennas.

Having said this, some of you will wonder – the two transmitted symbols interfered with each
other. Can we ever separate the two out? The rest of the post attempts to answer this
question. 
Figure: 2 Transmit 2 Receive (2×2) MIMO channel

Other Assumptions

1. The channel is flat fading – In simple terms, it means that the multipath channel has only
one tap. So, the convolution operation reduces to a simple multiplication. For a more rigorous
discussion on flat fading and frequency selective fading, may I urge you to review Chapter
15.3 Signal Time-Spreading from [DIGITAL COMMUNICATIONS: SKLAR]
2. The channel experience by each transmit antenna is independent from the channel
experienced by other transmit antennas.

3. For the   transmit antenna to   receive antenna, each transmitted symbol gets

multiplied by a randomly varying complex number  . As the channel under consideration

is a Rayleigh channel, the real and imaginary parts of   are Gaussian distributed having

mean   and variance  .

4. The channel experienced between each transmit to the receive antenna is independent and
randomly varying in time.

5. On the receive antenna, the noise  has the Gaussian probability density function with

 with   and  .

7. The channel   is known at the receiver.

Zero forcing (ZF) equalizer for 2×2 MIMO channel

Let us now try to understand the math for extracting the two symbols which interfered with
each other. In the first time slot, the received signal on the first receive antenna is,

.
The received signal on the second receive antenna is,

where

,   are the received symbol on the first and second antenna respectively,

 is the channel from   transmit antenna to   receive antenna,

 is the channel from   transmit antenna to   receive antenna,

 is the channel from   transmit antenna to   receive antenna,

 is the channel from   transmit antenna to   receive antenna,

,  are the transmitted symbols and

 is the noise on   receive antennas.

We assume that the receiver knows  ,  ,  and  . The receiver also knows   
and  . The unknown s are  and  . Two equations and two unknowns. Can we solve
it? Answer is YES. 
For convenience, the above equation can be represented in matrix notation as follows:

Equivalently,

To solve for  , we know that we need to find a matrix   which satisfies  .


The Zero Forcing (ZF) linear detector for meeting this constraint is given by,
.

This matrix is also known as the pseudo inverse for a general m x n matrix.


The term,

BER with ZF equalizer with 2×2 MIMO

Note that the off diagonal terms in the matrix   are not zero (Recall: The off
diagonal terms where zero in Alamouti 2×1 STBC case). Because the off diagonal terms are
not zero, the zero forcing equalizer tries to null out the interfering terms when performing the
equalization, i.e when solving for   the interference from  is tried to be nulled and vice
versa. While doing so, there can be amplification of noise. Hence Zero Forcing equalizer is
not the best possible equalizer to do the job. However, it is simple and reasonably easy to
implement.
Further, it can be seen that, following zero forcing equalization, the channel for symbol
transmitted from each spatial dimension (space is antenna) is a like a 1×1 Rayleigh fading
channel (Refer Section 3.3 of [WIRELESS-TSE, VISWANATH]). Hence the BER for 2×2
MIMO channel in Rayleigh fading with Zero Forcing equalization is same as the BER
derived for a 1×1 channel in Rayleigh fading.
For BPSK modulation in Rayleigh fading channel, the bit error rate is derived as,

.
Software introduction:

INTRODUCTION

What Is MATLAB?

MATLAB® is a high-performance language for technical computing. It


integrates computation, visualization, and programming in an easy-to-use environment where
problems and solutions are expressed in familiar mathematical notation. Typical uses include:

 Math and computation


 Algorithm development
 Modeling, simulation, and prototyping
 Data analysis, exploration, and visualization
 Scientific and engineering graphics
 Application development, including graphical user interface building
MATLAB is an interactive system whose basic data element is an array that
does not require dimensioning. This allows you to solve many technical computing problems,
especially those with matrix and vector formulations, in a fraction of the time it would take to
write a program in a scalar noninteractive language such as C or FORTRAN.

The name MATLAB stands for matrix laboratory. MATLAB


was originally written to provide easy access to matrix software developed by
the LINPACK and EISPACK projects. Today, MATLAB uses software developed by the
LAPACK and ARPACK projects, which together represent the state-of-the-art in software for
matrix computation.

MATLAB has evolved over a period of years with input from many users. In
university environments, it is the standard instructional tool for introductory and advanced
courses in mathematics, engineering, and science. In industry, MATLAB is the tool of choice
for high-productivity research, development, and analysis.

MATLAB features a family of application-specific solutions called toolboxes.


Very important to most users of MATLAB, toolboxes allow you to learn and apply
specialized technology. Toolboxes are comprehensive collections of MATLAB functions (M-
files) that extend the MATLAB environment to solve particular classes of problems. Areas in
which toolboxes are available include signal processing, control systems, neural networks,
fuzzy logic, wavelets, simulation, and many others.

The MATLAB System

The MATLAB system consists of five main parts:

Development Environment. This is the set of tools and facilities that help you use
MATLAB functions and files. Many of these tools are graphical user interfaces. It includes
the MATLAB desktop and Command Window, a command history, and browsers for
viewing help, the workspace, files, and the search path.

The MATLAB Mathematical Function Library. This is a vast collection of


computational algorithms ranging from elementary functions like sum, sine, cosine, and
complex arithmetic, to more sophisticated functions like matrix inverse, matrix eigenvalues,
Bessel functions, and fast Fourier transforms.

The MATLAB Language. This is a high-level matrix/array language with control


flow statements, functions, data structures, input/output, and object-oriented programming
features. It allows both "programming in the small" to rapidly create quick and dirty
throw-away programs, and "programming in the large" to create complete large and complex
application programs.
Handle Graphics®. This is the MATLAB graphics system. It includes high-level
commands for two-dimensional and three-dimensional data visualization, image processing,
animation, and presentation graphics. It also includes low-level commands that allow you to
fully customize the appearance of graphics as well as to build complete graphical user
interfaces on your MATLAB applications.

The MATLAB Application Program Interface (API). This is a library that


allows you to write C and FORTRAN programs that interact with MATLAB. It include
facilities for calling routines from MATLAB (dynamic linking), calling MATLAB as a
computational engine, and for reading and writing MAT-files.

DEVELOPMENT ENVIRONMENT

Introduction

This chapter provides a brief introduction to starting and quitting MATLAB,


and the tools and functions that help you to work with MATLAB variables and files. For
more information about the topics covered here, see the corresponding topics under
Development Environment in the MATLAB documentation, which is available online as well
as in print.

Starting and Quitting MATLAB

Starting MATLAB

On a Microsoft Windows platform, to start MATLAB, double-click the


MATLAB shortcut icon on your Windows desktop.

On a UNIX platform, to start MATLAB, type matlab at the operating system


prompt.

After starting MATLAB, the MATLAB desktop opens - see MATLAB


Desktop.

You can change the directory in which MATLAB starts, define startup options including
running a script upon startup, and reduce startup time in some situations.

Quitting MATLAB
To end your MATLAB session, select Exit MATLAB from the File menu in
the desktop, or type quit in the Command Window. To execute specified functions each time
MATLAB quits, such as saving the workspace, you can create and run a finish.m script.

MATLAB Desktop

When you start MATLAB, the MATLAB desktop appears, containing tools
(graphical user interfaces) for managing files, variables, and applications associated with
MATLAB.

The first time MATLAB starts, the desktop appears as shown in the following
illustration, although your Launch Pad may contain different entries.

You can change the way your desktop looks by opening, closing, moving, and
resizing the tools in it. You can also move tools outside of the desktop or return them back
inside the desktop (docking). All the desktop tools provide common features such as context
menus and keyboard shortcuts.

You can specify certain characteristics for the desktop tools by selecting
Preferences from the File menu. For example, you can specify the font characteristics for
Command Window text. For more information, click the Help button in the Preferences
dialog box.

Desktop Tools

This section provides an introduction to MATLAB's desktop tools. You can


also use MATLAB functions to perform most of the features found in the desktop tools. The
tools are:

 Current Directory Browser


 Workspace Browser
 Array Editor
 Editor/Debugger
 Command Window
 Command History
 Launch Pad
 Help Browser
Command Window

Use the Command Window to enter variables and run functions and M-
files.

Command History

Lines you enter in the Command Window are logged in the Command History
window. In the Command History, you can view previously used functions, and copy and
execute selected lines. To save the input and output from a MATLAB session to a file, use
the diary function.

Running External Programs

You can run external programs from the MATLAB Command Window.
The exclamation point character! is a shell escape and indicates that the rest of the input line
is a command to the operating system. This is useful for invoking utilities or running other
programs without quitting MATLAB. On Linux, for example,!emacs magik.m invokes an
editor called emacs for a file named magik.m. When you quit the external program, the
operating system returns control to MATLAB.

Launch Pad

MATLAB's Launch Pad provides easy access to tools, demos, and


documentation.

Help Browser

Use the Help browser to search and view documentation for all your Math
Works products. The Help browser is a Web browser integrated into the MATLAB desktop
that displays HTML documents.

To open the Help browser, click the help button in the toolbar, or type
helpbrowser in the Command Window. The Help browser consists of two panes, the Help
Navigator, which you use to find information, and the display pane, where you view the
information.

Help Navigator

Use to Help Navigator to find information. It includes:

Product filter - Set the filter to show documentation only for the products you specify.

Contents tab - View the titles and tables of contents of documentation for your products.

Index tab - Find specific index entries (selected keywords) in the MathWorks
documentation for your products.

Search tab - Look for a specific phrase in the documentation. To get help for a specific
function, set the Search type to Function Name.

Favorites tab - View a list of documents you previously designated as favorites.

Display Pane

After finding documentation using the Help Navigator, view it in the


display pane. While viewing the documentation, you can:

Browse to other pages - Use the arrows at the tops and bottoms of the pages, or use the
back and forward buttons in the toolbar.

Bookmark pages - Click the Add to Favorites button in the toolbar.

Print pages - Click the print button in the toolbar.

Find a term in the page - Type a term in the Find in page field in the toolbar and click
Go.

Other features available in the display pane are: copying information,


evaluating a selection, and viewing Web pages.

Current Directory Browser


MATLAB file operations use the current directory and the search path as
reference points. Any file you want to run must either be in the current directory or on the
search path.

Search Path

To determine how to execute functions you call, MATLAB uses a search path
to find M-files and other MATLAB-related files, which are organized in directories on your
file system. Any file you want to run in MATLAB must reside in the current directory or in a
directory that is on the search path. By default, the files supplied with MATLAB and
MathWorks toolboxes are included in the search path.

Workspace Browser

The MATLAB workspace consists of the set of variables (named arrays)


built up during a MATLAB session and stored in memory. You add variables to the
workspace by using functions, running M-files, and loading saved workspaces.

To view the workspace and information about each variable, use the
Workspace browser, or use the functions who and whos.

To delete variables from the workspace, select the variable and select Delete
from the Edit menu. Alternatively, use the clear function.

The workspace is not maintained after you end the MATLAB session. To save
the workspace to a file that can be read during a later MATLAB session, select Save
Workspace As from the File menu, or use the save function. This saves the workspace to a
binary file called a MAT-file, which has a .mat extension. There are options for saving to
different formats. To read in a MAT-file, select Import Data from the File menu, or use the
load function.

Array Editor

Double-click on a variable in the Workspace browser to see it in the Array


Editor. Use the Array Editor to view and edit a visual representation of one- or two-
dimensional numeric arrays, strings, and cell arrays of strings that are in the workspace.

Editor/Debugger
Use the Editor/Debugger to create and debug M-files, which are programs
you write to runMATLAB functions. The Editor/Debugger provides a graphical user
interface for basic text editing, as well as for M-file debugging.

You can use any text editor to create M-files, such as Emacs, and can use
preferences (accessible from the desktop File menu) to specify that editor as the default. If
you use another editor, you can still use the MATLAB Editor/Debugger for debugging, or
you can use debugging functions, such as dbstop, which sets a breakpoint.

If you just need to view the contents of an M-file, you can display it in the
Command Window by using the type function.

MANIPULATING MATRICES

Entering Matrices

The best way for you to get started with MATLAB is to learn how to handle
matrices. Start MATLAB and follow along with each example.

You can enter matrices into MATLAB in several different ways:

 Enter an explicit list of elements.


 Load matrices from external data files.
 Generate matrices using built-in functions.
 Create matrices with your own functions in M-files.
Start by entering Dürer's matrix as a list of its elements. You have only to follow a few basic
conventions:

 Separate the elements of a row with blanks or commas.


 Use a semicolon, ; , to indicate the end of each row.
 Surround the entire list of elements with square brackets, [ ].

To enter Dürer's matrix, simply type in the Command Window

A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

MATLAB displays the matrix you just entered.


A=

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

This exactly matches the numbers in the engraving. Once you have entered the matrix, it is
automatically remembered in the MATLAB workspace. You can refer to it simply as A.

Expressions

Like most other programming languages, MATLAB provides mathematical


expressions, but unlike most programming languages, these expressions involve entire
matrices. The building blocks of expressions are:

 Variables
 Numbers
 Operators
 Functions
Variables

MATLAB does not require any type declarations or dimension statements.


When MATLAB encounters a new variable name, it automatically creates the variable and
allocates the appropriate amount of storage. If the variable already exists, MATLAB changes
its contents and, if necessary, allocates new storage. For example,

num_students = 25

Creates a 1-by-1 matrix named num_students and stores the value 25 in its single element.

Variable names consist of a letter, followed by any number of letters, digits, or


underscores. MATLAB uses only the first 31 characters of a variable name. MATLAB is
case sensitive; it distinguishes between uppercase and lowercase letters. A and a are not the
same variable. To view the matrix assigned to any variable, simply enter the variable name.
Numbers

MATLAB uses conventional decimal notation, with an optional decimal


point and leading plus or minus sign, for numbers. Scientific notation uses the letter e to
specify a power-of-ten scale factor. Imaginary numbers use either i or j as a suffix. Some
examples of legal numbers are

3 -99 0.0001

9.6397238 1.60210e-20 6.02252e23

1i -3.14159j 3e5i

All numbers are stored internally using the long format specified by the IEEE
floating-point standard. Floating-point numbers have a finite precision of roughly 16
significant decimal digits and a finite range of roughly 10-308 to 10+308.

Operators

Expressions use familiar arithmetic operators and precedence


rules.

+ Addition
- Subtraction
* Multiplication
/ Division
\ Left division (described in "Matrices and Linear
Algebra" in Using MATLAB)
^ Power
' Complex conjugate transpose
() Specify evaluation order

Functions

MATLAB provides a large number of standard elementary mathematical


functions, including abs, sqrt, exp, and sin. Taking the square root or logarithm of a negative
number is not an error; the appropriate complex result is produced automatically. MATLAB
also provides many more advanced mathematical functions, including Bessel and gamma
functions. Most of these functions accept complex arguments. For a list of the elementary
mathematical functions, type

help elfun

For a list of more advanced mathematical and matrix functions, type

help specfun

help elmat

Some of the functions, like sqrt and sin, are built-in. They are part of the
MATLAB core so they are very efficient, but the computational details are not readily
accessible. Other functions, like gamma and sinh, are implemented in M-files. You can see
the code and even modify it if you want. Several special functions provide values of useful
constants.

Pi 3.14159265...
i Imaginary unit, √-1
I Same as i
Eps Floating-point relative precision, 2-52
Realmin Smallest floating-point number, 2-1022
Realmax Largest floating-point number, (2- ε)21023
Inf Infinity
NaN Not-a-number
GUI
A graphical user interface (GUI) is a user interface built with graphical
objects, such as buttons, text fields, sliders, and menus. In general, these objects already have
meanings to most computer users. For example, when you move a slider, a value changes;
when you press an OK button, your settings are applied and the dialog box is dismissed. Of
course, to leverage this built-in familiarity, you must be consistent in how you use the various
GUI-building components.

Applications that provide GUIs are generally easier to learn and use since the
person using the application does not need to know what commands are available or how
they work. The action that results from a particular user action can be made clear by the
design of the interface.

The sections that follow describe how to create GUIs with MATLAB. This
includes laying out the components, programming them to do specific things in response to
user actions, and saving and launching the GUI; in other words, the mechanics of creating
GUIs. This documentation does not attempt to cover the "art" of good user interface design,
which is an entire field unto itself. Topics covered in this section include:

Creating GUIs with GUIDE

MATLAB implements GUIs as figure windows containing various styles of


uicontrol objects. You must program each object to perform the intended action when
activated by the user of the GUI. In addition, you must be able to save and launch your GUI.
All of these tasks are simplified by GUIDE, MATLAB's graphical user interface
development environment.

GUI Development Environment

The process of implementing a GUI involves two basic tasks:

 Laying out the GUI components


 Programming the GUI components
GUIDE primarily is a set of layout tools. However, GUIDE also generates an
M-file that contains code to handle the initialization and launching of the GUI. This M-file
provides a framework for the implementation of the callbacks - the functions that execute
when users activate components in the GUI.

The Implementation of a GUI

While it is possible to write an M-file that contains all the commands to lay
out a GUI, it is easier to use GUIDE to lay out the components interactively and to generate
two files that save and launch the GUI:

A FIG-file - contains a complete description of the GUI figure and all of its

children (uicontrols and axes), as well as the values of all object properties.

An M-file - contains the functions that launch and control the GUI and the

callbacks, which are defined as subfunctions. This M-file is referred to as the

application M-file in this documentation.

Note that the application M-file does not contain the code that lays out the
uicontrols; this information is saved in the FIG-file.

The following diagram illustrates the parts of a GUI implementation.


Features of the GUIDE-Generated Application M-File

GUIDE simplifies the creation of GUI applications by automatically


generating an M-file framework directly from your layout. You can then use this framework
to code your application M-file. This approach provides a number of advantages:

The M-file contains code to implement a number of useful features (see Configuring
Application Options for information on these features). The M-file adopts an effective
approach to managing object handles and executing callback routines (see Creating and
Storing the Object Handle Structure for more information). The M-files provides a way to
manage global data (see Managing GUI Data for more information).

The automatically inserted subfunction prototypes for callbacks ensure compatibility with
future releases. For more information, see Generating Callback Function Prototypes for
information on syntax and arguments.

You can elect to have GUIDE generate only the FIG-file and write the application M-file
yourself. Keep in mind that there are no uicontrol creation commands in the application M-
file; the layout information is contained in the FIG-file generated by the Layout Editor.

Beginning the Implementation Process


To begin implementing your GUI, proceed to the following sections:

Getting Started with GUIDE - the basics of using GUIDE.

Selecting GUIDE Application Options - set both FIG-file and M-file options.

Using the Layout Editor - begin laying out the GUI.

Understanding the Application M-File - discussion of programming


techniques

used in the application M-file.

Application Examples - a collection of examples that illustrate techniques

which are useful for implementing GUIs.


Command-Line Accessibility

When MATLAB creates a graph, the figure and axes are included in the list of
children of their respective parents and their handles are available through commands such as
findobj, set, and get. If you issue another plotting command, the output is directed to the
current figure and axes.

GUIs are also created in figure windows. Generally, you do not want GUI
figures to be available as targets for graphics output, since issuing a plotting command could
direct the output to the GUI figure, resulting in the graph appearing in the middle of the GUI.

In contrast, if you create a GUI that contains an axes and you want commands
entered in the command window to display in this axes, you should enable command-line
access.

User Interface Controls


The Layout Editor component palette contains the user interface controls that
you can use in your GUI. These components are MATLAB uicontrol objects and are
programmable via their Callback properties. This section provides information on these
components.

 Push Buttons
 Sliders
 Toggle Buttons
 Frames
 Radio Buttons
 Listboxes
 Checkboxes
 Popup Menus
 Edit Text
 Axes
 Static Text
 Figures
Push Buttons
Push buttons generate an action when pressed (e.g., an OK button may close a
dialog box and apply settings). When you click down on a push button, it appears depressed;
when you release the mouse, the button's appearance returns to its nondepressed state; and its
callback executes on the button up event.

Properties to Set

String - set this property to the character string you want displayed on the push button.

Tag - GUIDE uses the Tag property to name the callback subfunction in the application
M-file. Set Tag to a descriptive name (e.g., close_button) before activating the GUI.

Programming the Callback

When the user clicks on the push button, its callback executes. Push buttons
do not return a value or maintain a state.

Toggle Buttons

Toggle buttons generate an action and indicate a binary state (e.g., on or off).
When you click on a toggle button, it appears depressed and remains depressed when you
release the mouse button, at which point the callback executes. A subsequent mouse click
returns the toggle button to the nondepressed state and again executes its callback.

Programming the Callback

The callback routine needs to query the toggle button to determine what state
it is in. MATLAB sets the Value property equal to the Max property when the toggle button
is depressed (Max is 1 by default) and equal to the Min property when the toggle button is not
depressed (Min is 0 by default).

From the GUIDE Application M-File

The following code illustrates how to program the callback in the GUIDE
application M-file.

function varargout = togglebutton1_Callback(h,eventdata,handles,varargin)


button_state = get(h,'Value');

if button_state == get(h,'Max')

% toggle button is pressed

elseif button_state == get(h,'Min')

% toggle button is not pressed

end

Adding an Image to a Push Button or Toggle Button

Assign the CData property an m-by-n-by-3 array of RGB values that define a
truecolor image. For example, the array a defines 16-by-128 truecolor image using random
values between 0 and 1 (generated by rand).

a(:,:,1) = rand(16,128);

a(:,:,2) = rand(16,128);

a(:,:,3) = rand(16,128);

set(h,'CData',a)

Radio Buttons

Radio buttons are similar to checkboxes, but are intended to be mutually


exclusive within a group of related radio buttons (i.e., only one button is in a selected state at
any given time). To activate a radio button, click the mouse button on the object. The display
indicates the state of the button.

Implementing Mutually Exclusive Behavior

Radio buttons have two states - selected and not selected. You can query and
set the state of a radio button through its Value property:

Value = Max, button is selected.


Value = Min, button is not selected.

To make radio buttons mutually exclusive within a group, the callback for
each radio button must set the Value property to 0 on all other radio buttons in the group.
MATLAB sets the Value property to 1 on the radio button clicked by the user.

The following subfunction, when added to the application M-file, can be


called by each radio button callback. The argument is an array containing the handles of all
other radio buttons in the group that must be deselected.

function mutual_exclude(off)

set(off,'Value',0)

Obtaining the Radio Button Handles.

The handles of the radio buttons are available from the handles structure,
which contains the handles of all components in the GUI. This structure is an input argument
to all radio button callbacks.

The following code shows the call to mutual_exclude being made from the
first radio button's callback in a group of four radio buttons.

function varargout = radiobutton1_Callback(h,eventdata,handles,varargin)

off = [handles.radiobutton2,handles.radiobutton3,handles.radiobutton4];

mutual_exclude(off)

% Continue with callback

After setting the radio buttons to the appropriate state, the callback can
continue with its implementation-specific tasks.
Checkboxes

Check boxes generate an action when clicked and indicate their state as
checked or not checked. Check boxes are useful when providing the user with a number of
independent choices that set a mode (e.g., display a toolbar or generate callback function
prototypes).

The Value property indicates the state of the check box by taking on the value
of the Max or Min property (1 and 0 respectively by default):

Value = Max, box is checked.

Value = Min, box is not checked.

You can determine the current state of a check box from within its callback by
querying the state of its Value property, as illustrated in the following example:

function checkbox1_Callback(h,eventdata,handles,varargin)

if (get(h,'Value') == get(h,'Max'))

% then checkbox is checked-take approriate action

else

% checkbox is not checked-take approriate action

end

Edit Text

Edit text controls are fields that enable users to enter or modify text strings.
Use edit text when you want text as input. The String property contains the text entered by
the user.

To obtain the string typed by the user, get the String property in the callback.
function edittext1_Callback(h,eventdata, handles,varargin)

user_string = get(h,'string');

% proceed with callback...

Obtaining Numeric Data from an Edit Test Component

MATLAB returns the value of the edit text String property as a character
string. If you want users to enter numeric values, you must convert the characters to numbers.
You can do this using the str2double command, which converts strings to doubles. If the user
enters non-numeric characters, str2double returns NaN.

You can use the following code in the edit text callback. It gets the value of
the String property and converts it to a double. It then checks if the converted value is NaN,
indicating the user entered a non-numeric character (isnan) and displays an error dialog
(errordlg).

function edittext1_Callback(h,eventdata,handles,varargin)

user_entry = str2double(get(h,'string'));

if isnan(user_entry)

errordlg('You must enter a numeric value','Bad Input','modal')

end

% proceed with callback...

Triggering Callback Execution

On UNIX systems, clicking on the menubar of the figure window causes the
edit text callback to execute. However, on Microsoft Windows systems, if an editable text
box has focus, clicking on the menubar does not cause the editable text callback routine to
execute. This behavior is consistent with the respective platform conventions. Clicking on
other components in the GUI execute the callback.

Static Text
Static text controls displays lines of text. Static text is typically used to label
other controls, provide directions to the user, or indicate values associated with a slider. Users
cannot change static text interactively and there is no way to invoke the callback routine
associated with it.

Frames

Frames are boxes that enclose regions of a figure window. Frames can make a
user interface easier to understand by visually grouping related controls. Frames have no
callback routines associated with them and only uicontrols can appear within frames (axes
cannot).

Placing Components on Top of Frames

Frames are opaque. If you add a frame after adding components that you want
to be positioned within the frame, you need to bring forward those components. Use the
Bring to Front and Send to Back operations in the Layout menu for this purpose.

List Boxes

List boxes display a list of items and enable users to select one or more items.

The String property contains the list of strings displayed in the list box. The
first item in the list has an index of 1.

The Value property contains the index into the list of strings that correspond to
the selected item. If the user selects multiple items, then Value is a vector of indices.

By default, the first item in the list is highlighted when the list box is first
displayed. If you do not want any item highlighted, then set the Value property to empty, [].
The ListboxTop property defines which string in the list displays as the top
most item when the list box is not large enough to display all list entries. ListboxTop is an
index into the array of strings defined by the String property and must have a value between 1
and the number of strings. Noninteger values are fixed to the next lowest integer.

Single or Multiple Selection

The values of the Min and Max properties determine whether users can make
single or multiple selections:

If Max - Min > 1, then list boxes allow multiple item selection.

If Max - Min <= 1, then list boxes do not allow multiple item selection.

Selection Type

Listboxes differentiate between single and double clicks on an item and set the
figure SelectionType property to normal or open accordingly. See Triggering Callback
Execution for information on how to program multiple selection.

Triggering Callback Execution

MATLAB evaluates the list box's callback after the mouse button is released
or a keypress event (including arrow keys) that changes the Value property (i.e., any time the
user clicks on an item, but not when clicking on the list box scrollbar). This means the
callback is executed after the first click of a double-click on a single item or when the user is
making multiple selections.

In these situations, you need to add another component, such as a Done button
(push button) and program its callback routine to query the list box Value property (and
possibly the figure SelectionType property) instead of creating a callback for the list box. If
you are using the automatically generated application M-file option, you need to either:

Set the list box Callback property to the empty string ('') and remove the
callback subfunction from the application M-file. Leave the callback subfunction stub in the
application M-file so that no code executes when users click on list box items.

The first choice is best if you are sure you will not use the list box callback
and you want to minimize the size and efficiency of the application M-file. However, if you
think you may want to define a callback for the list box at some time, it is simpler to leave the
callback stub in the M-file.

Popup Menus

Popup menus open to display a list of choices when users press the arrow.

The String property contains the list of string displayed in the popup menu.
The Value property contains the index into the list of strings that correspond to the selected
item.

When not open, a popup menu displays the current choice, which is
determined by the index contained in the Value property. The first item in the list has an
index of 1.
Popup menus are useful when you want to provide users with a number of
mutually exclusive choices, but do not want to take up the amount of space that a series of
radio buttons requires.

Programming the Popup Menu

You can program the popup menu callback to work by checking only the
index of the item selected (contained in the Value property) or you can obtain the actual
string contained in the selected item.

This callback checks the index of the selected item and uses a switch
statement to take action based on the value. If the contents of the popup menu is fixed, then
you can use this approach.

function varargout = popupmenu1_Callback(h,eventdata,handles,varargin)

val = get(h,'Value');

switch val

case 1

% The user selected the first item

case 2

% The user selected the second item

% etc.

This callback obtains the actual string selected in the popup menu. It uses the
value to index into the list of strings. This approach may be useful if your program
dynamically loads the contents of the popup menu based on user action and you need to
obtain the selected string. Note that it is necessary to convert the value returned by the String
property from a cell array to a string.

function varargout = popupmenu1_Callback(h,eventdata,handles,varargin)

val = get(h,'Value');

string_list = get(h,'String');

selected_string = string_list{val}; % convert from cell array to string

% etc.

Enabling or Disabling Controls

You can control whether a control responds to mouse button clicks by setting
the Enable property. Controls have three states:

on - The control is operational

off - The control is disabled and its label (set by the string property) is

grayed out.

inactive - The control is disabled, but its label is not grayed out.

When a control is disabled, clicking on it with the left mouse button does not
execute its callback routine. However, the left-click causes two other callback routines to
execute:

First the figure WindowButtonDownFcn callback executes. Then the control's


ButtonDownFcn callback executes.
A right mouse button click on a disabled control posts a context menu, if one
is defined for that control. See the Enable property description for more details.

Axes

Axes enable your GUI to display graphics (e.g., graphs and images). Like
all graphics objects, axes have properties that you can set to control many aspects of its
behavior and appearance. See Axes Properties for general information on axes objects.

Axes Callbacks

Axes are not uicontrol objects, but can be programmed to execute a callback
when users click a mouse button in the axes. Use the axes ButtonDownFcn property to define
the callback.

Plotting to Axes in GUIs

GUIs that contain axes should ensure the Command-line accessibility option
in the Application Options dialog is set to Callback (the default). This enables you to issue
plotting commands from callbacks without explicitly specifying the target axes.

GUIs with Multiple Axes

If a GUI has multiple axes, you should explicitly specify which axes you
want to target when you issue plotting commands. You can do this using the axes command
and the handles structure. For example,

axes(handles.axes1)
makes the axes whose Tag property is axes1 the current axes, and therefore the target for
plotting commands. You can switch the current axes whenever you want to target a different
axes. See GUI with Multiple Axes for and example that uses two axes.

Figure

Figures are the windows that contain the GUI you design with the Layout
Editor. See the description of figure properties for information on what figure characteristics
you can control.
CONCLUSION
This paper analyzed the performance of V-BLAST on different detection techniques and
compared them on the basis of bit error rate/signal to noise ratio and resulted better
performance with lesser complexity. We have analyzed that 2X2 MIMO-OFDM Channel
with Binary phase shift keying( BPSK) modulation and various detection techniques are
applied along with VBLAST algorithm and their performance is compared on the basis of bit
error rate per signal to noise ratio (BER/SNR). The simulation result shows that when the
detection techniques are applied with V-BLAST, they show better results even for higher
values of SNR. Figure 8 shows the performance comparison of all detection techniques
without and with V-BLAST. This figure(8) shows that we can obtain close to ML
performance with less complexity by applying V-BLAST algorithm on linear detection
techniques and also if we require a system with performance better than ML then we can also
apply V-BLAST on ML. The performance of V-BLAST and STBC on MIMO-OFDM is also
analyzed. VBLAST is superior regarding spectral efficiency and bit error rate.
REFERENCES
[1] Alamouti S.M., A simple transmit diversity technique for wireless communications, IEEE
J. Select Areas Communications., vol. 16, pp.1451–1458, Oct. 1998.
[2] WintersJ. H., The diversity gain of transmit diversity in wireless systems with Rayleigh
fading,IEEE Int.Conf. Communications,vol. 2, pp. 1121–1125, 1998.
[3] Tian-Ming Ma, Yu-Song Shi, and Ying-Guan Wang,“A Low Complexity MMSE for
OFDM Systems overFrequency-Selective Fading Channels”, IEEE Communications Letters,
vol.-16, no.-3, March 2012.
[4] D. Gesbert, M. Shafi, Da-shan Shiu, P. J. Smith, A. Naguib, “From theory to practice: an
overview of MIMO space-time coded wireless systems”, Selected Areas in Communications,
IEEE Journal, vol.-21, pp. 281-302, April 2003.
[5] Kai Yu and Bjorn Ottersten, “Models for MIMO Propagation Channels, A Review”, in
Special Issue on “Adaptive Antennas and MIMO Systems”, Wiley Journal on Wireless
Comm. and Mobile Computing, vol.-2, Issue 7, pp. 653-666, November 2002
[6] T.Y Al-Naffouri, K.M.Z. Islam, N. Al-Dhahir, S. Lu, “A Model Reduction Approach for
OFDM Channel Estimation Under High Mobility Conditions ”, Transaction on Signal
Processing, Vol. 58, No. 6, pp. 3360–3372, June 2010.
[7] Felip R.P, Improved linear group detection for combined spatial multiplexing/STBC
system, IEEE Transactions On Commun, vol. 57, 2009.
[8] Jayalakshmy.S, Performance, Analysis and Efficient Transmission over Multiple Wireless
Channels using V-Blast Architecture, CIS Journal, Special issue pp 11, 2011.
[9] MurthyN.S, GowriS.Sri, and Saileela J.N.V., Transmit diversity techniques for wireless
communication over Rayleighchannels using 16 QAM Modulation schemes,Springer, pp.
127-137,2011
[10] Mao T, Motani M (2005) STBC-VBLAST for MIMO Wireless Communication
Systems. Proc IEEE ICC (ICC 2005) 4:2266–2270 IEEE Transaction on Signal Processing,
Vol. 58, No. 4, pp. 2181– 2193, April 2010.
[11] C.Chung, “Spectral precoding for constant-envelope OFDM”, IEEE Transaction on
Communications, Vol. 58, No. 6, pp. 555–567, 2010.
[12] J. Ketonen, M. Juntti and J.R. Cavallaro, “Performance Complexity Comparison of
Receivers for a LTE MIMO–OFDM System”, IEEE

You might also like