Files
galileo/reports/signalsim_validation/signalsim_validation_report.json
T

268 lines
9.4 KiB
JSON

{
"simulator": {
"name": "SignalSim",
"path": "/home/onur/Desktop/galileo/signalsim/SignalSim",
"remote": "https://github.com/globsky/SignalSim",
"commit": "80b262113e77c4482ca9f5cbfef9bcada402ed28",
"git_status": "## main...origin/main"
},
"vector": {
"name": "high_cn0_single_prn",
"samples": "verification/vectors/signalsim/high_cn0_single_prn/high_cn0_single_prn_iq8.bin",
"generator_config": "verification/vectors/signalsim/high_cn0_single_prn/config.json",
"sample_format": "IQ8",
"sampling_frequency_hz": 8184000.0,
"intermediate_frequency_hz": 2046000.0,
"duration_s": 2.2,
"prn": 1,
"expected_doppler_hz": 1828.0,
"expected_doppler_source": "SignalSim_validate_only_summary_rounded_to_integer_hz",
"expected_code_phase_samples": null,
"path": "/home/onur/Desktop/galileo/verification/vectors/signalsim/high_cn0_single_prn/high_cn0_single_prn_iq8.bin",
"size_bytes": 36009600,
"complex_sample_count": 18004800,
"sha256": "3e72a5ad2d35ee68273b77587a66847b0fb328650b39c9e39272f0dc54e39e3c",
"internal_dtype": "complex128"
},
"mode": "quick",
"acquisition": {
"E1B": {
"detected": true,
"prn": 1,
"component": "E1B",
"code_phase_samples": 18309.41036755577,
"code_phase_chips": 2288.6762959444713,
"doppler_hz": 1766.3593126265423,
"carrier_frequency_hz": 2047766.3593126265,
"peak_power": 5441370632.908489,
"second_peak_power": 724471887.0812238,
"detection_metric": 7.510809915386589,
"estimated_cn0_db_hz": 38.1685032317465,
"coherent_integration_ms": 4.0,
"noncoherent_accumulations": 5,
"raw_code_phase_samples": 18309,
"raw_doppler_hz": 1750.0,
"metrics": {
"peak_to_second": 7.510809915386589,
"peak_to_mean": 27.236766759293843,
"peak_to_sidelobe": 9.98985090978008,
"cfar": 59.10585279263198,
"noise_mean": 199780344.01061067,
"noise_median": 186242777.1487124,
"noise_std": 88910448.07689284,
"second_peak": 724471887.0812238
},
"side_peak_suspected": false,
"expected_prn": 1,
"expected_doppler_hz": 1828.0,
"raw_doppler_error_hz": -78.0,
"interpolated_doppler_error_hz": -61.640687373457695,
"expected_code_phase_samples": null,
"code_phase_error_samples": null,
"processing_time_s": 0.06577738200576277,
"overflow_count": 0
},
"E1C": {
"detected": true,
"prn": 1,
"component": "E1C",
"code_phase_samples": 18309.255563640225,
"code_phase_chips": 2288.656945455028,
"doppler_hz": 1776.6435168702901,
"carrier_frequency_hz": 2047776.6435168702,
"peak_power": 5496116005.536917,
"second_peak_power": 796144387.0872731,
"detection_metric": 6.90341613239865,
"estimated_cn0_db_hz": 38.21910556645223,
"coherent_integration_ms": 4.0,
"noncoherent_accumulations": 5,
"raw_code_phase_samples": 18309,
"raw_doppler_hz": 1750.0,
"metrics": {
"peak_to_second": 6.90341613239865,
"peak_to_mean": 27.54425543885342,
"peak_to_sidelobe": 8.877838662393293,
"cfar": 59.373205541870576,
"noise_mean": 199537650.1549647,
"noise_median": 185090556.71506774,
"noise_std": 89451553.10970132,
"second_peak": 796144387.0872731
},
"side_peak_suspected": false,
"expected_prn": 1,
"expected_doppler_hz": 1828.0,
"raw_doppler_error_hz": -78.0,
"interpolated_doppler_error_hz": -51.356483129709886,
"expected_code_phase_samples": null,
"code_phase_error_samples": null,
"processing_time_s": 0.0624623160038027,
"overflow_count": 0
}
},
"tracking": {
"E1B": {
"epoch_count": 1088,
"tail_epoch_count": 200,
"final_state": "PLL_TRACK",
"reacquisition_epoch_count": 0,
"loss_of_lock_flag_count": 0,
"estimated_doppler_hz": 1828.251096939249,
"doppler_error_hz": 0.25109693924900967,
"doppler_jitter_hz_rms": 1.3255296914423045,
"dll_error_chips_rms": 0.09628370185540092,
"mean_prompt_magnitude": 22399.083674143894,
"mean_carrier_lock_metric": 0.9896417407083584,
"mean_code_lock_metric": 12.739000577793442,
"median_cn0_db_hz": 40.7319852224026
},
"E1C": {
"epoch_count": 544,
"tail_epoch_count": 200,
"final_state": "PLL_TRACK",
"reacquisition_epoch_count": 0,
"loss_of_lock_flag_count": 0,
"estimated_doppler_hz": 1828.2835216359945,
"doppler_error_hz": 0.2835216359944752,
"doppler_jitter_hz_rms": 1.0823023869896848,
"dll_error_chips_rms": 0.08491496617672437,
"mean_prompt_magnitude": 43800.06510755679,
"mean_carrier_lock_metric": 0.9933108801959688,
"mean_code_lock_metric": 12.868774234261869,
"median_cn0_db_hz": 39.005575872111315
}
},
"e1b_symbols": {
"status": "raw_symbols_recovered_page_decoding_not_implemented",
"comparison_scope": "known_10_symbol_INAV_sync_words_only",
"recovered_symbols": 469,
"compared_symbols": 20,
"initial_ignored_tracking_epochs": 150,
"initial_ignored_time_s": 0.3,
"bounded_alignment": "code boundary from PCPS; sync search within remaining 1.876 s",
"sync_matches": [
{
"symbol_index": 190,
"sign_inverted": false,
"errors": 0
},
{
"symbol_index": 440,
"sign_inverted": false,
"errors": 0
}
],
"symbol_errors": 0,
"symbol_error_rate": 0.0,
"median_soft_symbol_magnitude": 43846.682818616624,
"frame_or_page_sync": true,
"fec_decoding": "not_implemented",
"crc_validation": "not_implemented"
},
"e1c_secondary": {
"phase": 10,
"residual_frequency_hz": 52.0,
"normalized_correlation": 0.9830279116196488,
"compared_periods": 100,
"sign_errors": 0,
"sequence_source": "/home/onur/Desktop/galileo/signalsim/SignalSim/src/PilotBit.cpp",
"sequence_classification": "SignalSim_implemented_sequence_not_independently_certified_against_ICD",
"wiped_25_period_coherent_gain_db": 13.719295519016415,
"unwiped_25_period_coherent_gain_db": -0.863467276962604,
"wipeoff_gain_improvement_db": 14.582762795979018
},
"fixed_point_acquisition": {
"reference_dtype": "complex128/float64",
"input_format": {
"total_bits": 10,
"fractional_bits": 8
},
"fft_boundary_format": {
"total_bits": 32,
"fractional_bits": 20
},
"power_format": {
"total_bits": 64,
"fractional_bits": 32,
"signed": false
},
"reference_doppler_bin_hz": 2000.0,
"fixed_doppler_bin_hz": 2000.0,
"reference_code_phase_samples": 18310,
"fixed_code_phase_samples": 18310,
"doppler_bin_agreement": true,
"code_phase_agreement": true,
"acquisition_decision_agreement": true,
"normalized_absolute_error_mean": 0.0015404047604332905,
"normalized_rms_error": 0.0021864998265414934,
"normalized_peak_error": 0.01995720714695684,
"overflow_count": 0
},
"rtl_vector_manifest": {
"stem": "signalsim_acquisition_input_iq8",
"sample_count": 163680,
"total_bits": 8,
"fractional_bits": 0,
"signed": true,
"encoding": "two_complement_hex",
"i_file": "signalsim_acquisition_input_iq8_i.hex",
"q_file": "signalsim_acquisition_input_iq8_q.hex",
"overflow_count": 0,
"sampling_frequency_hz": 8184000.0,
"sample_period_s": 1.2218963831867057e-07,
"timestamp_file": "signalsim_acquisition_input_iq8_timestamps.csv",
"register_values": {
"SAMPLE_WIDTH": 8,
"SAMPLE_FRACTIONAL_BITS": 0,
"INPUT_REPRESENTATION": "COMPLEX_IQ",
"IQ_ORDER": "IQ",
"SAMPLING_FREQUENCY_HZ": 8184000.0,
"INTERMEDIATE_FREQUENCY_HZ": 2046000.0,
"PRN": 1,
"COMPONENT": "E1C",
"ACQ_DOPPLER_MIN_HZ": 1000.0,
"ACQ_DOPPLER_MAX_HZ": 2500.0,
"ACQ_DOPPLER_STEP_HZ": 250.0,
"ACQ_COHERENT_SAMPLES": 32736,
"ACQ_NONCOHERENT_COUNT": 5,
"ACQ_FFT_LENGTH": 32736,
"TRACK_E1B_INTEGRATION_SAMPLES": 16368,
"TRACK_E1C_INTEGRATION_SAMPLES": 32736,
"CARRIER_NCO_PHASE_WIDTH": 32,
"CARRIER_NCO_FCW": 1074701159,
"CODE_NCO_PHASE_WIDTH": 48,
"CODE_NCO_FCW": 35184412914156,
"E1C_SECONDARY_PHASE": 10,
"ACQ_TO_TRACK_CODE_PHASE_SAMPLES": 18309.255563640225,
"ACQ_TO_TRACK_DOPPLER_HZ": 1828.0,
"NOTE": "Symbolic names; APB addresses remain to be assigned by the RTL IP register map"
}
},
"pass_criteria": {
"maximum_raw_doppler_error_hz": 250.0,
"maximum_tracking_doppler_error_hz": 10.0,
"maximum_tracking_doppler_jitter_hz": 5.0,
"maximum_dll_rms_chips": 0.15,
"minimum_secondary_correlation": 0.9,
"maximum_secondary_sign_errors": 0,
"minimum_inav_sync_words": 2
},
"passes": {
"acquisition": true,
"e1b_tracking": true,
"e1b_raw_symbol_sync": true,
"e1c_secondary_sync": true,
"e1c_tracking": true,
"fixed_point_acquisition": true
},
"overall_pass": true,
"known_failures": [
"SignalSim E1 output cannot select E1B-only or E1C-only",
"SignalSim E1 uses BOC(1,1), not full CBOC",
"SignalSim has no native real-IF output",
"SignalSim IQ2 writer omits the output-byte assignment at this commit",
"Full I/NAV receiver-side FEC/page/CRC decoding is not implemented",
"SignalSim does not emit exact sample-side code-delay or navigation-symbol truth",
"Full multi-vector regression is not generated yet"
]
}