V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION...

60
V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS a thesis submitted to the department of electrical and electronics engineering and the institute of engineering and science of bilkent university in partial fulfillment of the requirements for the degree of master of science By Yavuz Yapıcı 2005, January

Transcript of V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION...

Page 1: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

V-BLAST/MAP: A NEW SYMBOLDETECTION ALGORITHM FOR MIMO

CHANNELS

a thesis

submitted to the department of electrical and

electronics engineering

and the institute of engineering and science

of bilkent university

in partial fulfillment of the requirements

for the degree of

master of science

By

Yavuz Yapıcı

2005, January

Page 2: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

I certify that I have read this thesis and that in my opinion it is fully adequate,

in scope and in quality, as a thesis for the degree of Master of Science.

Prof. Dr. Erdal Arıkan (Advisor)

I certify that I have read this thesis and that in my opinion it is fully adequate,

in scope and in quality, as a thesis for the degree of Master of Science.

Assoc. Prof. Dr. Tolga Duman

I certify that I have read this thesis and that in my opinion it is fully adequate,

in scope and in quality, as a thesis for the degree of Master of Science.

Assist. Prof. Dr. Defne Aktas

Approved for the Institute of Engineering and Science:

Prof. Dr. Mehmet BarayDirector of the Institute

ii

Page 3: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

ABSTRACT

V-BLAST/MAP: A NEW SYMBOL DETECTIONALGORITHM FOR MIMO CHANNELS

Yavuz Yapıcı

M.S. in Electrical and Electronics Engineering

Supervisor: Prof. Dr. Erdal Arıkan

2005, January

In this thesis, we introduce a new symbol detection algorithm for MIMO chan-

nels. This algorithm is an extension of the well-known V-BLAST algorithm. The

new algorithm, V-BLAST/MAP, combines elements of the V-BLAST algorithm

and the maximum a-posteriori (MAP) rule.

The original V-BLAST algorithm is a multi-layer symbol detection scheme

which detects symbols transmitted at different transmit antennas successively

in a certain data-independent order. The proposed V-BLAST/MAP algorithm

differs from V-BLAST only in the ordering strategy of the symbols detected.

The complexity of the V-BLAST/MAP is higher than that of V-BLAST; how-

ever, the performance improvement is also significant. Simulations show that

V-BLAST/MAP achieves symbol error rates close to the optimal maximum like-

lihood (ML) scheme while retaining the low-complexity nature of the V-BLAST.

Keywords: MIMO, ML, V-BLAST, MAP .

iii

Page 4: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

OZET

V-BLAST/MAP: MIMO KANALLARI ICIN YENI BIRSEMBOL ALGILAMA ALGORITMASI

Yavuz Yapıcı

Elektronik Muhendisligi, Yuksek Lisans

Tez Yoneticisi: Prof. Dr. Erdal Arıkan

2005, Ocak

Bu tezde, MIMO kanalları icin yeni bir sembol algılama algoritması

tanıtılacaktır. Aslında bu algoritma, cok iyi bilinen V-BLAST algoritmasına bir

ilavedir. V-BLAST/MAP ismi verilen yeni algoritma, V-BLAST algoritması ve

maksimum a-posteriori (MAP) kuralının ogelerini birlestirmektedir.

Orjinal V-BLAST algoritması, cok katmanlı bir sembol algılama algorit-

ması olup birbirinden farklı iletici antenlerden iletilen sembolleri veriye dayan-

mayan belli bir sıralamayla algılamaktadır. Sunulan V-BLAST/MAP algorit-

ması, V-BLAST’tan yalnızca sembollerin algılama sırasıyla farklılasmaktadır.

V-BLAST/MAP algoritmasının kompleksitesi, V-BLAST’ınkinden daha yuksektir;

fakat, performans iyilesmesi de kayda degerdir. Simulasyonlar, V-BLAST/MAP’in

sembol hata oranlarının optimal calısan maksimum sanslılık (ML) kuralının

sonuclarına yakın oldugunu, bununla birlikte V-BLAST algoritmasının dusuk

kompleksi-tedeki dogasının da korundugunu gostermektedir.

Anahtar sozcukler : MIMO, ML, V-BLAST, MAP.

iv

Page 5: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

Acknowledgement

I would like to express my thanks to my supervisor Prof.Dr. Erdal Arıkan

for his invaluable advice and comments, especially in revising my writing. His

guidance allowed me to complete this work. I am deeply grateful to Dr. Tolga

Duman and Dr. Defne Aktas for accepting to be on my thesis committee and

providing useful advice. I appreciate other faculty members, staffs and colleagues.

Finally, I thank my parents for their supports and endless love through my life.

v

Page 6: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

Contents

1 Introduction 1

1.1 The MIMO Channel Model . . . . . . . . . . . . . . . . . . . . . 2

1.2 The Symbol Detection Problem . . . . . . . . . . . . . . . . . . . 3

1.3 Some Detection Algorithms . . . . . . . . . . . . . . . . . . . . . 5

1.4 Thesis Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.5 Thesis Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Previous MIMO Detection Algorithms 8

2.1 Linear Receivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.1.1 ZF Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1.2 LLSE Receiver . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2 V-BLAST Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.1 V-BLAST/ZF Detection Algorithm . . . . . . . . . . . . . 14

3 V-BLAST/MAP Detection Algorithm 23

3.1 V-BLAST/ZF/MAP Detection Algorithm . . . . . . . . . . . . . 23

vi

Page 7: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CONTENTS vii

3.2 V-BLAST/LLSE/MAP Detection Algorithm . . . . . . . . . . . . 29

3.3 Discussion of Simulation Results . . . . . . . . . . . . . . . . . . . 33

A 37

A.1 Singular Value Decomposition and Moore-Penrose Pseudoinverse . 37

B Code 38

Page 8: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

Glossary of Terms

M: Number of transmitter antennas

N: Number of receiver antennas

a: Sent symbol vector

r: Received symbol vector

H: Channel transfer matrix

v: Noise vector

N0: Noise power

CN (µ, σ2): Complex Gaussian distribution with mean µ and variance σ2

CSI: Channel State Information

Pe: Probability of decision error

SER: Symbol Error Rate

A: Modulation alphabet

ρ/M : Average energy of a constellation point

ρ: Average received energy for each symbol

Eb: Average bit energy

SNR: Signal to interference ratio

W: Weighting matrix

H+: Moore-Penrose pseudo-inverse of H

Q(·): Quantizer

H†: Hermitian transpose of H

pij: Reliability probability of j’th subchannel at the i’th layer

viii

Page 9: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

List of Figures

1.1 Multiple Input Multiple Output (MIMO) channel model. TX and

RX stand for transmitter and receiver antennas, respectively. . . . 2

1.2 Modulation, transmission and decision in MIMO wireless systems. 3

1.3 Symbol error rates (SER) of V-BLAST/ZF/MAP receiver,

V-BLAST/ZF receiver and ML receiver. The simulation is for

(M,N)=(4,12) and 4-QAM modulation. . . . . . . . . . . . . . . . 7

2.1 Symbol Error Rates (SER) of ZF receiver, LLSE receiver, V-

BLAST/ZF receiver and V-BLAST/LLSE receiver. Simulations

are for (M,N)=(8,12) and QAM-16 modulation. . . . . . . . . . . 11

3.1 Symbol error rates (SER) of V-BLAST/ZF/MAP receiver, V-

BLAST/LLSE/MAP receiver, V-BLAST/ZF receiver and V-

BLAST/LLSE receivers. Simulations are for (M,N)= (8,12) and

QAM-16 modulation. . . . . . . . . . . . . . . . . . . . . . . . . . 29

ix

Page 10: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

Chapter 1

Introduction

Recent research on wireless communication systems has shown that using mul-

tiple antennas at both transmitter and receiver offers the possibility of wireless

communication at higher data rates compared to single antenna systems. The

information-theoretic capacity of these multiple-input multiple-output (MIMO)

channels was shown to grow linearly with the smaller of the numbers of transmit

and receiver antennas in rich scattering environments, and at sufficiently high

signal-to-noise (SNR) ratios [1].

Some special detection algorithms have been proposed in order to exploit the

high spectral capacity offered by MIMO channels. One of them is the V-BLAST

(Vertical Bell-Labs Layered Space-Time) algorithm which uses a layered struc-

ture [2]. This algorithm offers highly better error performance than conventional

linear receivers and still has low complexity. In this thesis, we offer a new sym-

bol detection algorithm called V-BLAST/MAP that has a layered structure as

V-BLAST, but uses a modified detecting algorithm that yields a better error

performance than V-BLAST at slightly higher complexity.

In this chapter, we state the MIMO channel model that will be used through-

out this thesis, state the MIMO symbol detection problem, present some brief

description of previous detection algorithms and briefly compare their error per-

formance with that of V-BLAST/MAP. These topics are considered in detail in

1

Page 11: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 1. INTRODUCTION 2

the following chapters.

1.1 The MIMO Channel Model

Throughout this thesis, we use the MIMO channel model depicted in Fig. 1.1

with M transmitter and N receiver antennas.

TX 1

TX 2

TX M

RX 1

RX 2

RX N

