Kshana run report

l-band-waterfall-jamming (spectrum)

Kind spectrum · engine 0.29.0 · scenario l-band-waterfall-jamming.toml (file digest 204830758faac62c…)

1. Executive summary

L-band spectrum model and waterfall: the whole GNSS L band as one power spectral density (PSD), frequency across, time down, over a scripted jammer timeline.

scenario spectrum | 5 bands | 3 jammers | noise floor -202.0 dBW/Hz | worst band gps-l1ca min C/N0 3.2 dB-Hz (J/S 60.2 dB)

duration_s
60 s
iq.centre_hz
1575420000 Hz
iq.comparison.bins_compared
912 count
iq.comparison.integrated_power_ratio
0.999883
iq.comparison.mean_abs_difference_db
5.439371 dB
iq.comparison.median_difference_db
-0.521006 dB

Honesty label (result `label`): MODELLED: an L-band power spectral density built from closed-form signal spectra (VALIDATED against the textbook main-lobe widths and spectral separation coefficients), jammer spectra and a kT noise floor, reduced to J/S and effective C/N0 by the spectral separation coefficient. The jammer powers, timeline and front-end bandwidths are scenario inputs, not measurements.

Capabilities used: 1 VALIDATED, 4 MODELLED, 1 PARTNER (relied on, not provided); see section 5.

2. Inputs

Every field the scenario file sets, flattened to its path. Units come from the result's units block (the field-units schema, docs/field-units-schema.json) where it describes the field, otherwise from the field-name suffix; a unit neither states is shown as not stated.

ParameterValueUnitUnit source
duration_s60sfield-units schema: units entry `duration_s`
grid.f_max_mhz1590MHzfield-name suffix
grid.f_min_mhz1160MHzfield-name suffix
grid.n_freq430not statedno units entry and no unit suffix
iq.centre_mhz1575.42MHzfield-name suffix
iq.datatypecf32_letexta text input carries no unit
iq.log2_samples16not statedno units entry and no unit suffix
iq.nfft1024countfield-units schema: units entry `iq.nfft`
iq.sample_rate_mhz20.48MHzfield-name suffix
iq.t_s35sfield-units schema: units entry `iq.t_s`
jammers[0].bandwidth_mhz16MHzfield-name suffix
jammers[0].centre_mhz1575.42MHzfield-name suffix
jammers[0].eirp_dbw-13dBWfield-units schema: units entry `jammers[].eirp_dbw`
jammers[0].namechirp privacy devicetexta text input carries no unit
jammers[0].off_s40sfield-units schema: units entry `jammers[].off_s`
jammers[0].on_s10sfield-units schema: units entry `jammers[].on_s`
jammers[0].range_m100mfield-units schema: units entry `jammers[].range_m`
jammers[0].sweep_period_us9usfield-name suffix
jammers[0].waveformchirptexta text input carries no unit
jammers[1].centre_mhz1575.42MHzfield-name suffix
jammers[1].eirp_dbw-20dBWfield-units schema: units entry `jammers[].eirp_dbw`
jammers[1].nameCW tone on L1texta text input carries no unit
jammers[1].on_s30sfield-units schema: units entry `jammers[].on_s`
jammers[1].range_m1000mfield-units schema: units entry `jammers[].range_m`
jammers[1].waveformcwtexta text input carries no unit
jammers[2].bandwidth_mhz2MHzfield-name suffix
jammers[2].centre_mhz1227.6MHzfield-name suffix
jammers[2].nameL2 narrowband noisetexta text input carries no unit
jammers[2].on_s45sfield-units schema: units entry `jammers[].on_s`
jammers[2].received_power_dbw-135dBWfield-units schema: units entry `jammers[].received_power_dbw`
jammers[2].waveformnarrowbandtexta text input carries no unit
kindspectrumtexta text input carries no unit
receiver.antenna_temp_k290Kfield-units schema: units entry `receiver.antenna_temp_k`
receiver.noise_figure_db2dBfield-units schema: units entry `receiver.noise_figure_db`
receiver.tracking_threshold_dbhz25dB-Hzfield-units schema: units entry `receiver.tracking_threshold_dbhz`
seed71field-units schema: units entry `seed`
step_s1sfield-units schema: units entry `step_s`

3. Results

Result chart
Result chart (also written to l-band-waterfall-jamming.chart.svg)

Scalar results

