**5. Massive MIMO design and implementation on Omnet++**

The latest release of the Omnet++ simulator (the 5.3 version), does not offer a support to asymmetrical communications and does not implement the latest IEEE802.11ac standard. More specifically, Omnet++ offers a complete support for 802.11b/g and the most recent 802.11n standard, but does not support the specifications related to the 802.11ac standard. Furthermore, these features are not sufficient for emulating the latest massive MIMO technologies in the simulator. In fact, the maximum data rate supported in the *radio* module used in the current latest version of Omnet++ is 54 Mbps, along with a 64-QAM modulation, according to the 802.11n specifications. In view of these issues, it is possible to extend the Omnet++ features both by providing a full 802.11ac radio environment and a new massive MIMO antenna module suitable for 5G wireless network environments operating according to the IEEE802.11ac.

#### **5.1 IEEE802.11ac implementation**

The first step consists of the implementation of the 802.11ac standard in the physical modules of Omnet++. Basically, this process involves modifications as regards two microlayers: the *error model* and the *modulation*. The error model determines the computation of the bit error rate (BER) curves and the error probability in function of the data rate. Obviously, as already stated, the current error models

are determined by considering the maximum data rate of 54 Mbps. For this reason, this aspect should be fixed in order to design a support of data rates in the order of the Gbps. The modulation is the feature that offers the possibility to achieve the data rate values specified for VHT (very high throughput) and in the current latest version Omnet++ is limited to 64-QAM; this aspect determines the data rate upper-bound in the simulations. The family of modules related to the error model and modulation are contained in the *physicallayer* package.

**Figure 11** illustrates the structure of the *physicallayer* package. The package consists of a remarkable number of subpackages, each one determining a feature for the physical layer, observing that the error model and the modulation microlayers are contained in this package along with main modeling channel attributes, such as the propagation and the pathloss management. Thus, in order to understand updates introduced for implementing the IEEE802.11ac standard, the following figures show a block diagram including the main Omnet++ classes (known also as *modules*) involved in the modification process.

**Figure 12** represents the module block diagram related to the implementation of the VHT features for the transmitter at physical layer. Each class/module is represented by a rectangle, while the dashed-line arrows and the continued-line arrows indicate the *use* and the *inheritance* relationship, respectively. The *Ieee80211Radio* module uses the *Ieee80211TransmitterBase* module that is defined by the following NED (network description language) code lines:

In **Listing 1**, the main parameters of the *Ieee80211TransmitterBase* module are illustrated. The *opMode* parameter indicates the kind of IEEE802.11 standard that is determined by a lower-case letter. In this regard, we modified the default code by adding the ac operation mode. Note that also the 5-GHz frequency band configurations have been added. The transmitter uses the class *Ieee80211CompliantBands* for retrieving the available bands and the *Ieee802ModeBase* class obtaining the operation mode. This latest class inherits the parameters offered by the classes *Ieee80211VHTMode* and *Ieee80211VHTCode* that contains the new data rate values specified by the 802.11ac standard according to the VHT specifications. For this purpose, we added all the data rate values provided by the standard by varying the carrier frequency and the number of spatial streams. The *Ieee80211VHTCode* is the module that computes the error probability functions depending on the kind of modulation used in simulation. A similar block diagram could be designed for the receiver.

In the diagram of **Figure 13**, it is possible to analyze the hierarchical relationships at the receiver. It is important to highlight that the error model is mainly used by the receiver rather than the transmitter. Omnet++ uses some of the error models offered from the *NS3* (Network Simulator 3) simulator that are the Yans and the

**99**

package are:

QAM modulation.

**Figure 12.**

**Listing 1.**

*VHT implementation in the transmitter.*

*Ieee80211TransmitterBase.ned definition.*

*Smart Antenna Systems Model Simulation Design for 5G Wireless Network Systems*

Nist models [31]. Basically, these error modules compute the BER probability values in function of the modulation. For enabling the 802.11ac, we extended the default code of Omnet++ by adding the BER computation functions for 256, 512, and 1024-

