Week 07 – MIMO-OFDM

This week, I started with the last big milestone for this summer: The integration of the MIMO algorithms into an OFDM transceiver system.

In the first part of this article I want to describes the requirements and how I imagine the out coming result of this MIMO-OFDM transmitter. This includes intensive thoughts about the transceiver’s structure. After that, I want to present my detailed step-by-step plan of how I want to approach this project. Continue reading “Week 07 – MIMO-OFDM”


Week 06 – Expanding the V-BLAST scheme to MxM

I expanded the 2×2 V-BLAST zero-forcing scheme to a general MxM scheme. For a general MxM matrix, the inverse cannot be precalculated by hand as I did for the 1×1 and 2×2 scheme. The inversion of a possibly large channel matrix can quickly get a very complex problem which needs a lot of computation power, especially if it is recalculated frequently, for example each micro second when assuming a coherence time of 1μs and therefore a CSI update rate of 1MHz. Continue reading “Week 06 – Expanding the V-BLAST scheme to MxM”

Week 05 – About Inverses and Pseudo-Inverses

Last week, I implemented a V-BLAST encoder which demultiplexes a data stream into M parallel streams that are simultaneously sent through the same channel. This was a really simple task which granted us a data rate increase of factor M without the need of a complex transmitter complexity.

This week, we have to ‘clean up the mess we made’ at the receiver, meaning that we have to demultiplex the parallel data streams again by separating the M parallel symbols which are sent from one transmitting antenna, respectively, to each of the N receiving antennas. Continue reading “Week 05 – About Inverses and Pseudo-Inverses”

Week 03 – Documentation

I think about the proposed MIMO feature not just as a functioning tool but as well as an instructive and attractive feature for GNU Radio beginners to understand MIMO.
Therefore, I started to write a little in-tree top-level documentation which includes both, an introduction to the theoretical background of MIMO and a practical usage manual of all the GNU Radio blocks which are included in the section MIMO. Continue reading “Week 03 – Documentation”

Week 02 – Differential STBC

I implemented a differential STBC as another useful MIMO scheme for GNU Radio.

As in SISO systems, a differential modulation makes the presence of CSI at the receiver redundant. The price we are paying for this enormous simplification of the receiver is a loss of approximately 3dB in SNR.

The algorithm of this implementation follows [1]. Basically this is the Alamouti STBC which is expanded about its differential feature. Continue reading “Week 02 – Differential STBC”

Week 01 – Alamouti Code

The famous Alamouti Code is now a part of GNU Radio’s basic MIMO capability! Read more about the Alamouti code itself and my implementation in this article.

Space Time Block Codes

Using a Multiple Input Multiple Output (MIMO) system adds the new dimension space (via multiple antennas) to the pool of  degrees of freedom, next to frequency, time, code, polarization, etc., that a system designer can use. This gives the possibility to distribute the signal not just over time, but over an other (or multiple) dimension. We all know this technique from Frequency Division Multiplexing (FDM), where the data is split into multiple streams which are simultaneously transmitted over time, each on a different sub-carrier.

Continue reading “Week 01 – Alamouti Code”