Package: inet.physicallayer.wireless.ieee80211.bitlevel
Ieee80211LayeredOfdmTransmitter
compound moduleThe 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).
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