ResultValueUnit
duration_s60s
iq.centre_hz1575420000Hz
iq.comparison.bins_compared912count
iq.comparison.integrated_power_ratio0.9998831
iq.comparison.mean_abs_difference_db5.439371dB
iq.comparison.median_difference_db-0.521006dB
iq.enbw_hz30000Hz
iq.n_samples65536count
iq.nfft1024count
iq.sample_rate_hz20480000Hz
iq.segments127count
iq.sigmf.clipped_components0count
iq.sigmf.data_bytes524288byte
iq.sigmf.datatypecf32_letext
iq.sigmf.full_scale1.3574e-4sqrt(W)
iq.sigmf.meta.global.core:datatypecf32_letext
iq.sigmf.meta.global.core:descriptionkshana spectrum model snapshot (synthetic)text
iq.sigmf.meta.global.core:recorderkshana 0.29.0text
iq.sigmf.meta.global.core:sample_rate20480000Hz
iq.sigmf.meta.global.core:version1.0.0text
iq.t_s35s
receiver.antenna_temp_k290K
receiver.degraded_margin_db6dB
receiver.noise_density_dbw_per_hz-201.975187dBW/Hz
receiver.noise_figure_db2dB
receiver.system_temp_k459.619026K
receiver.tracking_threshold_dbhz25dB-Hz
recordingno valuenot stated
seed71
step_s1s
waterfall.bin_width_hz3000000Hz
waterfall.f_max_hz1590000000Hz
waterfall.f_min_hz1160000000Hz
waterfall.n_freq144count
waterfall.n_time60count
waterfall.noise_floor_dbw_per_hz-201.975187dBW/Hz
waterfall.peak_dbw_per_hz-161.300019dBW/Hz
waterfall.row_duration_s1s
waterfall.source_n_freq430count
waterfall.source_n_time60count

Numeric columns

ColumnCountMinMaxFirstLastUnit
bands[].centre_hz51176450000157542000015754200001176450000Hz
bands[].chip_rate_hz5102300010230000102300010230000Hz
bands[].first_null_hz51.0230e61.0230e71.0230e61.0230e7Hz
bands[].nominal_cn0_dbhz541.97518746.97518743.47518746.975187dB-Hz
bands[].psd_peak_dbw_per_hz5-227.998756-218.598756-218.598756-225.098756dBW/Hz
bands[].psd_peak_offset_hz50.0069987.5855e50.0069980.069982Hz
bands[].rx_bandwidth_hz52.0460e6204600002.0460e620460000Hz
bands[].signal_power_dbw5-160-155-158.5-155dBW
bands[].tracked_power_dbw5-160-155-158.5-155dBW
iq.freq_offset_hz[]256-1024000010160000-1024000010160000Hz
iq.model_dbw_per_hz[]256-201.98-157.3-201.98-201.98dBW/Hz
iq.sigmf.meta.captures[].core:frequency11575420000157542000015754200001575420000Hz
iq.sigmf.meta.captures[].core:sample_start10000count
iq.welch_dbw_per_hz[]256-178.34-157.05-177.18-175.77dBW/Hz
jammers[].bandwidth_hz3016000000160000002000000Hz
jammers[].centre_hz31227600000157542000015754200001227600000Hz
jammers[].eirp_dbw2-20-13-13-20dBW
jammers[].off_s140404040s
jammers[].on_s310451045s
jammers[].per_band[].cn0_effective_dbhz153.38045746.9751873.38045746.975187dB-Hz
jammers[].per_band[].in_band_power_fraction15010.12787501
jammers[].per_band[].js_db152070.6042969.1042920dB
jammers[].per_band[].js_in_band_db52567.12312760.17214625dB
jammers[].per_band[].q4117.32373717.3237372.1654861
jammers[].per_band[].ssc_db_per_hz4-72.485172-60.098756-72.485172-63.45431dB(1/Hz)
jammers[].range_m210010001001000m
jammers[].received_power_dbw3-135-89.39571-89.39571-135dBW
jammers[].rx_gain_dbi20000dBi
jammers[].sweep_period_s19.0000e-69.0000e-69.0000e-69.0000e-6s
jamming_kind_cross_check[].abs_difference_db304.4409e-164.4409e-160dB
jamming_kind_cross_check[].cn0_jamming_kind_q_from_ssc_dbhz33.38045717.9821893.38045717.982189dB-Hz
jamming_kind_cross_check[].cn0_jamming_kind_table_q_dbhz3-9.00555819.736976-9.00555819.736976dB-Hz
jamming_kind_cross_check[].cn0_spectrum_dbhz33.38045717.9821893.38045717.982189dB-Hz
jamming_kind_cross_check[].jamming_kind_table_q311.511.51
jamming_kind_cross_check[].js_jamming_kind_db342.1042969.1042969.1042942.10429dB
jamming_kind_cross_check[].js_spectrum_db342.1042969.1042969.1042942.10429dB
timeline.bands[].cn0_effective_dbhz[]3003.2346.9843.4846.98dB-Hz
timeline.bands[].first_loss_t_s210101010s
timeline.bands[].js_db[]1152567.1360.1725dB
timeline.bands[].min_cn0_dbhz53.23285946.9751873.23285946.975187dB-Hz
timeline.bands[].min_cn0_t_s5045310s
timeline.bands[].tracking_fraction50.16666710.16666711
timeline.bands[].worst_js_db32567.13279760.23941625dB
timeline.t_s[]60059059s
waterfall.freq_hz[]1441161500000158950000011615000001589500000Hz
waterfall.psd_dbw_per_hz[][]8640-201.98-161.39-201.97-201.98dBW/Hz
waterfall.t_s[]60059059s