Rich Scattering Environment

MIMO Channel

a 1

a 2

a M

r 1

r 2

r N

Figure 1.1: Multiple Input Multiple Output (MIMO) channel model. TX andRX stand for transmitter and receiver antennas, respectively.

In each use of the MIMO channel, a vector a = ( a1, a2, . . . , aM)T of com-

plex numbers is sent and a vector r = ( r1, r2, . . . , rN)T of complex numbers is

received. We assume an input-output relationship of the form

r = Ha + v (1.1)

where H is a N ×M matrix representing the scattering effects of the channel and

v = ( v1, v2, . . . , vN)T is the noise vector. Throughout, we assume that H is a

random matrix with independent complex Gaussian elements {hij} with mean 0

and unit variance, denoted hij ∼ CN (0, 1). We also assume throughout that v

is a complex Gaussian random vector with i.i.d. elements vi ∼ CN (0, N0). It is

assumed that H and v are independent of each other and of the data vector a.

Page 12: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 1. INTRODUCTION 3

We will assume that the receiver has perfect knowledge of the channel realization

H, while the transmitter has no such channel state information (CSI). Receiver’s

possession of CSI is justified in cases where the channel is a relatively slowly

time-varying random process; see [3] for a discussion of this point.

1.2 The Symbol Detection Problem

The symbol detection problem considered in this thesis is the problem of estimat-

ing the MIMO channel input vector a given the received vector r assuming that

the receiver has perfect knowledge of H. This decision is made on a symbol by

symbol basis without taking into account any statistical dependencies that may

be present in the sequence of vectors a. In other words, we exclude coding across

the time dimension and consider only the modulation-demodulation problem as

depicted in Fig. 1.2. The goal is to minimize the probability of decision error

Pe = Pr{ a 6= a } (1.2)

where a = ( a1, a2, . . . , aM)T is the demodulator’s estimate of a.

a Modulator MIMO Channel Demodulator

r â

Figure 1.2: Modulation, transmission and decision in MIMO wireless systems.

We study the above detection problem under the additional assumptions on

the input vector a that:

(i) Each element of a belongs to a common modulation alphabet A,

ai εA, i = 1, ... , M , a εAM . Typically, A will be a QAM alphabet such as

A = {±A± j A} as in the case of 4-QAM.

(ii) We will assume that symbols in A have equal a priori probabilities.

Page 13: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 1. INTRODUCTION 4

(iii) The vector a is a random vector over AM such that

E{aa†} =ρ

MIM (1.3)

where ρ is a constant, IM is the identity matrix of size M, E{.} is the expectation

operator and a† denotes Hermitian transpose of a. Assumption (1.3) implies that

the elements of a are uncorrelated and each has energy

E{ | ai |2 } = ρ/M (1.4)

yielding a total average transmitted energy of ρ per symbol, combined over all

antennas.

The parameter ρ also has the significance of being the average received energy

per symbol Es at each receiver antenna, as can be seen by computing the energy

at receiver antenna i :

Es = E{∣∣∣

∑j

hij aj

∣∣∣2}

= E{∑

j

k

hij h∗ik aj a∗k}

=∑

j

k

E(hij h∗ik

)E(aj a∗k

)

=∑

j

E(| aj|2)

= ρ (1.5)

Using above equation, the average received energy per bit at each receiver an-

tenna may be computed as

Eb =Es

log2 |A|(1.6)

and receiver signal-to-noise ratio (SNR) is defined as

SNR =Eb

N0

=ρ/ log2 |A|

N0

(1.7)

Page 14: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 1. INTRODUCTION 5

While designing a receiver structure for this MIMO system, two main con-

siderations that should be taken into account are the error performance and the

implementation complexity. The aim of this thesis is to design a receiver structure

that is powerful in terms of error performance and is practical to implement.

1.3 Some Detection Algorithms

For the signal detection problem defined in the previous section, one decision rule

is the maximum a posteriori probability (MAP) rule defined as

a = arg maxa′ εAM

{Pr

(a′ | r is received

)}(1.8)

It is well-known that the MAP rule minimizes the probability of error Pe (see,

e.g., [4, p. 324]).

Another decision rule is the maximum likelihood (ML) rule defined as

Set a = a′ εAM for some a′ so that

f(r | a′ )≥ f

(r | a′′ ) for all a′′ εAM . (1.9)

where

f(r∣∣ a )

=1

(2π)NNN0

exp{− 1

N0

∥∥Ha− r∥∥2}

(1.10)

since v ∼ CN (0, N0IN). Thus, the ML rule here reduces to

a = arg mina′ εAM

{∥∥Ha− r∥∥2}

(1.11)

In fact, ML rule is equivalent to MAP rule if all the source symbols are equally

likely to be transmitted a-priori.

Although MAP rule offers optimal error performance, it suffers from com-

plexity issues. It has exponential complexity in the sense that the receiver has

to consider |A|M possible symbols for an M transmitter antenna system. For

example, if 64-QAM is used with 4 transmit antennas, then a straightforward

Page 15: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 1. INTRODUCTION 6

implementation of the MAP detector needs to search over 644 = 16, 777, 216

symbols. Similar complexity problems apply to ML detectors. Note that the

difficulty of detection is caused by entanglement of the elements of a through

multiplication by H.

In order to solve the detection problem in MIMO systems, research has focused

on sub-optimal receiver models which are powerful in terms of error performance

and are practical for implementation purposes, as well. One such receiver is

the V-BLAST (Vertical Bell-Labs Layered Space-Time) receiver which utilizes a

layered architecture and applies successive cancellation by splitting the channel

vertically [5]. This algorithm will be described in detail in Chapter 2.

1.4 Thesis Contribution

In this thesis, we propose a new symbol detection algorithm for MIMO sys-

tems which combines features of MAP and V-BLAST rules. We call this al-

gorithm V-BLAST/MAP. This new algorithm offers better error performance

than V-BLAST at the expense of increased but still practical level of complex-

ity. V-BLAST/MAP has a layered structure as V-BLAST, but also incorporates

features of the MAP rule.

Fig. 1.3 depicts the error performance of V-BLAST/ZF/MAP versus those

of V-BLAST/ZF and ML for the case of (M,N)=(4,12) and 4-QAM modulation

with alphabet {±A± jA}. The vertical axis is symbol error rate (SER) which

equals Pe as defined in (1.2). The horizontal axis is marked by the SNR or Eb/N0

as defined in (1.7).

1.5 Thesis Outline

The remainder of this thesis organized as follows. A brief review of previous

detection algorithms for MIMO channels are presented in Chapter 2. The new

Page 16: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 1. INTRODUCTION 7

−12 −10 −8 −6 −4 −2 010

−4

10−3

10−2

10−1

100

Eb/No (dB)

SE

RMLV−BLAST/ZF/MAPV−BLAST/ZF

Figure 1.3: Symbol error rates (SER) of V-BLAST/ZF/MAP receiver,V-BLAST/ZF receiver and ML receiver. The simulation is for (M,N)=(4,12)and 4-QAM modulation.

symbol detection algorithm called V-BLAST/MAP is studied in detail in Chap-

ter 3. Some concluding remarks are made also in Chapter 3.

Page 17: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

Chapter 2

Previous Detection Algorithms

for MIMO Channels

Throughout this chapter, we use the MIMO channel model and the notation of

Chapter 1 with the assumptions (i)-(iii) of Section 1.2 on the channel input.

As pointed out in Section 1.3, the decision rule that minimizes the probabil-

ity of symbol error Pe, which is defined in Eqn. (1.2), is the ML rule given by

Eqn. (1.11). However, since the ML rule requires searching over |A|M symbols,

it is not practical when this number is large. In this chapter, we review a num-

ber of suboptimal symbol detection rules that have been proposed as practical

alternatives to the ML rule.

2.1 Linear Receivers

Linear receivers are the class of receivers for which the symbol estimate a is given

by a transformation of the received vector r of the form

a = Q(Wr) (2.1)

where W is a matrix that may depend on H and Q is a quantizer (also called

slicer) that maps its argument to the nearest signal point in AM (using Euclidian

8

Page 18: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 2. PREVIOUS MIMO DETECTION ALGORITHMS 9

distance). Our review of linear receivers follows the presentation of [6].

2.1.1 Zero-Forcing (ZF) Receiver

Zero-Forcing (ZF)receiver is a low-complexity linear detection algorithm that

outputs

a = Q(aZF ) (2.2)

where

aZF = H+r (2.3)

and H+ denotes the Moore-Penrose pseudoinverse [7] of H, which is a generalized

inverse that exists even when H is rank-deficient (See Appendix A.1).

Example 1:

Consider a MIMO channel with (M,N)=(3,4) with 16-QAM constellation

A = {±1± j,±1± j3,±3± j,±3± j3} and noise variance N0 =2.5 with re-

sulting Eb/N0 = 1. Suppose the realization of channel transfer matrix is

H =

−0.7i 0.3− 0.3i −0.5− 0.4i

0.8− 0.6i 0.7− 1.1i −0.8− 1.1i

−0.8 0.2 + 0.3i 0.2i

−0.1− 0.2i 1.2− 0.3i −1.7− 0.6i

