JS8Lab Step 50

Status

LÄUFT

State: diagnostics_running
Detail: REAL-RUN STEP 5/9: AUTO LDPC PROBE
Diagnose läuft: ja Server läuft: ja
Letzte Manifest-Auswertung: ok
Version: step50-source-aligned-nsps-timing-sweep
Root: /decoders/js8_decoder
WAV: /decoders/js8_test.wav

Links

/api/status frisch /api/report frisch /logs/ frisch Diagnose-Startlog frisch Lab latest.log frisch Report JSON frisch
Cache-Buster dieses Abrufs: ?t=1779878814289

Bundles

js8_decoder_lab_full_audit_20260527T100315Z.zip 4129065 B
js8_decoder_lab_full_audit_20260527T084305Z.zip 4007964 B
js8_decoder_lab_real_run_20260527T082046Z.zip 4028163 B
js8_decoder_lab_real_run_20260527T080216Z.zip 3541087 B
js8_decoder_lab_real_run_20260527T073615Z.zip 3065595 B
js8_decoder_lab_real_run_20260527T072638Z.zip 2615145 B
js8_decoder_lab_real_run_20260527T070658Z.zip 2232505 B
js8_decoder_lab_real_run_20260527T064500Z.zip 1771764 B
js8_decoder_lab_real_run_20260527T062127Z.zip 1595958 B
js8_decoder_lab_real_run_20260527T055654Z.zip 1408988 B
js8_decoder_lab_real_run_20260527T052959Z.zip 1266231 B
js8_decoder_lab_real_run_20260527T050723Z.zip 1145101 B

Latest log tail

