Commit Graph

25 Commits

Author SHA1 Message Date
cah
41e2ef72ec feat: add SC-LDPC density evolution with threshold computation
Implement position-aware density evolution for SC-LDPC codes:
- sc_density_evolution(): flooding-schedule DE tracking per-position
  error rates, demonstrating the wave decoding effect
- compute_sc_threshold(): binary search for SC-LDPC threshold

Uses flooding schedule (not layered) to avoid belief divergence
from cross-position message interference in the coupled chain.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 17:45:21 -07:00
cah
49c494401b data: add Z=128 pipeline results and comparison plots
Run FER validation at Z=128 with normalized min-sum (alpha=0.875).
Best alpha found via sweep: 0.875 (threshold 2.90 photons/slot).
Z=128 matrix achieves girth=8 vs girth=6 at Z=32.
Add Z=128 vs Z=32 FER comparison plot.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 17:08:07 -07:00
cah
5f69de6cb8 feat: add windowed SC-LDPC decoder
Implement windowed_decode() for SC-LDPC codes using flooding
min-sum with sliding window of W positions. Supports both
normalized and offset min-sum modes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 17:08:06 -07:00
cah
5b6ad4d3f2 feat: add SC-LDPC chain construction
Implement spatially-coupled LDPC code construction with:
- split_protograph(): split base matrix edges into w components
- build_sc_chain(): build full SC-LDPC H matrix with L positions
- sc_encode(): GF(2) Gaussian elimination encoder for SC chain

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:49:57 -07:00
cah
6bffc6cb5f feat: add Z=128 support for matrix construction and validation
Make validate_matrix() and run_full_pipeline() accept z parameter
instead of using hardcoded Z=32. Thread cn_mode/alpha to validation.
Add --z/--cn-mode/--alpha CLI options to full pipeline.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:49:55 -07:00
cah
30b4d95be2 feat: add alpha optimization for normalized min-sum
Add optimize_alpha() function that sweeps hardware-friendly alpha
values to find the best DE threshold with normalized min-sum.
Add alpha-sweep CLI subcommand and --z/--cn-mode/--alpha options
to the full pipeline.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:41:58 -07:00
cah
e657e9baf1 feat: add normalized min-sum to density evolution engine
Thread cn_mode and alpha parameters through the entire DE pipeline:
de_cn_update_vectorized(), density_evolution_step(), run_de(),
compute_threshold(), and compute_threshold_for_profile().

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:37:57 -07:00
cah
b04813fa7c feat: add normalized min-sum CN update mode
Add cn_mode ('offset'/'normalized') and alpha parameters to
min_sum_cn_update() in ldpc_sim.py and generic_decode() in
ldpc_analysis.py. Normalized mode scales magnitudes by alpha
(default 0.75) instead of subtracting a fixed offset, which
is better suited for low-rate codes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:35:28 -07:00
cah
eb255af067 data: add density evolution optimization results
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 06:07:14 -07:00
cah
ca651f4f30 feat: add FER validation and CLI for density evolution
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 06:03:19 -07:00
cah
f30f972dab feat: add PEG base matrix constructor with shift optimization
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 06:01:57 -07:00
cah
a09c5f20e1 feat: add degree distribution optimizer with exhaustive search
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 05:53:23 -07:00
cah
f5b3e318c4 feat: add threshold computation via binary search
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 05:27:33 -07:00
cah
d0453e0583 feat: add Monte Carlo density evolution engine
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 05:17:06 -07:00
cah
53347ead1c chore: add .gitignore with worktree and Python exclusions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 05:14:51 -07:00
cah
6d59f853c4 Add comprehensive analysis results document
Covers all five studies: rate comparison, base matrix quality,
quantization sweep, Shannon gap, and frame synchronization.
Includes interpretation, recommendations, and reproduction steps.

Key findings: 9 dB gap to Shannon, matrix degree distribution is
the primary bottleneck, 6-bit quantization validated, frame sync
tractable at ~30 us acquisition cost.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 05:01:26 -07:00
cah
b8bff512a4 Add implementation plan for frame sync and code analysis
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 04:58:56 -07:00
cah
1967ae90e4 Fix matrix rank issues and run all code analyses
- Fixed improved staircase: below-diagonal connections preserve full
  parity rank (col7->row0 s3, col1->row4 s15)
- Fixed PEG matrix: staircase backbone with cross-connections,
  all parity cols dv>=2, VN degrees [7,3,3,3,2,2,2,2]
- Clean up VN degree display (remove np.int64 wrapper)
- Ran all four analyses with 200 frames per point

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 04:56:37 -07:00
cah
ad7cb5098c feat: add code analysis tool with rate, matrix, quantization, and Shannon analyses
Implements four LDPC code analyses for photon-starved optical channels:
- Rate sweep: compare FER across 1/2, 1/3, 1/4, 1/6, 1/8 IRA staircase codes
- Matrix comparison: original staircase vs improved staircase vs PEG ring
- Quantization sweep: 4-16 bit and float precision impact on FER
- Shannon gap: binary-input Poisson channel capacity limits via binary search

Core infrastructure includes generic IRA staircase builder, GF(2) Gaussian
elimination encoder for non-triangular matrices, parameterized layered
min-sum decoder with variable check degree, and BFS girth computation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 04:46:39 -07:00
cah
c427dfdd3d feat: add frame synchronization prototype with tests
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 04:40:07 -07:00
cah
af6055242e test: add validation tests for existing LDPC model
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 04:32:16 -07:00
cah
5f69e2cbec Add design doc for frame sync and code analysis
Covers frame synchronization prototype (acquisition + re-sync)
and four code analysis studies: rate comparison, base matrix
quality, quantization sweep, and Shannon gap computation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 22:42:32 -07:00
cah
18333e32f5 Update RTL base matrix to match working Python model
IRA staircase structure: col 0 = info (dv=7), cols 1-7 = parity (dv=1-2).
RTL decoder core still needs CN update rework for variable degree.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 21:56:48 -07:00
cah
b7b76da46e Fix encoder and decoder - working LDPC simulation
- Fixed cyclic shift convention (QC-LDPC P_s is left shift, not right)
- Fixed encoder to solve rows sequentially (row 0 first for p1, then 1-6)
- Fixed decoder to only gather connected columns per CN (staircase has dc=2-3)
- Fixed LLR sign convention: positive = bit 0 more likely
- Decoder validates at lam_s >= 4 photons/slot (~90% frame success)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 21:56:15 -07:00
cah
b93a6f5769 Initial LDPC optical decoder project scaffold
Rate-1/8 QC-LDPC decoder for photon-starved optical communication.
Target: Efabless chipIgnite (SkyWater 130nm, Caravel harness).

- RTL: decoder top, core (layered min-sum), Wishbone interface
- Python behavioral model with Poisson channel simulation
- 7x8 base matrix, Z=32, n=256, k=32

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 21:47:40 -07:00