and that we send a =(1 + i, −1− i, 1 + 3i

)T, and that the channel adds the

noise vector v =(0.6 + 0.4i, 0.4− 0.1i, 0.7 + 0.5i, 0.2− 0.2i

)T. Then the received

vector r is

r = Ha + v =

1.5− 2.2i

2.4− 2.8i

−0.4− 0.6i

−1.1− 7i

The pseudo-inverse H+ is computed as

Page 19: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 2. PREVIOUS MIMO DETECTION ALGORITHMS 10

H+ =

−0.2 + 0.7i −0.2 + 0.1i −0.8 + 0.4i 0.2− 0.2i

0.5 + 0.2i 0.7i 0.5 + 0.3i 0.2− 0.5i

0.4− 0.1i 0.3 + 0.4i 0.5 + 0.0i −0.7− 0.2i

and the matrix H+H is

H+H =

1 0 0

0 1 0

0 0 1

Using Eqn. (2.3), the ZF estimator output aZF is computed as

aZF = H+r =

−0.2 + 1.1i

−0.6− 0.1i

1.6 + 3.6i

When we slice aZF to the nearest 16-QAM symbol, we get the following deci-

sion vector

a =

−1 + i

−1− i

1 + 3i

which turns out not to be a correct estimate of a.

The ZF receiver eliminates co-channel interference entirely in the above ex-

ample since H+H = I. On the other hand, ZF receivers are known to have the

drawback of enhancing noise power [6]. Indeed, this may be seen in the above

example as follows. The signal-to-noise ratio at the ZF estimator input is

SNRZF, in =

∥∥Ha∥∥2

∥∥v∥∥2 = 5.03

while the SNR at the ZF estimator output is

SNRZF, out =

∥∥H+Ha∥∥2

∥∥H+v∥∥2 =

∥∥a∥∥2

∥∥H+v∥∥2 = 4.41

We see that there is a deterioration of the SNR attributable to noise enhance-

ment, as seen from the ratio

SNRZF, out

SNRZF, in

= 0.88 < 1.

Page 20: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 2. PREVIOUS MIMO DETECTION ALGORITHMS 11

For a more realistic performance estimation of the ZF receiver, we show in

Fig. 2.1 the simulation results for a (M,N)= (8,12) system with 16-QAM modula-

tion. The Eb/N0, defined by Eqn. (1.7), ranges between -10 dB and 0 dB in steps

of 1 dB. The symbol error rate SER is calculated by performing 10,000 trials at

each Eb/N0 point. A new realization of H was chosen in each trial and for each

Eb/N0 value.

−10 −8 −6 −4 −2 0 2 410

−3

10−2

10−1

100

Eb/No (dB)

SE

R

V−BLAST/ZFV−BLAST/LLSEZFLLSE

Figure 2.1: Symbol Error Rates (SER) of ZF receiver, LLSE receiver,V-BLAST/ZF receiver and V-BLAST/LLSE receiver. Simulations are for(M,N)=(8,12) and QAM-16 modulation.

Page 21: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 2. PREVIOUS MIMO DETECTION ALGORITHMS 12

2.1.2 Linear Least Squares Estimation (LLSE) Receiver

The LLSE receiver is a receiver that outputs the estimate

a = Q(aLLSE

)(2.4)

where aLLSE is a linear estimator given by

aLLSE = Wr (2.5)

where W is chosen to minimize

E{∥∥Wr− a∥∥2}

.

For the model here, where H and v are Gaussian, the LLSE estimator matrix

is given by [6]

W =ρ

MH†(

ρ

MHH† + N0IN )−1 (2.6)

Example 2

Assume that we use the same channel of Example 1 with the same H, a, v

and N0 values. Here, ρ/M = 10 and the LLSE matrix is given by

W =

−0.2 + 0.5i −0.1 + 0.1i −0.6 + 0.3i 0.1− 0.2i

0.3 + 0.1i 0.0 + 0.6i 0.4 + 0.2i 0.2− 0.4i

0.2− 0.1i 0.2 + 0.3i 3 + 0.0i −0.5− 0.1i

Using Eqn. (2.5), estimator output aLLSE is computed to be

aLLSE = Wr =

0.1 + 1.1i

−0.4− 0.4i

1.4 + 3.2i

Therefore, the decision vector of LLSE estimator is

a =

1.0 + 1.0i

−1.0− 1.0i

1.0 + 3.0i

Page 22: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 2. PREVIOUS MIMO DETECTION ALGORITHMS 13

which is a correct estimate of a.

The LLSE estimator does not eliminate the co-channel interference entirely

since

WH =

0.6 −0.2i 0.1− 0.1i

0.2i 0.6 −0.1− 0.2i

0.1 + 0.1i −0.1 + 0.2i 0.7

does not equal the identity matrix, unlike the case for the ZF estimator. On

the other hand, the LLSE estimator has the desirable property of not enhancing

noise as much as the ZF estimator. This may be seen in the above example by

calculating the SNR’s at the input and output of the LLSE estimator:

SNRLLSE, in =

∥∥Ha∥∥2

∥∥v∥∥2 = 5.03

SNRZF, out =

∥∥WHa∥∥2

∥∥Wv∥∥2 = 27.56

The ratio of the SNR’s is now given by

SNRLLSE, out

SNRLLSE, in

= 5.48

which is better than the corresponding quantity for the ZF estimator.

For a more realistic performance estimation of the LLSE receiver, we show in

Fig. 2.1 the simulation results for a (M,N)= (8,12) system with 16-QAM modula-

tion. The Eb/N0, defined by Eqn. (1.7), ranges between -10 dB and 0 dB in steps

of 1 dB. The symbol error rate SER is calculated by performing 10,000 trials at

each Eb/N0 point. A new realization of H was chosen in each trial and for each

Eb/N0 value. We observe that LLSE performs slightly better than ZF for this

example.

Page 23: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 2. PREVIOUS MIMO DETECTION ALGORITHMS 14

2.2 V-BLAST Receiver

The V-BLAST detection algorithm [8] is a recursive procedure that exctracts

the components of the transmitted vector a according to a certain ordering

(k1, k2, ..., kM) of the indices of the elements of a. Thus, (k1, k2, ..., kM) is a per-

mutation of (1, 2, ...,M). In V-BLAST, this permutation depends on H (which

is known at the receiver by assumption) but not on the received vector r.

2.2.1 V-BLAST/ZF Detection Algorithm

The V-BLAST/ZF algorithm is a variant of V-BLAST derived from ZF rule.

V-BLAST/ZF Detection Algorithm [5]

Initialization :

W1 = H+ (2.7a)

i = 1 (2.7b)

Recursion :

ki = arg minj /∈{k1...ki−1}

‖(Wi)j‖2 (2.7c)

yki= (Wi)ki

ri (2.7d)

a ki= Q(yki

) (2.7e)

ri+1 = ri − aki(H)ki

(2.7f)

W i+1 = H+ki

(2.7g)

i = i + 1 (2.7h)

where H+ denotes the Moore-Penrose pseudoinverse [7] of H, (Wi)j is the j ’th

row of Wi, Q(·) is a quantizer to the nearest constellation point, (H)kidenotes

the ki’th column of H, Hkidenotes the matrix obtained by zeroing the columns

k1, k2, ..., ki of H, and H+

kidenotes the pseudo-inverse of Hki

.

Page 24: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 2. PREVIOUS MIMO DETECTION ALGORITHMS 15

In the above algorithm, Eqn. (2.7c) determines the order of channels to

be detected; Eqn. (2.7d) performs nulling and computes the decision statistic;

Eqn. (2.7e) slices computed decision statistic and yields the decision; Eqn. (2.7f)

performs cancellation by decision feedback, and Eqn. (2.7g) computes the new

pseudo-inverse for the next iteration.

V-BLAST/ZF may be seen as a successive-cancellation scheme derived from

the ZF scheme discussed in Section 2.1.1. The ZF rule creates a set of sub-

channels by forming aZF = (H+H)a + H+v, as in Eqn. 2.3. The j’th such

sub-channel has noise variance∥∥(H+)j

∥∥2N0. The order selection rule prioritizes

the sub-channel with the smallest noise variance.

Example 3 :

In this part, we demonstrate the simulation of V-BLAST/ZF algorithm nu-

merically. We again use the same channel of Example 1 with the same H, a and

v values. After initialization, we have the pseudoinverse matrix

W1 = H+ =

−0.2 + 0.7i −0.2 + 0.1i −0.8 + 0.4i 0.2− 0.2i

0.5 + 0.2i 0.0 + 0.7i 0.5 + 0.3i 0.2− 0.5i

0.4− 0.1i 0.3 + 0.4i 0.5 + 0.0i −0.7− 0.2i

Since there are 3 components of a, V-BLAST/ZF algorithm completes the

decision process after 3 iterations as follows:

Step 1 : In the first layer, k1 is computed to be 3 since

‖(W1)1‖2 = 1.43

‖(W2)1‖2 = 1.36

‖(W3)1‖2 = 1.12

Therefore, algorithm chooses 3rd sub-channel to process in this step, and the first

component of estimate is calculated according to Eqn. (2.7d) as

