tracking-loop (type de scénario)
Type de scénario du moteur v0.40.0, famille Brouillage, leurrage et spectre. À titre consultatif : résultat d'analyse issu d'un outil de recherche et d'ingénierie, et non un équipement de navigation homologué ni un service de sauvegarde de la vie humaine. Chaque étiquette ici est celle du moteur ou de la matrice de vérification ; un type de scénario est MODELLED sauf indication contraire de la matrice (comment une étiquette s'obtient : section Evidence du README).
Ce qu'il fait#
Perte d'accrochage de la boucle de poursuite : C/N0 -> accrochage/décrochage AVEC HYSTÉRÉSIS, temps nécessaire pour perdre l'accrochage, et capture par leurrage en fonction du TAUX de décalage de code et de porteuse. Les critères de déni et de capture existants du moteur sont des rapports sur la puissance reçue (un brouilleur interdit à J/S = 30 dB, un leurre capture à 3 dB) ; la vraie perte d'accrochage n'est pas un rapport de puissance, c'est le point où la gigue d'une boucle plus la contrainte dynamique quittent son budget de seuil de poursuite. Rapporte (1) la gigue thermique à 1 sigma de la porteuse (Costas) et du code (avance/retard non cohérent) en fonction du C/N0, perte de quadrature incluse, par rapport aux règles indiquées 3sigma_PLL + theta_e <= 45 deg (la règle des 15 degrés sous forme à trois sigma) et 3sigma_DLL + retard de rampe <= d/2 chips ; (2) les seuils de C/N0 de décrochage et de ré-accrochage avec la boucle déterminante nommée, le seuil de ré-accrochage DÉRIVÉ de la largeur de bande plus large à laquelle un récepteur se ré-accroche plutôt qu'affirmé, de sorte que la largeur d'hystérésis doit se situer entre 5log10(rapport) et 10log10(rapport) dB ; (3) le temps déclaré pour perdre l'accrochage d'un détecteur d'accrochage à deux seuils avec des durées de confirmation, piloté sur une rampe de C/N0, rapporté séparément du temps physique d'échappement de phase (le temps moyen de Viterbi entre sauts de cycle, en log10 s car il s'étend sur des centaines de décades) ; (4) les limites de capture par leurrage — la plus grande vitesse de glissement de code et le plus grand taux de Doppler de porteuse que les boucles d'une victime peuvent suivre, avec une carte sur les deux axes, car un leurre qui glisse plus vite que ces valeurs ne capture pas la boucle, il la distance ; et (5) le RAYON DE DÉNI qu'impliquent les dynamiques de boucle, rapporté EN PLUS du rayon en rapport de puissance existant, jamais à sa place, avec leur différence signée comme champ nommé à part (denial_radius_delta_km) et une définition à côté. Chaque champ numérique émis porte une unité et une classe de provenance. Formes fermées VALIDATED : les expressions de gigue de porteuse et de code, la réduction du filtre de boucle sqrt(2B_nT) et le retard de rampe du premier ordre sont recoupés avec le propre corrélateur sdr du moteur avancé pas à pas sur une FI synthétique initialisée — un autre chemin vers les mêmes nombres — à 0,6 %, 3,7 % et 0,17 % respectivement, et la fonction de Bessel modifiée I0 qui sous-tend le temps de saut de cycle avec des valeurs tabulées standard à 1e-7. La limite de validité inférieure est affirmée, et non simplement indiquée : en dessous d'environ 32 dB-Hz à 1 ms, le vrai discriminateur atan sature contre sa plage +-pi/2 et mesure moins de gigue que n'importe quelle théorie linéaire. MODELLED : les largeurs de bande de boucle, le temps d'intégration, l'espacement des corrélateurs, le rapport de largeur de bande de capture, les durées de confirmation, la puissance du brouilleur et les gains d'antenne sont des valeurs représentatives de la bande, et non une fiche technique. NON modélisés : la gigue d'oscillateur (écart-type d'Allan) et de vibration, la limitation de largeur de bande de l'étage d'entrée, les trajets multiples, la dynamique de la CAG, la perte de transition de bit de données, l'aide externe, et toute correction d'un demi-cycle à la formule de saut de cycle de Costas. Sous les dynamiques de boucle, la capture par leurrage n'a aucun rayon — la contrainte déterminante est le taux de décalage, non la puissance — de sorte que ce champ est nul avec une raison plutôt qu'un nombre fabriqué. Pas un produit certifié de performance de récepteur.
Une exécution de scenarios/tracking-loop.toml se résume ainsi : tracking-loop : B_pll 10,0 Hz / B_dll 1,0 Hz, T 1 ms, d 0,50 chip -> décrochage 25,4744 dB-Hz (la porteuse est déterminante), ré-accrochage 27,4413 dB-Hz, hystérésis 1,9669 dB | perte d'accrochage déclarée 39,101 s après le début de la rampe | rayon de déni seuil(J/S 30 dB) 127,413 km contre dynamiques de boucle 53,1694 km, delta -74.2438 km | capture par leurrage <= 0,966 chip/s en code et 41,45 Hz/s en porteuse (boucle MODELLED, formes fermées VALIDATED)
Entrées#
D'après le schéma (kshana kinds --json) :
- Champs requis : aucun
- Champs facultatifs :
pll_bandwidth_hz,dll_bandwidth_hz,predetection_integration_s,correlator_spacing_chips,carrier_allowance_deg,code_allowance_chips,pullin_bandwidth_ratio,drop_confirm_epochs,relock_confirm_epochs,doppler_rate_hz_per_s,code_slew_chips_per_s,cn0_high_dbhz,cn0_low_dbhz,ramp_duration_s,jitter_table_cn0_dbhz,jammer_power_dbw,jammer_gain_dbi,rx_gain_toward_jammer_db,rx_gain_toward_sat_db,signal_power_dbw,temp_k,freq_hz,chip_rate_hz,jammer_type,q_override,denial_js_threshold_db,capture_js_threshold_db,spoof_code_slew_chips_per_s,spoof_doppler_rate_hz_per_s
L'exemple scenarios/tracking-loop.toml définit, entre autres :
| Champ | Valeur | Unité |
|---|---|---|
capture_js_threshold_db |
3 | dB |
carrier_allowance_deg |
45 | deg |
chip_rate_hz |
1023000 | Hz |
cn0_high_dbhz |
45 | dB-Hz |
cn0_low_dbhz |
15 | dB-Hz |
code_slew_chips_per_s |
0 | chip/s |
correlator_spacing_chips |
0.5 | chip |
denial_js_threshold_db |
30 | dB |
dll_bandwidth_hz |
1 | Hz |
doppler_rate_hz_per_s |
0 | Hz/s |
drop_confirm_epochs |
50 | nombre |
freq_hz |
1575420000 | Hz |
L'exécuter#
kshana scenarios/tracking-loop.toml
Ce qu'il donne#
Les résultats scalaires de cette exécution, avec les unités que le moteur indique :
| Résultat | Valeur | Unité |
|---|---|---|
denial.capture_js_threshold_db |
3 | dB |
denial.capture_radius_loop_dynamics_km |
aucune valeur | km |
denial.capture_radius_threshold_km |
2852.426643 | km |
denial.capture_radius_threshold_status |
encadré | texte |
denial.denial_cn0_at_threshold_radius_dbhz |
32.864222 | dB-Hz |
denial.denial_js_delta_db |
7.591059 | dB |
denial.denial_js_loop_db |
37.591059 | dB |
denial.denial_js_threshold_db |
30 | dB |
denial.denial_radius_delta_km |
-74.243845 | km |
denial.denial_radius_loop_dynamics_km |
53.169373 | km |
Libellé du résultat (celui du moteur) : MIXED — formes fermées de boucle VALIDATED, configuration de boucle MODELLED. Les expressions de gigue thermique de porteuse et de code, la réduction du filtre de boucle sqrt(2B_nT) et le retard de rampe du premier ordre sont recoupés avec le propre corrélateur sdr du moteur avancé pas à pas sur une FI synthétique initialisée (un chemin différent
Preuves#
MODELLED : les lignes de la matrice de vérification qui nomment ce type de scénario.
- MODELLED Le rapport
lunar-jammingne repose plus sur un seul scalaire pour son contour de refus. - MODELLED Perte d'accrochage calculée à partir des dynamiques de boucle au lieu d'un rapport de puissance : gigue thermique à 1σ de la porteuse (Costas) et du code (avance/retard non cohérent) en fonction du C/N₀ avec la perte de quadrature, par rapport aux règles indiquées 3σ_PLL + θ_e ≤ 45° et 3σ_DLL + retard de rampe
Les lignes que l'exécution elle-même a exercées, avec la référence indépendante que la matrice donne pour chacune (les sources publiques y sont nommées) :
- MODELLED Déterministe, hachée par scénario, avec des barrières SBOM + références d'or multiplateformes. Référence indépendante (ExternalDataset) : respect du schéma JSON officiel CycloneDX 1,5 par la SBOM (+ identifiants SPDX valides) — une norme publiée externe, zéro erreur de validation sur tout le graphe de dépendances ; la partie déterminisme du FoM / reproductibilité à l'octet près reste un contrôle d'autocohérence figé, de sorte que la ligne reste MODELLED
- PARTNER Non fourni — Kshana modélise la performance du signal, et non le matériel de charge utile ou d'antenne. Référence indépendante (NoneKind) : aucune : une discipline propre au partenaire, sans module ni test par conception
- MODELLED Perte d'accrochage calculée à partir des dynamiques de boucle au lieu d'un rapport de puissance : gigue thermique à 1σ de la porteuse (Costas) et du code (avance/retard non cohérent) en fonction du C/N₀ avec la. Référence indépendante (ReferenceImpl) : le propre corrélateur sdr du moteur (sdr::correlate / synth_if / CaCode) avancé pas à pas sur une FI synthétique initialisée à un C/N₀ étalonné — un chemin de code distinct aboutissant aux mêmes nombres par corrélation numérique d'IQ échantillonnés plutôt que par une expression algébrique de gigue, de sorte que c'est un chemin différent et non une reformulation — plus des valeurs tabulées standard de la fonction de Bessel modifiée I₀ pour le terme de saut de cycle. Théorie des boucles selon Kaplan & Hegar
Limites#
Ce que le rapport propre à l'exécution dit n'être pas modélisé ou pas validé :
- MIXED — formes fermées de boucle VALIDATED, configuration de boucle MODELLED. Les expressions de gigue thermique de porteuse et de code, la réduction du filtre de boucle sqrt(2B_nT) et le retard de rampe du premier ordre sont recoupés avec le propre corrélateur sdr du moteur avancé pas à pas sur une FI synthétique initialisée (un chemin différent vers les mêmes nombres), et la fonction de Bessel modifiée I0 avec des valeurs tabulées standard. MODELLED : les largeurs de bande de boucle, integ (résultat
label) - MODELLED : les largeurs de bande de boucle, le temps d'intégration, l'espacement des corrélateurs, le rapport de largeur de bande de capture, les durées de confirmation, la puissance du brouilleur et les gains d'antenne sont des valeurs représentatives de la bande, et non une fiche technique. (catalogue des types (
kshana kinds --json)) - NON modélisés : la gigue d'oscillateur (écart-type d'Allan) et de vibration, la limitation de largeur de bande de l'étage d'entrée, les trajets multiples, la dynamique de la CAG, la perte de transition de bit de données, l'aide externe, et toute correction d'un demi-cycle à la formule de saut de cycle de Costas. (catalogue des types (
kshana kinds --json)) - Chaque paramètre de boucle ci-dessous est une valeur représentative de la bande MODELLED, et non une fiche technique. (commentaire du fichier de scénario, ligne 22)
- --- géométrie de boucle ----------------------------------------------------------------- Une boucle de porteuse de Costas à 10 Hz et une boucle de code assistée par la porteuse à 1 Hz, intégration cohérente de 1 ms (une période de code C/A, de sorte qu'aucune synchronisation des bits de données n'est supposée), corrélateur étroit de 0,5 chip. (commentaire du fichier de scénario, lignes 25 à 28)
- La reproductibilité et l'assurance logicielle sont MODELLED, et non validées : une sous-affirmation est vérifiée de l'extérieur, mais la capacité entière compose des éléments modélisés, de sorte qu'elle reste modélisée. (matrice de vérification (docs/MODELLED-RATIONALE.md))
- La perte d'accrochage de la boucle de poursuite et la capture par leurrage sous interférence sont MODELLED, non validées : vérifiées par rapport à une autre implémentation de ce même code source — indépendante de l'unité testée, mais sans autorité externe. (matrice de vérification (docs/MODELLED-RATIONALE.md))
Voir aussi#
- Page de famille : Brouillage, leurrage et spectre
- Tous les types de scénario : KINDS.md