External Modulator File
The external modulator file allows you to specify a custom modulation spectral efficiency, code rate, and/or power spectral density. A common use of this is to incorporate encoding and/or a specialized shape for the power spectral density. The external file is comprised of special keywords and associated user values.
External Modulator Data File Formats
There are two allowable formats for an external modulator file:
Specifying a Custom Encoding Format
When an external modulator file is used to define encoding, the following key words are used:
Keyword | Description | Valid Values | Default Value |
---|---|---|---|
Description | Optional, one-line description of the contents of the file. | N/A | N/A |
ModulationName |
A required keyword representing a user name to be given to your modulation. This field is used by the demodulator when computing a BER. If this value matches that of a modulator built into STK, the values within the file will be used to override the built-in values (e.g., ModulationEfficiency, CodeRate, PSD, etc). |
N/A | N/A |
ModulationEfficiency |
A required keyword that specifies the spectral efficiency of your modulation before any encoding. It is specified in Hz per bit per second (Hz/bit/sec). |
> 0.0 | N/A |
CodeRate |
An optional keyword that defines the rate of the encoding scheme. For example, an encoding scheme which takes in 1 information bit and encodes it into 2 encoded bits has a code rate of 0.5. |
> 0.0 | 1.0 |
PSDShape |
A required keyword used to create the signal’s power spectral density. |
One of STK’s Common Analytical or Coded Modulator types |
N/A |
FrequencyStep | An optional keyword that determines the frequency resolution of the PSD and overrides the internal frequency step used by STK. | > 0 | 1.0e4 Hz |
The CodeRate and ModulationEfficiency represent the bandwidth ratio (Hz/bps) of the custom coded signal. The bandwidth ratio (including coding) can be understood by the following equation::
where
Meff is the un-coded bandwidth ratio (modulation spectral efficiency), as defined in Modulation Bandwidth Ratios.
Rcode is the code rate of the convolution or block code.
The following example can be used to create a BPSK modulated signal with a rate ½ encoding and a theoretical PSD. The ModulationEfficiency and CodeRate produces the increased bandwidth associated with a code rate of ½, the PSDShape produces the appropriate PSD shape, and the ModulationName allows a Receiver using a Demodulator defined with the same ModulationName to successfully demodulate the signal (produce the BER).
The Use Signal PSD option (in the GUI) must be checked for the PSDShape value to be utilized. To set this option, go to the Transmitter's Basic Definition properties page and select the Modulator tab. If this check box is not checked, a rectangular PSD is used.
Example Format for Specifying a Custom Encoding
ModulationName MY_BPSK ModulationEfficiency 2.0 CodeRate 0.5 PSDShape BPSK
A file with unknown tags is considered an error condition.
Specifying a Custom Power Spectral Density Format
When an external modulator file is used to create a custom power spectral density, the following key words are used:
Keyword | Description | Valid Values | Default Value |
---|---|---|---|
Description | Optional, one-line description of the contents of the file. | N/A | N/A |
ModulationName |
A required keyword representing a user name to be given to your modulation. This field is used by the demodulator when computing a BER. |
N/A | N/A |
PSDDataScale |
An optional keyword that lets you specify whether the PSD magnitude is given as a dB or linear value. |
dB or Linear |
dB |
PSDOrderOfInterpolation |
Optional keyword which specifies the interpolation order for computing PSD magnitude for a given frequency value. If the frequency value falls between PSD magnitude data points, the data is interpolated to compute the magnitude. The default interpolation process is a first order linear fit. Yet, you can choose any value from 1 to 3. Order 1 will do a piecewise linear approximation and interpolate values on a straight line between points. Order 1 is the most stable. Higher order curve fitting can cause oscillation (ringing) in the computed data, especially when the original data points have sudden changes in values. When the external modulator's interpolation value is not specified or is an out-of-range value, it will default to a value of 1. |
1-3 |
1 |
PSDPoints |
Indicates the start of the PSD data points. The data points must follow PSDPoints and must consist of (Frequency, PSD Magnitude) pairs separated by white space. Frequency must be entered in Hz units. |
N/A |
N/A |
Example Format for Specifying a Custom Power Spectral Density
The following example explicitly specifies the PSD magnitude.
The Use Signal PSD option (in the GUI) must be checked for the specified PSD magnitude values to be utilized. To set this option, go to the Transmitter's Basic Definition properties page and select the Modulator tab. If this check box is not checked, a rectangular PSD over the band spanning the magnitude values will be used.
ModulationName MY_BPSK PSDOrderOfInterpolation 1 PSDDataScale Linear PSDPoints -12.0e6 0.0 -11.0e6 1.0 -10.0e6 0.0 -9.0e6 1.0 -8.0e6 0.0 -7.0e6 1.0 -6.0e6 0.0 -5.0e6 1.0 -4.0e6 0.0 -3.0e6 1.0 -2.0e6 0.0 0.0 1.0 2.0e6 0.0 3.0e6 1.0 4.0e6 0.0 5.0e6 1.0 6.0e6 0.0 7.0e6 1.0 8.0e6 0.0 9.0e6 1.0 10.0e6 0.0 11.0e6 1.0 12.0e6 0.0
The inclusion of ModulationEfficiency, CodeRate, and PSDShape are not allowed for this format.