Page 25: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 2. PREVIOUS MIMO DETECTION ALGORITHMS 16

yk1 =[0.4− 0.1i 0.3 + 0.4i 0.5 −0.7− 0.2i

]

1.5− 2.2i

2.4− 2.8i

−0.4− 0.6i

−1.1− 7.0i

= 1.6 + 3.6i

When this estimate is sliced by Eqn. (2.7e), we get the decision for the first com-

ponent of the transmitted vector as

ak1 = 1.0 + 3.0i

After symbol cancellation described in Eqn. (2.7f), we get the following modified

received vector

r2 = r1 − ak1(H)k1 =

0.8− 0.3i

0.6i

−0.8i

−1.2− 1.3i

Here, the matrix Hk1equals

Hk1=

−0.7i 0.3− 0.3i 0

0.8− 0.6i 0.7− 1.1i 0

−0.8 0.2 + 0.3i 0

−0.1− 0.2i 1.2− 0.3i 0

The new pseudoinverse W2 for next iteration is computed to be

W2 =

−0.1 + 0.4i 0.3 + 0.1i −0.5 + 0.1i −0.3 + 0.1i

0.1 0.1 + 0.3i 0.2− 0.1i 0.4 + 0.1i

0 0 0 0

Step 2 : In the second layer, algorithm chooses the 2nd sub-channel to process,

since

‖(W1)1‖2 = 0.55

‖(W2)1‖2 = 0.36

‖(W3)1‖2 = 0

Page 26: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 2. PREVIOUS MIMO DETECTION ALGORITHMS 17

Therefore, estimate yk2 is

yk2 =[0.1 0.1 + 0.3i 0.2− 0.1i 0.4 + 0.1i

]

0.8− 0.3i

−0.0 + 0.6i

−0.0− 0.8i

−1.2− 1.3i

= −0.5− 0.9i

and the decision ak2 is

ak2 = −1.0− 1.0i

After cancellation, the modified received vector is calculated to be

r3 = r2 − ak2(H)k2 =

1.4− 0.3i

1.8 + 0.2i

−0.2− 0.3i

0.3− 0.5i

where the matrix Hk2equals

Hk1=

−0.7i 0 0

0.8− 0.6i 0 0

−0.8 0 0

−0.1− 0.2i 0 0

and the new pseudoinverse W3 is

W3 =

0.3i 0.4 + 0.2i −0.4 0.1i

0 0 0 0

0 0 0 0

Step 3 : In the last layer, k3 is set to 1. The estimate yk3 is calculated as

yk3 =[0.3i 0.4 + 0.2i −0.4 0.1i

]

1.0− 1.3i

0.3− 0.5i

−0.2− 1.3i

−1.5− 5.5i

= 0.8 + 1.1i

and the corresponding decision ak3 is

ak3 = 1 + i

Page 27: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 2. PREVIOUS MIMO DETECTION ALGORITHMS 18

We may combine the components of decision vector according to the order of

indices (k1, k2, k3), which yields

a =

1 + i

−1− i

1 + 3i

which is the correct estimate of a.

For a more realistic performance estimation of the V-BLAST/ZF receiver, we

show in Fig. 2.1 the simulation results for a (M,N)= (8,12) system with 16-QAM

modulation. The Eb/N0, defined by Eqn. (1.7), ranges between -10 dB and 0

dB in steps of 1 dB. The symbol error rate SER is calculated by performing

10,000 trials at each Eb/N0 point. A new realization of H was chosen in each

trial and for each Eb/N0 value. Result of this simulation is very similar to an

experiment performed in a real laboratory environment which is reported in [5].

We observe that V-BLAST/ZF performs significantly better than both ZF and

LLSE receivers.

2.2.1.1 V-BLAST/LLSE Detection Algorithm

The V-BLAST/LLSE algorithm is a variant of V-BLAST where the weigthing

matrix is chosen according to the LLSE rule [9].

Page 28: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 2. PREVIOUS MIMO DETECTION ALGORITHMS 19

V-BLAST/LLSE Detection Algorithm:

Initialization :

W1 =ρ

MH†( ρ

MHH† + N0 IN

)

i = 1

Recursion :

ki = arg minj /∈{k1,...,ki−1}

‖(Wi)j‖2

yki= (Wi)ki

ri

aki= Q ( yki

)

ri+1 = ri − aki(H) ki

Wi+1 =ρ

MH†

ki

( ρ

MHki

H†ki

+ N0 IN

)

i = i + 1

Example 4 :

For the numerical simulation results of V-BLAST/LLSE algorithm, we use

the same channel as in the previous examples with the same H, a and v values.

After initialization, we have the LLSE matrix

W1 =

−0.2 + 0.5i −0.1 + 0.1i −0.6 + 0.3i 0.1− 0.2i

0.3 + 0.1i 0.6i 0.4 + 0.2i 0.2− 0.4i

0.2− 0.1i 0.2 + 0.3i 0.3 −0.5− 0.1i

There will be again 3 steps in the algorithm:

Step 1 : In the first layer, k1 is computed to be 3 since

‖(W1)1‖2 = 0.82

‖(W2)1‖2 = 0.76

‖(W3)1‖2 = 0.61

Page 29: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 2. PREVIOUS MIMO DETECTION ALGORITHMS 20

Therefore, algorithm chooses 3rd sub-channel to process in this step, and the first

component of estimate is calculated to be

yk1 =[−0.2 + 0.5i −0.1 + 0.1i −0.6 + 0.3i 0.1− 0.2i

]

.5− 2.2i

2.4− 2.8i

−0.4− 0.6i

−1.1− 7.0i

= 1.4 + 3.2i

When this estimate is sliced to the nearest point from the alphabet A, we get

the decision for the first component of the transmitted vector as

ak1 = 1.0 + 3.0i

After symbol cancellation, we get the following modified received vector

r2 = r1 − ak1(H)k1 =

0.8− 0.3i

0.6i

−0.8i

−1.2− 1.3i

The LLSE matrix W2 for next iteration is computed to be

W2 =

−0.1 + 0.3i 0.2 + 0.1i −0.4 + 0.1i −0.3 + 0.1i

0.1 0.1 + 0.2i 0.2− 0.1i 0.4 + 0.1i

0 0 0 0

Step 2 : In the second layer, algorithm chooses the 2nd sub-channel to process,

since

‖(W1)1‖2 = 0.47

‖(W2)1‖2 = 0.32

‖(W3)1‖2 = 0

Page 30: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 2. PREVIOUS MIMO DETECTION ALGORITHMS 21

Therefore, estimate yk2 is

yk2 =[0.1− 0.0i 0.1 + 0.2i 0.2− 0.1i 0.4 + 0.1i

]

0.8− 0.3i

0.6i

−0.8i

−1.2− 1.3i

= −0.5− 0.8i

and the decision ak2 is

ak2 = −1.0− 1.0i

After cancellation, the modified received vector is calculated to be

r3 = r2 − ak2(H)k2 =

1.4− 0.3i

1.8 + 0.2i

−0.2− 0.3i

0.3− 0.5i

(2.9)

and the new LLSE matrix W3 is

W3 =

0.3i 0.3 + 0.2i −0.3 0.1i

0 0 0 0

0 0 0 0

Step 3 : In the last layer, k3 is set to 1. The estimate yk3 for this layer is calculated

to be

yk3 =[0.3i 0.3 + 0.2i −0.3 0.1i

]

1.4− 0.3i

1.8 + 0.2i

−0.2− 0.3i

0.3− 0.5i

= 0.7 + i

and the corresponding decision ak3 is

ak3 = 1 + i

We may combine the components of decision vector according to the order of

indices (k1, k2, k3) to have

a =

1 + i

−1− i

1 + 3i

which is the correct estimate of a.

Page 31: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 2. PREVIOUS MIMO DETECTION ALGORITHMS 22

For a more realistic performance estimation of the V-BLAST/LLSE receiver,

we show in Fig. 2.1 the simulation results for a (M,N)= (8,12) system with 16-

QAM modulation. The Eb/N0, defined by Eqn. (1.7), ranges between -10 dB and

0 dB in steps of 1 dB. The symbol error rate SER is calculated by performing

10,000 trials at each Eb/N0 point. A new realization of H was chosen in each

trial and for each Eb/N0 value. We observe a slight improvement compared to

the performance of V-BLAST/ZF.

Page 32: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

Chapter 3

V-BLAST/MAP Detection

Algorithm

Throughout this chapter, we again use the MIMO channel model and the notation

of Chapter 1 with the assumptions (i)-(iii) of Section 1.2 on the channel input.

In this chapter, we propose a new symbol detection algorithm for MIMO chan-

nels, which is called V-BLAST/MAP, that combines the features of V-BLAST

and MAP rules. This algorithm uses the layered structure of V-BLAST, but uses

a different strategy for channel processing order, inspired by the MAP rule.

3.1 V-BLAST/ZF/MAP Detection Algorithm

Using the same notation of V-BLAST algorithm, V-BLAST/ZF/MAP algorithm

may be described as follows:

23

Page 33: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 3. V-BLAST/MAP DETECTION ALGORITHM 24

