How to study handover indoors and in rural cells¶
Since 1.7.0 HandoverLab has two scenario families next to the urban grid, the open area and the highway. Both follow TR 38.901 (V19.5.0, unchanged from V17.0.0 for these parts) for geometry and propagation and the IMT-2020 evaluation configurations of ITU-R M.2412-0 for the link budget: the indoor office with the InH-Office path loss, and rural macro cells with the RMa path loss. They stretch a rule in opposite directions: indoors the cells are 20 m apart and the neighbours are almost as strong as the serving cell; in rural cells the sites are 1.7 km apart and the users drive at 120 km/h.
| Scenario | Layout | Radio | Users |
|---|---|---|---|
indoor-office-4ghz |
indoor: hall of 120 m x 50 m, 12 ceiling sites on a 20 m grid (TR 38.901 Table 7.2-2) |
inh_office_open at 4 GHz (open-office LOS probability of ITU-R M.2412-0 Table A1-9, since 2.1.0), 24 dBm for 20 MHz (M.2412-0 Table 5a), sites 3 m and users 1 m high, soft LOS |
20 pedestrians at 3 km/h (p3, since 2.1.0; ped3 with +-10 % until 2.0.0) |
rural-700mhz |
open_area of 6000 m x 3500 m (layout.area_m), 11 sites on a 1732 m hexagonal grid, users at least 35 m from a site (Table 7.2-3) |
rma at 700 MHz, 49 dBm for 20 MHz (M.2412-0 Table 5c), sites 35 m high, car penetration loss, soft LOS |
30 users in cars at 120 km/h (v120, since 2.1.0; veh120 with +-10 % until 2.0.0) |
1. Run them¶
# indoor.yaml
schema: 1
scenario: indoor-office-4ghz
seeds: [1, 2, 3]
rules:
- {rule: a3, off_db: 3.0, ttt_s: 0.16}
- {rule: cho, o_prep_db: -2.0, o_exec_db: 3.0, ttt_exec_s: 0.08}
- {rule: a3_mro}
output: results/indoor.csv
handoverlab run indoor.yaml
handoverlab scenarios rural-700mhz # the scenario card with every parameter and its source
rural-700mhz is larger: 300 s of 30 users take one to two minutes per seed on one core. For a
first look shorten it, scenario: {base: rural-700mhz, run: {duration_s: 60.0}}.
2. The models¶
- InH-Office (
radio.pathloss: inh_office): LOS32.4 + 17.3 log10(d3D) + 20 log10(fc), NLOSmax(LOS, 38.3 log10(d3D) + 17.30 + 24.9 log10(fc)), for 3D distances of 1 m to 150 m, with the LOS probability of the mixed office (TR 38.901 Tables 7.4.1-1 and 7.4.2-1);inh_office_open(since 2.1.0) has the same path loss with the LOS probability of the open office (1 up to 5 m, exp(-(d2D - 5) / 70.8) up to 49 m, 0.54 exp(-(d2D - 49) / 211.7) beyond), which ITU-R M.2412-0 Table A1-9 uses for the Indoor Hotspot. - RMa (
radio.pathloss: rma): the LOS model with its breakpointd_BP = 2 pi h_BS h_UT fc / cand the NLOS model, both with the default street width W = 20 m and building height h = 5 m; LOS probabilityexp(-(d2D - 10) / 1000)beyond 10 m. Shadowing 4 dB on LOS links below the breakpoint, 6 dB beyond it (radio.shadow_los_far_db) and 8 dB on NLOS links. The model covers 0.5-30 GHz, and HandoverLab refuses a higher carrier withrma. Table 7.4.1-1 writes PL2 = PL1(d_BP) + 40 log10(d3D / d_BP); HandoverLab evaluates PL1 at the 3D distance of the breakpoint, so the loss is continuous (the difference is below 0.01 dB). - Soft LOS state (
radio.soft_los): both cards use the optional soft LOS state of TR 38.901 clause 7.6.3.3, which the standard introduces to avoid hard LOS/NLOS transitions in mobility simulations; see the user guide. - Indoor layout (
layout.kind: indoor): no walls are drawn; the InH LOS probability and the place-tied shadowing stand for walls and furniture. Users walk between random waypoints at least 2 m from the walls. - Users in cars (rural): the TR 38.901 car penetration loss of clause 7.4.3.2, 9 dB mean and
5 dB standard deviation, drawn once per user (
radio.penetration_db,radio.penetration_sd_db).layout.min_site_distance_mkeeps the start and the waypoints of a user 35 m from every site.
handoverlab verify checks both models, both LOS probabilities and the soft LOS weight against
values computed by hand (group pathloss), and the golden fingerprints include short runs of
both scenarios.
3. What the results look like¶
Means over three seeds per user-minute, with the cards as they are and with the hard LOS state:
| Scenario | Rule | LOS state | Handovers | Failures | Unnecessary | Ping-pong | Interruption [s] |
|---|---|---|---|---|---|---|---|
| indoor | A3 3 dB 160 ms | soft | 6.74 | 0.02 | 2.82 | 0.41 | 0.29 |
| indoor | A3 3 dB 160 ms | hard | 7.12 | 0.16 | 3.04 | 0.46 | 0.45 |
| indoor | A3 5 dB 320 ms | soft | 4.74 | 0.10 | 1.28 | 0.06 | 0.29 |
| indoor | a3_mro |
soft | 6.69 | 0.02 | 2.80 | 0.40 | 0.29 |
| rural | A3 3 dB 160 ms | soft | 11.93 | 0.33 | 6.86 | 1.71 | 0.82 |
| rural | A3 3 dB 160 ms | hard | 13.16 | 1.41 | 7.58 | 1.95 | 1.97 |
| rural | A3 5 dB 320 ms | soft | 7.80 | 0.42 | 3.49 | 0.39 | 0.74 |
| rural | a3_mro |
soft | 10.36 | 0.23 | 5.55 | 1.15 | 0.65 |
- Indoors, many handovers are unnecessary or ping-pong even at walking speed, because every neighbour is close. This is the point of the scenario: a rule has to avoid switching between nearly equal cells. A larger offset and time-to-trigger halve the unnecessary handovers at the price of more late ones.
- In rural cells, the handover rate is far above what the cell size alone would give, and most handovers are unnecessary: the 8 dB shadowing with 120 m decorrelation, uncorrelated between sites (TR 38.901 clause 7.5 step 4; half correlated until 2.0.0), moves the best cell often at 120 km/h. Compare rules with each other here, and do not read the absolute handover rate as that of a real rural network.
- Hard against soft LOS: with the hard switch, a link jumps by about 20 dB (RMa at 1-2 km) or about 15 dB (InH at 20 m) when its state changes, and these jumps cause most failures. The soft state removes most of them without changing the handover rate much.
- The failure model is not calibrated in absolute terms in any scenario; read failure rates relative to each other.
4. Change them¶
The usual keys apply, for example a denser office or a rural carrier in the upper mid-band:
scenario:
base: indoor-office-4ghz
layout: {area_m: [60.0, 40.0], site_spacing_m: 10.0}
radio: {carrier_ghz: 28.0, bandwidth_mhz: 400.0}
scenario:
base: rural-700mhz
layout: {site_spacing_m: 5000.0, area_m: [16000.0, 9000.0]}
radio: {carrier_ghz: 3.5, bandwidth_mhz: 100.0, map_res_m: 20.0}
A larger area needs a coarser radio map (radio.map_res_m) to keep memory and run time in bounds.