[webftr-js8-lab] command=ldpc-soft-decode [webftr-js8-lab] root=/decoders/js8_decoder [webftr-js8-lab] log=/decoders/js8_decoder/logs/20260526T181643Z_ldpc-soft-decode.log [webftr-js8-lab] manifest=/decoders/js8_decoder/logs/20260526T181643Z_ldpc-soft-decode_manifest.json [webftr-js8-lab] utc=20260526T181643Z [webftr-js8-lab] rx-only guard: no TX / no PTT / no Tune / no Send [webftr-js8-lab] JSON output: /decoders/js8_decoder/logs/20260526T181643Z_ldpc_soft_decode_output.json [webftr-js8-lab] JSON timeout guard: 75s { "ok": true, "mode": "JS8", "tool": "webftr-js8-soft-ldpc-minsum-probe", "tool_version": "step35-bounded-ldpc-ranking-guard", "input_wav": null, "candidate_json": "/decoders/js8_decoder/runtime/fec_candidates/js8_quick_selected_window_fec_candidate_step17.json", "rx_only": true, "safety": { "tx": false, "ptt": false, "tune": false, "send": false, "js8call_runtime_control": false }, "implementation_stage": "step35_bounded_gray_interleaver_llr_minsum_probe_no_message_unpack", "matrix": { "code": "(174,91)", "message_bits": 91, "parity_bits": 83, "codeword_bits": 174, "check_count": 83 }, "decoder": { "algorithm": "normalized_min_sum_multi_trial", "max_iterations": 24, "default_alpha": 0.8, "llr_convention": "positive=bit0_more_likely, negative=bit1_more_likely", "mapping_expansion": "ft8_gray_demap_plus_bitrev_interleaver_candidates", "max_decode_rows": 12, "fast_trials": true, "trial_count": 2 }, "candidate_context": { "nsps_used": 6400, "nsps_is_js8_realistic": true, "selected_profile": { "profile": "js8_near_6400", "nsps": 6400, "tone_spacing_hz": 1.875, "sync": { "start_sample": 57600, "start_seconds": 4.8, "base_freq_hz": 1025.0, "tone_spacing_hz": 1.875, "nsps": 6400, "candidate_score": 47.4, "costas_hits": 2, "avg_margin_db": 8.01 }, "rank_score": 225.085, "fec": { "soft_bit_count": 174, "missing_soft_bits": 0, "complete_ldpc_input_candidate": true, "llr_convention": "positive=bit0_more_likely, negative=bit1_more_likely, MSB-first candidate" }, "source_tool": "webftr-js8-auto-ldpc-probe" }, "selected_variant": { "name": "raw_msb_symbol_order", "rank_score": 127.195892, "complete_174bit_candidate": true, "hard_bits_sha256_16": "c87312f86dbe74fc", "hard_weight_174": 36, "llr_stats": { "count": 174, "avg_abs": 2.298973, "min_abs": 0.012672, "max_abs": 4.421458, "positive": 141, "negative": 33, "zero": 0 } } }, "candidate_mapping_rows": 828, "probe_count": 24, "best_soft_decode": { "variant": "mapped_ft8_gray_alt_high_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "transform": "lsb_within_each_tone+ft8_bitrev_deinterleave_rx_to_codeword+inverted_bits", "mapping_meta": { "tone_mapping": "lsb_within_each_tone", "interleaver": "ft8_bitrev", "direction": "deinterleave_rx_to_codeword", "order_len": 174, "polarity": "inverted" }, "decoder_trial": { "llr_scale": 1.0, "alpha": 0.8 }, "source_rank_score": 106.801724, "source_llr_stats": { "count": 174, "avg_abs": 1.700431, "min_abs": 0.002971, "max_abs": 4.14242, "positive": 118, "negative": 56, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 24, "message91": null, "message91_sha256_16": "6a6d742354b7cf6c", "codeword174_sha256_16": "a2f020a557f466b6", "trace": [ { "iteration": 0, "syndrome_weight": 34 }, { "iteration": 1, "syndrome_weight": 34 }, { "iteration": 2, "syndrome_weight": 42 }, { "iteration": 3, "syndrome_weight": 44 }, { "iteration": 4, "syndrome_weight": 43 }, { "iteration": 5, "syndrome_weight": 42 }, { "iteration": 6, "syndrome_weight": 38 }, { "iteration": 7, "syndrome_weight": 50 }, { "iteration": 8, "syndrome_weight": 35 }, { "iteration": 9, "syndrome_weight": 42 }, { "iteration": 10, "syndrome_weight": 27 }, { "iteration": 15, "syndrome_weight": 41 }, { "iteration": 20, "syndrome_weight": 42 } ] }, "soft_decode_results": [ { "variant": "mapped_ft8_gray_alt_high_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "transform": "lsb_within_each_tone+ft8_bitrev_deinterleave_rx_to_codeword+inverted_bits", "mapping_meta": { "tone_mapping": "lsb_within_each_tone", "interleaver": "ft8_bitrev", "direction": "deinterleave_rx_to_codeword", "order_len": 174, "polarity": "inverted" }, "decoder_trial": { "llr_scale": 1.0, "alpha": 0.8 }, "source_rank_score": 106.801724, "source_llr_stats": { "count": 174, "avg_abs": 1.700431, "min_abs": 0.002971, "max_abs": 4.14242, "positive": 118, "negative": 56, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 24, "message91": null, "message91_sha256_16": "6a6d742354b7cf6c", "codeword174_sha256_16": "a2f020a557f466b6", "trace": [ { "iteration": 0, "syndrome_weight": 34 }, { "iteration": 1, "syndrome_weight": 34 }, { "iteration": 2, "syndrome_weight": 42 }, { "iteration": 3, "syndrome_weight": 44 }, { "iteration": 4, "syndrome_weight": 43 }, { "iteration": 5, "syndrome_weight": 42 }, { "iteration": 6, "syndrome_weight": 38 }, { "iteration": 7, "syndrome_weight": 50 }, { "iteration": 8, "syndrome_weight": 35 }, { "iteration": 9, "syndrome_weight": 42 }, { "iteration": 10, "syndrome_weight": 27 }, { "iteration": 15, "syndrome_weight": 41 }, { "iteration": 20, "syndrome_weight": 42 } ] }, { "variant": "mapped_raw_msb+ft8_bitrev_deinterleave_rx_to_codeword", "transform": "ft8_gray_primary_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "ft8_gray_primary", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": true, "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "decoder_trial": { "llr_scale": 1.0, "alpha": 0.8 }, "source_rank_score": 109.195892, "source_llr_stats": { "count": 174, "avg_abs": 2.298973, "min_abs": 0.012672, "max_abs": 4.421458, "positive": 141, "negative": 33, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 26, "message91": null, "message91_sha256_16": "2a0b7b7df8e4ebe3", "codeword174_sha256_16": "e4feadf57539b9eb", "trace": [ { "iteration": 0, "syndrome_weight": 49 }, { "iteration": 1, "syndrome_weight": 34 }, { "iteration": 2, "syndrome_weight": 32 }, { "iteration": 3, "syndrome_weight": 38 }, { "iteration": 4, "syndrome_weight": 38 }, { "iteration": 5, "syndrome_weight": 38 }, { "iteration": 6, "syndrome_weight": 46 }, { "iteration": 7, "syndrome_weight": 48 }, { "iteration": 8, "syndrome_weight": 35 }, { "iteration": 9, "syndrome_weight": 45 }, { "iteration": 10, "syndrome_weight": 40 }, { "iteration": 15, "syndrome_weight": 40 }, { "iteration": 20, "syndrome_weight": 40 } ] }, { "variant": "mapped_lsb_within_each_tone+ft8_bitrev_interleave_codeword_to_rx_inverse", "transform": "ft8_gray_primary_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "ft8_gray_primary", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": true, "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "decoder_trial": { "llr_scale": 0.75, "alpha": 0.7 }, "source_rank_score": 109.195892, "source_llr_stats": { "count": 174, "avg_abs": 2.298973, "min_abs": 0.012672, "max_abs": 4.421458, "positive": 141, "negative": 33, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 28, "message91": null, "message91_sha256_16": "cbb1e701ab04aeee", "codeword174_sha256_16": "498009a7cbeb4133", "trace": [ { "iteration": 0, "syndrome_weight": 38 }, { "iteration": 1, "syndrome_weight": 44 }, { "iteration": 2, "syndrome_weight": 47 }, { "iteration": 3, "syndrome_weight": 34 }, { "iteration": 4, "syndrome_weight": 39 }, { "iteration": 5, "syndrome_weight": 41 }, { "iteration": 6, "syndrome_weight": 35 }, { "iteration": 7, "syndrome_weight": 37 }, { "iteration": 8, "syndrome_weight": 36 }, { "iteration": 9, "syndrome_weight": 45 }, { "iteration": 10, "syndrome_weight": 35 }, { "iteration": 15, "syndrome_weight": 52 }, { "iteration": 20, "syndrome_weight": 28 } ] }, { "variant": "mapped_ft8_gray_alt_high_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "transform": "raw_msb+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "raw_msb", "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "decoder_trial": { "llr_scale": 0.75, "alpha": 0.7 }, "source_rank_score": 107.578012, "source_llr_stats": { "count": 174, "avg_abs": 1.894503, "min_abs": 0.002971, "max_abs": 4.421458, "positive": 134, "negative": 40, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 29, "message91": null, "message91_sha256_16": "4efe4505857151c0", "codeword174_sha256_16": "c02f6c2e9489a106", "trace": [ { "iteration": 0, "syndrome_weight": 42 }, { "iteration": 1, "syndrome_weight": 34 }, { "iteration": 2, "syndrome_weight": 43 }, { "iteration": 3, "syndrome_weight": 44 }, { "iteration": 4, "syndrome_weight": 46 }, { "iteration": 5, "syndrome_weight": 42 }, { "iteration": 6, "syndrome_weight": 43 }, { "iteration": 7, "syndrome_weight": 48 }, { "iteration": 8, "syndrome_weight": 34 }, { "iteration": 9, "syndrome_weight": 41 }, { "iteration": 10, "syndrome_weight": 39 }, { "iteration": 15, "syndrome_weight": 49 }, { "iteration": 20, "syndrome_weight": 38 } ] }, { "variant": "mapped_ft8_gray_primary_demap_lsb_input+ft8_bitrev_deinterleave_rx_to_codeword", "transform": "lsb_within_each_tone+ft8_bitrev_deinterleave_rx_to_codeword", "mapping_meta": { "tone_mapping": "lsb_within_each_tone", "interleaver": "ft8_bitrev", "direction": "deinterleave_rx_to_codeword", "order_len": 174 }, "decoder_trial": { "llr_scale": 0.75, "alpha": 0.7 }, "source_rank_score": 106.932388, "source_llr_stats": { "count": 174, "avg_abs": 1.733097, "min_abs": 0.001731, "max_abs": 4.14242, "positive": 121, "negative": 53, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 29, "message91": null, "message91_sha256_16": "8273e7a70823945f", "codeword174_sha256_16": "073f6173cf08fd43", "trace": [ { "iteration": 0, "syndrome_weight": 35 }, { "iteration": 1, "syndrome_weight": 43 }, { "iteration": 2, "syndrome_weight": 29 }, { "iteration": 3, "syndrome_weight": 44 }, { "iteration": 4, "syndrome_weight": 38 }, { "iteration": 5, "syndrome_weight": 35 }, { "iteration": 6, "syndrome_weight": 44 }, { "iteration": 7, "syndrome_weight": 47 }, { "iteration": 8, "syndrome_weight": 31 }, { "iteration": 9, "syndrome_weight": 41 }, { "iteration": 10, "syndrome_weight": 42 }, { "iteration": 15, "syndrome_weight": 36 }, { "iteration": 20, "syndrome_weight": 43 } ] }, { "variant": "reverse_symbol_order", "transform": "lsb_within_each_tone+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "lsb_within_each_tone", "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "decoder_trial": { "llr_scale": 0.75, "alpha": 0.7 }, "source_rank_score": 113.195892, "source_llr_stats": { "count": 174, "avg_abs": 2.298973, "min_abs": 0.012672, "max_abs": 4.421458, "positive": 141, "negative": 33, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 30, "message91": null, "message91_sha256_16": "e2c9a6affe28e3f2", "codeword174_sha256_16": "f3dfa6a0c41f9c0e", "trace": [ { "iteration": 0, "syndrome_weight": 41 }, { "iteration": 1, "syndrome_weight": 42 }, { "iteration": 2, "syndrome_weight": 39 }, { "iteration": 3, "syndrome_weight": 42 }, { "iteration": 4, "syndrome_weight": 43 }, { "iteration": 5, "syndrome_weight": 32 }, { "iteration": 6, "syndrome_weight": 32 }, { "iteration": 7, "syndrome_weight": 41 }, { "iteration": 8, "syndrome_weight": 48 }, { "iteration": 9, "syndrome_weight": 38 }, { "iteration": 10, "syndrome_weight": 41 }, { "iteration": 15, "syndrome_weight": 36 }, { "iteration": 20, "syndrome_weight": 45 } ] }, { "variant": "reverse_full_bitstream", "transform": "raw_msb+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "raw_msb", "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "decoder_trial": { "llr_scale": 0.75, "alpha": 0.7 }, "source_rank_score": 112.195892, "source_llr_stats": { "count": 174, "avg_abs": 2.298973, "min_abs": 0.012672, "max_abs": 4.421458, "positive": 141, "negative": 33, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 30, "message91": null, "message91_sha256_16": "7978ad3fe1d24184", "codeword174_sha256_16": "839966c9e07e1714", "trace": [ { "iteration": 0, "syndrome_weight": 41 }, { "iteration": 1, "syndrome_weight": 30 }, { "iteration": 2, "syndrome_weight": 30 }, { "iteration": 3, "syndrome_weight": 44 }, { "iteration": 4, "syndrome_weight": 43 }, { "iteration": 5, "syndrome_weight": 43 }, { "iteration": 6, "syndrome_weight": 41 }, { "iteration": 7, "syndrome_weight": 39 }, { "iteration": 8, "syndrome_weight": 43 }, { "iteration": 9, "syndrome_weight": 48 }, { "iteration": 10, "syndrome_weight": 43 }, { "iteration": 15, "syndrome_weight": 35 }, { "iteration": 20, "syndrome_weight": 42 } ] }, { "variant": "lab_mask_xor_preview", "transform": "ft8_gray_primary_demap_lsb_input+ft8_bitrev_deinterleave_rx_to_codeword+inverted_bits", "mapping_meta": { "tone_mapping": "ft8_gray_primary", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": true, "interleaver": "ft8_bitrev", "direction": "deinterleave_rx_to_codeword", "order_len": 174, "polarity": "inverted" }, "decoder_trial": { "llr_scale": 0.75, "alpha": 0.7 }, "source_rank_score": 101.195892, "source_llr_stats": { "count": 174, "avg_abs": 2.298973, "min_abs": 0.012672, "max_abs": 4.421458, "positive": 141, "negative": 33, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 30, "message91": null, "message91_sha256_16": "210ed54aa2f6f2f5", "codeword174_sha256_16": "2656303585b5b258", "trace": [ { "iteration": 0, "syndrome_weight": 31 }, { "iteration": 1, "syndrome_weight": 31 }, { "iteration": 2, "syndrome_weight": 30 }, { "iteration": 3, "syndrome_weight": 39 }, { "iteration": 4, "syndrome_weight": 31 }, { "iteration": 5, "syndrome_weight": 31 }, { "iteration": 6, "syndrome_weight": 46 }, { "iteration": 7, "syndrome_weight": 39 }, { "iteration": 8, "syndrome_weight": 45 }, { "iteration": 9, "syndrome_weight": 37 }, { "iteration": 10, "syndrome_weight": 39 }, { "iteration": 15, "syndrome_weight": 48 }, { "iteration": 20, "syndrome_weight": 34 } ] }, { "variant": "mapped_lsb_within_each_tone+ft8_bitrev_deinterleave_rx_to_codeword", "transform": "ft8_gray_primary_demap_msb_input+no_interleaver+inverted_bits", "mapping_meta": { "tone_mapping": "ft8_gray_primary", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": false, "interleaver": "none", "polarity": "inverted" }, "decoder_trial": { "llr_scale": 0.75, "alpha": 0.7 }, "source_rank_score": 109.195892, "source_llr_stats": { "count": 174, "avg_abs": 2.298973, "min_abs": 0.012672, "max_abs": 4.421458, "positive": 141, "negative": 33, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 31, "message91": null, "message91_sha256_16": "a232115d81b2083e", "codeword174_sha256_16": "989fdc400af2d00b", "trace": [ { "iteration": 0, "syndrome_weight": 40 }, { "iteration": 1, "syndrome_weight": 48 }, { "iteration": 2, "syndrome_weight": 40 }, { "iteration": 3, "syndrome_weight": 43 }, { "iteration": 4, "syndrome_weight": 37 }, { "iteration": 5, "syndrome_weight": 37 }, { "iteration": 6, "syndrome_weight": 47 }, { "iteration": 7, "syndrome_weight": 41 }, { "iteration": 8, "syndrome_weight": 45 }, { "iteration": 9, "syndrome_weight": 33 }, { "iteration": 10, "syndrome_weight": 31 }, { "iteration": 15, "syndrome_weight": 34 }, { "iteration": 20, "syndrome_weight": 41 } ] }, { "variant": "mapped_raw_msb+ft8_bitrev_deinterleave_rx_to_codeword", "transform": "ft8_gray_primary_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "ft8_gray_primary", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": true, "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "decoder_trial": { "llr_scale": 0.75, "alpha": 0.7 }, "source_rank_score": 109.195892, "source_llr_stats": { "count": 174, "avg_abs": 2.298973, "min_abs": 0.012672, "max_abs": 4.421458, "positive": 141, "negative": 33, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 31, "message91": null, "message91_sha256_16": "05fd73d89b6cac16", "codeword174_sha256_16": "a018589817ef1b1e", "trace": [ { "iteration": 0, "syndrome_weight": 49 }, { "iteration": 1, "syndrome_weight": 50 }, { "iteration": 2, "syndrome_weight": 47 }, { "iteration": 3, "syndrome_weight": 40 }, { "iteration": 4, "syndrome_weight": 40 }, { "iteration": 5, "syndrome_weight": 42 }, { "iteration": 6, "syndrome_weight": 36 }, { "iteration": 7, "syndrome_weight": 34 }, { "iteration": 8, "syndrome_weight": 37 }, { "iteration": 9, "syndrome_weight": 47 }, { "iteration": 10, "syndrome_weight": 46 }, { "iteration": 15, "syndrome_weight": 40 }, { "iteration": 20, "syndrome_weight": 43 } ] }, { "variant": "mapped_ft8_gray_primary_demap_msb_input+ft8_bitrev_deinterleave_rx_to_codeword", "transform": "ft8_gray_alt_high_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "ft8_gray_alt_high", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": false, "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "decoder_trial": { "llr_scale": 1.0, "alpha": 0.8 }, "source_rank_score": 107.708676, "source_llr_stats": { "count": 174, "avg_abs": 1.927169, "min_abs": 0.001731, "max_abs": 4.421458, "positive": 137, "negative": 37, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 31, "message91": null, "message91_sha256_16": "d41915263de40159", "codeword174_sha256_16": "2f18abe7c2266fc5", "trace": [ { "iteration": 0, "syndrome_weight": 40 }, { "iteration": 1, "syndrome_weight": 38 }, { "iteration": 2, "syndrome_weight": 42 }, { "iteration": 3, "syndrome_weight": 45 }, { "iteration": 4, "syndrome_weight": 53 }, { "iteration": 5, "syndrome_weight": 44 }, { "iteration": 6, "syndrome_weight": 44 }, { "iteration": 7, "syndrome_weight": 45 }, { "iteration": 8, "syndrome_weight": 37 }, { "iteration": 9, "syndrome_weight": 34 }, { "iteration": 10, "syndrome_weight": 36 }, { "iteration": 15, "syndrome_weight": 40 }, { "iteration": 20, "syndrome_weight": 38 } ] }, { "variant": "lab_mask_xor_preview", "transform": "ft8_gray_primary_demap_lsb_input+ft8_bitrev_deinterleave_rx_to_codeword+inverted_bits", "mapping_meta": { "tone_mapping": "ft8_gray_primary", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": true, "interleaver": "ft8_bitrev", "direction": "deinterleave_rx_to_codeword", "order_len": 174, "polarity": "inverted" }, "decoder_trial": { "llr_scale": 1.0, "alpha": 0.8 }, "source_rank_score": 101.195892, "source_llr_stats": { "count": 174, "avg_abs": 2.298973, "min_abs": 0.012672, "max_abs": 4.421458, "positive": 141, "negative": 33, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 31, "message91": null, "message91_sha256_16": "210ed54aa2f6f2f5", "codeword174_sha256_16": "ef2bdd6a8b61576d", "trace": [ { "iteration": 0, "syndrome_weight": 31 }, { "iteration": 1, "syndrome_weight": 31 }, { "iteration": 2, "syndrome_weight": 35 }, { "iteration": 3, "syndrome_weight": 39 }, { "iteration": 4, "syndrome_weight": 40 }, { "iteration": 5, "syndrome_weight": 46 }, { "iteration": 6, "syndrome_weight": 48 }, { "iteration": 7, "syndrome_weight": 48 }, { "iteration": 8, "syndrome_weight": 42 }, { "iteration": 9, "syndrome_weight": 39 }, { "iteration": 10, "syndrome_weight": 41 }, { "iteration": 15, "syndrome_weight": 38 }, { "iteration": 20, "syndrome_weight": 44 } ] }, { "variant": "mapped_lsb_within_each_tone+ft8_bitrev_interleave_codeword_to_rx_inverse", "transform": "ft8_gray_alt_high_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "ft8_gray_alt_high", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": true, "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "decoder_trial": { "llr_scale": 0.75, "alpha": 0.7 }, "source_rank_score": 109.195892, "source_llr_stats": { "count": 174, "avg_abs": 2.298973, "min_abs": 0.012672, "max_abs": 4.421458, "positive": 141, "negative": 33, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 32, "message91": null, "message91_sha256_16": "e8668f5cc7a6f478", "codeword174_sha256_16": "f1d436ecbef8e088", "trace": [ { "iteration": 0, "syndrome_weight": 38 }, { "iteration": 1, "syndrome_weight": 38 }, { "iteration": 2, "syndrome_weight": 47 }, { "iteration": 3, "syndrome_weight": 43 }, { "iteration": 4, "syndrome_weight": 51 }, { "iteration": 5, "syndrome_weight": 48 }, { "iteration": 6, "syndrome_weight": 40 }, { "iteration": 7, "syndrome_weight": 39 }, { "iteration": 8, "syndrome_weight": 50 }, { "iteration": 9, "syndrome_weight": 33 }, { "iteration": 10, "syndrome_weight": 37 }, { "iteration": 15, "syndrome_weight": 41 }, { "iteration": 20, "syndrome_weight": 32 } ] }, { "variant": "mapped_lsb_within_each_tone+ft8_bitrev_deinterleave_rx_to_codeword", "transform": "ft8_gray_alt_high_demap_msb_input+no_interleaver+inverted_bits", "mapping_meta": { "tone_mapping": "ft8_gray_alt_high", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": false, "interleaver": "none", "polarity": "inverted" }, "decoder_trial": { "llr_scale": 1.0, "alpha": 0.8 }, "source_rank_score": 109.195892, "source_llr_stats": { "count": 174, "avg_abs": 2.298973, "min_abs": 0.012672, "max_abs": 4.421458, "positive": 141, "negative": 33, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 32, "message91": null, "message91_sha256_16": "f7edca62d63c8bf8", "codeword174_sha256_16": "77bf404572ba2050", "trace": [ { "iteration": 0, "syndrome_weight": 42 }, { "iteration": 1, "syndrome_weight": 39 }, { "iteration": 2, "syndrome_weight": 41 }, { "iteration": 3, "syndrome_weight": 47 }, { "iteration": 4, "syndrome_weight": 40 }, { "iteration": 5, "syndrome_weight": 49 }, { "iteration": 6, "syndrome_weight": 34 }, { "iteration": 7, "syndrome_weight": 32 }, { "iteration": 8, "syndrome_weight": 33 }, { "iteration": 9, "syndrome_weight": 37 }, { "iteration": 10, "syndrome_weight": 35 }, { "iteration": 15, "syndrome_weight": 40 }, { "iteration": 20, "syndrome_weight": 40 } ] }, { "variant": "reverse_full_bitstream", "transform": "raw_msb+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "raw_msb", "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "decoder_trial": { "llr_scale": 1.0, "alpha": 0.8 }, "source_rank_score": 112.195892, "source_llr_stats": { "count": 174, "avg_abs": 2.298973, "min_abs": 0.012672, "max_abs": 4.421458, "positive": 141, "negative": 33, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 33, "message91": null, "message91_sha256_16": "348bad2a3c8285da", "codeword174_sha256_16": "6b59017b641b4f24", "trace": [ { "iteration": 0, "syndrome_weight": 41 }, { "iteration": 1, "syndrome_weight": 43 }, { "iteration": 2, "syndrome_weight": 35 }, { "iteration": 3, "syndrome_weight": 33 }, { "iteration": 4, "syndrome_weight": 36 }, { "iteration": 5, "syndrome_weight": 48 }, { "iteration": 6, "syndrome_weight": 43 }, { "iteration": 7, "syndrome_weight": 34 }, { "iteration": 8, "syndrome_weight": 37 }, { "iteration": 9, "syndrome_weight": 40 }, { "iteration": 10, "syndrome_weight": 34 }, { "iteration": 15, "syndrome_weight": 49 }, { "iteration": 20, "syndrome_weight": 46 } ] }, { "variant": "mapped_ft8_gray_primary_demap_msb_input+ft8_bitrev_deinterleave_rx_to_codeword", "transform": "ft8_gray_alt_high_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "ft8_gray_alt_high", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": false, "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "decoder_trial": { "llr_scale": 0.75, "alpha": 0.7 }, "source_rank_score": 107.708676, "source_llr_stats": { "count": 174, "avg_abs": 1.927169, "min_abs": 0.001731, "max_abs": 4.421458, "positive": 137, "negative": 37, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 33, "message91": null, "message91_sha256_16": "458df79ba60a9328", "codeword174_sha256_16": "6d00dc7e03a960c9", "trace": [ { "iteration": 0, "syndrome_weight": 40 }, { "iteration": 1, "syndrome_weight": 43 }, { "iteration": 2, "syndrome_weight": 42 }, { "iteration": 3, "syndrome_weight": 36 }, { "iteration": 4, "syndrome_weight": 55 }, { "iteration": 5, "syndrome_weight": 44 }, { "iteration": 6, "syndrome_weight": 33 }, { "iteration": 7, "syndrome_weight": 46 }, { "iteration": 8, "syndrome_weight": 41 }, { "iteration": 9, "syndrome_weight": 44 }, { "iteration": 10, "syndrome_weight": 33 }, { "iteration": 15, "syndrome_weight": 34 }, { "iteration": 20, "syndrome_weight": 43 } ] }, { "variant": "reverse_symbol_order", "transform": "lsb_within_each_tone+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "lsb_within_each_tone", "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "decoder_trial": { "llr_scale": 1.0, "alpha": 0.8 }, "source_rank_score": 113.195892, "source_llr_stats": { "count": 174, "avg_abs": 2.298973, "min_abs": 0.012672, "max_abs": 4.421458, "positive": 141, "negative": 33, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 34, "message91": null, "message91_sha256_16": "90c113192e91f005", "codeword174_sha256_16": "41b7858eaf726d78", "trace": [ { "iteration": 0, "syndrome_weight": 41 }, { "iteration": 1, "syndrome_weight": 45 }, { "iteration": 2, "syndrome_weight": 34 }, { "iteration": 3, "syndrome_weight": 48 }, { "iteration": 4, "syndrome_weight": 38 }, { "iteration": 5, "syndrome_weight": 45 }, { "iteration": 6, "syndrome_weight": 47 }, { "iteration": 7, "syndrome_weight": 39 }, { "iteration": 8, "syndrome_weight": 36 }, { "iteration": 9, "syndrome_weight": 40 }, { "iteration": 10, "syndrome_weight": 43 }, { "iteration": 15, "syndrome_weight": 49 }, { "iteration": 20, "syndrome_weight": 47 } ] }, { "variant": "mapped_lsb_within_each_tone+ft8_bitrev_deinterleave_rx_to_codeword", "transform": "ft8_gray_primary_demap_msb_input+no_interleaver+inverted_bits", "mapping_meta": { "tone_mapping": "ft8_gray_primary", "gray_direction": "inverse_observed_to_plain", "reverse_bits_within_tone_before_gray": false, "interleaver": "none", "polarity": "inverted" }, "decoder_trial": { "llr_scale": 1.0, "alpha": 0.8 }, "source_rank_score": 109.195892, "source_llr_stats": { "count": 174, "avg_abs": 2.298973, "min_abs": 0.012672, "max_abs": 4.421458, "positive": 141, "negative": 33, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 34, "message91": null, "message91_sha256_16": "23c3e63ea6054327", "codeword174_sha256_16": "37074cdf79522a3e", "trace": [ { "iteration": 0, "syndrome_weight": 40 }, { "iteration": 1, "syndrome_weight": 48 }, { "iteration": 2, "syndrome_weight": 43 }, { "iteration": 3, "syndrome_weight": 44 }, { "iteration": 4, "syndrome_weight": 47 }, { "iteration": 5, "syndrome_weight": 35 }, { "iteration": 6, "syndrome_weight": 35 }, { "iteration": 7, "syndrome_weight": 39 }, { "iteration": 8, "syndrome_weight": 43 }, { "iteration": 9, "syndrome_weight": 45 }, { "iteration": 10, "syndrome_weight": 34 }, { "iteration": 15, "syndrome_weight": 37 }, { "iteration": 20, "syndrome_weight": 46 } ] }, { "variant": "mapped_ft8_gray_alt_high_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "transform": "raw_msb+ft8_bitrev_interleave_codeword_to_rx_inverse", "mapping_meta": { "tone_mapping": "raw_msb", "interleaver": "ft8_bitrev", "direction": "interleave_codeword_to_rx_inverse", "order_len": 174 }, "decoder_trial": { "llr_scale": 1.0, "alpha": 0.8 }, "source_rank_score": 107.578012, "source_llr_stats": { "count": 174, "avg_abs": 1.894503, "min_abs": 0.002971, "max_abs": 4.421458, "positive": 134, "negative": 40, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 34, "message91": null, "message91_sha256_16": "4c779f16eae4a194", "codeword174_sha256_16": "e5695a940150931b", "trace": [ { "iteration": 0, "syndrome_weight": 42 }, { "iteration": 1, "syndrome_weight": 34 }, { "iteration": 2, "syndrome_weight": 38 }, { "iteration": 3, "syndrome_weight": 44 }, { "iteration": 4, "syndrome_weight": 36 }, { "iteration": 5, "syndrome_weight": 40 }, { "iteration": 6, "syndrome_weight": 39 }, { "iteration": 7, "syndrome_weight": 44 }, { "iteration": 8, "syndrome_weight": 41 }, { "iteration": 9, "syndrome_weight": 42 }, { "iteration": 10, "syndrome_weight": 39 }, { "iteration": 15, "syndrome_weight": 41 }, { "iteration": 20, "syndrome_weight": 44 } ] }, { "variant": "mapped_ft8_gray_alt_high_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse", "transform": "lsb_within_each_tone+ft8_bitrev_deinterleave_rx_to_codeword+inverted_bits", "mapping_meta": { "tone_mapping": "lsb_within_each_tone", "interleaver": "ft8_bitrev", "direction": "deinterleave_rx_to_codeword", "order_len": 174, "polarity": "inverted" }, "decoder_trial": { "llr_scale": 0.75, "alpha": 0.7 }, "source_rank_score": 106.801724, "source_llr_stats": { "count": 174, "avg_abs": 1.700431, "min_abs": 0.002971, "max_abs": 4.14242, "positive": 118, "negative": 56, "zero": 0 }, "success": false, "iterations_used": 24, "final_syndrome_weight": 34, "message91": null, "message91_sha256_16": "64a178ece7f87012", "codeword174_sha256_16": "377fba097ea68f57", "trace": [ { "iteration": 0, "syndrome_weight": 34 }, { "iteration": 1, "syndrome_weight": 34 }, { "iteration": 2, "syndrome_weight": 34 }, { "iteration": 3, "syndrome_weight": 36 }, { "iteration": 4, "syndrome_weight": 34 }, { "iteration": 5, "syndrome_weight": 41 }, { "iteration": 6, "syndrome_weight": 39 }, { "iteration": 7, "syndrome_weight": 36 }, { "iteration": 8, "syndrome_weight": 34 }, { "iteration": 9, "syndrome_weight": 34 }, { "iteration": 10, "syndrome_weight": 43 }, { "iteration": 15, "syndrome_weight": 38 }, { "iteration": 20, "syndrome_weight": 35 } ] } ], "decodes": [], "outputs": { "ldpc_soft_decode_json": "/decoders/js8_decoder/runtime/ldpc_soft_decode/step35_ldpc_soft_decode.json" }, "warnings": [ "Step 35 runs bounded normalized-min-sum soft LDPC over the best-ranked FT8-style Gray/interleaver mapping candidates against the public (174,91) matrix contract.", "This still does not unpack JS8 text or validate CRC/message payloads.", "If success is true and syndrome_weight is 0, the next step can unpack the 91-bit message. Otherwise more timing, Costas/data-symbol boundary, deinterleaver/order or LLR tuning is required." ], "next_action": "Upload Step35 logs. If no valid codeword, inspect best mapping_meta/final_syndrome_weight and continue timing/interleaver/LLR tuning; if valid, add JS8 message unpack/CRC." } [webftr-js8-lab] OK [webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260526T181643Z_ldpc-soft-decode.log [webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260526T181643Z_ldpc-soft-decode_manifest.json