3b. Animation and exports

Animation of the run's time series
The run's own samples drawing in behind a moving time cursor (the animated drawing of --animate svg; it shows the finished picture under reduced motion and in print).

The interactive player is written by kshana scenarios/l-band-waterfall-jamming.toml --animate html.

ExportAppliesFiles or reason
czml
https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/CZML-Structure
nothe scenario input carries no horizontal position (no latitude and longitude, no Earth-centred coordinates, no orbital elements beyond at most an altitude), so there is nothing to place on the Earth
kml
https://www.ogc.org/standard/kml/
nothe scenario input carries no horizontal position (no latitude and longitude, no Earth-centred coordinates, no orbital elements beyond at most an altitude), so there is nothing to place on the Earth
geojson
https://www.rfc-editor.org/rfc/rfc7946
nothe scenario input carries no horizontal position (no latitude and longitude, no Earth-centred coordinates, no orbital elements beyond at most an altitude), so there is nothing to place on the Earth
stk
https://help.agi.com/stk/#stk/importfiles-02.htm
nothe scenario input carries no horizontal position (no latitude and longitude, no Earth-centred coordinates, no orbital elements beyond at most an altitude), so there is nothing to place on the Earth
sigmf
https://github.com/sigmf/SigMF/blob/main/sigmf-spec.md
yeswritten by kshana scenarios/l-band-waterfall-jamming.toml --export all

4. Events timeline

run spanjammers[0]: name = chirp privacy devicpoint events (2)0 s15 s30 s45 s60 s
Windows as bars, point events as dots, on the run's own time axis.
Start (s)End (s)EventSource
060run spanscenario `duration_s`
1040jammers[0]: name = chirp privacy devicescenario `jammers[0].on_s` / `off_s`
30point eventjammers[1]: name = CW tone on L1scenario `jammers[1].on_s`
45point eventjammers[2]: name = L2 narrowband noisescenario `jammers[2].on_s`

5. Verification labels

Each row is a verification-matrix row this run's kinds exercise, with the label and the oracle the matrix gives it (src/verification.rs, docs/VERIFICATION-MATRIX.md). A label grades the capability as the matrix records it; it does not grade this scenario's configuration, and a VALIDATED row does not make the run's inputs measured. A PARTNER row is a discipline the run relies on that Kshana does not provide.