**Listing 2** contains a part of the full code of the *Ieee80211NistErrorModel* class. The function *get256QamBer* computes and returns the BER relating to a 256-QAM modulation; the BER is evaluated by computing the Zeta function that depends on the SINR.

Once we modified the physical layer in order to support the specifications of the VHT standard including the error model and modulations, we designed the massive MIMO antenna modules. The antenna modules are defined in the *physicallayer* package, as depicted in **Figure 12**. Actually, the default antennas in the *physicallayer*

• *ConstantGainAntenna*: A simple antenna having a unique basic parameter: the gain. As suggested by the name, the gain set in the configuration file remains

**5.2 Massive MIMO module design and implementation**

constant, while a simulation run is executed.

*DOI: http://dx.doi.org/10.5772/intechopen.79933*

#### **Figure 11.**

*Physicallayer Omnet++ package structure.*

*Smart Antenna Systems Model Simulation Design for 5G Wireless Network Systems DOI: http://dx.doi.org/10.5772/intechopen.79933*

**Figure 12.** *VHT implementation in the transmitter.*

*Array Pattern Optimization*

are determined by considering the maximum data rate of 54 Mbps. For this reason, this aspect should be fixed in order to design a support of data rates in the order of the Gbps. The modulation is the feature that offers the possibility to achieve the data rate values specified for VHT (very high throughput) and in the current latest version Omnet++ is limited to 64-QAM; this aspect determines the data rate upper-bound in the simulations. The family of modules related to the error model

**Figure 11** illustrates the structure of the *physicallayer* package. The package consists of a remarkable number of subpackages, each one determining a feature for the physical layer, observing that the error model and the modulation microlayers are contained in this package along with main modeling channel attributes, such as the propagation and the pathloss management. Thus, in order to understand updates introduced for implementing the IEEE802.11ac standard, the following figures show a block diagram including the main Omnet++ classes (known also as *modules*)

**Figure 12** represents the module block diagram related to the implementation of the VHT features for the transmitter at physical layer. Each class/module is represented by a rectangle, while the dashed-line arrows and the continued-line arrows indicate the *use* and the *inheritance* relationship, respectively. The *Ieee80211Radio* module uses the *Ieee80211TransmitterBase* module that is defined by the following

In **Listing 1**, the main parameters of the *Ieee80211TransmitterBase* module are illustrated. The *opMode* parameter indicates the kind of IEEE802.11 standard that is determined by a lower-case letter. In this regard, we modified the default code by adding the ac operation mode. Note that also the 5-GHz frequency band configurations have been added. The transmitter uses the class *Ieee80211CompliantBands* for retrieving the available bands and the *Ieee802ModeBase* class obtaining the operation mode. This latest class inherits the parameters offered by the classes *Ieee80211VHTMode* and *Ieee80211VHTCode* that contains the new data rate values specified by the 802.11ac standard according to the VHT specifications. For this purpose, we added all the data rate values provided by the standard by varying the carrier frequency and the number of spatial streams. The *Ieee80211VHTCode* is the module that computes the error probability functions depending on the kind of modulation used in simulation. A similar

In the diagram of **Figure 13**, it is possible to analyze the hierarchical relationships at the receiver. It is important to highlight that the error model is mainly used by the receiver rather than the transmitter. Omnet++ uses some of the error models offered from the *NS3* (Network Simulator 3) simulator that are the Yans and the

and modulation are contained in the *physicallayer* package.

involved in the modification process.

NED (network description language) code lines:

block diagram could be designed for the receiver.

**98**

**Figure 11.**

*Physicallayer Omnet++ package structure.*


**Listing 1.** *Ieee80211TransmitterBase.ned definition.*

Nist models [31]. Basically, these error modules compute the BER probability values in function of the modulation. For enabling the 802.11ac, we extended the default code of Omnet++ by adding the BER computation functions for 256, 512, and 1024- QAM modulation.

**Listing 2** contains a part of the full code of the *Ieee80211NistErrorModel* class. The function *get256QamBer* computes and returns the BER relating to a 256-QAM modulation; the BER is evaluated by computing the Zeta function that depends on the SINR.
