NR UE: improve initial timing advance calculation from SIB19

Before, we only considered ta_Common_r17 and the SAT position from SIB19 to compute the initial timing advance value.
This is good enough if the satellite does not move too fast (e.g. GEO satellite).

Now we also consider ta_CommonDrift_r17 and the SAT velocity together with the epoch time from SIB19.
This improves the accuracy of the initial TA computation, esp. for LEO satellite scenarios.
This commit is contained in:
Thomas Schlichter
2025-06-20 11:18:48 +00:00
parent 42bc0d4eb3
commit f1d612c01b
7 changed files with 135 additions and 55 deletions
@@ -557,16 +557,22 @@ typedef struct {
} fapi_nr_ta_command_pdu;
typedef struct {
int epoch_sfn;
int epoch_subframe;
// N_common_ta_adj represents common round-trip-time between gNB and SAT received in SIB19 (ms)
double N_common_ta_adj;
// N_UE_TA_adj calculated round-trip-time between UE and SAT (ms)
double N_UE_TA_adj;
// drift rate of common ta in µs/s
double ntn_ta_commondrift;
// N_UE_TA_adj calculated round-trip-time between UE and SAT (ms)
double N_UE_TA_adj;
// drift rate of N_UE_TA in µs/s
double N_UE_TA_drift;
// cell scheduling offset expressed in terms of 15kHz SCS
long cell_specific_k_offset;
double ntn_total_time_advance_ms;
double ntn_total_time_advance_drift;
} fapi_nr_dl_ntn_config_command_pdu;
typedef struct {