Tłumaczenie maszynowe, niezweryfikowane przez osobę, dla której polski jest językiem ojczystym. Wzorcem jest wersja angielska.

Strony rodzajów scenariuszyEdytuj na GitHubieŹródło: docs/kinds/by-kind/tracking-loop.md

tracking-loop (rodzaj scenariusza)

Rodzaj scenariusza silnika v0.40.0, rodzina Zagłuszanie (jamming), spoofing i widmo. Wyłącznie doradczo: wynik analizy z narzędzia badawczo-inżynieryjnego; nie jest to sprzęt nawigacyjny z zatwierdzeniem typu ani usługa bezpieczeństwa życia. Każda etykieta tutaj pochodzi z silnika lub z macierzy weryfikacji; rodzaj jest MODELLED, chyba że macierz stanowi inaczej (jak zdobywa się etykietę: sekcja Evidence w README).

Co robi#

Utrata synchronizacji pętli śledzenia: C/N0 -> zaczep/utrata zaczepu Z HISTEREZĄ, czas do utraty zaczepu oraz wciągnięcie przez spoofing w zależności od TEMPA przesunięcia kodu i nośnej. Dotychczasowe kryteria odmowy i przechwycenia w silniku są stosunkami mocy odbieranej (zagłuszacz odmawia przy J/S = 30 dB, spoofer przechwytuje przy 3 dB); rzeczywista utrata zaczepu nie jest stosunkiem mocy, lecz miejscem, w którym jitter pętli wraz z naprężeniem dynamicznym przekracza budżet progu śledzenia. Raportuje (1) jitter termiczny 1-sigma nośnej (Costas) i kodu (nieskoherentny early/late) względem C/N0, z uwzględnieniem straty kwadratowania, na tle podanych reguł 3sigma_PLL + theta_e <= 45 deg (reguła 15 stopni w postaci trzech sigma) oraz 3sigma_DLL + ramp lag <= d/2 chips; (2) progi C/N0 zaniku i ponownego uchwycenia z nazwaną pętlą wiążącą, przy czym próg ponownego uchwycenia jest WYWIEDZIONY z szerszego pasma, w którym odbiornik ponownie się wciąga, a nie zakładany, więc szerokość histerezy musi mieścić się między 5log10(ratio) a 10log10(ratio) dB; (3) deklarowany czas do utraty zaczepu z detektora zaczepu o dwóch progach z oknami potwierdzenia, sterowanego rampą C/N0, raportowany osobno od fizycznego czasu ucieczki fazy (średni czas Viterbiego między poślizgami cyklu, w log10 s, ponieważ obejmuje setki rzędów wielkości); (4) granice wciągnięcia przez spoofing — największe przesunięcie kodu i tempo zmiany dopplerowskiej nośnej, za którymi mogą nadążyć pętle ofiary, z mapą po obu osiach, ponieważ spoofer, który przesuwa szybciej niż te granice, nie przechwytuje pętli, tylko ją wyprzedza; oraz (5) PROMIEŃ ODMOWY wynikający z dynamiki pętli, raportowany OBOK istniejącego promienia stosunku mocy, nigdy w jego miejsce, z ich różnicą ze znakiem jako osobnym nazwanym polem (denial_radius_delta_km) i definicją obok. Każde emitowane pole liczbowe niesie jednostkę i klasę pochodzenia. VALIDATED, postacie zamknięte: wyrażenia na jitter nośnej i kodu, redukcja filtra pętli sqrt(2B_nT) oraz opóźnienie rampy pierwszego rzędu są sprawdzane krzyżowo względem własnego korelatora sdr silnika, krokowo uruchamianego na zasianym syntetycznym IF — inną drogą do tych samych liczb — odpowiednio do 0,6 %, 3,7 % i 0,17 %, a zmodyfikowana funkcja Bessela I0 leżąca u podstaw czasu poślizgu cyklu względem standardowych wartości tabelarycznych do 1e-7. Dolna granica ważności jest wymuszona, a nie tylko podana: poniżej ok. 32 dB-Hz przy 1 ms rzeczywisty dyskryminator atan nasyca się względem swojego zakresu +-pi/2 i mierzy mniejszy jitter niż jakakolwiek teoria liniowa. MODELLED: szerokości pasm pętli, czas całkowania, rozstaw korelatora, stosunek pasm wciągania, okna potwierdzenia, moc zagłuszacza i zyski anten są reprezentatywnymi wartościami pasmowymi, a nie danymi z karty katalogowej. NIE modelowano: jitteru oscylatora (odchylenie Allana) i drgań, ograniczenia pasma toru wejściowego, wielodrogowości, dynamiki AGC, straty na przejściach bitów danych, wspomagania zewnętrznego ani żadnej korekty półcyklu we wzorze poślizgu cyklu Costasa. Przy dynamice pętli przechwycenie przez spoofing nie ma żadnego promienia — ograniczeniem wiążącym jest tempo przesunięcia, a nie moc — więc to pole ma wartość null wraz z powodem, a nie zmyśloną liczbę. To nie jest certyfikowany produkt do oceny parametrów odbiornika.