V-BLAST/ZF/MAP Detection Algorithm :

Initialization :

W1 = H+ (3.1a)

i = 1 (3.1b)

Recursion:

yi = W i ri (3.1c)

si = Q (yi) (3.1d)

pij =fij ( yij | sij )∑

s′εAfij ( yij | s′ ) , j /∈ {k1, ..., ki−1} (3.1e)

ki = arg maxj /∈{k1,...,ki−1}

{pij} (3.1f)

aki= si ki

(3.1g)

ri+1 = ri − aki(H)ki

(3.1h)

Wi+1 = H+ki

(3.1i)

i = i + 1 (3.1j)

Here the vectors yi = (yi1, yi2, ..., yiM)T and si = (si1, si2, ..., siM)T are the coun-

terparts of those in Eqn.’s (2.2) and (2.3) in the ZF detector. In (3.1e), fij is a

density function given by

fij( yij | sij) =1

πσ2j

exp{− 1

σ2j

∥∥yij − sij

∥∥2}(3.2)

where σ2j = N0

∥∥(Wi)j

∥∥2. In (3.1e) and (3.1f), the index j ranges over all elements

of {1, 2, ..., M} excluding those in {k1, ..., ki−1}, i.e., j ε {1, ...,M}\{k1, ..., ki−1}.

V-BLAST/ZF/MAP algorithm is identical to V-BLAST/ZF except for the

ordering in which symbols are detected. Instead of selecting the next symbol to

be detected according to the rule (2.7c), here the set of all potential symbol deci-

sions are ranked with respect to their a-posteriori probabilities of being correct,

as estimated by pij. Thus, it is important to emphasize that pij’s are not true

MAP probabilities but approximations to how probable it is that sij = aj. The

Page 34: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 3. V-BLAST/MAP DETECTION ALGORITHM 25

approximation is due to the omission in calculations of the crosscorrelations be-

tween the noise terms zij , yij − sij on the component subchannels. Notice that

the index permutation (k1, k2, ..., kM) produced by V-BLAST/ZF/MAP depends

on both H and r, unlike V-BLAST/ZF where the permutation depends only on

H.

The complexity of V-BLAST/ZF/MAP is increased with respect to that of

V-BLAST/ZF by the computation done in step (3.1e). The order of complexity of

computing pij is roughly O(|A|) for any fixed j, and upperbounded by O(M |A|)when considered as a whole. This computation can be further simplified by

approximating the denominator of (3.1e) but that issue is not explored in this

thesis.

One major point about complexities of V-BLAST/ZF and V-BLAST/ZF/MAP

is that in the former allows pre-computation of all weighting vectors (which can

be use repeatedly as long as H is fixed) whereas in the latter the weighting vec-

tor must be computed in real-time since it also depends on r. This increased

complexity of V-BLAST/ZF/MAP is justified by performance improvements as

illustrated later in this section.

Example 5 :

In this example, we examine the numerical simulation results of

V-BLAST/ZF/MAP algorithm. We use the same channel as in Example 1 of

Section 2.1.1 with the same H, a and v values. After initialization, we have the

pseudoinverse matrix

W1 =

−0.2 + 0.7i −0.2 + 0.1i −0.8 + 0.4i 0.2− 0.2i

0.5 + 0.2i 0.7i 0.5 + 0.3i 0.2− 0.5i

0.4− 0.1i 0.3 + 0.4i 0.5 −0.7− 0.2i

There will be again 3 steps in the algorithm as follows:

Step 1 : We compute

Page 35: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 3. V-BLAST/MAP DETECTION ALGORITHM 26

y1 =

−0.2 + 1.1i

−0.6− 0.1i

1.6 + 3.6i

and

s1 =

−1.0 + 1.0i

−1.0− 1.0i

1.0 + 3.0i

The reliability estimates are computed as

p11 = 0.546

p12 = 0.454

p13 = 0.785

Therefore, the algorithm sets k1 to 3 and the third component of the decision is

chosen to be

ak1 = s13 = 1.0 + 3.0i

After symbol cancellation, we get the following modified received vector

r2 = r1 − ak1(H)k1 =

0.8− 0.3i

0.6i

−0.8i

−1.2− 1.3i

and new pseudoinverse W2 for next iteration is computed to be

W2 =

−0.1 + 0.4i 0.3 + 0.1i −0.5 + 0.1i −0.3 + 0.1i

0.1 0.1 + 0.3i 0.2− 0.1i 0.4 + 0.1i

0 0 0 0

Page 36: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 3. V-BLAST/MAP DETECTION ALGORITHM 27

Step 2 : Now, we have

y2 =

0.5 + 1.1i

−0.5− 0.9i

0

and

s2 =

1.0 + 1.0i

−1.0− 1.0i

−1.0− 1.0i

The reliabilities are computed for the unprocessed subchannels as

p21 = 0.967

p22 = 0.996

Therefore, the algorithm sets k2 to 2 and the second component of decision is

chosen to be

ak2 = s22 = −1.0− 1.0i

After symbol cancellation, we get the following modified received vector

r3 = r2 − ak2(H)k2 =

1.4− 0.3i

1.8 + 0.2i

−0.2− 0.3i

0.3− 0.5i

and new pseudoinverse W3 for next iteration is computed to be

W3 =

0.3i 0.4 + 0.2i −0.4 0.1i

0 0 0 0

0 0 0 0

Page 37: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 3. V-BLAST/MAP DETECTION ALGORITHM 28

Step 3 : Now

y3 =

0.8 + 1.1i

0

0

and

s3 =

1.0 + 1.0i

−1.0− i

−1.0− i

Since there is a single subchannel to be detected, the algorithm sets k3 to 1.

Therefore, the first component of decision is

ak3 = s31 = 1.0 + 1.0i

We may combine the components of decision vector according to the order of

indices (k1, k2, k3), and obtain

a =

1 + i

−1− i

1 + 3i

which is the correct estimate of a.

For a more realistic performance estimation of the V-BLAST/ZF/MAP re-

ceiver, we show in Fig. 3.1 the simulation results for a (M,N)= (8,12) system

with 16-QAM modulation. The Eb/N0, defined by Eqn. (1.7), ranges between

-10 dB and 0 dB in steps of 1 dB. The symbol error rate SER is calculated by

performing 10,000 trials at each Eb/N0 point. A new realization of H was cho-

sen in each trial and for each Eb/N0 value. We observe that V-BLAST/ZF/MAP

performs significantly better than both both V-BLAST/ZF and V-BLAST/LLSE

receivers.

Page 38: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 3. V-BLAST/MAP DETECTION ALGORITHM 29

−10 −8 −6 −4 −2 0 2 410

−3

10−2

10−1

100

Eb/No (dB)

SE

R

V−BLAST/ZFV−BLAST/LLSEV−BLAST/ZF/MAPV−BLAST/LLSE/MAP

Figure 3.1: Symbol error rates (SER) of V-BLAST/ZF/MAP receiver, V-BLAST/LLSE/MAP receiver, V-BLAST/ZF receiver and V-BLAST/LLSE re-ceivers. Simulations are for (M,N)= (8,12) and QAM-16 modulation.

3.2 V-BLAST/LLSE/MAP Detection Algorithm

In this section, we use the LLSE technique in order to compute weighting matrix.

Then, V-BLAST/LLSE/MAP algorithm may be described as follows:

Page 39: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 3. V-BLAST/MAP DETECTION ALGORITHM 30

V-BLAST/LLSE/MAP Detection Algorithm :

Initialization :

i = 1

Wi =ρ

MH†

i (ρ

MHiH

†i + N0 IN )

Recursion :

yi = Wi ri

si = Q (yi)

pij =fij ( yij | sij )∑

s′εAfij ( yij | s′ ) , j /∈ {k1, ..., ki−1}

ki = arg maxj /∈{k1,...,ki−1}

{pij}

aki= si ki

ri+1 = ri − aki(Hi)ki

Wi+1 =ρ

MH†

ki(

ρ

MHki

H†ki

+ N0 IN )

i = i + 1

Example 6 :

In this example, we examine the numerical simulation results of

V-BLAST/LLSE/MAP algorithm. We use the same channel as in Example 1

of Section 2.1.1 with the same H, a, v and N0 values with ρ/M = 10. After

initialization, we have the LLSE matrix

W1 =

−0.2 + 0.5i −0.1 + 0.1i −0.6 + 0.3i 0.1− 0.2i

0.3 + 0.1i 0.6i 0.4 + 0.2i 0.2− 0.4i

0.2− 0.1i 0.2 + 0.3i 0.3 −0.5− 0.1i

There will be again 3 steps in the algorithm as follows:

Step 1 : The algorithm starts by computing

Page 40: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 3. V-BLAST/MAP DETECTION ALGORITHM 31

y1 =

0.1 + 1.1i

−0.4− 0.4i

1.4 + 3.2i

and

s1 =

1.0 + 1.0i

−1.0− 1.0i

1.0 + 3.0i

The reliabilities are computed for each subchannel as

p11 = 0.167

p12 = 0.166

p13 = 0.264

Therefore, the algorithm sets k1 to 3 and form the decision

ak1 = s13 = 1.0 + 3.0i

