Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

FAQ - Frequently Asked Questions about Mimolib

Table of contents


1. About this file


This file collects questions that have been asked around the simulation of the MIMO systems in this mimolib library.

Detailed Q&A


2. Antenna element spacing


Q: Could you tell me in which file we can alter the spacing of the antenna elements?

A: Changing the spacing of the antenna elements involves the following places:

1. Write a new class derived from mimo::AntennaArray (e.g. MyArray), just like e.g. mimo::UniformCircularLambdaHalf defined at the bottom of mimolib/src/mimo-channel.h . You can reimplement only the get_phase() function which is used by the default get_steeringVector(), or you can also reimplement get_steeringVector().

2. Add a new possible value to the property "array_geometry" of the channel classes. This is done in src/mimo-channel.cpp line 100 -- you see the definition of the property with this name, and the possible values are defined in the const char array "enum_a" right in front of that. Just add a new value there. (Don't forget to have a trailing 0 (zero) as the last value of the array).

3. For the mimo::WSSUSChannel, add code that will use your new MyArray class instead of one of the others, depending on the property "array_geometry". This means in src/wssuschannel.cpp line 96 you have to add another else-if-clause.

4. Then (after make install) run your simulation, and change the entry "array_geometry" in the parameter file to your newly created value, just as you like.

3. Antenna Coupling


Q: What changes are necessary to include the effects of antenna coupling?

A: There is a "quick & dirty" implementation of antenna coupling in the class mimo::WSSUSChannel but not in mimo::MaxEntropyChannel.

It is a not-very-sophisticated modelling of antenna coupling: The H matrix is multiplied with tri-diagonal matrix C_r from the left and C_t from the right, where the next-to-diagonal elements are the real value alpha and the diagonal elements are the real value (1-alpha) (multiplied by an additional scaling factor so that the norm of H is unchanged). In particular, this matrix C_r (and C_t) does *not* include any phase shifts -- instead, it multiplies only with real values, i.e. the amplitudes are all coupled with phase shift zero.

To try this on your own: Add the entry

antenna_coupling_ampl: 0.1 // or whatever value

with a nonzero value to the parameter file in the section concerning the channel block. The definition of this property can be found in mimo-channel.cpp:180. The implementation of this matrix model can be found in wssuschannel.cpp:792 through 829. Note that this value is directly used as this real scalar alpha mentioned above. The values in a presentation were: -20dB = 0.1; -15dB = 0.179; -10dB = 0.316; -6dB = 0.501

If the property "antenna_coupling_ampl" is set to zero, then this C_r and C_t matrices are not used.

Generated on Tue Aug 9 14:43:11 2005 for mimolib by  doxygen 1.4.1