Structured key family as the main configuration

Unconstrained key training converged to disjoint sparse supports: 99
percent of each users key energy sat on three or four of the sixteen
entries, with pairwise disjoint supports and one numerically dead
codebook column. That is an orthogonal slot allocation, so the
superposition collapsed into OMA and the key space was far smaller than
the dense direction the brute-force study assumes.

The main configuration is now the structured Walsh-Hadamard family,
which is dense, exactly orthogonal, unit modulus, and already the best
family in the key-family table. base_keys generalizes to any key length
by truncating the next power-of-two Sylvester order, and the key-length
sweep keeps only lengths where the truncated rows stay exactly
orthogonal, verified numerically.

Also fixes the M-PAM energy normalization in oma_ser_keylen, which used
sqrt(6g/(M^2-1)) where unit average symbol energy gives A^2=3/(M^2-1);
the closed form was 3 dB optimistic and now reproduces a direct Monte
Carlo to 1e-5.

Results move accordingly: the proposal now stays below OMA at every SNR
and reaches 1.52x at key length 64, while the jamming margin falls to
5.5-6.3 dB and the brute-force curve to 0.59 at a million guesses.
This commit is contained in:
KiHoLee
2026-08-17 20:02:27 +09:00
parent b120364e38
commit 3d5a7fc6f3
27 changed files with 561 additions and 418 deletions
+16 -14
View File
@@ -1,15 +1,17 @@
n_frames,perm_frac,eve_ser
1,0.20234375,0.998977
2,0.7140625,0.7107255
3,0.91484375,0.4172725
4,0.94921875,0.324415
5,0.9515625,0.340107
6,0.94765625,0.3034795
8,0.95625,0.303056
10,0.95546875,0.3027505
12,0.94921875,0.3028
16,0.9546875,0.3036285
24,0.94921875,0.303151
32,0.95234375,0.302631
48,0.95,0.3030415
64,0.9515625,0.3025125
1,0.2545572917,0.9990345
2,0.7299479167,0.8108416667
3,0.9266927083,0.4801366667
4,0.9885416667,0.3021165
5,0.9955729167,0.2737706667
6,0.9997395833,0.2587145
7,1,0.2575458333
8,1,0.2575538333
10,1,0.2575
12,1,0.2576706667
16,1,0.2577931667
20,1,0.2578143333
24,1,0.2574975
32,1,0.2576283333
48,1,0.2576288333
64,1,0.2575123333
1 n_frames perm_frac eve_ser
2 1 0.20234375 0.2545572917 0.998977 0.9990345
3 2 0.7140625 0.7299479167 0.7107255 0.8108416667
4 3 0.91484375 0.9266927083 0.4172725 0.4801366667
5 4 0.94921875 0.9885416667 0.324415 0.3021165
6 5 0.9515625 0.9955729167 0.340107 0.2737706667
7 6 0.94765625 0.9997395833 0.3034795 0.2587145
8 8 7 0.95625 1 0.303056 0.2575458333
9 10 8 0.95546875 1 0.3027505 0.2575538333
10 12 10 0.94921875 1 0.3028 0.2575
11 16 12 0.9546875 1 0.3036285 0.2576706667
12 24 16 0.94921875 1 0.303151 0.2577931667
13 32 20 0.95234375 1 0.302631 0.2578143333
14 48 24 0.95 1 0.3030415 0.2574975
15 64 32 0.9515625 1 0.3025125 0.2576283333
16 48 1 0.2576288333
17 64 1 0.2575123333