After symbol cancellation, we get the following modified received vector

r2 = r1 − ak1(H)k1 =

0.8− 0.3i

0.6i

−0.8i

−1.2− 1.3i

and LLSE matrix W2 for next iteration is computed to be

W2 =

−0.1 + 0.3i 0.2 + 0.1i −0.4 + 0.1i −0.3 + 0.1i

0.1 0.1 + 0.2i 0.2− 0.1i 0.4 + 0.1i

0 0 0 0

Step 2 : Now,

Page 41: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 3. V-BLAST/MAP DETECTION ALGORITHM 32

y2 =

0.5 + 1.0i

−0.5− 0.8i

0

and

s2 =

1.0 + 1.0i

−1.0− 1.0i

−1.0− 1.0i

The reliabilities are

p21 = 0.169

p22 = 0.165

Therefore, the algorithm sets k2 to 1 and forms the decision

ak2 = s21 = 1.0 + 1.0i

After symbol cancellation, we get the following modified received vector

r3 = r2 − ak2(H)k2 =

0.4i

−1.4 + 0.3i

0.8

−1.3− 1.0i

and the LLSE matrix W3 for next iteration is computed to be

W3 =

0 0 0 0

0.1 + 0.1i 0.2 + 0.3i 0.1− 0.1i 0.3 + 0.1i

0 0 0 0

Step 3 : Finally,

y3 =

0

−0.7− 0.8i

0

Page 42: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 3. V-BLAST/MAP DETECTION ALGORITHM 33

and

s3 =

−1.0− i

−1.0− i

−1.0− i

Since there is a single subchannel to be processed, the algorithm sets k3 to 2, and

ak3 = s32 = −1.0− i

We may combine the components of decision vector according to the order of

indices (k1, k2, k3), and obtain

a =

1 + i

−1− i

1 + 3i

which is the correct estimate of a.

For a more realistic performance estimation of the V-BLAST/LLSE/MAP

algorithm, we show in Fig. 3.1 the simulation results for a (M,N)= (8,12) system

with 16-QAM modulation. The Eb/N0 ranges between -10 dB and 0 dB in steps

of 1 dB. The symbol error rate SER is calculated by performing 10,000 trials at

each Eb/N0 point. A new realization of H was chosen in each trial and for each

Eb/N0 value.

3.3 Discussion of Simulation Results

The performance curves in Fig. 3.1 show that V-BLAT/MAP provides significant

improvement in SER compared to ordinary V-BLAST, both for the ZF and LLSE

versions. In Fig. 3.1, we are unable to provide a performance curve for the optimal

ML detection algorithm because, for the case considered in that figure, the ML

algorithm would require 168 likelihood ratios, for each simulation run. In Chap-

ter 1, in Fig. 1.3 we already provided simulation results for the (M,N)=(4,12) and

4-QAM case, where a comparison between V-BLAST/MAP and ML algorithms

Page 43: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

CHAPTER 3. V-BLAST/MAP DETECTION ALGORITHM 34

was possible. Whether V-BLAST/MAP bridges the performance gap between

V-BLAST and ML for the (M,N)=(8,12), 16-QAM case as much as it does for

the (M,N)=(4,12) and 4-QAM case is an open question. However, we may state

as the main conclusion of this thesis that V-BLAST/MAP offers significantly

better SER performance than V-BLAST at a modest increase in complexity.

Page 44: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

Bibliography

[1] I. E. Telatar, “Capacity of multi-antenna gaussian channels,” Eur. Trans.

Tel., vol. 10, pp. 585–595, November-December 1999.

[2] P. W. Wolniansky, G. J. Foschini, G. D. Golden, and R. A. Valenzuela,

“V-blast: An architecture for realizing very high date rates over the rich-

scattering wireless channel,” Proc. URSI ISSSE, pp. 295–300, 1998.

[3] G. J. Foschini, “Layered space-time architecture for wireless communication

in a fading environment when using multiple antennas,” Bell Labs Tech. J.,

vol. 1, pp. 41–59, Autumn 1996.

[4] S. Haykin, Communication Systems. John Wiley & Sons, Inc., 2001.

[5] G. D. Golden, G. J. Foschini, R. A. Valenzuela, and P. W. Wolniansky, “De-

tection algorithm and initial laboratory results using v-blast space-time com-

munication architecture,” Electronic Letters, vol. 35, pp. 14–16, January 1999.

[6] H. Bolcskei and A. J. Paulraj, Multiple-input multiple-output (MIMO) wireless

systems, pp. 90.1 – 90.14. CRC Press, 2nd ed., 2002.

[7] G. H. Golub and C. F. V. Loan, Matrix computations. John Hopkins Univer-

sity Press, Baltimore, 1983.

[8] G. J. Foschini and M. J. Gans, “On limits of wireless communications in a

fading environment when using multiple antennas,” Wireless Pers. Commun.,

vol. 6, no. 3, pp. 311–335, 1998.

35

Page 45: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

BIBLIOGRAPHY 36

[9] R. L. Cupo., G. D. Golden, C. Martin, K. L. Sherman, N. R. Sollenbergen,

J. H. Winters, and P. W. Wolniansky, “A four-element adaptive antenna

array for is-136 pcs base stations,” (Phoenix), pp. 1577–1581, IEEE Vehicular

Technology Conference, May 1997.

Page 46: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

Appendix A

A.1 Singular Value Decomposition and Moore-

Penrose Pseudoinverse

In this section, we follow the presentation and notation in Telatar [1]. Let CN×M

(RN×M) denotes the set of all complex-valued (real-valued) matrices with N rows

and M columns. Any matrix H ∈ CN×M , can be expressed as

H = UDV†

where U is an N×N unitary matrix, V is an M×M unitary matrix, and D is an

N ×M matrix whose diagonal elements Dii equal the non-negative square roots

of the eigenvalues of HH† (which are non-negative since HH† is positive semi-

definite), and off diagonal elements Dij (i 6= j) are 0 (see [1]). The pseudo-inverse

is then given by

H+ = VD+U†

where D+ is the matrix obtained by taking the transpose of D and setting

D+ii = D−1

ii if Dii > 0 and D+ii = 0 otherwise.

37

Page 47: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

Appendix B

Code

1: % SER of V-BLAST, ZF and LLSE receivers for (M,N)=(8,12) and 16-QAM modulation.

2: % For each Eb/N0 value, we perform 10.000 iteration.

3:

4: clear all;

5: close all;

6: % 16 point QAM is used

7: partition=[ -2,0,2 ];

8: xcodebook=[ -3,-1,1,3 ];

9: ycodebook=xcodebook;

10: M=8; % no of transmitter antennas

11: N=12; % no of receiver antennas

12:

13: Es = 2*sum(xcodebook * xcodebook’)/size(xcodebook,2); % average symbol energy per antenna

14: Eb = Es/(2*log2(size(xcodebook,2))); % transmitted bit energy per antenna

15: EbN0 = -10:2:4;

16: N0 = Eb./10. (EbN0/10); % Noise power

17:

18: F=1000; % no of trials at a given noise level

19: for T=1:length(EbN0) % T loop; choose SNR level

20: tic

21: % V-BLAST/ZF algorithm

22: er=0; % block error event counter

23: bler(T)=0; % block error rate

38

Page 48: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

APPENDIX B. CODE 39

24:

25: % V-BLAST/LLSE algorithm

26: mer=0; % block error event counter

27: mbler(T)=0; % block error rate

28:

29: % ZF algorithm

30: zer=0; % block error event counter

31: zbler(T)=0; % block error rate

32:

33: % LLSE algorithm

34: ser=0; % block error event counter

35: sbler(T)=0; % block error rate

36:

37:

38: for f=1:F

39: a=randsrc(M,1,xcodebook)+j*(randsrc(M,1,ycodebook));

40: H=(randn(N,M)+j*randn(N,M)) / sqrt(2);

41: v=(randn(N,1)+j*randn(N,1))* sqrt(N0(T)/2);

42: r=H*a+v;

43:

44: %Copy r and H for ZF Receiver

45: zH=H;

46: zr=r;

47:

48: %Copy r and H for LLSE Receiver

49: sH=H;

50: sr=r;

51:

52: %Copy r and H for VBLAST/LLSE

53: mH=H;

54: mr=r;

55:

56: % V-BLAST/ZF algorithm begins

57: k=zeros(1,M);

58: G=pinv(H);

59: for i=1:M %i loop

60: for J=1:M

61: n(J)=(norm(G(J,:))) 2;

62: end

63: for t=1:i-1

Page 49: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

APPENDIX B. CODE 40

64: n(k(t))= Inf;

65: end

66: [Y,I ]=min(n);

67: k(i)=I;

68: w=G(I,:);

69: y=w*r;

70: [ o,n1 ]=quantiz(real(y),partition,xcodebook);

71: [ o,n2 ]=quantiz(imag(y),partition,ycodebook);

72: b(I)=n1+j*n2;

73: r=r-b(I)*H(:,I);

74: H(:,I)=0;

75: G=pinv(H);

76: end % end i loop

77: if sum(abs(a-b.’)) ∼=0

78: er=er+1;

79: end % V-BLAST with ZF algorithm ends

