Thanks to visit codestin.com
Credit goes to github.com

Skip to content

MIMO OFDM Block Diagram Modeling and Simulation for both Open Loop and Closed Loop MIMO OFDM systems.The modular architecture uses individual blocks (written in C) for the implementation of the various stages in modulation and demodulation. Subroutines ( C code) are also supplied. Paper on Theory and Architecture for Closed Loop MIMO with SVD.

License

Notifications You must be signed in to change notification settings

silicondsp/mimo-ofdm-release

Repository files navigation

MIMO OFDM Block Diagram C Modeling and Simulation

sdsp logo

Linux Tux Developed on Linux.

Icons link githubandlink buildingCredit the Noun Project.

Item

Description

Link

Type

1

Introduction to the Capsim® MIMO OFDM Block Diagram Modeling and Simulation

link

Introduction

2

Computing the Singular Value Decomposition (SVD) with Fixed Point CORDIC Operations

Application to MIMO-OFDM

Paper and Latex File

3

Capsim® Block Diagram MIMO OFDM With Channel Model, Noise and Demodulation of Streams.

link

Screen Shots

4 Results of Block Diagram Simulations Floating Point (LAPACK) versus Fixed Point CORDIC 2x2 SVD Beam Forming MIMO-OFDM link Analysis

5

List of Topologies Included in Repository. See this link for Block Diagrams for Various Topologies

link

Table

6

List of OFDM, MIMO and Channel Model C Blocks Included in Repository

link

Table

7

List of MIMO and Channel Model C Subroutines Included in Repository

link

Table

8

Building Capsim® for MIMO OFDM Modeling and Simulation

link building

Instructions

9

Capsim® Text Mode Kernel (TMK) Installation

GitHub Repository

10

GitHub Repository Capsim® MIMO OFDM Block Diagram Modeling and Simulation

github

GitHub Repository

11

GitHub Repository Capsim® OFDM Block Diagram Modeling and Simulation

github

GitHub Repository

12

OFDM Video Tutorials by Silicon DSP Corporation

youtube

Video Tutorial

13
MIMO OFDM Video Tutorials by Silicon DSP Corporation
youtube
Video Tutorial
14
Video Capsim Block Diagram Modeling MIMO-OFDM Open Loop 2x2 and 2x3 (must view for insights and better understanding of this Repository)
youtube
Video Tutorial




Note many blocks and subroutiunes used are described in the ofdm repository.github

Copyright (c) 1993-2007 Silicon DSP Corporation
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.2 or any later version published by the Free Software
Foundation; with no Invariant Sections, no Front-Cover Texts, and
no Back-Cover Texts. A copy of the license is included in the
section entitled "GNU Free Documentation License". 

Introduction

Silicon DSP Corporation has developed all the C code for a full implementation of a multiple MIMO OFDM Block Diagram Modeling and Simulation Systems for both Open Loop and Closed Loop MIMO OFDM systems. The modular architecture uses individual blocks (written in C) for the implementation of the various stages in modulation and demodulation. Subroutines ( C code) are also supplied with Include files shared between blocks and subroutines. See the Block Diagram of a full system here.

The majority of blocks were written in 2006-2007 with major enhancements throughout the years.

In addition, the Capsim® MIMO OFDM Block Diagram system was extensively used in developing the youtube tutorials on MIMO OFDM.

Click here for the MIMO OFDM Tutorial Videos on youtube.

For the development of the fixed point CORDIC Beam Forming MIMO-OFDM the methodology used by Nariankadu D. Hemkumar was used. See the reference below.

      Nariankadu D. Hemkumar, Efficient VLSI Architectures for Matrix Factorization, Ph.D. Dissertation, Rice University, April 1994.

The primary author of the Open-Loop and Closed Loop floating point and fixed point MIMO work was Dr. Sasan Ardalan at Silicon DSP Corporation. See the OFDM repository at githubfor credits on the OFDM blocks and subroutines.

We highly recommend the following paper for the analysis of the performance of MIMO-OFDM systems:

     Jie Gao, O. C. Ozdural, S. H. Ardalan and Huaping Liu, "Performance modeling of MIMO OFDM systems via channel analysis," in IEEE Transactions on Wireless Communications, vol. 5, no. 9, pp. 2358-2362, September 2006

