3.2.6. Modem parameters

AFF3CT comes with a set of predefined modems. A modem transforms a sequence of bits into a suitable form for the transmission on a physical medium. In the AFF3CT “philosophy”, the modem is a module containing three tasks: modulate, filter and demodulate (read the Philosophy section for more information about modules and tasks).

3.2.6.1. --mdm-type

Type:text
Allowed values:BPSK CPM OOK PAM PSK QAM SCMA USER
Default:BPSK
Examples:--mdm-type SCMA

Select the modulation type.

Description of the allowed values:

Value Description
BPSK Select a BPSK modulation.
CPM Select a Continuous Phase Modulation (CPM) [AS81][ARS81].
OOK Select an On-Off Keying (OOK) modulation.
PAM Select a Pulse-Amplitude Modulation (PAM).
PSK Select a Phase-Shift Keying (PSK) modulation.
QAM Select a rectangular Quadrature-Amplitude Modulation (QAM).
SCMA Select a Sparse Code Multiple Access (SCMA) modulation [NB13].
USER Select a user defined constellation (to use with the --mdm-const-path parameter).

3.2.6.2. --mdm-implem

Type:text
Allowed values:FAST STD
Default:STD
Examples:--mdm-implem FAST

Select the implementation of the modem.

Description of the allowed values:

Value Description
STD Select a standard implementation working for any modem.
FAST Select a fast implementation, only available for the BPSK modem at this time.

3.2.6.3. --mdm-bps

Type:integer
Default:1
Examples:--mdm-bps 1

Set the number of bits used to generate a symbol (BPS). This parameter has no effect on the BPSK and OOK modems where the BPS is forced to 1. This is the same for the SCMA modem where the BPS is forced to 3.

Note

For the QAM modem, only even BPS values are supported.

3.2.6.4. --mdm-const-path

Type:file
Rights:read/write
Examples:--mdm-const-path ../conf/mod/16QAM_ANTI_GRAY.mod

Give the path to the ordered modulation symbols (constellation), to use with USER modem.