Capability (matrix requirement)LabelUsed bySource: oracleTest evidence
Reproducibility & software assurance
Deterministic, scenario-hashed, SBOM + cross-platform golden gates
MODELLED
exercised
every runSBOM conformance to the official CycloneDX 1.5 JSON Schema (+ valid SPDX identifiers) — an external published standard, zero validation errors over the full dependency graph; the FoM-determinism / byte-reproducibility part remains a pinned self-consistency check, so the row stays MODELLED (ExternalDataset)tests/golden.rs, tests/determinism.rs, tests/cross_platform_golden.rs; tests/reproducibility_software_assurance_reference.rs (the generated SBOM validates with zero errors against the official CycloneDX 1.5 JSON Schema over the full 66-component shipped graph: default + python + wasm features, dev-dependencies excluded)
Navigation RF payload & antenna hardware design
Not provided — Kshana models signal performance, not payload/antenna hardware
PARTNER
relied on, not provided
spectrumnone: a partner-owned discipline, with no module and no test by design (NoneKind)none: a partner-owned discipline
Closed-form L-band signal power spectral densities and spectral separation coefficients
Unit-area power spectral densities of GPS L1 C/A and L2C (BPSK(1)), GPS L5 and Galileo E5a (BPSK(10)), sine-BOC(1,1) and Galileo E1 MBOC(6,1,1/11) (navsignal::Modulation::psd, with an MBOC variant added), their numerically located nulls and maxima (spectrum::psd_nulls_hz, psd_peak_hz, main_lobe_null_to_null_hz), and the spectral separation coefficient of a signal against any spectrum at any offset (navsignal::spectral_separation_coeff_offset) or against a tone, flat noise, a chirp or matched noise (spectrum::Jammer::ssc), with the anti-jam coefficient Q = 1/(R_c kappa)
VALIDATED
exercised
spectrumPublished textbook values: the BPSK(n) main lobe of 2n x 1.023 MHz null to null and the anti-jam coefficients Q = 1 for a narrowband (CW) jammer and Q = 1.5 for a spread-spectrum jammer matched to C/A (Kaplan & Hegarty, Understanding GPS/GNSS, 3rd ed., section 9.4); the BOC(m,n) main lobes centred at plus or minus m x 1.023 MHz (Betz, Binary Offset Carrier Modulations for Radionavigation, NAVIGATION 48(4), 2001); the spectral separation coefficients -61.8, -64.8 and -67.8 dB/Hz for C/A with C/A, BOC(1,1) with BOC(1,1) and C/A with BOC(1,1) (Betz 2001; Hein et al., MBOC: The New Optimized Spreading Modulation Recommended for Galileo L1 OS and GPS L1C, Inside GNSS, May/June 2006), reproduced here from their Parseval autocorrelation closed forms. The BOC(1,1) maximum is not at 1.023 MHz: the lobe spans the carrier null to 2.046 MHz and peaks at 0.759 MHz, and the test pins both. The MBOC mix is the ICD definition, checked for unit area and linearity only (ExternalDataset)spectrum::tests (bpsk_main_lobe_null_to_null_is_two_n_times_1_023_mhz — BPSK(1) 2.046 MHz and BPSK(10) 20.46 MHz located numerically on the closed form; boc11_lobes_are_centred_at_plus_minus_1_023_mhz — carrier null, first null at 2.046 MHz, lobe centre 1.023 MHz, and the exact maximum at 0.7590 MHz against an independent Newton solve of tan y = 2y; ssc_matches_parseval_closed_forms — C/A x C/A 2/(3R_c) = -61.86 dB/Hz, BOC(1,1) x BOC(1,1) 1/(3R_c) = -64.87 dB/Hz, C/A x BOC(1,1) 1/(6R_c) = -67.88 dB/Hz, each within 0.02 dB; q_values_match_kaplan_hegarty — CW at the carrier Q = 1, matched-spectrum noise Q = 1.5, flat null-to-null noise Q = 2.215; mboc_is_a_unit_area_one_eleventh_mix)
L-band spectrum waterfall with per-band J/S and effective C/N0 under a scripted jammer timeline
The `spectrum` kind: a frequency-by-time grid of the L-band power spectral density (thermal floor k T_sys with T_sys = T_ant + 290 K (F - 1), the signals at their interface-specification minimum received powers, and continuous-wave, narrowband, chirp and matched-noise jammers with on/off times), each cell averaged over its bin and row (chirps exactly over whole and partial sweeps, jammers by duty), per-band effective C/N0 = [1/(C/N0) + sum (J/S) kappa]^-1 per row, J/S per band, in-band J/S, and an SVG waterfall with C/N0 bars. The report carries a cross-check against the `jamming` kind's chain on the same link inputs
MODELLED
exercised
spectrumReduction to the existing `jamming` kind's anti-jam equation and link budget (the same code, called on the same inputs), and the k T0 F noise-floor closed form. The signal spectra underneath are the validated row above; the jammer powers, timeline and front-end bandwidths are scenario inputs, the spectra are continuous (no spreading-code lines), and no automatic gain control, blanking or antenna pattern acts on the jammer. No measured jammed spectrum is in the repository to check the composite against. The `jamming` kind's representative Q table (broadband 1.0, CW 1.5) differs from the Q this model derives from the spectra (CW at the carrier 1.0, matched 1.5, flat null-to-null 2.2); the report prints both (InternalConsistency)spectrum::tests (agrees_with_the_jamming_kind_chain — J/S equal to jamming::j_over_s_db and effective C/N0 equal to jamming::effective_cn0_dbhz with Q = 1/(R_c kappa) to 1e-9 dB, and the 32.105 dB anchor of the jamming kind's own test; noise_floor_is_kt0f; chirp_window_splits_whole_and_partial_sweeps; duty_weights_partial_rows; demo_scenario_runs_and_denies_l1_while_l5_survives; defaults_run_with_no_jammer; bad_inputs_are_refused)
SigMF recording input and output, and Welch spectral estimates of complex IQ
sigmf: read and write Signal Metadata Format recordings (JSON .sigmf-meta with the core global, captures and annotations fields; raw .sigmf-data as cf32_le, ci16_le or ci8, the integer decoders shared with realdata::iqif::load_iq), all on strings and byte buffers. spectrum::welch_psd: Hann-windowed, overlapped, averaged periodograms, density-scaled, on an in-crate radix-2 transform (spectrum::fft_in_place). spectrum::synthesise_iq draws the model as IQ, and the `spectrum` kind's [iq] section runs model to IQ to SigMF to Welch and compares with the model; its [recording] section estimates a real recording (native builds)
MODELLED
exercised
spectrumRound-trip identities, a direct discrete Fourier transform, and the white-noise, Parseval and Hann equivalent-noise-bandwidth closed forms. The SigMF field names follow the published specification (github.com/sigmf/SigMF), but no externally produced recording is in the repository, so reading a third-party file is untested here and the row stays Modelled. A synthesised periodic chirp shows lines, Fresnel ripple and edge tails the smooth model omits: total power agrees within 2 %, per-bin densities near a chirp do not (InternalConsistency)sigmf::tests (cf32_round_trip_is_exact_to_single_precision; ci16_round_trip_is_within_half_a_code; ci16_is_little_endian_i_then_q; integer_encoding_counts_saturation; metadata_uses_the_core_namespace; unsupported_types_and_channels_are_refused; sample_start_offsets_into_the_data); spectrum::tests (fft_matches_a_direct_dft; welch_reads_white_noise_as_variance_over_fs_and_keeps_a_tone_s_power — floor within 2 % of variance over sample rate, Parseval total within 2 %, Hann equivalent noise bandwidth 1.5 bins; noise_like_synthesis_is_unbiased_through_welch — median Welch-minus-model within 0.1 dB through a ci16_le round trip; synthesised_iq_through_sigmf_reproduces_the_model_spectrum)
Multi-band spectrum waterfall (UHF, L, S, C) with designed signals and per-band jammers
The `spectrum` kind extended beyond the L band: bands given as a preset signal design (drawn with every component, band-limited to the transmit bandwidth, C/N0 and J/S referred to the tracked component) or as a custom carrier and modulation; extra waterfall panels over any frequency range on the same timeline and colour scale; a wideband (barrage) jammer beside CW, narrowband, chirp and matched noise; per-band J/S and effective C/N0 from the unchanged spectral separation coefficient chain
MODELLED
exercised
spectrumReduction to the existing spectrum chain and the jamming kind's anti-jam equation (a single-component band gives the same numbers as before the extension) and the signal spectra of the validated rows. The jammer powers, timeline, front-end bandwidths and the designed signals are inputs, and a designed signal is truncated at its transmit band (no out-of-band emission). (InternalConsistency)tests/leo_signal_reference.rs (the multi-band waterfall runs with four panels, the UHF, L5-band, S and C jammers each deny only their own band, and a plain-band run is unchanged by the extension); leo_signal::tests::to_spectrum_band_is_consistent_with_the_design; spectrum::tests (agrees_with_the_jamming_kind_chain)

6. Not modelled, and assumptions

Each item is quoted from where it is stated: the result document, the kind catalogue, the scenario file, or the verification matrix's reason a MODELLED row stays modelled.

StatementSource
spreading-code line structure (for example the 1 kHz lines of C/A): tones are scored against the smooth enveloperesult `not_modelled[0]`
automatic gain control, quantisation, pulse blanking and notch filteringresult `not_modelled[1]`
the receive-antenna pattern toward the jammer beyond one gain figureresult `not_modelled[2]`
intra-system multiple-access interference between satellites of one bandresult `not_modelled[3]`
GLONASS G1/G2, BeiDou B1/B2 and Galileo E6result `not_modelled[4]`
a designed signal's emissions outside its transmit bandwidth: its spectrum is truncated there, so no out-of-band emission reaches a neighbouring bandresult `not_modelled[5]`
a chirp's effect on the loop at sweep rates comparable with the loop bandwidth: its C/N0 uses the row-averaged spectrumresult `not_modelled[6]`
MODELLED: an L-band power spectral density built from closed-form signal spectra (VALIDATED against the textbook main-lobe widths and spectral separation coefficients), jammer spectra and a kT noise floor, reduced to J/S and effective C/N0 by the spectral separation coefficient. The jammer powers, timeline and front-end bandwidths are scenario inputs, not measurements.result `label`
SIGNALS: GPS L1 C/A and L2C (BPSK(1)), Galileo E1 open service (MBOC(6,1,1/11), or BOC(1,1)), GPS L5 and Galileo E5a (BPSK(10)), each at its carrier with the interface-specification minimum received power (IS-GPS-200, IS-GPS-705, Galileo OS SIS ICD) unless overridden; GLONASS, BeiDou and Galileo E6 are not modelled.kind catalogue (`kshana kinds --json`)
MODELLED: jammer powers, timeline, front-end bandwidths, the continuous-spectrum (no code lines) treatment and the absence of AGC, blanking and antenna pattern.kind catalogue (`kshana kinds --json`)
Assumptions: signal powers are the interface-specification minimum received powers (IS-GPS-200, IS-GPS-705, Galileo Open Service Signal-in-Space Interface Control Document); a 290 K antenna and a 2 dB receiver noise figure; free-space propagation to the jammers, 0 dBi receive gain toward them. MODELLED: the signal spectra are validated closed forms, but every jammer, power and timing here is a scenario input.scenario file comment, lines 32 to 36
Reproducibility & software assurance is MODELLED, not validated: a sub-claim is externally checked, but the whole capability composes modelled pieces, so the capability stays Modelled.verification matrix (docs/MODELLED-RATIONALE.md)
L-band spectrum waterfall with per-band J/S and effective C/N0 under a scripted jammer timeline is MODELLED, not validated: checked against its own closed-form / analytic identity — catches transcription and coefficient errors, but is not an external oracle.verification matrix (docs/MODELLED-RATIONALE.md)
SigMF recording input and output, and Welch spectral estimates of complex IQ is MODELLED, not validated: checked against its own closed-form / analytic identity — catches transcription and coefficient errors, but is not an external oracle.verification matrix (docs/MODELLED-RATIONALE.md)
Multi-band spectrum waterfall (UHF, L, S, C) with designed signals and per-band jammers is MODELLED, not validated: checked against its own closed-form / analytic identity — catches transcription and coefficient errors, but is not an external oracle.verification matrix (docs/MODELLED-RATIONALE.md)

7. Reproducibility record

Command to reproducekshana scenarios/l-band-waterfall-jamming.toml
Working directoryRun the command from the directory the original run was started in: the scenario path, and any relative data path inside the scenario, resolve against it. Check the scenario file against scenario_sha256 first.
Engine version0.29.0
Source commitnot recorded: this engine was built without the KSHANA_GIT_COMMIT environment variable; the engine version identifies the release
Scenario filel-band-waterfall-jamming.toml
Scenario file SHA-256 (Secure Hash Algorithm 256-bit)204830758faac62c51e3b396ff425442fee7d781378790c9c4ca7173f6c4973d
Result scenario_hash5b6d91fbe8900aef98e62df8e7b51704462854a7f3522535e7942c37d59d4184 (the kind's own fingerprint of the scenario; not the file digest)
Result document SHA-25675455b50f5df107fe353e13f154b464cad17b55ec605f1707dc9ab6a47b8e389 (l-band-waterfall-jamming.result.json)
Seed7 (scenario `seed`)
Platformmacos / aarch64 (unix)
DeterminismSame scenario bytes, seed and engine build give a byte-identical result document and report; this report carries no timestamp. Floating-point results are pinned per platform; another operating system or architecture may differ in the last digits.

To print this page to a Portable Document Format (PDF) file, use the browser's print dialog and choose “Save as PDF”; the print stylesheet fits A4 and US Letter paper, repeats table headers across pages and starts the inputs, results, labels and reproducibility sections on a new page. The engine writes no PDF itself. report.json carries the same content as this page.