3.2.7. Channel parameters

The channel represents the physical support such as optical fiber, space, water, air, etc. It is during the passage in the channel that the frames are altered/noised and errors can occur. The channel coding theory has been invented to correct errors induced by the channel (or at least reduce the number of errors to an acceptable rate).

3.2.7.1. --chn-type

Type

text

Allowed values

NO BEC BSC AWGN RAYLEIGH RAYLEIGH_USER OPTICAL USER USER_ADD USER_BEC USER_BSC

Default

AWGN

Examples

--chn-type AWGN

Select the channel type.

Description of the allowed values:

Value

Description

NO

Disable the channel noise: \(Y = X\).

BEC

Select the Binary Erasure Channel (BEC): \(Y_i = \begin{cases} erased & \text{if } e = 1 \\ X_i & \text{else} \end{cases}, \text{with } P(e = 1) = p_e \text{ and } P(e = 0) = 1 - p_e\).

BSC

Select the Binary Symmetric Channel (BSC): \(Y_i = \begin{cases} !X_i & \text{if } e = 1 \\ X_i & \text{else} \end{cases}, \text{with } P(e = 1) = p_e \text{ and } P(e = 0) = 1 - p_e\).

AWGN

Select the Additive White Gaussian Noise (AWGN) channel: \(Y = X + Z \text{ with } Z \sim \mathcal{N}(0,\sigma^2)\).

RAYLEIGH

Select the Rayleigh fading channel with an AWGN gain: \(Y = X.H + Z \text{ with } Z \sim \mathcal{N}(0,\sigma) \text{ and } H \sim \mathcal{N}(0,\frac{1}{\sqrt 2})\).

RAYLEIGH_USER

Select the Rayleigh fading channel with the gain given in a file: \(Y = X.H + Z \text{ with } Z \sim \mathcal{N}(0,\sigma) \text{ and } H \text{ given by the user}\) (to use with the --chn-path parameter).

OPTICAL

Select the optical channel: \(Y_i = \begin{cases} CDF_0(x) & \text{ when } X_i = 0 \\ CDF_1(x) & \text{ when } X_i = 1 \end{cases}, \text{ with } x \sim \mathcal{U}(0,1)\), and the \(CDF_0\) and \(CDF_1\) are given by the user and selected in function of the current ROP (to use with the --sim-pdf-path parameter).

USER

Select the noised frame from a file: \(Y = Z \text{ with } Z \text{ given by the user}\) (to use with the --chn-path parameter).

USER_ADD

Select the noise to add to the frame from a given file: \(Y = X + Z \text{ with } Z \text{ given by the user}\) (to use with the --chn-path parameter).

USER_BEC

Select the event draw of the BEC from a file: \(Y_i = \begin{cases} erased & \text{if } e = 1 \\ X_i & \text{else} \end{cases}, \text{ with } e \text{ given by the user}\) (to use with the --chn-path parameter).

USER_BSC

Select the event draw of the BSC from a file: \(Y_i = \begin{cases} !X_i & \text{if } e = 1 \\ X_i & \text{else} \end{cases}, \text{ with } e \text{ given by the user}\) (to use with the --chn-path parameter).

Where:
  • \(\sigma\) is the Gaussian noise variance, \(p_e\) is the event probability and ROP is the Received optical power of the simulated noise points. They are given by the user through the --sim-noise-range, -R argument.

  • \(X\) is the original modulated frame and \(Y\) the noisy output.

  • \(\mathcal{N}(\mu,\sigma^2)\) is the Normal or Gaussian distribution.

  • \(\mathcal{U}(a,b)\) is the Uniform distribution.

For the OPTICAL channel, the CDF are computed from the given PDF with the --sim-pdf-path argument. This file describes the latter for the different ROP. There must be a PDF for a bit transmitted at 0 and another for a bit transmitted at 1.

Note

The NO, AWGN and RAYLEIGH channels handle complex modulations.

Warning

The BEC, BSC and OPTICAL channels work only with the OOK modulation (see the --mdm-type parameter).

3.2.7.2. --chn-implem

Type

text

Allowed values

STD FAST GSL MKL

Default

STD

Examples

--chn-implem FAST

Select the implementation of the algorithm to generate the noise.

Description of the allowed values:

Value

Description

STD

Select the standard implementation based on the C++ standard library.

FAST

Select the fast implementation (handwritten and optimized for SIMD architectures).

GSL

Select an implementation based of the GSL.

MKL

Select an implementation based of the MKL (only available for x86 architectures).

Note

