MATLAB implementation
of the 3GPP Spatial Channel Model
(3GPP TR 25.996)
Implementation Documentation
Version: 1.2 (scm-11-01-2005)
Date: 11.1.2005
File: scm-11-01-2005.zip
Requires MATLAB 6.5.0 (R13) or later
Authors: Jari Salo (TKK, jari.salo@tkk.fi)
Giovanni Del Galdo (TUI, giovanni.delgaldo@tu-ilmenau.de)
Jussi Salmi (TKK, jussi.salmi@tkk.fi)
Pekka Kyösti (EBIT, pekka.kyosti@elektrobit.com)
Marko Milojevic (TUI, marko.milojevic@tu-ilmenau.de)
Daniela Laselva (EBIT, daniela.laselva@elektrobit.com)
Christian Schneider (TUI, christian.schneider@tu-ilmenau.de)
TKK = Helsinki University of Technology
TUI = Technical University of Ilmenau
EBIT = Elektrobit
scm_11-01-2005.doc March 6, 2005
Page 2 (18)
Document History:
14.05.2004 Document created
24.05.2004
First draft with chapters: Introduction, High level structure and Model
input/output interface
27.05.2004 Chapter added.
28.05.2004 (Giovanni) Small changes in the text.
29.05.2004 (Jari) Added examples, small changes in the text.
23.07.2004 (Pekka) Added/modified input parameters in Tables 1 to 3.
26.07.2004 (Jari) Added Sections 2,5,6 + some editing work
8.12.2004 (Jari) Edited the original WINNER internal document for public release.
14.12.2004 (Jari) Added Section 6
4.1.2005 (Jari) Modified polarization power normalization and Section 7.
6.3.2005 (Jari) Corrected Table 5 and Table 6. Small editorial changes.
scm_11-01-2005.doc March 6, 2005
Page 3 (18)
Table of Contents
1. Introduction ............................................................................................4
2. Installation ..............................................................................................4
3. Description of files included in the package .......................................5
4. Model input/output interface.................................................................6
4.1 Input parameters ..................................................................................................................... 6
Definition................................................................................................................................ 8
4.2 Output parameters................................................................................................................. 11
5. Optimized computation .......................................................................11
5.1 scm_mex_core.m.................................................................................................................. 11
5.2 interp_gain_c.m .................................................................................................................... 12
6. Implementation notes ..........................................................................12
6.1 Configuration of link parameters.......................................................................................... 12
6.2 Normalization of the channel matrices with the polarization option .................................... 13
6.3 Sectorized Base-Stations....................................................................................................... 14
6.4 General Array Configurations............................................................................................... 15
7. Examples ..............................................................................................15
7.1 Basic examples of channel matrix generation....................................................................... 15
7.2 Antenna patterns and a dual-polarized 2x4 MIMO system................................................... 16
7.3 Another example about polarization option and xpd ............................................................ 17
8. Licensing and how to cite the work....................................................17
9. Acknowledgement................................................................................18
10. References............................................................................................18
scm_11-01-2005.doc March 6, 2005
Page 4 (18)
1. Introduction
This document describes a MATLAB implementation of the 3GPP Spatial Channel
Model (SCM) [3GPP03]. The accompanying MATLAB code implements the system
level channel model described in Section 5 of [3GPP03], except the “far scatterer
clusters” feature from Section 5.5.2 and the intercell interference feature from Section
5.7. These features were left out of the implementation because they make certain
restricting assumptions about the network layout. The current implementation has no
built-in assumptions on network geometry and is hence usable for a variety of
simulation purposes.
The channel model takes the Multiple-Input Multiple-Output (MIMO) radio link
parameters, model configuration parameters, and antenna parameters as inputs, and
outputs the MIMO channel matrices. Channel matrices can be generated for multiple
BS-MS links with one function call. The output is a multi-dimensional array which
contains the channel impulse responses for a pre-defined number of radio links.
Mapping of MS-BS distances, array orientations and MS mobility parameters into the
SCM input format is left to the system simulator program. To make using of the model
easier default (random) parameters can be used. Channel convolution and other related
operations are beyond the scope of the implemented channel model.
The work presented in this report has been in most parts carried out in Workpackage 5
of the WINNER
1
project [WIN].
2. Installation
The code has been created and tested using Matlab version 6.5.0 (Release 13). Older
versions might cause unexpected problems. While the software was primarily developed
on Windows operating systems (2000Pro, XP), Linux was also used in both
development and testing.
The SCM package installs as a MATLAB mini-toolbox. The installation proceeds as
follows:
1. Unzip the files into a directory called, for example, ‘winner’ and add it to
MATLAB path. See MATLAB command addpath for information on how to
add a directory to MATLAB path.
2. Type ‘help winner’ at MATLAB prompt to get started.
To compile the ANSI-C functions (optional) MATLAB’s mex compiler must be
properly configured. Compilation of the ANSI-C interpolation functions also requires
that GNU Scientific Library [GSL] is properly installed and configured in your system.
1
Wireless World Initiative New Radio
scm_11-01-2005.doc March 6, 2005
Page 5 (18)
3. Description of files included in the package
Table 1 lists the MATLAB and C-files included in the package. A short description of
each file is also given.
Table 1. MATLAB and ANSI-C files included in the distributed package
Filename Description
scm.m
This the main function called by the user to generate channel
matrices. It calls the auxiliary functions that generate bulk
parameters, do antenna pattern interpolation and compute the
actual channel matrices.
scmparset.m
Helper function for setting the default parameter for the first
input struct
linkparset.m
Helper function for setting the default parameter for the second
input struct
antparset.m
Helper function for setting the default parameter for the third
input struct
pathloss.m
Function for computing the default pathloss according to
[3GPP03, Table 5.1]
interp_gain.m
Function for antenna pattern interpolation using MATLAB’s
interpolating functions
scm_core.m
Function for computing “the big for loop” that generates the
channel matrices
generate_bulk_par.m
Function for generating the random “bulk” parameters for
macro and micro cells
interp_gain_c.m MATLAB front end that calls interp_gain_mex.c
scm_mex_core.m Help text file for scm_mex_core.c
scm_mex_core.c
Channel matrix generation implemented in ANSI-C for faster
computation
interp_gain_mex.c
Antenna field pattern interpolation using GNU Scientific
Library (GSL) interpolating functions. This is faster than
interp_gain.m but requires that GSL is installed in the system.
See [GSL] for further information.
cas.m
A utility function for computing the circular angle spread as
defined in [3GPP03, Annex A]. This function is not necessary
for channel matrix generation.
ds.m
A utility function for computing rms delay spread. This
function is not necessary for channel matrix generation.
dipole.m
A utility function that generates the pattern of a slanted dipole
for vertical and horizontal polarizations. This is useful for
creating some simple MIMO antenna configurations.
In addition to the files listed in Table 1 the distribution package also includes this
document, a readme text file and a license.txt file.