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.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. |