me": {
          "symbols_available_after_start": 12,
          "data_symbol_count_estimate": 5,
          "expected_data_symbols_candidate": 58
        },
        "fec": {
          "soft_bit_count_estimate": 15,
          "missing_soft_bits_estimate": 159,
          "complete_ldpc_input_candidate_estimate": false
        },
        "rank_score": 64.462328
      }
    ],
    "selected_profile": {
      "profile": "js8_near_6000",
      "nsps": 6000,
      "rank_score": 231.861,
      "complete_ldpc_input_candidate_estimate": true,
      "soft_bit_count_estimate": 174,
      "missing_soft_bits_estimate": 0
    },
    "decodes": [],
    "warnings": [
      "Step 50 selects the best timing/profile candidate only. It still does not decode final JS8 text."
    ],
    "next_action": "Run auto-ldpc-probe on the same WAV so the selected timing profile is fed into the LDPC probe harness."
  },
  "profile_guards": [
    {
      "profile": "js8_near_6000",
      "nsps": 6000,
      "protocol_family": "js8_normal_candidate",
      "symbol_duration_seconds": 0.5,
      "tone_spacing_hz": 2.0,
      "sync": {
        "start_seconds": 8.25,
        "base_freq_hz": 1010.0,
        "candidate_score": 49.22,
        "costas_hits": 4,
        "avg_margin_db": 3.86,
        "candidate_count": 12
      },
      "frame": {
        "symbols_available_after_start": 103,
        "data_symbol_count_estimate": 58,
        "expected_data_symbols_candidate": 58
      },
      "fec": {
        "soft_bit_count_estimate": 174,
        "missing_soft_bits_estimate": 0,
        "complete_ldpc_input_candidate_estimate": true
      },
      "rank_score": 231.861,
      "guard_score": 306.861,
      "available_after_start_seconds": 51.75,
      "minimum_symbols_for_174bit_candidate": 65,
      "minimum_seconds_after_start_for_174bit_candidate": 32.5,
      "missing_seconds_for_174bit_candidate": 0.0,
      "full_frame_symbols_reference": 79,
      "missing_seconds_for_full_ft8_like_frame": 0.0,
      "soft_bit_count_estimate": 174,
      "missing_soft_bits_estimate": 0,
      "enough_audio_for_174bit_candidate": true,
      "enough_audio_for_full_frame_reference": true,
      "guard_note": "Protocol-realistic JS8 timing candidate."
    },
    {
      "profile": "ft8_like_fast_1920",
      "nsps": 1920,
      "protocol_family": "fast_diagnostic_candidate",
      "symbol_duration_seconds": 0.16,
      "tone_spacing_hz": 6.25,
      "sync": {
        "start_seconds": 29.68,
        "base_freq_hz": 980.0,
        "candidate_score": 47.58,
        "costas_hits": 3,
        "avg_margin_db": 5.94,
        "candidate_count": 12
      },
      "frame": {
        "symbols_available_after_start": 189,
        "data_symbol_count_estimate": 58,
        "expected_data_symbols_candidate": 58
      },
      "fec": {
        "soft_bit_count_estimate": 174,
        "missing_soft_bits_estimate": 0,
        "complete_ldpc_input_candidate_estimate": true
      },
      "rank_score": 228.079,
      "guard_score": 230.079,
      "available_after_start_seconds": 30.32,
      "minimum_symbols_for_174bit_candidate": 65,
      "minimum_seconds_after_start_for_174bit_candidate": 10.4,
      "missing_seconds_for_174bit_candidate": 0.0,
      "full_frame_symbols_reference": 79,
      "missing_seconds_for_full_ft8_like_frame": 0.0,
      "soft_bit_count_estimate": 174,
      "missing_soft_bits_estimate": 0,
      "enough_audio_for_174bit_candidate": true,
      "enough_audio_for_full_frame_reference": true,
      "guard_note": "Diagnostic timing candidate. A short WAV can make this look better than real JS8 timing."
    },
    {
      "profile": "js8_normal_6192",
      "nsps": 6192,
      "protocol_family": "js8_normal_candidate",
      "symbol_duration_seconds": 0.516,
      "tone_spacing_hz": 1.937984,
      "sync": {
        "start_seconds": 33.024,
        "base_freq_hz": 1020.0,
        "candidate_score": 46.67,
        "costas_hits": 3,
        "avg_margin_db": 3.13,
        "candidate_count": 12
      },
      "frame": {
        "symbols_available_after_start": 52,
        "data_symbol_count_estimate": 45,
        "expected_data_symbols_candidate": 58
      },
      "fec": {
        "soft_bit_count_estimate": 135,
        "missing_soft_bits_estimate": 39,
        "complete_ldpc_input_candidate_estimate": false
      },
      "rank_score": 154.466948,
      "guard_score": 209.61481,
      "available_after_start_seconds": 26.976,
      "minimum_symbols_for_174bit_candidate": 65,
      "minimum_seconds_after_start_for_174bit_candidate": 33.54,
      "missing_seconds_for_174bit_candidate": 6.564,
      "full_frame_symbols_reference": 79,
      "missing_seconds_for_full_ft8_like_frame": 13.788,
      "soft_bit_count_estimate": 135,
      "missing_soft_bits_estimate": 39,
      "enough_audio_for_174bit_candidate": false,
      "enough_audio_for_full_frame_reference": false,
      "guard_note": "Protocol-realistic JS8 timing candidate."
    },
    {
      "profile": "mid_3840",
      "nsps": 3840,
      "protocol_family": "mid_speed_diagnostic_candidate",
      "symbol_duration_seconds": 0.32,
      "tone_spacing_hz": 3.125,
      "sync": {
        "start_seconds": 45.76,
        "base_freq_hz": 1005.0,
        "candidate_score": 44.86,
        "costas_hits": 2,
        "avg_margin_db": 5.02,
        "candidate_count": 12
      },
      "frame": {
        "symbols_available_after_start": 44,
        "data_symbol_count_estimate": 37,
        "expected_data_symbols_candidate": 58
      },
      "fec": {
        "soft_bit_count_estimate": 111,
        "missing_soft_bits_estimate": 63,
        "complete_ldpc_input_candidate_estimate": false
      },
      "rank_score": 131.754724,
      "guard_score": 119.772655,
      "available_after_start_seconds": 14.24,
      "minimum_symbols_for_174bit_candidate": 65,
      "minimum_seconds_after_start_for_174bit_candidate": 20.8,
      "missing_seconds_for_174bit_candidate": 6.56,
      "full_frame_symbols_reference": 79,
      "missing_seconds_for_full_ft8_like_frame": 11.04,
      "soft_bit_count_estimate": 111,
      "missing_soft_bits_estimate": 63,
      "enough_audio_for_174bit_candidate": false,
      "enough_audio_for_full_frame_reference": false,
      "guard_note": "Diagnostic timing candidate. A short WAV can make this look better than real JS8 timing."
    },
    {
      "profile": "js8_near_6400",
      "nsps": 6400,
      "protocol_family": "js8_normal_candidate",
      "symbol_duration_seconds": 0.533333,
      "tone_spacing_hz": 1.875,
      "sync": {
        "start_seconds": 45.466667,
        "base_freq_hz": 1000.0,
        "candidate_score": 40.55,
        "costas_hits": 2,
        "avg_margin_db": 8.4,
        "candidate_count": 12
      },
      "frame": {
        "symbols_available_after_start": 27,
        "data_symbol_count_estimate": 20,
        "expected_data_symbols_candidate": 58
      },
      "fec": {
        "soft_bit_count_estimate": 60,
        "missing_soft_bits_estimate": 114,
        "complete_ldpc_input_candidate_estimate": false
      },
      "rank_score": 95.03181,
      "guard_score": 110.10997,
      "available_after_start_seconds": 14.533333,
      "minimum_symbols_for_174bit_candidate": 65,
      "minimum_seconds_after_start_for_174bit_candidate": 34.666667,
      "missing_seconds_for_174bit_candidate": 20.133334,
      "full_frame_symbols_reference": 79,
      "missing_seconds_for_full_ft8_like_frame": 27.6,
      "soft_bit_count_estimate": 60,
      "missing_soft_bits_estimate": 114,
      "enough_audio_for_174bit_candidate": false,
      "enough_audio_for_full_frame_reference": false,
      "guard_note": "Protocol-realistic JS8 timing candidate."
    },
    {
      "profile": "slow_7680",
      "nsps": 7680,
      "protocol_family": "slow_diagnostic_candidate",
      "symbol_duration_seconds": 0.64,
      "tone_spacing_hz": 1.5625,
      "sync": {
        "start_seconds": 52.0,
        "base_freq_hz": 1017.5,
        "candidate_score": 46.55,
        "costas_hits": 4,
        "avg_margin_db": 1.01,
        "candidate_count": 12
      },
      "frame": {
        "symbols_available_after_start": 12,
        "data_symbol_count_estimate": 5,
        "expected_data_symbols_candidate": 58
      },
      "fec": {
        "soft_bit_count_estimate": 15,
        "missing_soft_bits_estimate": 159,
        "complete_ldpc_input_candidate_estimate": false
      },
      "rank_score": 64.462328,
      "guard_score": -28.151465,
      "available_after_start_seconds": 8.0,
      "minimum_symbols_for_174bit_candidate": 65,
      "minimum_seconds_after_start_for_174bit_candidate": 41.6,
      "missing_seconds_for_174bit_candidate": 33.6,
      "full_frame_symbols_reference": 79,
      "missing_seconds_for_full_ft8_like_frame": 42.56,
      "soft_bit_count_estimate": 15,
      "missing_soft_bits_estimate": 159,
      "enough_audio_for_174bit_candidate": false,
      "enough_audio_for_full_frame_reference": false,
      "guard_note": "Diagnostic timing candidate. A short WAV can make this look better than real JS8 timing."
    }
  ],
  "selected_guard_profile": {
    "profile": "js8_near_6000",
    "nsps": 6000,
    "protocol_family": "js8_normal_candidate",
    "symbol_duration_seconds": 0.5,
    "tone_spacing_hz": 2.0,
    "sync": {
      "start_seconds": 8.25,
      "base_freq_hz": 1010.0,
      "candidate_score": 49.22,
      "costas_hits": 4,
      "avg_margin_db": 3.86,
      "candidate_count": 12
    },
    "frame": {
      "symbols_available_after_start": 103,
      "data_symbol_count_estimate": 58,
      "expected_data_symbols_candidate": 58
    },
    "fec": {
      "soft_bit_count_estimate": 174,
      "missing_soft_bits_estimate": 0,
      "complete_ldpc_input_candidate_estimate": true
    },
    "rank_score": 231.861,
    "guard_score": 306.861,
    "available_after_start_seconds": 51.75,
    "minimum_symbols_for_174bit_candidate": 65,
    "minimum_seconds_after_start_for_174bit_candidate": 32.5,
    "missing_seconds_for_174bit_candidate": 0.0,
    "full_frame_symbols_reference": 79,
    "missing_seconds_for_full_ft8_like_frame": 0.0,
    "soft_bit_count_estimate": 174,
    "missing_soft_bits_estimate": 0,
    "enough_audio_for_174bit_candidate": true,
    "enough_audio_for_full_frame_reference": true,
    "guard_note": "Protocol-realistic JS8 timing candidate."
  },
  "selected_ldpc_probe": {
    "ok": true,
    "sync_candidate": {
      "start_sample": 99000,
      "start_seconds": 8.25,
      "base_freq_hz": 1010.0,
      "tone_spacing_hz": 2.0,
      "nsps": 6000,
      "candidate_score": 49.22,
      "costas_hits": 4,
      "avg_margin_db": 3.86
    },
    "frame_candidate": {
      "input_symbol_count": 96,
      "excluded_costas_symbol_count": 0,
      "detected_costas_blocks": [],
      "data_symbol_count_available": 96,
      "data_symbol_count_used": 58,
      "expected_data_symbols_candidate": 58,
      "costas_policy": "js8_leading_only"
    },
    "fec_input_summary": {
      "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"
    },
    "selected_variant": "reverse_full_bitstream",
    "ready_for_real_ldpc_matrix": true
  },
  "decodes": [],
  "warnings": [
    "Step 50 selects the best timing/profile candidate only. It still does not decode final JS8 text.",
    "Step 50 is still RX-only and diagnostic: it guards profile selection and frame length before final LDPC/message work."
  ],
  "next_action": "If selected_guard_profile.enough_audio_for_174bit_candidate is false, make a longer WAV capture. If true, the next lab step can move to real LDPC/FEC matrix integration and JS8 message unpacking."
}

[webftr-js8-lab] OK
[webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260527T104411Z_frame-recover.log
[webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260527T104411Z_frame-recover_manifest.json

Auto-Refresh alle 5 Sekunden mit frischem ?t=.... RX-only: kein TX, kein PTT, kein Tune, kein Send.