80:

81: % V-BLAST/LLSE Algorithm starts

82: k=zeros(1,M);

83: W=Es*mH’*pinv(Es*mH*mH’+N0(T)*eye(N)); % Es=ro/M

84: for i=1:M

85: for J=1:M

86: n(J)=(norm(W(J,:))) 2;

87: end

88: for t=1:i-1

89: n(k(t))= Inf;

90: end

91: [Y,I ]=min(n);

92: k(i)=I;

93: my=W(I,:)*mr;

94: [ o,n1 ]=quantiz(real(my),partition,xcodebook);

95: [ o,n2 ]=quantiz(imag(my),partition,ycodebook);

96: mb(I)=n1+j*n2;

97: mr=mr-mb(I)*mH(:,I);

98: mH(:,I)=0;

99: W=Es*mH’*pinv(Es*mH*mH’+N0(T)*eye(N));

100: end % end i loop

101:

102: if sum(abs(a-mb.’)) ∼=0

103: mer=mer+1;

Page 50: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

APPENDIX B. CODE 41

104: end % V-BLAST/LLSE Algorithm ends

105:

106: % ZF Algorithm begins

107: zb=zeros(1,M);

108: zG=pinv(zH);

109: zy=zG*zr;

110: for J=1:M

111: [ o,n1(J) ]=quantiz(real(zy(J)),partition,xcodebook);

112: [ o,n2(J) ]=quantiz(imag(zy(J)),partition,ycodebook);

113: end

114:

115: zb(1:M)=n1(1:M)+j*n2(1:M);

116: if sum(abs(a-zb.’)) ∼=0

117: zer=zer+1;

118: end % ZF Algorithm ends

119:

120:

121: % LLSE Receiver

122: sy=Es*sH’*pinv(Es*sH*sH’+N0(T)*eye(N))*sr;

123: for J=1:M

124: [ o,n1(J) ]=quantiz(real(sy(J)),partition,xcodebook);

125: [ o,n2(J) ]=quantiz(imag(sy(J)),partition,ycodebook);

126: end

127: sb=n1+j*n2;

128: if sum(abs(a-sb.’)) ∼=0

129: ser=ser+1;

130: end

131:

132: end % end f loop

133: bler(T)=(er) / F;

134: mbler(T)=(mer) / F;

135: zbler(T)=(zer) / F;

136: sbler(T)=(ser) / F;

137: toc

138: end % end of T loop

139:

140:

141: figure

142: semilogy(EbN0,bler,’-dr’)

143: xlabel(’Eb/No (dB)’); ylabel(’SER’);

Page 51: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

APPENDIX B. CODE 42

144: hold on;

145: semilogy(EbN0,mbler,’-+b’)

146: semilogy(EbN0,zbler,’-*r’)

147: semilogy(EbN0,sbler,’-ob’)

148: hold off;

149: legend(’V-BLAST/ZF’,’V-BLAST/LLSE’,’ZF’,’LLSE’);

150: grid

1: % Test of V-BLAST/ZF, V-BLAST/LLSE, V-BLAST/ZF/MAP and V-BLAST/ZF/MAP

2: % algorithms with M transmitter and N receiver antennas. The modulation is 16-QAM.

3: % At each iteration, a new realization of H is used. T stands for SNR level and there are

4: % totally F iteration for each choice of T.

5:

6:

7: clear all;

8: close all;

9: % 16 point QAM is used

10: partition=[ -2,0,2 ];

11: xcodebook=[ -3,-1,1,3 ];

12: ycodebook=xcodebook;

13: for i1=1:size(xcodebook,2)

14: for i2=1:size(xcodebook,2)

15: constellation((i1-1)*4+i2)=xcodebook(i1)+j*ycodebook(i2);

16: end

17: end

18:

19: M=8; % no of transmitter antennas

20: N=12; % no of receiver antennas

21:

22: Es = 2*sum(xcodebook * xcodebook’)/size(xcodebook,2); % average symbol energy per antenna

23: Eb = Es/(2*log2(size(xcodebook,2))); % transmitted bit energy per antenna

24: EbN0 = -10:2:4;

25: N0 = Eb./10. (EbN0/10); % Noise power

26:

27: randn(’state’,12); % initialize state of function for repeatability

28: rand(’state’,12); % initialize state of function for repeatability

29:

30:

Page 52: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

APPENDIX B. CODE 43

31: F=10000; % no of trials at a given noise level

32:

33: for T=1:length(EbN0) % T loop; choose SNR level

34: % V-BLAST/ZF algorithm

35: er=0; % block error event counter

36: bler(T)=0; % block error rate

37:

38: % V-BLAST/LLSE algorithm

39: mer=0; % block error event counter

40: mbler(T)=0; % block error rate

41:

42: % V-BLAST/ZF/MAP algorithm

43: zer=0; % block error event counter

44: zbler(T)=0; % block error rate

45:

46: % V-BLAST/LLSE/MAP algorithm

47: ser=0; % block error event counter

48: sbler(T)=0; % block error rate

49:

50: for f=1:F

51: a=randsrc(M,1,xcodebook)+j*(randsrc(M,1,ycodebook));

52: H=(randn(N,M)+j*randn(N,M)) / sqrt(2);

53: v=(randn(N,1)+j*randn(N,1))* sqrt((N0(T)/2));

54: r=H*a+v;

55:

56: %Copy r and H for V-BLAST/LLSE Receiver

57: mH=H;

58: mr=r;

59:

60: %Copy r and H for V-BLAST/ZF/MAP Receiver

61: zH=H;

62: zr=r;

63:

64: %Copy r and H for V-BLAST/LLSE/MAP Receiver

65: sH=H;

66: sr=r;

67:

68: % V-BLAST/ZF algorithm begins

69: k=zeros(1,M);

70: G=pinv(H);

Page 53: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

APPENDIX B. CODE 44

71: for i=1:M %i loop

72: for J=1:M

73: n(J)=(norm(G(J,:))) 2;

74: end

75: for t=1:i-1

76: n(k(t))= Inf;

77: end

78: [Y,I ]=min(n);

79: k(i)=I;

80: w=G(I,:);

81: y=w*r;

82: [ o,n1 ]=quantiz(real(y),partition,xcodebook);

83: [ o,n2 ]=quantiz(imag(y),partition,ycodebook);

84: b(I)=n1+j*n2;

85: r=r-b(I)*H(:,I);

86: H(:,I)=0;

87: G=pinv(H);

88: end % end i loop

89: if sum(abs(a-b.’)) ∼=0

90: er=er+1;

91: end % V-BLAST with ZF algorithm ends

92:

93:

94: % V-BLAST/LLSE Algorithm starts

95: k=zeros(1,M);

96: W=Es*mH’*pinv(Es*mH*mH’+N0(T)*eye(N)); % Es=ro/M

97: for i=1:M

98: for J=1:M

99: n(J)=(norm(W(J,:))) 2;

100: end

101: for t=1:i-1

102: n(k(t))= Inf;

103: end

104: [Y,I ]=min(n);

105: k(i)=I;

106: my=W(I,:)*mr;

107: [ o,n1 ]=quantiz(real(my),partition,xcodebook);

108: [ o,n2 ]=quantiz(imag(my),partition,ycodebook);

109: mb(I)=n1+j*n2;

110: mr=mr-mb(I)*mH(:,I);

Page 54: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

APPENDIX B. CODE 45

111: mH(:,I)=0;

112: W=Es*mH’*pinv(Es*mH*mH’+N0(T)*eye(N));

113: end % end i loop

114:

115: if sum(abs(a-mb.’)) ∼=0

116: mer=mer+1;

117: end % V-BLAST/LLSE Algorithm ends

118:

119:

120: % V-BLAST/ZF/MAP algorithm starts

121: G=pinv(zH);

122: u=zeros(M,1); % outputs in each channel

123: p=zeros(1,M);

124: zk=zeros(1,M);

125: ahat=zeros(1,M); % decisions in each channel

126:

127: for i=1:M % i loop

128: u = G*zr;

129: for J=1:M

130: if size(find(zk==J),2) == 0 % exclude J that have been decided earlier

131: [ o,n1 ]=quantiz(real(u(J)),partition,xcodebook);

132: [ o,n2 ]=quantiz(imag(u(J)),partition,ycodebook);

133: n(J)=N0(T)*(norm(G(J,:))) 2;

134: % decision for J’th channel

135: ahat(J)=n1+j*n2;

136: % calculate decision reliability probabilities

137: numerat = exp(-(1/n(J))*(abs(ahat(J)-u(J))) 2); % numerator of pij

138: denom =0; % denominator of pij

139: for i1=1:size(constellation,2)

140: denom = denom + exp(-(1/n(J))*(abs(constellation(i1)-u(J))) 2);

141: end

142: p(J)=numerat/denom;

143: else % if J has already been processed

144: p(J)=-1;

145: end

146: end

147: [Y,I ]=max(p);

148: zk(i)=I;

149: zb(I) = ahat(I);

150: zr=zr-zb(I)*zH(:,I);

Page 55: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

APPENDIX B. CODE 46

151: zH(:,I)=0;

152: G=pinv(zH);

