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 |
---|---|
|
Select a BPSK modulation. |
|
Select a Continuous Phase Modulation (CPM) [Mdm-ARS81, Mdm-AS81]. |
|
Select an On-Off Keying (OOK) modulation. |
|
Select a Pulse-Amplitude Modulation (PAM). |
|
Select a Phase-Shift Keying (PSK) modulation. |
|
Select a rectangular Quadrature-Amplitude Modulation (QAM). |
|
Select a Sparse Code Multiple Access (SCMA) modulation [Mdm-NB13]. |
|
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 |
---|---|
|
Select a standard implementation working for any modem. |
|
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 |
---|---|
|
\(\max^*(a,b) = \max(a,b) + \log(1 + \exp(-|a - b|))\). |
|
\(\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}\). |
|
\(\max^*(a,b) \approx \max(a,b) + \max(0, 0.301 - (0.5 |a - b|))\). |
|
\(\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 code switching only one bit at a time from a symbol to the following. |
|
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 |
---|---|
|
|
|
Raised COSinus. |
|
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 |
---|---|---|---|
|
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 |
---|---|
|
\(\psi_0 = \exp\left(-\frac{|d|}{n_0}\right)\) |
|
\(\psi_1 \approx \psi_0 \approx \frac{1}{|d| + n_0}\) |
|
\(\psi_2 \approx \psi_0 \approx \frac{1}{8. |d|^2 + n_0}\) |
|
\(\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.