An ASCII file is expected, for instance here is the definition of a 16-QAM with an anti-Gray mapping (the lines starting with a # are ignored):

# 0000
 3  3
# 0001
-3 -3
# 0010
-1  3
# 0011
 1 -3
# 0100
-3  1
# 0101
 3 -1
# 0110
 1  1
# 0111
-1 -1
# 1000
 1 -1
# 1001
-1  1
# 1010
-3 -1
# 1011
 3  1
# 1100
-1 -3
# 1101
 1  3
# 1110
 3 -3
# 1111
-3  3

Warning

The --mdm-bps parameter has to be set accordingly to the given constellation. In the previous example, --mdm-bps 4 has be added to the command line.

3.2.6.5. --mdm-max

Type:text
Allowed values:MAXS MAXSS MAXL MAX
Examples:--mdm-max MAX

Select the approximation of the \(\max^*\) operator used in the PAM, QAM, PSK, CPM and user demodulators.

Description of the allowed values:

Value Description
MAXS \(\max^*(a,b) = \max(a,b) + \log(1 + \exp(-|a - b|))\).
MAXSS \(\max^*(a,b) \approx \max(a,b) + d\) with \(d = \begin{cases} 0 & \text{if } d >= 37\\ \exp(-|a - b|) & \text{if } 9 <= d < 37 \\ \log(1 + \exp(-|a - b|)) & \text{else} \end{cases}\).
MAXL \(\max^*(a,b) \approx \max(a,b) + \max(0, 0.301 - (0.5 |a - b|))\).
MAX \(\max^*(a,b) \approx \max(a,b)\).

MAXS for Max Star is the exact \(\max^*\) operator. MAXSS for Max Star Safe allows to avoid numeric instabilities due the exponential operation and the limited precision of the floating-point representation. MAXL for Max Linear is a linear approximation of the \(\max^*\) function. MAX for Max is the simplest \(\max^*\) approximation with only a \(\max\) function.

3.2.6.6. --mdm-no-sig2

Turn off the division by \(\sigma^2\) in the demodulator where \(\sigma\) is the Gaussian noise variance.

3.2.6.7. --mdm-cpm-k

Type:integer
Default:1
Examples:--mdm-cpm-k 1

Set the CPM index numerator.

3.2.6.8. --mdm-cpm-p

Type:integer
Default:2
Examples:--mdm-cpm-p 1

Set the CPM index denominator.

3.2.6.9. --mdm-cpm-L

Type:integer
Default:2
Examples:--mdm-cpm-L 1

Set the CPM pulse width (also called memory depth).

3.2.6.10. --mdm-cpm-upf

Type:integer
Default:1
Examples:--mdm-cpm-upf 1

Select the symbol upsampling factor in the CPM.

3.2.6.11. --mdm-cpm-map

Type:text
Allowed values:GRAY NATURAL
Default:NATURAL
Examples:--mdm-cpm-map GRAY

Select the CPM symbols mapping layout.

Description of the allowed values:

Value Description
GRAY Gray code switching only one bit at a time from a symbol to the following.
NATURAL The natural binary code incrementing the value from a symbol to the next one.

3.2.6.12. --mdm-cpm-ws

Type:text
Allowed values:GMSK RCOS REC
Default:GMSK
Examples:--mdm-cpm-ws GMSK

Select the CPM wave shape.

Description of the allowed values:

Value Description
GMSK Gaussian Minimum Shift Keying.
RCOS Raised COSinus.
REC RECtangular.

3.2.6.13. --mdm-cpm-std

Type:text
Allowed values:GSM
Examples:--mdm-cpm-std GSM

Set the CPM parameters according to a standard.

Description of the allowed values:

Value Parameter Value Description
GSM
1
5
1
2
3
NATURAL
GMSK
Bit per symbol.
Upsampling factor.
Modulation index numerator.
Modulation index denominator.
Memory depth.
Mapping layout.
Wave shape.

Note

When this parameter is used, if you set any of the other modem parameters, it will override the configuration from the standard.

3.2.6.14. --mdm-ite

Type:integer
Default:1
Examples:--mdm-ite 5

Set the number of iterations in the SCMA demodulator.

3.2.6.15. --mdm-psi

Type:text
Allowed values:PSI0 PSI1 PSI2 PSI3
Examples:--mdm-psi PSI0

Select the \(\psi\) function used in the SCMA demodulator.

Description of the allowed values:

Value Description
PSI0 \(\psi_0 = \exp\left(-\frac{|d|}{n_0}\right)\)
PSI1 \(\psi_1 \approx \psi_0 \approx \frac{1}{|d| + n_0}\)
PSI2 \(\psi_2 \approx \psi_0 \approx \frac{1}{8. |d|^2 + n_0}\)
PSI3 \(\psi_3 \approx \psi_0 \approx \frac{1}{4. |d|^2 + n_0}\)

Where \(n_0 = \begin{cases} 1 & \text{if } \sigma^2 \text{ is disabled}\\ 4 \sigma^2 & \text{else} \end{cases}\).

See the --mdm-no-sig2 parameter to disable the division by \(\sigma^2\).

3.2.6.16. References

[ARS81]T. Aulin, N. Rydbeck, and C. -. Sundberg. Continuous phase modulation - part ii: partial response signaling. IEEE Transactions on Communications (TCOM), 29(3):210–225, March 1981. doi:10.1109/TCOM.1981.1094985.
[AS81]T. Aulin and C. Sundberg. Continuous phase modulation - part i: full response signaling. IEEE Transactions on Communications (TCOM), 29(3):196–209, March 1981. doi:10.1109/TCOM.1981.1095001.
[NB13]H. Nikopour and H. Baligh. Sparse Code Multiple Access. In International Symposium on Personal, Indoor, and Mobile Radio Communications (PIMRC), volume, 332–336. Sept 2013. doi:10.1109/PIMRC.2013.6666156.