Channel Estimation For Massive MIMO Using Gaussian-Mixture Bayesian Learning
Channel Estimation For Massive MIMO Using Gaussian-Mixture Bayesian Learning
Index Terms—Bayesian learning, Channel estimation, Gaussian mixture, Massive MIMO, Pilot
contamination.
CHAPTER-1
INTRODUCTION
In this paper, our focus is on the channel estimation problems with pilot contamination in
the uplink, although there are other related issues in the downlink that also greatly limit the
performance of massive MIMO systems. For the issues in the downlink, we refer the readers to
[5–9].
Several approaches have emerged to deal with pilot contamination in the uplink recently
[10–15]. By exploiting the covariance information of user channels and applying a covariance
aware pilot assignment strategy among the cells, [10] revealed that pilot contamination could
disappear. Alternatively, using an eigen value decomposition of the sample covariance matrix of
the received signals, [11–13] claimed that pilot contamination can be effectively mitigated by
projecting the received signal onto an interference-free subspace without the need of
coordination amongst the cells. Nevertheless, [10–13] rely heavily on the estimation of the
channel or signal covariance matrices. Though the covariance matrices change slowly over time,
the estimation problem under massive MIMO systems is far from trivial [5]. The reason is that a
covariance matrix is typically estimated through the sample covariance matrix, and that the
sample size should be increased proportionally to the dimension of the covariance matrices.1 In
massive MIMO systems, the dimension of the covariance matrices may be comparable to the
number of available samples within a coherence time. The sample covariance estimation method
is thus no longer sufficient and more sophisticated techniques. must be used, see e.g., [16] or
[17] for more recent progress.
Different from the approaches based on covariance matrices, e.g., [10–13], in this paper,
we address the pilot contamination problem directly from a channel estimation perspective. From
[1], we realize that pilot contamination results from performing channel estimation ignoring pilot
interference from the neighboring cells so that the estimated channel contains channels of the
interference. To overcome this, we therefore propose to estimate not only the channel parameters
of the desired links in the target cell but also those of the interference links from adjacent cells.
Although this strategy seems natural, the challenge remains that the required estimation problem
forms an underdetermined linear system which generally has infinitely many solutions. To get an
accurate solution, we rely on a key observation–The channels with most of the multipath energy
tend to be concentrated in relatively small regions within the channel angular spread due to
limited local scatterers at the BSs [18–22]. An approximate sparsity of a channel can be obtained
by transforming the received signal into a beam domain. Exploiting the channel sparsity, we can
obtain much more accurate channel estimates by leveraging on more recent techniques in
compressive sensing (CS) [23–26].
MIMO channel estimation based on CS techniques has been investigated in [8, 9, 14, 15,
27, 28]. Most of the earlier works, e.g., [27] (and references therein), exploited sparse channel
estimation methods mainly to improve the performance of single-user MIMO systems. Under
multiuser massive MIMO systems, CS techniques were used in [8, 9, 28] in order to reduce the
feedback overhead of the channel state information (CSI) at the transmitter side. In [14, 15], the
authors also advocated to estimate the channel parameters of the desired links in the target cell
and those of the interference links from adjacent cells. Nonetheless, they used a CS technique to
estimate the MIMO channel based on low-rank approximation, which is completely different
from that of our interest. Other popular solvers in the CS literature, e.g., the ℓ1 optimization (L1)
solver [29] and the orthogonal matching pursuit (OMP) solver [30], also appear to be not so
useful in the concerned channel estimation problem. For the L1 solver, the regularization
parameter has to be chosen carefully to control the channel estimation errors while determining
the best regularization parameter is difficult in practice. Meanwhile, the OMP solver greedily
selects the best channel vectors for channel representation, and the best support number for
channel representation is also difficult to obtain in practice. Whether channel estimation in
massive MIMO systems, suffered from pilot contamination, could be effectively addressed via
CS techniques is not understood.
Our contributions include the formulation of massive MIMO channel estimation with
pilot contamination as a CS problem. Based on an observation of the received signals in the
beam domain, we model the channel component in the beam domain as a Gaussian mixture, i.e.,
a weighted summation of Gaussian distributions with different variances. This model enables us
to reconstruct the channel components based on the probabilistic Bayesian inference with the
best mean-squared error (MSE) performance [31]. For the optimal Bayesian inference, the
computational complexity is not tractable and the statistical properties of the channel component
are required. Hence, we employ the approximate message passing (AMP) algorithm in [23–25]
to obtain the Bayesian inference and an expectationmaximization (EM) algorithm [26] to learn
the statistical properties. Unlike [10], our Bayesian estimator does not require the availability of
the channel covariance matrices and the background noise level. All the required channel
knowledge will be learned as part of the estimation procedure. By a proper design on pilot
sequences, the proposed estimator leads to a much reduced complexity without compromising
performance. Numerical results will show that the developed approach provides a huge gain in
reducing the channel estimation errors. In addition, the achievable rates based on the developed
channel. estimator are comparable to those with perfect CSI.
Notations—Throughout this paper, the set of complex numbers is denoted by C. For any
matrix A ∈ CM×N, Aij denotes the (i, j)th element, while AT , and AH return the transpose and
the conjugate transpose of A, respectively. An identity matrix is denoted by I or IN if it is
necessary to specify its dimension N. In addition, a random vector x having the proper complex
Gaussian distribution of mean μ and covariance is indicated by x ∼ NC(x;μ,), where [32, Eq.
(24.27)]
We simply denote NC(0;μ,) by NC(μ,) for conciseness. Finally, E{·} returns the expectation of
an input random entity
a massive MIMO system can be envisioned, Each antenna unit would be small, and active,
preferably fed via an optical or electric digital bus. Massive MIMO relies on spatial multiplexing
that in turn relies on the base station having good enough channel knowledge, both on the uplink
and the downlink. On the uplink, this is easy to accomplish by having the terminals send pilots,
based on which the base station estimates the channel responses to each of the terminals. The
downlink is more difficult. In conventional MIMO systems, like the LTE standard, the base
station sends out pilot waveforms based on which the terminals estimate the channel responses,
quantize the so-obtained estimates and feed them back to the base station. This will not be
feasible in massive MIMO systems, at least not when operating in a high-mobility environment,
for two reasons. First, optimal downlink pilots should be mutually orthogonal between the
antennas. This means that the amount of time- frequency resources needed for downlink pilots
scales as the number of antennas, so a massive MIMO system would require up to a hundred
times more such resources than a conventional system. Second, the number of channel responses
that each terminal must estimate is also proportional to the number of base station antennas.
Hence, the uplink resources needed to inform the base station about the channel responses would
be up to a hundred times larger than in conventional systems. Generally, the solution is to
operate in TDD mode, and rely on reciprocity between the uplink and downlink channels—
although FDD operation may be possible in certain cases. While the concepts of massive MIMO
have been mostly theoretical so far, and in particular stimulated much research in random matrix
theory and related mathematics, basic testbeds are becoming available and initial channel
measurements have been performed. The Potential of Massive MIMO Massive MIMO
technology relies on phase-coherent but computationally very simple process- ing of signals
from all the antennas at the base station. Some specific benefits of a massive MU-MIMO system
are:
Massive MIMO can increase the capacity 10 times or more and simultaneously, improve the
radiated energy-efficiency in the order of 100 times. The capacity increase results from the
aggressive spatial multiplexing used in massive MIMO. The fundamental principle that makes
the dramatic increase in energy efficiency possible is that with large number of antennas, energy
can be focused with extreme sharp- ness into small regions in space, see Fig. 2. The underlying
physics is coherent superpo- sition of wavefronts. By appropriately shaping the signals sent out
by the antennas, the base station can make sure that all wave fronts collectively emitted by all
antennas add up constructively at the locations of the intended terminals, but destructively
(randomly) almost everywhere else. Interference between terminals can be suppressed even
further by using, e.g., zero-forcing (ZF). This, however, may come at the cost of more
transmitted power, as illustrated. More quantitatively, depicts the fundamental tradeoff between
the energy efficiency in terms of the total number of bits (sum-rate) transmitted per Joule per
terminal receiving service of energy spent, and spectral efficiency in terms of total number of bits
(sum-rate) transmitted per unit of radio spectrum consumed. The figure illustrates the relation for
the uplink, from the terminals to the base station (the downlink performance is similar). The
figure shows the tradeoff for three cases: – a reference system with one single antenna serving a
single terminal (purple), – a system with 100 antennas serving a single terminal using
conventional beamform- ing (green) – a massive MIMO system with 100 antennas
simultaneously serving multiple (about 40 here) terminals (red, using maximum-ratio combining;
and blue, using zero- forcing). The attractiveness of maximum-ratio combining (MRC)
compared with ZF is not only its computational simplicity—multiplication of the received
signals by the conjugate channel responses, but also that it can be performed in a distributed
fashion, independently at each antenna unit. While ZF also works fairly well for a conventional
or moderately-sized MIMO system, MRC generally does not. The reason for why MRC works so
well for massive MIMO is that the channel responses associated with different terminals tend to
be nearly orthogonal when the number of base station antennas is large. The prediction in is
based on an information-theoretic analysis that takes into ac- count intracell interference, as well
as the bandwidth and energy cost of using pilots to acquire channel state information in a high-
mobility environment. With the MRC re- ceiver, we operate in the nearly noise-limited regime of
information theory. This means providing each terminal with a rate of about 1 bit per complex
dimension (1 bps/Hz). In a massive MIMO system, when using MRC and when operating in the
“green” regime, that is, scaling down the power as much as possible without seriously affecting
the overall spectral efficiency, multiuser interference and effects from hardware imperfections
tend to be overwhelmed by the thermal noise. The reason that the overall spectral efficiency still
can be 10 times higher than in conventional MIMO is that many tens of terminals are served
simultaneously, in the same time-frequency resource. When operating in the 1
bit/dimension/terminal regime, there is also some evidence that intersymbol interference can be
treated as additional thermal noise , hence offering a way of disposing with OFDM as a means of
combatting intersymbol interference. To understand the scale of the capacity gains that massive
MIMO offers, consider an ar- ray consisting of 6400 omnidirectional antennas (total form factor
6400 × (λ/2)2 ≈ 40 m2), transmitting with a total power of 120 Watts (that is, each antenna
radiating about 20 mW) over a 20 MHz bandwidth in the PCS band (1900 MHz). The array
serves one thousand (1000) fixed terminals randomly distributed in a disk of radius 6 km
centered on the array, each terminal having an 8 dB gain antenna. The height of the antenna
array is 30 m, and the height of the terminals is 5 m. Using the Hata-COST231 model we find
that the path loss is 127 dB at 1 km range and the range-decay exponent is 3.52. There is also
log-normal shadow fading with 8 dB standard deviation. The receivers have a 9 dB noise figure.
One-quarter of the time is spent on transmission of uplink pilots for TDD channel estimation,
and it is assumed that the channel is substantially constant over intervals of 164 ms in order to
estimate the channel gains with sufficient accuracy. Downlink data is transmitted via maximum-
ratio transmission (MRT) beamforming combined with power control, where the 5% of the
terminals having the worst channels are excluded from ser- vice. We use a capacity lower bound
from that is extended to accommodate slow fading, near/far effects and power control and which
accounts for receiver noise, chan- nel estimation errors, the overhead of pilot transmission, and
the imperfections of MRT beamforming. We use optimal max-min power control which confers
an equal signal-to- interference-and-noise ratio on each of the 950 terminals and therefore equal
throughput. Numerical averaging over random terminal locations and over the shadow fading
shows that 95% of the terminals will receive a throughput of 21.2 Mb/s/terminal. Overall, the
array in this example will offer the 1000 terminals a total downlink throughput of 20 Gb/s,
resulting in a sum-spectral efficiency of 1000 bits/s/Hz. This would be enough, for example, to
provide 20 Mbit/s broadband service to each of a thousand homes. The max-min power control
provides equal service simultaneously to 950 terminals. Other types of power control combined
with time-division multiplexing could accommodate heterogeneous traffic demands of a larger
set of terminals. The MRC receiver (for the uplink) and its counterpart MRT precoding (for the
downlink) are also known as matched filtering (MF) in the literature. Massive MIMO can be
built with inexpensive, low-power components. Massive MIMO is a game-changing technology
both with regard to theory, systems and implementation. With massive MIMO, expensive, ultra-
linear 50 Watt amplifiers used in conventional systems are replaced by hundreds of low-cost
amplifiers with output power in the milli-Watt range. The contrast to classical array designs,
which use few antennas fed from high-power amplifiers, is significant. Several expensive and
bulky items, such as large coaxial cables, can be eliminated altogether. (The typical coaxial
cables used for tower-mounted base stations today are more than four centimeters in diameter!)
Massive MIMO reduces the constraints on accuracy and linearity of each individual am- plifier
and RF chain. All what matters is their combined action. In a way, massive MIMO relies on the
law of large numbers to make sure that noise, fading and hardware imper- fections average out
when signals from a large number of antennas are combined in the air together. The same
property that makes massive MIMO resilient against fading also makes the technology extremely
robust to failure of one or a few of the antenna units. A massive MIMO system has a large
surplus of degrees of freedom. For example, with 200 antennas serving 20 terminals, 180 degrees
of freedom are unused. These degrees of freedom can be used for hardware-friendly signal
shaping. In particular, each antenna can transmit signals with very small peak-to-average ratio or
even constant envelope [10] at a very modest penalty in terms of increased total radiated power.
Such (near-constant)
envelope signaling facilitates the use of extremely cheap and power-efficient RF amplifiers. The
techniques must not be confused with conventional beamforming techniques or equal-
magnitude-weight beamforming techniques. This distinction is explained. With (near) constant-
envelope multiuser precoding, no beams are formed, and the signals emitted by each antenna are
not formed by weighing of a symbol. Rather, a wavefield is created, such that when this
wavefield is sampled at the spots where the terminals are located, the terminals see precisely the
signals that we want them to see. The fundamental property of the massive MIMO channel that
makes this possible is that the channel has a large nullspace: almost anything can be put into this
nullspace without affecting what the terminals see. In particular, components can be put into this
nullspace that make the transmitted waveforms satisfy the desired envelope constraints. Notwith-
standing that, the effective channels between the base station and each of the terminals, can take
any signal constellation as input and does not require the use of PSK-type mod- ulation. The
drastically improved energy efficiency enables massive MIMO systems to operate with a total
output RF power two orders of magnitude less than with current technology. This matters,
because the energy consumption of cellular base stations is a growing con- cern worldwide. In
addition, base stations that consume many orders of magnitude less power could be powered by
wind or solar, and hence easily deployed where no electricity grid is available. As a bonus, the
total emitted power can be dramatically cut and there- fore the base station will generate
substantially less electromagnetic interference. This is important owing to the increased concerns
of electromagnetic exposure.
• Massive MIMO enables a significant reduction of latency on the air interface. The performance
of wireless communications systems is normally limited by fading. The fading can render the
received signal strength very small at some times. This happens when the signal sent from a base
station travels through multiple paths before it reaches the terminal, and the waves resulting from
these multiple paths interfere destructively. It is this fading that makes it hard to build low-
latency wireless links. If the terminal is trapped in a fading dip, it has to wait until the
propagation channel has sufficiently changed until any data can be received. Massive MIMO
relies on the law of large numbers and beamforming in order to avoid fading dips, so that fading
no longer limits latency.
• Massive MIMO simplifies the multiple-access layer. Owing to the law of large numbers, the
channel hardens so that frequency-domain scheduling no longer pays off. With OFDM, each
subcarrier in a massive MIMO sys- tem will have substantially the same channel gain. Each
terminal can be given the whole bandwidth, which renders most of the physical-layer control
signaling redundant.
• Massive MIMO increases the robustness both to unintended man-made interference and to
intentional jamming. Intentional jamming of civilian wireless systems is a growing concern and a
serious cyber- security threat that seems to be little known to the public. Simple jammers can be
bought off the Internet for a few $100, and equipment that used to be military-grade can be put
together using off-the-shelf software radio-based platforms for a few $1000. Numerous recent
incidents, especially in public safety applications, illustrate the magnitude of the problem.
During the EU summit in Gothenburg, Sweden, in 2001, demonstrators used a jammer located in
a nearby apartment and during critical phases of the riots, the chief commander could not reach
any of the engaged 700 police officers . Due to the scarcity of bandwidth, spreading information
over frequency just is not feasible so the only way of improving robustness of wireless
communications is to use multiple antennas. Massive MIMO offers many excess degrees of
freedom that can be used to can- cel signals from intentional jammers. If massive MIMO is
implemented by using uplink pilots for channel estimation, then smart jammers could cause
harmful interference with modest transmission power. However, more clever implementations
using joint channel estimation and decoding should be able to substantially diminish that
problem.
Ideally every terminal in a Massive MIMO system is assigned an orthogonal uplink pilot se-
quence. However the maximum number of orthogonal pilot sequences that can exist is upper-
bounded by the duration of the coherence interval divided by the channel delay-spread. In, for a
typical operating scenario, the maximum number of orthogonal pilot sequences in a one
millisecond coherence interval is estimated to be about 200. It is easy to exhaust the available
supply of orthogonal pilot sequences in a multi-cellular system. The effect of re-using pilots
from one cell to another, and the associated negative consequences, is termed “pilot
contamination”. More specifically, when the service-array correlates its re- ceived pilot signal
with the pilot sequence associated with a particular terminal it actually ob- tains a channel
estimate that is contaminated by a linear combination of channels to the other terminals that
share the same pilot sequence. Downlink beamforming based on the contami- nated channel
estimate results in interference that is directed to those terminals that share the
same pilot sequence. Similar interference is associated with uplink transmissions of data. This
directed interference grows with the number of service-antennas at the same rate as the desired
signal. Even partially correlated pilot sequences result in directed interference. Pilot
contamination as a basic phenomenon is not really specific to massive MIMO, but its effect on
massive MIMO appears to be much more profound than in classical MIMO. it was argued that
pilot contamination constitutes an ultimate limit on performance, when the number of antennas is
increased without bound, at least with receivers that rely on pilot-based channel estimation.
While this argument has been contested recently , at least under some specific assumptions on
the power control used, it appears likely that pilot contamination must be dealt with in some way.
This can be done in several ways:
• The allocation of pilot waveforms can be optimized. One possibility is to use a less- aggressive
frequency re-use factor for the pilots (but not necessarily for the payload data)—say 3 or 7. This
pushes mutually-contaminating cells farther apart. It is also pos- sible to coordinate the use of
pilots or adaptively allocate pilot sequences to the different terminals in the network. Currently,
the optimal strategy is unknown.
• Clever channel estimation algorithms, or even blind techniques that circumvent the use of pilots
altogether, may mitigate or eliminate the effects of pilot contamina- tion. The most promising
direction seems to be blind techniques that jointly estimate the channels and the payload data.
• New precoding techniques that take into account the network structure, such as pilot
contamination precoding, can utilize cooperative transmission over a multiplicity of cells—
outside of the beamforming operation—to nullify, at least partially, the directed interference that
results from pilot contamination. Unlike coordinated beamforming over multiple cells which
requires estimates of the actual channels between the terminals and the service-arrays of the
contaminating cells, pilot-contamination precoding requires only the corresponding slow-fading
coefficients. Practical pilot-contamination precoding re- mains to be developed.
Massive MIMO (and especially MRC/MRT processing) relies to a large extent on a property of
the radio environment called favorable propagation. Simply stated, favorable propagation means
that the propagation channel responses from the base station to different terminals are
sufficiently different. To study the behavior of massive MIMO systems, channel measurements
have to be performed using realistic antenna arrays. This is so because the channel behavior
using large arrays differs from that usually experienced using conventional smaller arrays. The
Figure : Massive MIMO antenna arrays used for the measurements.
most important differences are that (i) there might be large scale fading over the array and (ii) the
small-scale signal statistics may also change over the array. Of course, this is also true for
physically smaller arrays with directional antenna elements pointing in various directions. Fig. 5
shows pictures of the two massive MIMO arrays used for the measurements reported in this
paper. To the left is a compact circular massive MIMO array with 128 antenna ports. This array
consists of 16 dual-polarized patch antenna elements arranged in a circle, with 4 such
circles stacked on top of each other. Besides having the advantage of being compact, this array
also provides the possibility to resolve scatterers at different elevations, but it suffers from worse
resolution in azimuth due to its limited aperture. To the right is a physically large linear (virtual)
array, where a single omni directional antenna element is moved to 128 different positions in an
otherwise static environment to emulate a real array with the same dimensions. One way of
quantifying how different the channel responses to different terminals are, is to look at the spread
between the smallest and largest singular values of the matrix that contains the channel
responses. Fig. 6 illustrates this for a case with 4 user terminals and a base sta- tion having 4, 32
and 128 antenna ports, respectively, configured either as a physically large single-polarized
linear array or a compact dual-polarized circular array. More specifically, the figure shows the
cumulative density function (CDF) of the difference between the smallest and the largest
singular value for the different measured (narrowband) frequency points in the dif- ferent cases.
As a reference we also show simulated results for ideal independent, identically distributed
(i.i.d.) channel matrices, often used in theoretical studies. The measurements were performed
outdoors at the Lund University campus area. The center frequency was 2.6 GHz an the
measurement bandwidth 50 MHz. When using the cylindrical array, the RUSK Lund chan- nel
sounder was employed, while a network analyzer was used for the synthetic linear array
measurements. The first results from the campaign were presented.
• The challenge of low-cost hardware. Building hundreds of RF chains, up/down convert- ers,
A/D–D/A converters, and so forth, will require economy of scale in manufacturing comparable
to what we have seen for mobile handsets.
• Hardware impairments. Massive MIMO relies on the law of large numbers to average out
noise, fading and to some extent, interference. In reality, massive MIMO must be built with low-
cost components. This is likely to mean that hardware imperfections are larger: in particular,
phase noise and I/Q imbalance. Low-cost and power-efficient A/D converters yield higher levels
of quantization noise. Power amplifiers with very relaxed linearity requirements will necessitate
the use of per-antenna low-peak-to-average signal- ing, which as already noted, is feasible with a
large excess of transmitter antennas. With low-cost phase locked-loops or even free-running
oscillators at each antenna, phase noise may become a limiting factor. However, what ultimately
matters is how much the phase will drift between the point in time when a pilot symbol is
received and the point in time when a data symbol is received at each antenna. There is great
potential to get around the phase noise problem by design of smart transmission physical-layer
schemes and receiver algorithms.
• Internal power consumption. Massive MIMO offers the potential to reduce the radiated power a
thousand times, and at the same time drastically scale up data rates. But in practice, the total
power consumed must be considered, that includes the cost of base- band signal processing.
Much research must be invested into highly parallel, perhaps
dedicated, hardware for the baseband signal processing.
• Channel characterization. There are additional properties of the channel to consider when using
massive MIMO instead of conventional MIMO. To facilitate a realistic performance assessment
of massive MIMO systems it is necessary to have channel models that reflect the true behavior of
the radio channel, i.e. the propagation channel including effects of re- alistic antenna
arrangements. It is also important to develop more sophisticated analytical channel models. Such
models need not necessarily be correct in every fine detail, but they must capture the essential
behavior of the channel. For example, in conventional MIMO the Kronecker model is widely
used to model channel correlation—this model is not an exact representation of reality but
provides a useful model for certain types of analysis, despite its limitations. A similar way of
thinking could probably be adopted for massive MIMO channel modeling.
• Cost of reciprocity calibration. TDD will require reciprocity alibration. How often must this be
done and what is the best way of doing it? What is the cost, in terms of time- and frequency
resources needed to do the calibration, and in terms of additional hardware components needed?
• Pilot contamination. It is likely that pilot contamination imposes much more severe limi-
tations on massive MIMO than on traditional MIMO systems. We discussed some of the issues
in detail, and outlined some of the most relevant research directions.
• Non-CSI@TX operation. Before a link has been established with a terminal, the base station
has no way of knowing the channel response to the terminal. This means that no array
beamforming gain can be harnessed. In this case, probably some form of space-time block
coding is optimal. Once the terminal has been contacted and sent a pilot, the base station can
learn the channel response and operate in coherent MU-MIMO beamforming mode, reaping the
power gains offered by having a very large array.
• System studies and relation to small-cell and HetNet solutions. The driving motivation of
massive MIMO is to simultaneously and drastically increase the data rates and the overall
energy efficiency. Other potential ways of reaching this goal are network densification by the
deployment of small cells, resulting in a heterogeneous architecture, or coordina- tion of the
transmission of multiple individual base stations. From a pure fundamental perspective, the
ultimately limiting factor of the performance of any wireless network appears to be the
availability of good enough channel state information (CSI), that fa- cilitates phase-coherent
processing at multiple antennas or multiple access points. Considering factors like mobility,
Doppler shifts, phase noise and clock synchronization, acquiring high-quality CSI seems to be
easier with a collocated massive array then in a system where the antennas are distributed over a
large geographical area. But at the same time, a distributed array or small-cell solution may offer
substantial path-loss gains and would also provide some diversity against shadow fading. The
deployment costs of a massive MIMO array and a distributed or small-cell system also are likely
to be very different. Hence, both communication-theoretic and techno-economic studies are
needed to conclusively determine which approach that is superior. However, it is likely that the
winning solution will comprise a combination of all available technologies.
• Prototype development. While massive MIMO is in its infancy, basic prototyping work of
various aspects of the technology is going on in different parts of the world. The Argos testbed
was developed at Rice university in cooperation with Alcatel-Lucent, and shows the basic
feasibility of the massive MIMO concept using 64 coherently oper- ating antennas. In particular,
the testbed shows that TDD operation relying on channel reciprocity is possible. One of the
virtues of the Argos testbed in particular is that it is en- tirely modular and scalable and that is
built around commercially available hardware the WARP platform). Other test systems around
the world also have demonstrated the basic feasibility of scaling up the number of antennas. The
Ngara testbed in Australia uses a 32-element base station array to serve up to 18 users
simultaneously with true spatial multiplexing. Continued testbed development is highly desired
both to prove the massive MIMO concept with even larger numbers of antennas, and to discover
potentially new issues that need urgent research.
1.3- Gaussian mixture
is a package which enables one to learn Gaussian Mixture Models (diagonal, spherical, tied and
full covariance matrices supported), sample them, and estimate them from data. Facilities to help
determine the appropriate number of components are also provided.
1.3.1-. Gaussian Mixture
The GaussianMixture comes with different options to constrain the covariance of the difference
classes estimated: spherical, diagonal, tied or full covariance.
Examples:
See GMM covariances for an example of using the Gaussian mixture as clustering on the iris
dataset.
See Density Estimation for a Gaussian mixture for an example on plotting the density estimation.
1.4- Variational Bayesian Gaussian Mixture
Due to its Bayesian nature, the variational algorithm needs more hyper- parameters than
expectation-maximization, the most important of these being the concentration
parameter weight_concentration_prior. Specifying a low value for the concentration prior will
make the model put most of the weight on few components set the remaining components
weights very close to zero. High values of the concentration prior will allow a larger number of
components to be active in the mixture.
The next figure compares the results obtained for the different type of the weight concentration
prior (parameter weight_concentration_prior_type) for different values
of weight_concentration_prior. Here, we can see the value of
the weight_concentration_prior parameter has a strong impact on the effective number of active
components obtained. We can also notice that large values for the concentration weight prior
lead to more uniform weights when the type of prior is ‘dirichlet_distribution’ while this is not
necessarily the case for the ‘dirichlet_process’ type (used by default).
The examples below compare Gaussian mixture models with a fixed number of components, to
the variational Gaussian mixture models with a Dirichlet process prior. Here, a classical
Gaussian mixture is fitted with 5 components on a dataset composed of 2 clusters. We can see
that the variational Gaussian mixture with a Dirichlet process prior is able to limit itself to only 2
components whereas the Gaussian mixture fits the data with a fixed number of components that
has to be set a priori by the user. In this case the user has selected n_components=5 which does
not match the true generative distribution of this toy dataset. Note that with very little
observations, the variational Gaussian mixture models with a Dirichlet process prior can take a
conservative stand, and fit only one component.
On the following figure we are fitting a dataset not well-depicted by a Gaussian mixture.
Adjusting the weight_concentration_prior, parameter of the BayesianGaussianMixture controls
the number of components used to fit this data. We also present on the last two plots a random
sampling generated from the two resulting mixtures.
Two-component Gaussian mixture model: data points, and equi-probability surfaces of the
model.
A Gaussian mixture model is a probabilistic model that assumes all the data points are generated
from a mixture of a finite number of Gaussian distributions with unknown parameters. One can
think of mixture models as generalizing k-means clustering to incorporate information about the
covariance structure of the data as well as the centers of the latent Gaussians.
Scikit-learn implements different classes to estimate Gaussian mixture models, that correspond
to different estimation strategies, detailed below.
1.5-Bayesian Learning
Bayesian learning treats model parameters as random variables - in Bayesian learning, parameter
estimation amounts to computing posterior distributions for these random variables based on the
observed data.
Bayesian learning typically involves generative models - one notable exception is Bayesian
linear regression, which is a discriminative model.
Bayesian models
We first have a prior distribution over our parameters (i.e. what are the likely
parameters?) P(θ)P(θ).
From this we compute a posterior distribution which combines both inference and learning:
P(y1,…,yn,θ|x1,…,xn)=P(x1,…,xn,y1,…,yn|θ)P(θ)P(x1,…,xn)P(y1,…,yn,θ|x1,…,xn)=P(x1,…,x
n,y1,…,yn|θ)P(θ)P(x1,…,xn)
Then prediction is to compute the conditional distribution of the new data point given our
observed data, which is the marginal of the latent variables and the parameters:
P(xn+1|x1,…,xn)=∫P(xn+1|θ)P(θ|x1,…,xn)dθP(xn+1|x1,…,xn)=∫P(xn+1|θ)P(θ|x1,…,xn)dθ
Classification then is to predict the distributions of the new datapoint given data from other
classes, then finding the class which maximizes it:
P(xn+1|xc1,…,xcn)=∫P(xn+1|θc)P(θc|xc1,…,xcn)dθcP(xn+1|x1c,…,xnc)=∫P(xn+1|θc)P(θc|x1c,
…,xnc)dθc
Hidden Markov Models
HMMs can be thought of as clustering over time; that is, each state is a "cluster".
The data points and latent variables are sequences, and πkπk becomes the transition probability
given the state (cluster) kk. θ∗kθk∗ becomes the emission distribution for xx given state kk.
Model-based clustering
zi|π∼Discrete(π)zi|π∼Discrete(π)
Where zizi is the cluster label for which data point ii belongs to. This is the latent variable we
want to discover.
ππ is the mixing proportions which is the vector of probabilities for each class kk, that is:
π=(πi,…,πK)|α∼Dirichlet(αK,…,αK)π=(πi,…,πK)|α∼Dirichlet(αK,…,αK)
We also model each data point xixi as being drawn from a source (cluster) like so, where FF is
however we are modeling the cluster (e.g. a Gaussian), parameterized by θ∗ziθzi∗, that is some
parameters for the zizi-labeled cluster:
xi|zi,θ∗k∼F(θ∗zi)xi|zi,θk∗∼F(θzi∗)
(Note that the star, as in θ∗θ∗, is used to denote the optimal solution for θθ.)
For this approach we have two priors over parameters of the model:
For the mixing proportions, we typically use a Dirichlet prior (above) because it has the
nice property of being a conjugate prior with multinomial distributions.
For each cluster kk we use some prior HH, that is θ∗k|H∼Hθk∗|H∼H.
Naive Bayes
The main assumption of Naive Bayes is that all features are independent effects of the label. This
is a really strong simplifying assumption but nevertheless in many cases Naive Bayes performs
well.
Naive Bayes is also statistically efficient which means that it doesn't need a whole lot of data to
learn what it needs to learn.
YYY→F1→F2…→FnY→F1Y→F2…Y→Fn
P(Y|F1,…,Fn)∝P(Y)∏iP(Fi|Y)P(Y|F1,…,Fn)∝P(Y)∏iP(Fi|Y)
P(Y,f1,…,fn)=P(y1,f1,…,fn)P(y2,f1,…,fn)⋮P(yk,f1,…,fn)=P(y1)∏iP(fi|y1)P(y2)∏iP(fi|y2)⋮P(yk)
∏iP(fi|yk)P(Y,f1,…,fn)=P(y1,f1,…,fn)P(y2,f1,…,fn)⋮P(yk,f1,…,fn)=P(y1)∏iP(fi|y1)P(y2)∏iP(f
i|y2)⋮P(yk)∏iP(fi|yk)
So the parameters of Naive Bayes are P(Y)P(Y) and P(Fi|Y)P(Fi|Y) for each feature.
π~MAPP(y|X)=argmaxπP(π|X)=argmaxπP(X|π)P(π)P(X)=argmaxπP(X|π)P(π)≈P(y|π~MAP)π~
MAP=argmaxπP(π|X)=argmaxπP(X|π)P(π)P(X)=argmaxπP(X|π)P(π)P(y|X)≈P(y|π~MAP)
So unlike MLE, MAP estimation uses Bayes' Rule so the estimate can use prior knowledge
(P(π)P(π)) about what we expect ππ to be.
θMAP=argmaxθp(θ|x)=argmaxθlogp(x|θ)+logp(θ)
CHAPTER-2
SYSTEM MODEL
In this section, we first present the massive MIMO system model and then discuss the
pilot contamination problem. The discussions will be useful for aligning the requirement of CS
techniques to address the pilot contamination problem.
hbK]T ∈ CK×N, where hbk ∈ CN×1 is the channel from UEk in cell b to the target BS.
The received signals during uplink training at the target BS is written as
where Z ∈ CT×N denotes the temporally and spatially white Gaussian noise with zero
mean and element-wise variance _. Also, in (1), we have defined S , [S1 · · · SB] ∈ CT×BK and
H , _ HH1 · · ·HHB _H ∈ CBK×N for conciseness
Fig. 1. (a) An example of the PAS following a Laplacian distribution (6) with ¯θ = 0◦ and σAS = 3◦. (b)
The corresponding channel magnitude of (a) in the beam domain with N = 256. (c) A pseudo-color plot of the
strength of H ∈ C320×256, where the PAS of B × K = 4 × 80 UEs follow the Laplacian distribution with σAS = 3◦
and ¯θ being the uniformly distributed random variable within [−90◦, 90◦). (d) A realization of ℜ{hn} at n = 140. (e)
Modeling the pdf of ℜ{hn} at n = 140. The parameters of the GM distribution follow L = 4, _n = [0.3157, 0.4546,
0.1126, 0.1171], and _ 2 n = [0.0001, 0.0013, 0.0322, 2.2708] while the Gaussian distribution has variance 0.1879.
In massive MIMO, the statistical knowledge of the channel matrix would be practically
unknown because the size of the channel matrix would mean that an unacceptably large number
of samples would be required. In this case, the standard way of estimating H is to employ the
least square (LS) approach. If orthogonal pilot sequences are adopted in the bth cell, i.e., SH b
Sb = IK, and the same pilot sequences are reused in all B cells, i.e., S1 = · · · = SB, the outputs
of the LS estimator at the targeted BS can be written as
From the perspective of the LS estimator, the assumption of using the same set of pilot
sequences makes no fundamental difference in terms of estimation performance compared with
using different pilots in different cells [1]. Clearly, in (2), the interfering channels will leak
directly to the desired channel estimate, which gives rise to “pilot contamination” [1, 4, 10].
The fundamental effect of pilot contamination can also be understood from other
perspective through linear estimation theory. First, we note that if the BK × N channel matrix H
can be estimated from the T × N measurement matrix Y with sufficient accuracy, then the pilot
contamination effect can be mitigated or eliminated. A straightforward requirement for an
accurate channel estimation is T ≥ BK; otherwise, unknown variables will outnumber
measurements and in this case accurate channel estimation is clearly impossible. Unfortunately,
the requirement for accurate channel estimation usually cannot be satisfied in the massive MIMO
system because most scenarios of our interests have T ≈ K and B > 1.2 The estimation of H from
the noisy underdetermined measurement has infinitely many solutions. For this reason, many
speculate that the pilot contamination problem will exist regardless of which channel estimation
method is used [1, 4]. Clearly, to get a correct solution, one must impose extra constraints in
choosing the solution. In the next section, we will reveal that such additional constraint do exist,
thanks to the propagation properties of the massive MIMO system.
We refer to hT bk as the beam domain channel representation of hT bk. The nth element of hT
bk corresponds to the channel response observed at the nth beam. The most crucial property of h
bk is that the elements of hT bk is approximately sparse, i.e., the channel vector contains only a
small fraction of large components, and the other components are close to zero.
The sparsity property stated above can be easily realized by the argument as follows:
Consider that the BSs are equipped with a uniform linear array (ULA) of half wavelength
spacing. With an infinite number of antennas at the BSs, the DFT matrix is proven to be the
eigenvector matrix of the BS correlation matrix Rbk [5]. We illustrate the argument by an
example. In this example, the covariance matrix is generated by
where a(θ) , [1, e−j_ sin _, . . . , e−j_(N−1) sin _]T is the ULA steering vector [34], p(θ)
denotes the power azimuth spread (PAS), and A = (−π/2, π/2] represents the angle-of-arrival
(AOA) region seen at the BS. Following the argument of [5, 20], there is a one-to-one mapping
between θ and n ∈ {0, 1, . . . ,N − 1} such that sin θ − (n/N) → 0 as N → ∞. Therefore, a(θ) can
be served as a DFT basis and p(θ) is the corresponding eigenvalue. Let Rbk = F_bkFH, where
_bk is the diagonal matrix whose diagonal elements are the corresponding eigenvalues
{p(n/N)}n=0,1,...,N−1. In typical outdoor propagations, the PAS can be modeled by a Laplacian
distribution[18,19,35]givenby
where ¯θ corresponds to the mean AOA of the UE channel and σAS denotes the azimuth spread
(AS). An example of p(θ) with ¯θ = 0◦ and σAS = 3◦ is illustrated in Figure 1(a). As we see from
the figure, most of the eigenvalues are (nearly) zero. Then we infer from (4) and Rbk = F_bkFH
that is sparse.
Though in a practical setting, the numbers of antennas at the BSs are finite but large, F
still can be an approximate eigenvector matrix of Rbk. Following Figure 1(a) but N = 256, the
corresponding channel magnitude in the beam domain |hT bk| is depicted in Figure 1(b). As is
expected, the channel vector is not perfectly sparse but approximately sparse. Specifically, over
99% of the channel total power is located only within about 16% of the beam indices. The
channel magnitude of the approximately sparse components highly depends on the number of
antennas. The larger the number of antennas the better a(θ) matching to the DFT basis.
Moreover, its sparsity property is related to the PAS of the channel model. Despite the fact that
Laplacian distribution is the most popular model for the PAS, there are other classes of
distributions which serve as better models under certain circumstances [19]. From many
experimental measurements of MIMO channels [18–21, 27, 36], it is believed that as the number
of antenna increases, the channel responses in the beam domain tend to be sparse due to the
limited number of local scatterers at the BS.
Taking the DFT of Y, we can therefore obtain the received signal in the beam domain given by
where Y , YF, H , HF, and Z , ZF. Because the DFT matrix is a unitary matrix, the
statistical property of Z is the same as that of Z. Thus, the difference between Y and Y is only at
the channel matrix. In contrast to H in Y, H in Y is approximately sparse. To gain an idea on H,
we generate B × K = 4 × 80 UEs whose PAS follow the Laplacian distribution (6) with σAS = 3◦
and ¯θ being the uniformly distributed random variable within [−90◦, 90◦). The corresponding
pseudo-color plot of the strength of H ∈ C320×256 is depicted in Figure 1(c). As expected, the
channel matrix observed in the beam domain H is approximately sparse. For ease of expression,
we use y n ∈ CT , sn ∈ CT , hn ∈ CBK, and zn ∈ CT to denote the nth column of Y, S, H, and
Z respectively. With the definitions, the received signal in the nth beam domain can read
We aim to estimate hn based on y n given the full knowledge of the pilot matrix S. Note that to
get S, we should acquire the pilot sequence of the desired links and those of the interference
links from the adjacent cells. In the underdetermined system of interest, the pilot sequences are
no longer orthogonal and thus are randomly generated. To proceed with the estimation process
for each n, we set the element-wise variance of zn as _n even though we may have _n = _, ∀ n.
Before proceeding, we find it useful to see a picture on hn. Note that the row index of H
corresponds to the UE index in the B cells and the column index of H corresponds to the beam
index observed at the BS. Thus, the nth column of H represents the channel responses of the
whole UEs observed at the nth beam. A realization of the real parts of hn at n = 140 is depicted
in Figure 1(d). As can be seen from the figure, the elements of hn = [hk,n] contain only a small
fraction of large components and the other components are close to zero. In addition, they seem
to be statistically independent.3 Another important observation is that the interference links
from adjacent cells also appear to have strong channels, which are the main sources of severe
pilot contamination.
. It is evident that the conventional LS estimator will not be able to address such
underdetermined system (9) so that the strong interfering channels will leak to the desired
channel estimate. However, taking advantage of the approximate sparsity of hn, we can use CS
to obtain a sufficiently accurate estimate of the channel responses from the underdetermined
system. CS can be thought of as a technique that can automatically focus on the estimate of the
stronger channel responses while treating very weak channel responses as noise. As such, the
Under determined system reduces to the determined system and the pilot contamination effect
can hence be mitigated.4
2.4-Bayesian Channel Estimation
where NC(hk,n; 0, σ2 n,l) denotes a Gaussian probability density function (pdf) with zero
mean and variance σ2 n,l, and ρn,l is the mixing probability of the lth GM component. The
parameter σ2 n,1 can be set to a very small value so that ρn,1 denotes the density of the
components close to zero. The remaining GM components {ρn,l, σ2 n,l}Ll =2 can be used to
model the small fraction of large components. The value of L reflects the number of different
variances in hn. We will discuss the setting of L in Section IV-B. Note that the true distributions
of hn could not be the GM distribution. However, our numerical results will demonstrate that the
choice of the GM distribution is perfectly fine. Finally, we assume that the BK-dimensional hn
contains independent and identically distributed (i.i.d.) components, so we have
For conciseness, we often omit _n from P(hn; _n), and the index n from ρn,l, σ2 n,l, _n,_n, _n.
As an example, Figure 1(e) shows the empirical pdf based on the channel responses in
Figure 1(d). Both the estimated GM and Gaussian distributions are provided. The parameters
{ρn,l, σ2 n,l}Ll =1 are obtained from a learning algorithm to be described later while the
variance of the Gaussian distribution is the sample variance. Clearly, the GM distribution
provides a significantly better fit than the Gaussian distribution. The Bayes-optimal way to
estimate hn that minimizes the MSE is given by [31]
Where,
denotes the marginal pdf of the kth variable under the posterior measure P(hn|y n ). From Bayes
theorem, the posterior distribution can be written as P(hn|y n ) = P(y n|hn)P(hn)/P(y n ), where
the conditional distribution of y n based on (9) reads P(y n|hn) = 1 (__n)T e− 1 _n ky n −Shnk2 .
There are two issues when implementing the optimal Bayes estimation (12). First, the optimal
Bayes estimation (12) is not computationally tractable. Second, the prior parameters _n are
unknown. To obtain an estimate of the marginal pdfs {Q(hk,n)}, we adopt the AMP algorithm in
[23–25] which is an iterative message passing algorithm. Meanwhile, we use the EM algorithm
in [26] to learn the prior parameters _n. We describe the two algorithms and their connections in
the remaining part of this subsection
(14)
We begin with the AMP algorithm. Suppose that the elements of hn follows the GM distribution
with prior parameters _n. Then the updating rules for estimating Q(hk,n) are given as (for the
derivation with these notations, see [24]):
AMP employs central limit theorem to approximate sum of many random variables as a
Gaussian. To get an intuition on the algorithm, we provide an interpretation on each step of (14)
while we refer the interested readers to [23–25] for detailed derivations. First of all, we view the
target estimate ˆh k,n as a Gaussian with mean at k,n and variance vt k,n at the tth iteration.
Therefore, if we temporarily ignore the second term of (14b), ωt+1 m,n can be understood as a
current mean estimate of the mth element of Shn, which has variance V t+1 m,n given by (14a).
Next, considering the conventional estimator by the matched filter, we get Shy n ≈ ˆh t n + SHn
− Sˆh t n), where the approximation follows from the fact that SHS ≈ I. Then (14d) can be read
as the kth element of
where noise above is Gaussian distributed with zero mean and variance of (_2 k,n)t+1 for its kth
element. Clearly, Rt+1 k,n in (14d) and (_2 k,n)t+1 in (14c) are the mean and variance of the
current estimate of hk,n without taking into account the prior information of hk,n. Finally, in
(14e)–(14f), we estimate the mean and the variance of ht+1 n from (15) by taking into account
the prior information of hk,n. Specifically, from (15), the posterior probability of hk,n after the
observation of Rt+1
k,n
Other popular solvers in the CS literature, e.g., the L1 solver and the OMP solver, appear
to be not so useful in the concerned channel estimation problem. Specifically, the L1 solver
solves the optimization problem: minhn khnk1, s.t. kyn − Shnk2 ≤ λL1. A larger λL1 would
result in more
sparsity in hn. However, the best choice of the regularization parameter λL1 highly depends on
the statistical properties of hn (e.g., the sparsity of hn) and the noise variance [38], which could
be difficult to determine in practice. On the other hand, the OMP solves the optimization
problem: minhn khnk0, s.t. kyn−Shnk2 ≤ λOMP. Similarly, the parameter λOMP highly depends
on the support number of hn and the noise variance, which also become difficult to determine
under a noisy setup. In contrast to the L1 and the OMP, Algorithm 2 does not require prior
statistical knowledge of the channel responses, which is learned as part of the estimation
procedure.
CHAPTER 3
Software Introduction:
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 non interactive 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 engines incorporate the LAPACK and BLAS libraries, embedding 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 add-on application-specific solutions called toolboxes.
Very important to most uses 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.
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, an editor and debugger, and browsers for viewing help, the
workspace, files, and the search path.
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 Eigen values, Bessel functions, and fast Fourier transforms.
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 large and complex application programs.
Graphics:
MATLAB has extensive facilities for displaying vectors and matrices as graphs, as well
as annotating and printing these graphs. It includes high-level functions for two-dimensional and
three-dimensional data visualization, image processing, animation, and presentation graphics. It
also includes low-level functions that allow you to fully customize the appearance of graphics as
well as to build complete graphical user interfaces on your MATLAB applications.
This is a library that allows you to write C and FORTRAN programs that interact with
MATLAB. It includes facilities for calling routines from MATLAB (dynamic linking), calling
MATLAB as a computational engine, and for reading and writing MAT-files.
Various toolboxes are there in MATLAB for computing recognition techniques, but we are
using IMAGE PROCESSING toolbox.
A file with extension .fig, called a FIG-file that contains a complete graphical description of
all the function’s GUI objects or elements and their spatial arrangement. A FIG-file contains
binary data that does not need to be parsed when he associated GUI-based M-function is
executed.
A file with extension .m, called a GUI M-file, which contains the code that controls the GUI
operation. This file includes functions that are called when the GUI is launched and exited,
and callback functions that are executed when a user interacts with GUI objects for example,
when a button is pushed.
guide filename
Where filename is the name of an existing FIG-file on the current path. If filename is
omitted,
GUI components can include menus, toolbars, push buttons, radio buttons, list boxes, and
sliders just to name a few. GUIs created using MATLAB tools can also perform any type of
computation, read and write data files, communicate with other GUIs, and display data as tables
or as plots.
If you are new to MATLAB, you should start by reading Manipulating Matrices. The most
important things to learn are how to enter matrices, how to use the: (colon) operator, and how to
invoke functions. After you master the basics, you should read the rest of the sections below and
run the demos.
At the heart of MATLAB is a new language you must learn before you can fully exploit its
power. You can learn the basics of MATLAB quickly, and mastery comes shortly after. You will
be rewarded with high productivity, high-creativity computing power that will change the way
you work.
3.4.3 Manipulating Matrices - introduces how to use MATLAB to generate matrices and perform
mathematical operations on matrices.
3.4.4 Graphics - introduces MATLAB graphic capabilities, including information about plotting
data, annotating graphs, and working with images.
3.4.5 Programming with MATLAB - describes how to use the MATLAB language to create
scripts and functions, and manipulate data structures, such as cell arrays and multidimensional
arrays.
3.5.1Introduction
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.
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.
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.
3.5.4 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.
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:
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.
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
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.
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.
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.
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.
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.
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.
3.6.2 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
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.
3.6.3 Operators
+ Addition
- Subtraction
* Multiplication
/ Division
^ Power
3.6.4 Functions
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...
Inf Infinity
NaN Not-a-number
3.7 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:
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.
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
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 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.
Selecting GUIDE Application Options - set both FIG-file and M-file options.
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.
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.
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.
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).
The following code illustrates how to program the callback in the GUIDE application M-file.
button_state = get(h,'Value');
if button_state == get(h,'Max')
% toggle button is pressed
end
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.
Radio buttons have two states - selected and not selected. You can query and set the state of a
radio button through its Value property:
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)
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.
off = [handles.radiobutton2,handles.radiobutton3,handles.radiobutton4];
mutual_exclude(off)
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):
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'))
else
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.
user_string = get(h,'string');
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)
end
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).
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
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.
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.
val = get(h,'Value');
switch val
case 1
case 2
% 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.
val = get(h,'Value');
string_list = get(h,'String');
selected_string = string_list{val}; % convert from cell array to string
% etc.
You can control whether a control responds to mouse button clicks by setting the Enable
property. Controls have three states:
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.
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.
CHAPTER-4
Experimental Results
CHAPTER-5
CONCLUSION
[1] T. L. Marzetta, “Noncooperative cellular wireless with unlimited numbers of base station
antennas,” IEEE Trans. Wireless Commun., vol. 9, no. 11, pp. 3590–3600, Nov. 2010.
[3] E. G. Larsson, F. Tufvesson, O. Edfors, and T. L. Marzetta, “Massive MIMO for next
generation wireless systems,” IEEE Commun. Mag., vol. 52, no. 2, pp. 186–195, Feb. 2014.
[4] H. Q. Ngo, E. G. Larsson, and T. L. Marzetta, “The multicell multiuser MIMO uplink with
very large antenna arrays and a finite-dimensional channel,” IEEE Trans. Wireless Commun.,
vol. 61, no. 6, pp. 2350–2361, Jun. 2013.
[5] A. Adhikary, J. Nam, J.-Y. Ahn, and G. Caire, “Joint spatial division and multiplexing: the
large-scale array regime,” IEEE Trans. Inf. Theory, vol. 59, no. 10, pp. 6441–6463, Oct. 2013.
[6] H. Q. Ngo, E. G. Larsson, and T. L. Marzetta, “Massive MU-MIMO downlink TDD systems
with linear precoding and downlink pilots,” in Allerton Conf. Communication, Control, and
Computing, Urbana- Champaign, Illinois, Oct. 2013, pp. 293–298.
[7] J. Choi, D. J. Love, and P. Bidigare, “Downlink training techniques for FDD massive MIMO
systems: open-loop and closed-loop training with memory,” IEEE J. Sel. Topics Sig. Process.,
vol. 8, no. 5, pp. 802–814, Oct. 2014.
[8] X. Rao and V. K. N. Lau, “Distributed compressive CSIT estimation and feedback for FDD
multi-user massive MIMO systems,” IEEE Trans. Sig. Process., vol. 62, no. 12, pp. 3261–3271,
Jun. 2014.
[9] Y. Shi, J. Zhang, and K. B. Letaief, “CSI overhead reduction with stochastic beamforming
for cloud radio access networks,” in Proc. IEEE Int. Conf. Communications (ICC), Sydney,
Australia, Jun. 2014, pp. 5154–5159.
[10] H. Yin, D. Gesbert, M. Filippou, and Y. Liu, “A coordinated approach to channel estimation
in large-scale multiple-antenna systems,” IEEE J. Sel. Areas Commun., vol. 31, no. 2, pp. 264–
273, Feb. 2013.
[11] H. Q. Ngo and E. G. Larsson, “EVD-based channel estimations for multicell multiuser
MIMO with very large antenna arrays,” in Proc. IEEE Int. Conf. Acoustics, Speed and Signal
Processing (ICASSP), Kyoto, Japan, Mar. 2012, pp. 3249–3252.
[14] S. Nguyen and A. Ghrayeb, “Compressive sensing-based channel estimation for massive
multiuser MIMO systems,” in Proc. IEEE Wireless Communications and Networking Conf.
(WCNC 2013), Shanghai, China, Apr. 2013, pp. 2890–2895.
[15] ——, “Precoding for multicell MIMO systems with compressive rankq channel
approximation,” in Proc. IEEE Personal, Indoor and Mobile Radio Communications,
(PIMRC’03), London, United Kingdom, Sep. 2013, pp. 1227–1232.
[16] O. Ledoit and M. Wolf, “A well conditioned estimator for largedimensional covariance
matrices,” Journal of Multivariate Analysis, vol. 88, pp. 365–411, 2004.
[17] ——, “Spectrum estimation: A unified framework for covariance matrix estimation and
PCA in large dimensions,” 2013. [Online]. Available: http://dx.doi.org/10.2139/ssrn.2198287
[18] L. M. Correia, Wireless Flexible Personalized Communications. Wiley, 1st ed., 2001.
[19] S. Saunders and A. Arag´on-Zavala, Antennas and propagation for wireless communication
systems. John Wiley & Sons, 2007.
[20] Y. Zhou, M. Herdin, A. M. Sayeed, and E. Bonek, “Experimental study of MIMO channel
statistics and capacity via the virtual channel representation,” Univ. Wisconsin-Madison,
Madison, Tech. Rep., Feb. 2007
[21] S. Payami and F. Tufvesson, “Channel measurements and analysis for very large array
systems at 2.6 Ghz,” in Proc. 6th European Conf. Antennas and Propagation (EuCAP’12),
Prague, Czech Republic, Mar. 2012, pp. 433–437.
[22] X. Gao, F. Tufvesson, and O. Edfors, “Massive MIMO channels - measurements and
models,” in The 47th Annual Asilomar Conf. Signals, Systems, and Computers, Pacific Grove,
California, U.S.A., 2013.
[23] D. L. Donoho, A. Maleki, and A. Montanari, “Message passing algorithms for compressed
sensing,” Proc. Nat. Acad. Sci., vol. 106, no. 45, pp. 18 914–18 919, 2009.
[25] S. Rangan, “Generalized approximate message passing for estimation with random linear
mixing,” in Proc. IEEE Int. Symp. Information Theory (ISIT), Saint Petersburg, Russia, Aug.
2011, pp. 2168–2172.
[26] J. P. Vila and P. Schniter, “Expectation-maximization Gaussian-mixture approximate
message passing,” IEEE Trans. Sig. Process., vol. 61, no. 19, pp. 4658–4672, Oct. 2013.
[27] W. U. Bajwa, J. Haupt, A. M. Sayeed, and R. Nowak, “Compressed channel sensing: A new
approach to estimating sparse multipath channels,” Proc. IEEE, vol. 98, no. 6, pp. 1058–1076,
Jun. 2010.
[28] P. H. Kuo, H. T. Kung, and P. Ting, “Compressive sensing based channel feedback
protocols for spatially-correlated massive antenna arrays,” in Proc. IEEE Wireless
Communications and Networking Conf. (WCNC 2012), Paris, France, Apr. 2012.
[29] R. Tibshirani, “Regression shrinkage and selection via the lasso,” J. Royal. Statist. Soc., Ser.
B, vol. 58, no. 1, pp. 267–288, 1996.
[30] Y. C. Pati, R. Rezaiifar, and P. S. Krishnaprasad, “Orthogonal matching pursuit: Recursive
function approximation with applications to wavelet decomposition,” in Proc. 27th Annu.
Asilomar Conf. Signals, Systems, and Computers, 1993, pp. 40–44.
[31] H. V. Poor, An Introduction to Signal Detection and Estimation. New York: Springer-
Verlag, 1994.
[33] D. Shiu, G. J. Foschini, M. J. Gans, and J. M. Kahn, “Fading correlation and its effect on the
capacity of multi-element antenna systems,” IEEE Trans. Commun., vol. 48, no. 3, pp. 502–513,
Mar. 2000.
[34] J. Liberti and T. S. Rappaport, Smart Antennas for Wireless Communications: IS-95 and
Third Generation CDMA Applications. Prentice Hall, 1999.
[37] S. Ji, Y. Xue, and L. Carin, “Bayesian compressive sensing,” IEEE Trans. Sig. Process.,
vol. 56, no. 6, pp. 2346–2356, Jun. 2008.
[38] R. Niazadeh, M. Babaie-Zadeh, and C. Jutten, “An alternating minimization method for
sparse channel estimation,” in Proc. 9th Int. Conf. Latent Variable Analyis and Signal
Separation, 2010, pp. 319–327.
[39] M. Bayati and A. Montanari, “The dynamics of message passing on dense graphs, with
applications to compressed sensing,,” IEEE Trans. Inf. Theory, vol. 57, no. 2, pp. 764–785, Feb.
2011.