Also see the results of block diagram simulations floating point (LAPACK) versus fixed point CORDIC 2x2 SVD Beam Forming MIMO-OFDM here linkin this page.

Note that blocks are also provided where instead of fixed point CORDIC, the trigonomic functions are computed in floating point. The blocks help validate the fixed point algorithms.

Note: this repository supports the Text Mode Kernel version of Capsim®. The graphical block diagram is from the soon to be released Capsim® Version 7 which uses Qt® for interactive graphical interface. However, the topology in this Repository are the same. You can use the block names in the screen shot and then use the Capsim® command "to blockname" to go the the block, change parameters and run the simulation. There is a lot of benefit to the non graphical mode in portability and flexibility. The graphical version also supports the text mode operation.

An updated link to Capsim® Version 7 using Qt® will be provided in the Repostory on GitHub. Stay tuned.

Table MIMO OFDM Configurations

Configuration

Tx

Rx

CSI

FFTs

SVD

QR

Rate

Application

1x1 SISO

1

1

No

1

No

No

1x

Lowest Data Rate, Lowest Power

1x2 MRC

1

2

No

2

No

No

1x

Reliable Low Rate. Longer range more power.

2x2 Open Loop

2

2

No

2

2x2

No

2x

Medium Data Rate

2x2 Beam Forming

2

2

Yes

2

2x2

No

2x

Medium Date Rate more reliable then Open Loop

2x3 Open Loop

2

3

No

3

2x2

Yes

2x

Reliable Medium Data Rate

4x2 Beam Forming

4

2

Yes

2

2x2

No

2x

High Down link Data Rate, Reliable Up-link, Low Power Video

3x4 Open Loop

3

4

No

4

3x3

Yes

3x

High Data Rate

4x4 Beam Forming

4

4

Yes

4

4x4

No

4x

Very High Data Rate

1x4 Beam Forming

1

4

Yes

4

4x4

No

1x

Very Long  Range



Capsim® MIMO OFDM 2x2 Open Loop with Channel Modeling and Noise Specification

Capsim® MIMO OFDM 3x2 Open Loop with Channel Modeling and Noise Specificaton

Capsim® Closed Loop SVD MIMO OFDM 2x2 with CSI Feedback Channel Modeling and Noise Specificaton

Capsim® Closed Loop SVD MIMO OFDM 4x2 with CSI Feedback Channel Modeling and Noise Specificaton


Comparison of Received Streams 4x2 SVD MIMO OFDM versus 2x2 SVD MIMO OFDM (Channel 50ns Delay Spread)

Maximum Ratio Combining (MRC) OFDM (Channel 50ns Delay Spread)


SISO (Single Input Single Output) OFDM (Channel 50ns Delay Spread)

Results of Block Diagram Simulations Floating Point (LAPACK) versus Fixed Point CORDIC 2x2 SVD Beam Forming MIMO-OFDM

Floating Point versus Fixed Point 2x2 Closed Loop MIMO OFDM High SNR

LAPACK Floating Point Library, 2x2 Beam Forming MIMO OFDM 64 QAM Constellations for Each Stream High SNR

 

CORDIC Fixed Point 2x2 SVD 2x2 Beam Forming MIMO OFDM 64 QAM Constellations for Each Stream , High SNR

Floating Point versus Fixed Point 2x2 Closed Loop MIMO OFDM Medium SNR

A key comparison is the case where channel noise is added. In this case, we expect that the finite precision fixed point CORDIC SVD will enhance noise and degrade performance compared to the floating point LAPACK implementation. This is shown in the fFigures below where noise variance of 1e-5 was added to each receive chain.

2x2 Beam Forming MIMO OFDM 64 QAM Constellations for Each Stream LAPACK Floating Point Library, Medium SNR

2x2 Beam Forming MIMO OFDM 64 QAM Constellations for Each Stream CORDIC Fixed Point 2x2 SVD , Medium SNR

More Results on Comparing Floating Point LAPACK versus Fixed Point CORDIC 2x2 SVD