All the proposed implementations are based on the MT 19937 PRNG algorithm [Chn-MN98]. The Gaussian distribution \(\mathcal{N}(\mu,\sigma^2)\) is implemented with the Box-Muller method [Chn-BM+58] except when using the GSL where the Ziggurat method [Chn-MT00] is used instead.

Attention

To enable the GSL or the MKL implementations, you need to have those libraries installed on your system and to turn on specific CMake Options.

The Table 3.5, Table 3.6 and Table 3.7 present the throughputs of the different channel implementations depending on the frame size. The testbed for the experiments is an Intel(R) Xeon(R) CPU E3-1270 v5 @ 3.60GHz 8 threads CPU.

Table 3.5 Comparison of the AWGN channel implementations (throughputs are in Mb/s).

Frame size

STD

FAST

MKL

GSL

16

31,80

99,12

29,80

41,39

32

30,05

134,94

53,72

46,76

64

30,78

165,92

93,80

52,79

128

31,24

188,06

148,31

54,77

256

31,41

199,14

204,53

55,38

512

31,52

199,43

267,74

55,49

1024

31,79

199,71

331,71

56,15

2048

31,61

200,16

342,06

56,32

4096

31,88

198,88

343,40

57,42

8192

30,43

195,78

342,59

56,92

Table 3.6 Comparison of the BEC/BSC channel implementations (throughputs are in Mb/s).

Frame size

STD

FAST

MKL

GSL

16

36,18

114,87

104,1

58,92

32

40,28

170,64

184,99

69,14

64

42,84

223,78

319,65

77,26

128

43,28

252,41

474,18

87,78

256

43,42

272,82

624,92

93,71

512

43,51

273,22

738,72

95,36

1024

43,64

275,41

865,25

97,84

2048

43,63

272,78

996,88

97,25

4096

42,78

274,71

1109,13

97,65

8192

43,67

272,71

1116,41

98,47

Table 3.7 Comparison of the optical channel implementations (throughputs are in Mb/s).

Frame size

STD

FAST

MKL

GSL

16

6,69

7,56

6,71

6,53

32

9,89

10,98

10,28

9,56

64

12,67

14,30

14,05

12,15

128

14,40

16,33

16,33

13,88

256

15,82

17,74

18,22

15,07

512

16,52

18,46

18,29

15,79

1024

17,18

19,14

19,31

16,19

2048

16,96

18,76

20,30

16,42

4096

17,19

18,65

20,29

16,47

8192

17,26

18,98

20,58

16,63

Note

The reported values are the average throughputs given by the simulator integrated statistics tool (see the --sim-stats parameter).

3.2.7.3. --chn-blk-fad

Type

text

Allowed values

NO FRAME ONETAP

Default

1

Examples

--chn-gain-occur 10

Set the block fading policy for the Rayleigh channel.

Note

At this time the FRAME and ONETAP block fading are not implemented.

3.2.7.4. --chn-gain-occur

Type

integer

Default

1

Examples

--chn-gain-occur 10

Give the number of times a gain is used on consecutive symbols. It is used in the RAYLEIGH_USER channel while applying gains read from the given file.

3.2.7.5. --chn-path

Type

file

Rights

read

Examples

--chn-path example/path/to/the/right/file

Give the path to a file containing the noise.

The expected type of noise vary depending of the channel type (see the --chn-type parameter for more details):

  • USER: the file must contain frame with the noise applied on it,

  • USER_ADD: the file must contain only the noise \(Z\),

  • RAYLEIGH_USER: the file must contain the gain values \(H\).

The expected file format is either ASCII or binary (the format is automatically detected). Here is the file structure expected in ASCII:

 # 'F' has to be replaced by the number of contained frames.
F

# 'N' has to be replaced by the frame size.
N

# a sequence of 'F * N' floating-point values (separated by spaces)
Y_0 Y_1 Y_2 Y_3 Y_4 [...] Y_{F*N-1}

In binary mode, \(F\) and \(N\) have to be 32-bit unsigned integers. The next \(F \times N\) floating-point values can be either in 32-bit or in 64-bit.

3.2.7.6. References

Chn-BM+58

G. E. P. Box, M. E. Muller, and others. A note on the generation of random normal deviates. The Annals of Mathematical Statistics, 29(2):610–611, 1958. doi:10.1214/aoms/1177706645.

Chn-MT00

G. Marsaglia and W. W. Tsang. The ziggurat method for generating random variables. Journal of Statistical Software, 5(8):1–7, 2000. doi:10.18637/jss.v005.i08.

Chn-MN98

M. Matsumoto and T. Nishimura. Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator. ACM Transactions on Modeling and Computer Simulation (TOMACS), 8(1):3–30, 1998. doi:10.1145/272991.272995.