Jeden przebieg scenarios/tracking-loop.toml daje następujące podsumowanie: tracking-loop: B_pll 10,0 Hz / B_dll 1,0 Hz, T 1 ms, d 0,50 chip -> drop 25,4744 dB-Hz (carrier binds), relock 27,4413 dB-Hz, hysteresis 1,9669 dB | loss of lock declared 39,101 s into the ramp | denial radius threshold(J/S 30 dB) 127,413 km vs loop dynamics 53,1694 km, delta -74.2438 km | spoof pull-in <= 0,966 chip/s code and 41,45 Hz/s carrier (MODELLED loop, VALIDATED closed forms)

Wejścia#

Ze schematu (kshana kinds --json):

  • Pola wymagane: brak
  • Pola opcjonalne: 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

Przykład scenarios/tracking-loop.toml ustawia między innymi:

Pole Wartość Jednostka
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 liczba
freq_hz 1575420000 Hz

Uruchom#

kshana scenarios/tracking-loop.toml

Co daje#

Wyniki skalarne tego przebiegu, z jednostkami podanymi przez silnik:

Wynik Wartość Jednostka
denial.capture_js_threshold_db 3 dB
denial.capture_radius_loop_dynamics_km brak wartości km
denial.capture_radius_threshold_km 2852.426643 km
denial.capture_radius_threshold_status ujęty w nawiasy tekst
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