To show that the fixed point CORDIC 2x2 SVD tracks the floating point SVD in a 2x2 MIMO OFDM system we show the plot of the ratio of Singular Values for various carriers (52 for IEEE 802.11a streams) in the Figure below with additive noise(variance 1e-5). Note that the ratios track very well over the 52 carriers. The deviation is at the high Singular Value Ratio which corresponds to an ill conditioned channel at that carrier frequency. The enhancement of roundoff noise is caused at this point and other ill conditioned channel conditions.

Singular Value Ratio: Floating Point versus Fixed Point 2x2 Closed Loop For Each Carrier(52)

List of Topologies (Block Diagrams and Hierarchical Blocks and TCL Scripts)

ItemTopology NameDescriptionAuthorDate
1 mimo_2x2_eq.t MIMO OFDM Open Loop 2 Tx and 2 Rx Antennas Ardalan 2007
2 mimo_2x3_eq_equal.t MIMO OFDM Open Loop 2 Tx and 3 Rx Antennas Ardalan 2007
3 2x3_mimo_eq_strong_weak.t MIMO OFDM Open Loop 2 Tx and 3 Rx Antennas one strong stream and one weak stream due to channel. Ardalan 2007
4 svdmimo_2x2.t SVD Closed Loop MIMO OFDM 2 Tx and 2 Rx Antennas Ardalan 2007
5 svdmimo_4x2.t SVD Closed Loop MIMO OFDM 4 Tx and 2 Rx Antennas Ardalan 2007
6 intlvrMapperiFFT.t Hierarchical Block (HBlock) Interleaver 64 QAM Mapper Pilot Insertion Inverse FFT Block Diagram Link Ardalan 2002
7 svdmimo_4x2_float_wk.t SVD Closed Loop MIMO OFDM 4 Tx and 2 Rx Antennas CORDIC Floating Point Ardalan 2007
8 svdmimo_4x2_fxp_wk.t SVD Closed Loop MIMO OFDM 4 Tx and 2 Rx Antennas CORDIC Fixed Point (32/16 bit) Ardalan 2007
9 svd_fxp_2x2_mimo.t SVD Closed Loop MIMO OFDM 2 Tx and 2 Rx Antennas CORDIC Fixed Point (32/16 bit) Ardalan 2007
10 svd_fp_2x2_mimo.t SVD Closed Loop MIMO OFDM 4 Tx and 2 Rx Antennas CORDIC Floating Point Ardalan 2007
11 siso_eq.t Single Input Single Output (SISO) OFDM Ardalan 2007
12 mimo_mrc.t Maximum Ratio Combining (MRC) 2 Tx and 1 Rx Antennas Ardalan 2007
13 Encoder.t Data Field/Scramble/Convolutional Encoder/Puncture HBlock Block Diagram Link Ardalan 2002
14        
18        

List of Blocks

ItemBlock NameDescriptionAuthorDate
1 cxmimoeqzf.s Open Loop MIMO Equalizer Automatically adjust number of channels of Tx and Rx antennas (Streams) Ardalan 2007
2 cxmimosvd.s Closed Loop SVD MIMO with LAPACK Ardalan 2007
3 cxmimo_2x2_svd.s Closed Loop SVD MIMO CORDIC Fixed Point Ardalan 2007
4 cxmimo_2x2_svd_fp.c Closed Loop SVD MIMO CORDIC Floating Point Ardalan 2007
5 ifftofdm54.s inverse FFT 54 Mbps Ardalan 2002
6 ifftofdmsvd.s inverse FFT 54 Mbps SVD with CSI Support Ardalan 2002/2007
7 prcxmat.s Print the complex matrix samples. Ardalan 2007
8 cxequalizezf..s OFDM Frequency Equalizer Ardalan 2007
9 cxmimoch.s MIMO Channel Auto Fan-In and Fan-Out Automatically adjust number of channels per connections for Tx Antennas and Rx antennas. Ardalan 2007
10 rmcpfx.s Remove Cyclic Prefix Ardalan 2002
11 evm.s Calculate EVM with specifie ideal QAM Map (qam64.dat) Ardalan 2006
12 stmat2x4.c Convert two streams to 4 streams using orthogonal steering matrix Ardalan 2007
13 stmat4x2.c Convert Four streams to two streams based on transpose of 2x4 using orthogonal steering matrix Ardalan 2007
14 fwfft.s Forward FFT    
15    

