Ieee80211LayeredOfdmTransmitter

Package: inet.physicallayer.wireless.ieee80211.bitlevel

Ieee80211LayeredOfdmTransmitter

compound module

The level of detail parameter determines which submodules of the transmitter will be used:

Level (domain) Submodules
PACKET -
BIT signal encoder, data encoder
SYMBOL signal modulator, data modulator + bit level modules
SAMPLE pulse shaper + bit, symbol level modules + (digital/analog converter)

Important: We have no default module implementation for sample level features.

Note that if a digital/analog converter is provided for the transmitter, then it will be only used at the sample level. Otherwise, since analog representation is obligatory, a simplified, built-in (scalar) analog model is used at all levels.

Note that in non-compliant mode, whatever the level of detail is, you must always set all submodules. If the current level of detail does not demand a specific submodule, it is necessary and sufficient to implement those methods of that submodule which provide metadata about its settings.

For example, if the level of detail is bit level, you don't have to implement a complete modulator. It is enough to implement a dummy modulator that can give information about its subcarrier modulation (e.g. BPSK).

signalEncoder : like IEncoder

IEncoder: Module interface for bit-level encoders used in wireless communication systems.

Source:
signalEncoder: <default("")> like IEncoder if typename != "" {
    @display("p=100,100");
} dataEncoder : like IEncoder

IEncoder: Module interface for bit-level encoders used in wireless communication systems.

Source:
dataEncoder: <default("")> like IEncoder if typename != "" {
    @display("p=300,100");
} dataModulator : like IModulator

IModulator: Interface for digital modulator modules that convert sequences of bits into sequences of symbols.

Source:
dataModulator: <default("")> like IModulator if typename != "" {
    @display("p=100,200");
} signalModulator : like IModulator

IModulator: Interface for digital modulator modules that convert sequences of bits into sequences of symbols.

Source:
signalModulator: <default("")> like IModulator if typename != "" {
    @display("p=300,200");
} pulseShaper : like IPulseShaper

IPulseShaper: Interface for pulse shaping components in wireless communications.

Source:
pulseShaper: <default("")> like IPulseShaper if typename != "" {
    @display("p=100,300");
} digitalAnalogConverter : like IDigitalAnalogConverter

IDigitalAnalogConverter: Interface for digital-to-analog converter modules that transform discrete-time signal samples into...

Source:
digitalAnalogConverter: <default("")> like IDigitalAnalogConverter if typename != "" {
    @display("p=100,400");
}

Usage diagram

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Extends

Name Type Description
Module compound module

Base module for all INET compound modules.

Parameters

Name Type Default value Description
displayStringTextFormat string ""

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

isCompliant bool true
levelOfDetail string "symbol"
channelSpacing double nan Hz
power double
centerFrequency double
bandwidth double

Properties

Name Value Description
class Ieee80211LayeredOfdmTransmitter
display i=block/tx

Source code

// The level of detail parameter determines which submodules of
// the transmitter will be used:
//
// <table border="1">
//   <tr>  <th>Level (domain)</th>  <th>Submodules</th>                                                             </tr>
//   <tr>  <td>PACKET</td>          <td>-</td>                                                                      </tr>
//   <tr>  <td>BIT</td>             <td>signal encoder, data encoder</td>                                           </tr>
//   <tr>  <td>SYMBOL</td>          <td>signal modulator, data modulator + bit level modules</td>                   </tr>
//   <tr>  <td>SAMPLE</td>          <td>pulse shaper + bit, symbol level modules + (digital/analog converter)</td>  </tr>
// </table>
//
// Important: We have no default module implementation for sample level
// features.
//
// Note that if a digital/analog converter is provided for the
// transmitter, then it will be only used at the sample level. Otherwise,
// since analog representation is obligatory, a simplified, built-in
// (scalar) analog model is used at all levels.
//
// Note that in non-compliant mode, whatever the level of detail is,
// you must always set all submodules. If the current level of detail
// does not demand a specific submodule, it is necessary and sufficient
// to implement those methods of that submodule which provide metadata
// about its settings.
//
// For example, if the level of detail is bit level, you don't have to
// implement a complete modulator. It is enough to implement a dummy
// modulator that can give information about its subcarrier modulation
// (e.g. BPSK).
//
module Ieee80211LayeredOfdmTransmitter extends Module like ITransmitter
{
    parameters:
        bool isCompliant = default(true);
        string levelOfDetail @enum("packet","bit","symbol","sample") = default("symbol");
        double channelSpacing @unit(Hz) = default(nan Hz);
        double power @unit(W);
        double centerFrequency @unit(Hz);
        double bandwidth @unit(Hz);
        @class(Ieee80211LayeredOfdmTransmitter);

        @display("i=block/tx");
    submodules:
        signalEncoder: <default("")> like IEncoder if typename != "" {
            @display("p=100,100");
        }
        dataEncoder: <default("")> like IEncoder if typename != "" {
            @display("p=300,100");
        }
        dataModulator: <default("")> like IModulator if typename != "" {
            @display("p=100,200");
        }
        signalModulator: <default("")> like IModulator if typename != "" {
            @display("p=300,200");
        }
        pulseShaper: <default("")> like IPulseShaper if typename != "" {
            @display("p=100,300");
        }
        digitalAnalogConverter: <default("")> like IDigitalAnalogConverter if typename != "" {
            @display("p=100,400");
        }
}

File: src/inet/physicallayer/wireless/ieee80211/bitlevel/Ieee80211LayeredOfdmTransmitter.ned