153:

154: end % end i loop

155:

156: if sum(abs(a-zb.’)) ∼=0

157: zer=zer+1;

158: end

159:

160: % V-BLAST/LLSE/MAP algorithm

161: G=Es*sH’*pinv(Es*sH*sH’+N0(T)*eye(N));

162: u=zeros(M,1); % outputs in each channel

163: p=zeros(1,M);

164: k=zeros(1,M);

165: ahat=zeros(1,M); % decisions in each channel

166:

167: for i=1:M % i loop

168: u = G*sr;

169: for J=1:M

170: if size(find(k==J),2) == 0 % exclude J that have been decided earlier

171: [ o,n1 ]=quantiz(real(u(J)),partition,xcodebook);

172: [ o,n2 ]=quantiz(imag(u(J)),partition,ycodebook);

173: n(J)=N0(T)*(norm(G(J,:))) 2;

174: % decision for J’th channel

175: ahat(J)=n1+j*n2;

176:

177: % calculate reliability probabilities

178: % calculate decision reliability probabilities

179: numerat = exp(-(1/n(J))*(abs(ahat(J)-u(J))) 2); % numerator of pij

180: denom =0; % denominator of pij

181: for i1=1:size(constellation,2)

182: denom = denom + exp(-(1/n(J))*(abs(constellation(i1)-u(J))) 2);

183: end

184: p(J)=numerat/denom;

185: else % if J has already been processed

186: p(J)=-1;

187: end

188: end

189: [Y,I ]=max(p);

190: k(i)=I;

Page 56: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

APPENDIX B. CODE 47

191: sb(I) = ahat(I);

192: sr=sr-sb(I)*sH(:,I);

193: sH(:,I)=0;

194: G=Es*sH’*pinv(Es*sH*sH’+N0(T)*eye(N));

195:

196: end % end i loop

197:

198: if sum(abs(a-sb.’)) ∼=0

199: ser=ser+1;

200: end

201:

202: end % end f loop

203: bler(T) = (er) / F;

204: mbler(T) = (mer) / F;

205: zbler(T) = (zer) / F;

206: sbler(T) = (ser) / F;

207:

208:

209: end % end of T loop

210:

211:

212: d=8;

213: figure

214: semilogy(EbN0(1:d),bler(1:d),’-+r’)

215: xlabel(’Eb/No (dB)’); ylabel(’SER’);

216: hold on;

217: semilogy(EbN0(1:d),mbler(1:d),’-db’)

218: semilogy(EbN0(1:d),zbler(1:d),’-or’)

219: semilogy(EbN0(1:d),sbler(1:d),’-*b’)

220: hold off;

221: legend(’V-BLAST/ZF’,’V-BLAST/LLSE’,’V-BLAST/ZF/MAP’,’V-BLAST/LLSE/MAP’);

222: grid

1: % This file compares V-BLAST/ZF/MAP, V-BLAST/ZF and ML.

2: % (M,N)=(4,12) and 4-QAM modulation.

3: % For each Eb/N0 value, we perform F iteration.

4:

5: clear all;

Page 57: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

APPENDIX B. CODE 48

6: close all;

7: % 4 point QAM is used

8: partition=[0 ];

9: xcodebook=[ -1,1 ];

10: ycodebook=xcodebook;

11: for i1=1:size(xcodebook,2)

12: for i2=1:size(xcodebook,2)

13: constellation((i1-1)*2+i2)=xcodebook(i1)+j*ycodebook(i2); % constellation

14: end

15: end

16: Eb = 1; % bit energy for this constellation

17:

18: F=[1000, 1000, 1000, 1000, 5000, 10000, 100000 ]; % no of trials at a given noise level

19: M=4; % No of transmitter antennas

20: N=12; % No of receiver antennas

21:

22: Es = 2*sum(xcodebook * xcodebook’)/size(xcodebook,2); % average symbol energy per antenna

23: Eb = Es/(2*log2(size(xcodebook,2))); % transmitted bit energy per antenna

24: EbN0 = -12:2:0;

25: N0 = Eb./10. (EbN0/10); % Noise power

26: randn(’state’,12); % initialize state of function for repeatability

27: rand(’state’,12); % initialize state of function for repeatability

28:

29: for T=1:length(EbN0) % T loop; choose SNR level

30:

31: % V-BLAST/ZF algorithm

32: er=0; % block error event counter

33: bler(T)=0; % block error rate

34:

35: % V-BLAST/ZF/MAP algorithm

36: zer=0; % block error event counter

37: zbler(T)=0; % block error rate

38:

39: % ML rule

40: mler=0;

41: mlbler(T)=0;

42:

43:

44: for f=1:F(T) % f loop

45:

Page 58: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

APPENDIX B. CODE 49

46: a=randsrc(M,1,xcodebook)+j*(randsrc(M,1,ycodebook));

47: H=(randn(N,M)+j*randn(N,M)) / sqrt(2);

48: v=(randn(N,1)+j*randn(N,1))* sqrt(N0(T)/2);

49: r=H*a+v;

50:

51: %Copy r and H for ML Receiver

52: mlH = H;

53: mlr = r;

54:

55: %Copy r and H for V-BLAST/ZF/MAP Receiver

56: zH = H;

57: zr = r;

58:

59: % V-BLAST/ZF algorithm begins

60: k=zeros(1,M);

61: G=pinv(H);

62: for i=1:M %i loop

63: for J=1:M

64: n(J)=(norm(G(J,:))) 2;

65: end

66: for t=1:i-1

67: n(k(t))= Inf;

68: end

69: [Y,I ]=min(n);

70: k(i)=I;

71: w=G(I,:);

72: y=w*r;

73: [ o,n1 ]=quantiz(real(y),partition,xcodebook);

74: [ o,n2 ]=quantiz(imag(y),partition,ycodebook);

75: b(I)=n1+j*n2;

76: r=r-b(I)*H(:,I);

77: H(:,I)=0;

78: G=pinv(H);

79: end % end i loop

80: if sum(abs(a-b.’)) ∼=0

81: er=er+1;

82: end % V-BLAST with ZF algorithm ends

83:

84: % V-BLAST/ZF/MAP algorithm starts

85: G=pinv(zH);

Page 59: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

APPENDIX B. CODE 50

86: u=zeros(M,1); % outputs in each channel

87: p=zeros(1,M);

88: zk=zeros(1,M);

89: ahat=zeros(1,M); % decisions in each channel

90:

91: for i=1:M % i loop

92: u = G*zr;

93: for J=1:M

94: if size(find(zk==J),2) == 0 % exclude J that have been decided earlier

95: [ o,n1 ]=quantiz(real(u(J)),partition,xcodebook);

96: [ o,n2 ]=quantiz(imag(u(J)),partition,ycodebook);

97: n(J)=N0(T)*(norm(G(J,:))) 2;

98: % decision for J’th channel

99: ahat(J)=n1+j*n2;

100: % calculate decision reliability probabilities

101: numerat = exp(-(1/n(J))*(abs(ahat(J)-u(J))) 2); % numerator of pij

102: denom =0; % denominator of pij

103: for i1=1:size(constellation,2)

104: denom = denom + exp(-(1/n(J))*(abs(constellation(i1)-u(J))) 2);

105: end

106: p(J)=numerat/denom;

107: else % if J has already been processed

108: p(J)=-1;

109: end

110: end

111: [Y,I ]=max(p);

112: zk(i)=I;

113: zb(I) = ahat(I);

114: zr=zr-zb(I)*zH(:,I);

115: zH(:,I)=0;

116: G=pinv(zH);

117:

118: end % end i loop

119:

120: if sum(abs(a-zb.’)) ∼=0

121: zer=zer+1;

122: end

123:

124: % ML algorithm begins

125: c = constellation;

Page 60: V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO ... · V-BLAST/MAP: A NEW SYMBOL DETECTION ALGORITHM FOR MIMO CHANNELS Yavuz Yap‡c‡ M.S. in Electrical and Electronics Engineering

APPENDIX B. CODE 51

126: val=Inf;

127: for n=1:4

128: for m=1:4

129: for k=1:4

130: for g=1:4

131: d=[c(n),c(m),c(k),c(g) ]’;

132: if norm(mlr-mlH*d)<val

133: mla=[c(n),c(m),c(k),c(g) ]’;

134: val=norm(mlr-mlH*d);

135: end

136: end

137: end

138: end

139: end

140:

141: if sum(abs(a-mla)) ∼=0

142: mler=mler+1;

143: end

144:

145:

146: end % end f loop

147:

148: bler(T)=(er) / F(T); % for V-BLAST/ZF

149: zbler(T)=(zer) / F(T); % for V-BLAST/ZF/MAP

150: mlbler(T)=(mler) / F(T); % for ML

151:

152: end % end T loop

153:

154: figure

155: semilogy(EbN0,mlbler)

156: xlabel(’Eb/No (dB)’); ylabel(’SER’);

157: hold on;

158: semilogy(EbN0,zbler,’r’)

159: semilogy(EbN0,bler,’–’)

160: hold off;

161: legend(’ML’,’V-BLAST/ZF/MAP’,’V-BLAST/ZF’);

162: grid