Table of Subroutines

ItemBlock NameDescriptionAuthorDate
1 Krn_Compute2x2SVDCxMatrix.c Compute SVD 2x2 Complex Matrix CORDIC Fixed Point Adalan 2007
2 Krn_Compute2x2SVDCxMatrixFP.c Compute SVD 2x2 Complex Matrix CORDIC Floating Point Adalang 2007
3 CordicRotate.c Fixed Point CORDIC Rotate R.Maslennikov, A.Khoryaev 2003
4 CordicArctan.c Fixed Point CORDIC Arc Tangent. R.Maslennikov, A.Khoryaev 2003
5 krn_dsp.c Complex Matrix Operations and Printing Ardalan 2007
6 krn_lapack.c API for Lapack (via CLAPACK) for Eigenvaluue/SVD/Inverse, Complex and Real. Ardalan 2007
7 MatrixUtils.c Matrix Operations Utilities Fixed Point Ardalan 2007
8        


Instructions for Running Capsim® MIMO-OFDM Block Diagram Simulation.

1- Obtain the Capsim® Text Mode Kernel (CapsimTMK) for Linux from:

GitHub Capsim Text Mode Repository github

CapsimTMK is distributed with hundreds of blocks. To simulate OFDM systems the blocks in this repository have to be incorporated into Capsim® including subroutines.

This Repository contains the Topologies for MIMO OFDM block diagram modeling inlcuding required blocks and subroutines.

Note: Follow the Getting Started Guidelines in the CapsimTMK Repository.

2- Once CapsimTMK is installed just run 'make' in this repository's Build directory.

3- Then change to the directory 'Topologies' and run:

../Build/capsim mimo_2x3_eq_equal.t

The block diagram for the mimo_2x3_eq_equal.t topology is shown here.

Two files will be created:

 Welcome to Capsim Text Mode Kernel (CapsimTMK)
(c)1989-2017 Silicon DSP Corporation
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
http://www.silicondsp.com
Version 6.2
Running topology  mimo_2x3_eq_equal.t 
model name:  mimo_2x3_eq_equal
...
scatter created file: Scatter0.sct 
scatter created file: Scatter2.sct 

The two scatter plots showing the 64 QAM constellations can be plotted using the command:

source xscatter

The xscatter file is:

java -jar /home/research/SDSP_Github/capsim-tmk/TOOLS/IIPPlot.jar -scatter Scatter0.sct -scatter Scatter1.sct

The Java program IIPPlot.jar is provided with the CapsimTMK repository. Note the nice capability to plot multiple files..

For IIPlot Information and Download click here.

With Linux you can send the plot application to run in the background to put plots side by side when you want to display multiple plots. Then bring them to the forgound and use Control C to exit.

Hierarchical Blocks

Encoder.t

Hierarchical Block (HBlock) Interleaver 64 QAM Mapper Inverse FFT


Linux Tux By Larry Ewing, Simon Budig, Garrett LeSage - https://isc.tamu.edu/~lewing/linux/, http://www.home.unix-ag.org/simon/penguin/, garrett/Tux on GitHub, CC0, Link

 


Capsim® uses LAPACK via CLAPACK.

Anderson, E. and Bai, Z. and Bischof, C. and Blackford, S. and Demmel, J. and Dongarra, J. and Du Croz, J. and Greenbaum, A. and Hammarling, S. and McKenney, A. and Sorensen, D., LAPACK Users' Guide,Third Edition,Society for Industrial and Applied Mathematics, Philadelphia, PA, ISBN = 0-89871-447-8, 1999


sdsp logo

Silicon DSP Corporation

2002-2025

https://www.ccdsp.org

About

MIMO OFDM Block Diagram Modeling and Simulation for both Open Loop and Closed Loop MIMO OFDM systems.The modular architecture uses individual blocks (written in C) for the implementation of the various stages in modulation and demodulation. Subroutines ( C code) are also supplied. Paper on Theory and Architecture for Closed Loop MIMO with SVD.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published