Etykieta wyniku (silnika): MIXED — VALIDATED postacie zamknięte pętli, MODELLED konfiguracja pętli. Wyrażenia na jitter termiczny nośnej i kodu, redukcja filtra pętli sqrt(2B_nT) i opóźnienie rampy pierwszego rzędu są sprawdzane krzyżowo względem własnego korelatora sdr silnika, krokowo uruchamianego na zasianym syntetycznym IF (inną drogą

Wykres, który silnik zapisuje dla scenariusza scenarios/tracking-loop.toml, rodzaj tracking-loop

Dowody#

MODELLED: wiersze macierzy weryfikacji, które wymieniają ten rodzaj.

  • MODELLED Raport lunar-jamming nie opiera już swojego konturu odmowy na jednej wielkości skalarnej.
  • MODELLED Utrata zaczepu obliczana z dynamiki pętli zamiast ze stosunku mocy: jitter termiczny 1σ nośnej (Costas) i kodu (nieskoherentny early/late) względem C/N₀ ze stratą kwadratowania, na tle podanych reguł 3σ_PLL + θ_e ≤ 45° oraz 3σ_DLL + ramp lag

Wiersze, które sam przebieg wykorzystał, wraz z wyrocznią, jaką macierz podaje dla każdego (publiczne źródła są tam wymienione):

  • MODELLED Deterministyczne, haszowane na poziomie scenariusza, bramki SBOM i złotych wyników między platformami. Wyrocznia (ExternalDataset): zgodność SBOM z oficjalnym schematem JSON CycloneDX 1,5 (+ prawidłowe identyfikatory SPDX): zewnętrzny opublikowany standard, zero błędów walidacji w całym grafie zależności; część dotycząca determinizmu wskaźników jakości i odtwarzalności bajt w bajt pozostaje przypiętą kontrolą samospójności, więc wiersz pozostaje MODELLED
  • PARTNER Nie zapewnia się — Kshana modeluje osiągi sygnału, a nie sprzęt ładunku użytecznego / anten. Wyrocznia (NoneKind): brak: dyscyplina należąca do partnera, z założenia bez modułu i bez testu
  • MODELLED Utrata zaczepu obliczana z dynamiki pętli zamiast ze stosunku mocy: jitter termiczny 1σ nośnej (Costas) i kodu (nieskoherentny early/late) względem C/N₀ ze stratą kwadratowania, na tle. Wyrocznia (ReferenceImpl): Własny korelator sdr silnika (sdr::correlate / synth_if / CaCode) krokowo uruchamiany na zasianym syntetycznym IF przy skalibrowanym C/N₀ — odrębna ścieżka kodu dochodząca do tych samych liczb przez numeryczną korelację próbkowanego IQ, a nie przez wyrażenie algebraiczne na jitter, więc jest to inna droga, a nie powtórzenie — oraz standardowe tabelaryczne wartości zmodyfikowanej funkcji Bessela I₀ dla składnika poślizgu cyklu. Teoria pętli wg Kaplan & Hegar

Ograniczenia#

Co raport samego przebiegu podaje jako niemodelowane lub niesprawdzone względem niezależnego wzorca:

  • MIXED — VALIDATED postacie zamknięte pętli, MODELLED konfiguracja pętli. Wyrażenia na jitter termiczny nośnej i kodu, redukcja filtra pętli sqrt(2B_nT) i opóźnienie rampy pierwszego rzędu są sprawdzane krzyżowo względem własnego korelatora sdr silnika, krokowo uruchamianego na zasianym syntetycznym IF (inną drogą do tych samych liczb), a zmodyfikowana funkcja Bessela I0 względem standardowych wartości tabelarycznych. MODELLED: szerokości pasm pętli, całk (wynik label)
  • MODELLED: szerokości pasm pętli, czas całkowania, rozstaw korelatora, stosunek pasm wciągania, okna potwierdzenia, moc zagłuszacza i zyski anten są reprezentatywnymi wartościami pasmowymi, a nie danymi z karty katalogowej. (katalog rodzajów (kshana kinds --json))
  • NIE modelowano: jitteru oscylatora (odchylenie Allana) i drgań, ograniczenia pasma toru wejściowego, wielodrogowości, dynamiki AGC, straty na przejściach bitów danych, wspomagania zewnętrznego ani żadnej korekty półcyklu we wzorze poślizgu cyklu Costasa. (katalog rodzajów (kshana kinds --json))
  • Każdy parametr pętli poniżej jest reprezentatywną wartością pasmową MODELLED, a nie danymi z karty katalogowej. (komentarz w pliku scenariusza, wiersz 22)
  • --- geometria pętli ----------------------------------------------------------------- Pętla nośnej Costasa 10 Hz i pętla kodu wspomagana nośną 1 Hz, całkowanie koherentne 1 ms (jeden okres kodu C/A, więc nie zakłada się synchronizacji bitów danych), wąski korelator 0,5 chip. (komentarz w pliku scenariusza, wiersze 25 do 28)
  • Odtwarzalność i zapewnienie jakości oprogramowania jest MODELLED, nie jest sprawdzona względem niezależnego wzorca: jedno twierdzenie składowe jest sprawdzone zewnętrznie, ale cała możliwość składa się z elementów obliczonych na podstawie modelu, więc pozostaje obliczona na podstawie modelu. (macierz weryfikacji (docs/MODELLED-RATIONALE.md))
  • Utrata zaczepu pętli śledzenia i wciągnięcie przez spoofing w warunkach zakłóceń mają status MODELLED, nie są sprawdzone względem niezależnego wzorca zewnętrznego: sprawdzono je względem odrębnej implementacji w tej samej bazie kodu — niezależnej od testowanej jednostki, ale nie będącej zewnętrznym autorytetem. (macierz weryfikacji (docs/MODELLED-RATIONALE.md))

Zobacz też#