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) [Mdm-ARS81, Mdm-AS81].

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 [Mdm-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 modem implementation.

Description of the allowed values:

Value

Description

STD

Select a standard implementation working for any modem.

FAST

Select a fast implementation.

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

Note

The number of bits per symbol is automatically computed from the number of given symbols. The latter has to be a power of 2.

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. --mdm-cb-path

Type

file

Rights

read/write

Examples

--mdm-cb-path conf/mod/SCMA/CS1.cb

Give the path to the codebook, to use with the SCMA modem.

Note

Only 3 BPS codebook symbols are supported at this time.

Codebook format

A codebook is designed for a number_of_users \(V\), a number_of_orthogonal_resources \(K\) and codebook_size \(M\).

The codebook file then looks as a table of \(V \times K\) rows and \(2.M\) columns (real and imaginary parts):

V K M

Re(User 1, Resource 1, Code 1)    Im(User 1, Resource 1, Code 1)    ...    Re(User 1, Resource 1, Code M)    Im(User 1, Resource 1, Code M)
...                               ...                               ...    ...                               ...
Re(User 1, Resource K, Code 1)    Im(User 1, Resource K, Code 1)    ...    Re(User 1, Resource K, Code M)    Im(User 1, Resource K, Code M)
Re(User 2, Resource 1, Code 1)    Im(User 2, Resource 1, Code 1)    ...    Re(User 2, Resource 1, Code M)    Im(User 2, Resource 1, Code M)
...                               ...                               ...    ...                               ...
Re(User 2, Resource K, Code 1)    Im(User 2, Resource K, Code 1)    ...    Re(User 2, Resource K, Code M)    Im(User 2, Resource K, Code M)
...                               ...                               ...    ...                               ...
Re(User V, Resource 1, Code 1)    Im(User V, Resource 1, Code 1)    ...    Re(User V, Resource 1, Code M)    Im(User V, Resource 1, Code M)
...                               ...                               ...    ...                               ...
Re(User V, Resource K, Code 1)    Im(User V, Resource K, Code 1)    ...    Re(User V, Resource K, Code M)    Im(User V, Resource K, Code M)

Descriptions of the codebooks of the configuration files

Codebooks are normalized, so the average power of signal will be equal to 1.

Codebook Set

Description

CS1

From [Scma-Pro]

CS2

LDS based on QPSK constellation

CS3

Based on [Scma-CWC15] and own optimization for AWGN channel

CS4

From [Scma-ZXX+16]

CS5

From [Scma-SWC17]

CS6

From [Scma-KS17]

CS7

From [Scma-KS17]

CS8

From [Scma-WZC15]

The simulation results for CS1-CS7 (AWGN and Rayleigh fading channels) can be found in [Scma-KS17]. The simulation results for CS8 can be found in [Scma-KS16] (defined as CS2 in the paper).

3.2.6.17. --mdm-rop-est

Type

integer

Default

0

Examples

--mdm-rop-est 256

Set the number of known bits for the ROP estimation in the OOK demodulator on an optical channel.

The estimation is done from a known set of bits that is the output of the modulation. If left to 0, the demodulation is done with the exact applied ROP in the channel.

3.2.6.18. References

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

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

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

Scma-CWC15

M. Cheng, Y. Wu, and Y. Chen. Capacity analysis for non-orthogonal overloading transmissions under constellation constraints. In International Conference on Wireless Communications Signal Processing (WCSP), 1–5. Oct 2015. doi:10.1109/WCSP.2015.7341294.

Scma-KS16

V. P. Klimentyev and A. B. Sergienko. Detection of scma signal with channel estimation error. In Conference of Open Innovations Association and Seminar on Information Security and Protection of Information Technology (FRUCT-ISPIT), 106–112. April 2016. doi:10.1109/FRUCT-ISPIT.2016.7561515.

Scma-KS17(1,2,3)

V. P. Klimentyev and A. B. Sergienko. Scma codebooks optimization based on genetic algorithm. In European Wireless Conference, 1–6. May 2017. doi:.

Scma-Pro

Altera University Program. The 1st 5g algorithm innovation competition-scma.

Scma-SWC17

G. Song, X. Wang, and J. Cheng. Signature design of sparsely spread code division multiple access based on superposed constellation distance analysis. IEEE Access, 5:23809–23821, 2017. doi:10.1109/ACCESS.2017.2765346.

Scma-WZC15

Y. Wu, S. Zhang, and Y. Chen. Iterative multiuser receiver in sparse code multiple access systems. In IEEE International Conference on Communications (ICC), 2918–2923. June 2015. doi:10.1109/ICC.2015.7248770.

Scma-ZXX+16

S. Zhang, K. Xiao, B. Xiao, Z. Chen, B. Xia, D. Chen, and S. Ma. A capacity-based codebook design method for sparse code multiple access systems. In International Conference on Wireless Communications Signal Processing (WCSP), 1–5. Oct 2016. doi:10.1109/WCSP.2016.7752620.