1# ext_2G4_channel_multiatt
2
3This is a channel model for ext_2G4_phy_v1
4
5This is a non realistic channel model.
6It models NxN independent paths each with a configurable attenuation
7This attenuation can also be configured to change over time.
8
9The default atennuation for all paths is set with the command line option
10`-at=<attenuation>`.
11
12A file can be used to set the attenuation for some/all of the individual paths.
13This file is specified with the command line option `-file=<att_matrix_file>`
14
15This file shall have one separate line per path like:<br>
16    `x y : {value|"<timed_attenuation_file>"}`<br>
17
18Where:
19
20* x is the transmitter number, x = 0..N-1
21* y is the receiver number     y != x
22* N being the number of devices in the simulation
23* value is a floating point value in dB
24* `<timed_attenuation_file>` : is the path to a `<timed_attenuation_file>` as
25  described below which applies to that path.
26  Note that this file name shall be provided in between `""`
27* Not all paths need to be provided. Those omited will default to the attenuation
28  provided from the command line.
29
30The file names can be either absolute or relative to `bin/`
31
32For both files, `#` is treated as a comment mark (anything after a `#` is
33discarded)
34Empty lines are ignored
35
36Note that the Phy assumes the channel to be pseudo-stationary, that is, that the
37channel propagation conditions are static enough during a packet reception, that
38is, that the coherence time of the channel is much bigger than the typical
39packet length.
40Therefore the channel model won't be called to reevaluate conditions during a
41packet unless the devices which are transmitting change.
42
43
44### The `<timed_attenuation_file>`:
45
46This file contains 2 columns, the first column represents time in
47microseconds (an integer value), and the second column the attenuation at that given time.
48The times shall be in ascending order.<br>
49If the simulation time is found in the file, the channel will use the
50corresponding attenuation value.<br>
51If the simulation time falls in between 2 times in the file, the channel
52will interpolate linearly the attenuation.<br>
53If the simulation time is before the first time value in the file, the
54channel will use the first atttenuation provided in the file.<br>
55If the simulation time is after the last time value in the file, the channel
56will use the last attenuation provided in the file.<br>
57
58### The `-atextra=<extra_attenuation>` command line option:
59
60You can provide an extra attenuation to be added to all paths, independently of
61how their attenuation was originally calculated, with the `-atextra` command line
62option.
63This `extra_attenuation` value will just be added to all paths.
64
65### An example:
66
67`./bs_2G4_phy_v1 -D=3 -s=Hola -channel=multiatt -argschannel -at=40 -file=paths_att_file.txt`
68
69`paths_att_file.txt`:
70```
710 1 : 65
721 0 : 65
730 2 : "/myfolder/att_file.txt"
742 0 : "/myfolder/att_file.txt"
75#Note that the paths from 1<->2 are not specified. They will default to the -at command line parameter
76```
77
78`att_file.txt`:
79```
801000000    60
8111000000  120
8211000001   60
83```
84
85With this configuration, the radio traffic between device:
86
87* device 0 and device 1 will have an attenuation of 65dB
88* device 0 and device 2 will have an attenuation of
89    * 60dB up to the first second
90    * An increasing attenuation between 60->120 dB, between the first second and the 11th. At a rate of 6dB per second
91    * A sudden reduction in the attenuation to 60 dB right after, which is maintained thereafter.
92