You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
spectrum: Refine 3GPP channel consistency procedure, tests, and documentation
This commit refines the 3GPP TR 38.901 channel consistency implementation
(Procedure A, Sec. 7.6.3.2) to better align with the specification and to
clarify behavior across different scenarios (including mobility).
The changes include:
Correct handling of cluster-level correlation terms (e.g., shadowing) and
cached per-link randomness needed for cluster generation (incl. NLOS Xn signs)
Updates to ray/cluster evolution during channel updates and removal of random
coupling between update steps
Clear distinction between channel re-generation vs cached-channel update
behavior, controlled by UpdatePeriod
Consistent displacement computation across code and correct TX/RX speed mapping
Fix channel-consistency triggering for moving endpoints and handle NLOSv cases
Enforce canonical ordering for link direction, make updates order-independent,
and tighten assertions
Ensure per-cluster state vectors are consistently sized to the reduced cluster
number, with consistent trim/add logic across generation and update paths.
Add test, example and plot script for spatial consistency feature.
Add documentation for spatial consistency feature (spectrum.rst,
CHANGES.md, RELEASE_NOTES.md) clarifying that TR 38.901 Sec. 7.6.3.1 correlation
across multiple initial locations is not implemented.
Extend/fix test cases for realistic channel updates and improve robustness of
the 3GPP channel tests.
Refactoring and cleanup of ThreeGppChannelModel and related examples/test; run/update
relevant example coverage (incl. V2V)
Clarify Procedure A vs map/field-based approaches.
Address comments by Tom Henderson, Tommaso Pecorella, Peter Barnes and Eduardo Almeida.
Co-authored-by: Sandra Lagen sandra.lagen@cttc.cat
Copy file name to clipboardExpand all lines: CHANGES.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -52,6 +52,17 @@ fixes, use `./ns3 run "clang-tidy -fix"`.
52
52
53
53
* (wifi) `CcaEdThreshold` can be changed at run-time.
54
54
* (internet): Updated `TcpLedbat::CongestionAvoidance()` to compute `max_cwnd` as `flightsize + AllowedIncrease × MSS` by adding `m_allowedIncrease * tcb->m_segmentSize`, in accordance with RFC 6817.
55
+
* (spectrum): Added a spatial-consistency update technique aligned with 3GPP TR 38.901 Procedure A
56
+
(Sec. 7.6.3.2) to the 3GPP channel model. When the `UpdatePeriod` attribute of `ThreeGppChannelModel`
57
+
is set to a non-zero value, the model evolves channel parameters using Procedure A update equations
58
+
to preserve correlation across consecutive channel evaluations, with ns-3-specific update triggering
59
+
suited to discrete-event simulation. In prior ns-3 releases (before ns-3.47), `UpdatePeriod` caused
60
+
independent (i.i.d.) re-generation of channel realizations. With the updated behavior, an update is
61
+
attempted when the channel is evaluated and `UpdatePeriod` has elapsed since the last parameter
62
+
generation/update. If the maximum endpoint displacement between evaluations is within 1 m,
63
+
Procedure A updates are applied; if it exceeds 1 m, channel parameters are re-generated (new realization).
64
+
For stationary links, the channel remains unchanged. See `spectrum.rst` for ns-3 update triggering and
0 commit comments