MIMO
MATLAB
r
Toolbox
Computation
Visualization
Programming
KAMIL ANIS
Rev. 2.2.0
Department of Radioelectronics
Faculty of Electrical Engineering
Czech Tech. University in Prague
http://radio.feld.cvut.cz/
Copying of part or all of this document requires Dept. of Radioelectronics approval! Any other redistribution is strictly
prohibited. All the documentation is maintained by the author.
c
2001–2003 Kamil Anis,
anisk@feld.cvut.cz
.
All rights reserved.
Typographic Conventions
GLOBAL
Global variable. Face: black, monospaced, uppercase.
local
Regular variable. Face: black, monospaced.
function
Reference to the MIMO toolbox function. Face: blue, monospaced, underlined.
function
Reference to the regular MATLAB function. This is equivalent to your local HTML MATLAB
documentation. By clicking on this reference a web browser will be invoked. Face: blue,
monospaced.
Property Property name. Face: bold.
[2] Link to the bibliographic reference. Face: red.
Tab. 1 Regular link. Face: blue.
When a list of possible values in form
{PropertyValue1} | PropertyValue2 | PropertyValue3
is
available the default value is surrounded by the curly braces. Not always there must be a default value
there.
MATLAB
r
is a registered trademark of The Mathworks, Inc.
UNIX
r
is a registered trademark of AT&T, Inc.
SPW
r
is a registered trademark of Cadence Design Systems, Inc.
PostScript
r
is a registered trademark of Adobe Systems, Inc.
2
General Properties
General Properties
The System Model
Principal scheme of the MIMO toolbox is shown in Fig. 1. Desired pattern taken from a discrete alphabet
is used to generate testing data. The data are then encoded in the channel encoder and split into the
multiple parallel streams. The signal at the modulator’s output is a complex evelope of real bandpass signal
sampled at certain sampling frequency. received signal is corrupted by the fading in the MIMO channel.
The signal than enters matched filter and is downsampled once per a symbol period. This resampled signal
(sufficient statistics) is than passed along to the detector in order to evaluate the data estimations. Both the
encoder and the detector operate over the look-up table so once the encoding scheme at the transmitter
gets changed the receiver operation mode gets changed as well.
1
Note The whole system is tailored to operate in the discrete time domain (Dt) but all the quantities behave
as it would be continous time (Ct) system.
source
Data
counter
Error Matched
filter
table
Look-up
encoder
Channel
MIMO
channel
Channel
estimator
Modulator
Viterbi
decoder
Fig. 1: Block scheme of MIMO toolbox
Running the Modules
All the functions match the MATLAB’s conventions. Thus the usage is as simple as in the case of regular
MATLAB’s functions.
[y1,y2,...] = function(x1,x2,...)
Some functions can have additional properties that control function behavior. The notation must always take
the form of pairs i.e.
y = function(x,’
PropertyName
’,PropertyValue,...)
No matter what is a pair order. So once you memorize function properties you can combine them at your
disposal as long as the
’
PropertyName
’
has appropriate
PropertyValue
assigned.
The
’
PropertyName
’
is assumed to be a string compounded from one or more words with first capital-
ized letter—no spaces between words are allowed.
PropertyValue
can be either number or string. For
instance of string the lower case letters are usually used.
1
Channel estimator has been temporarily removed.
3
General Properties
Note Some function properties are allowed to be controlled globally in order to provide so called system-wide
settings such as function echoes etc. Typicaly the value of
SMPLFREQ
can be set globally since it is assumed
that all the system devices operate on the common sampling frequency. The global setting may be overrided
by the local setting.
In fact all the modules are connected together via one (main) script called
mimo
. This let’s you better focus
your attention on the particular block development. A unified data exchange format is used throughout all
toolbox devices.
Note Many toolbox functions produce internal echoes during the computation. The Echo property is turned
off
by default. So if you have any doubts about function behaviour, turn the Echo property on. Sometimes
it’s really useful in order to trace for the bugs.
Data Exchange Format
General structure of the MIMO toolbox data exchange format is shown in Fig. 2. Here the benefit of multi-
dimensional arrays is exploited. The advantage is that a frame synchronizer is not needed—all the devices
always know when the frame begins and ends. In the other hand large matrices are not the best solution
to measure a code performance over hundred thousands of symbols. The idea is to design and verify code
in MATLAB environment and measure its performace under more suitable system such as Cadence SPW.
Hope that figure tells all and no more explanation is needed.
645646453
324343244
432244445
646464665
654654666
543535354
645646453
324343244
432244445
646464665
654654666
543535354
645646453
324343244
432244445
646464665
654654666
543535354
frames
branches
symbols
Fig. 2: MIMO toolbox data exchange format
Context Help
All the functions are equipped with a context help. You just type
help
hfunctioni
right into the MATLAB’s command window. A more detailed description should be found in the Function
Reference section.
4
Mimo Toolbox
MIMO Toolbox Function Reference
brmet
User defined branch metric
Syntax
rho = bremet(r,q,alpha)
Description
rho = bremet(r,q,alpha)
evaluates branch metric and returns the result as a column vector for all test-
ing channel symbols
q
. The entries of
rho
variable correspond to the squared Euclidean distance of received
signal
r
and testing channel symbols
q
. The value of the
rho
is by default computed from the following for-
mula accordingly to [2]
ρ =
m
∑
j=1
r
j
t
−
n
∑
i=1
α
i, j
q
i
t
2
where m is the number of receive antennas, n is the number of transmit antennas, r
j
t
is the sample of the
signal at time t at j-th receive antenna
r
, α
i, j
is complex path fading from i-th transmit antenna to the j-th
receive antenna (
alpha
) and q
i
t
is a testing channel symbol
q
.
See Also
detect
,
channel
.
➔
channel
➔
5