v2 design: independent masks + affinity-aware Wiener demultiplexer

Redesign after the independent-mask dominance finding: the affinity
now parameterizes the receiver (closed-form Wiener) instead of the
mask ensemble. New Theorem 1 (spectral closed form), floors
sqrt(1-b^2)/2 vs 1/2, full-cooperation bound with equality at b=1.
GPU (torch) Monte Carlo backend, decision-directed SIC baseline,
TikZ block diagram source, verification suite V1-V11.
This commit is contained in:
KiHoLee
2026-08-17 02:12:10 +09:00
parent b8b853e62e
commit 358faecc0c
29 changed files with 1777 additions and 1514 deletions
Binary file not shown.
+66
View File
@@ -0,0 +1,66 @@
% Standalone TikZ source for the EDMA block diagram (Fig. 1).
% Compile: latexmk -pdf block_diagram_src.tex; copy PDF to block_diagram.pdf
\documentclass[tikz,border=2pt]{standalone}
\usepackage{amsmath,amssymb,bm}
\newcommand{\mb}[1]{\mathbf{#1}}
\usetikzlibrary{arrows.meta,positioning,fit,calc}
\begin{document}
\begin{tikzpicture}[
font=\footnotesize,
node distance=3.2mm and 4.5mm,
blk/.style={draw, semithick, minimum height=5.5mm, minimum width=9mm,
inner sep=1.5pt, align=center},
sum/.style={draw, semithick, circle, inner sep=0pt, minimum size=3.6mm},
arr/.style={-{Latex[length=1.6mm]}, semithick},
dsh/.style={-{Latex[length=1.6mm]}, densely dashed, thin},
lbl/.style={inner sep=1pt}
]
% ---------------- user 1 chain ----------------
\node[lbl] (b1) {$b_1$};
\node[blk, right=of b1] (pe1) {$\mathrm{PE}_1$};
\node[blk, right=of pe1] (m1) {$\mb{M}_1$};
\node[sum, right=7mm of m1] (h1) {$\times$};
\node[lbl, above=1.2mm of h1] {$h_1$};
% ---------------- user U chain ----------------
\node[lbl, below=11mm of b1] (bU) {$b_U$};
\node[blk, right=of bU] (peU) {$\mathrm{PE}_U$};
\node[blk, right=of peU] (mU) {$\mb{M}_U$};
\node[sum, right=7mm of mU] (hU) {$\times$};
\node[lbl, below=1.2mm of hU] {$h_U$};
% vdots between chains
\path (pe1) -- (peU) node[midway] {$\vdots$};
\path (m1) -- (mU) node[midway] {$\vdots$};
% ---------------- channel sum ----------------
\path (h1) -- (hU) node[midway] (mid) {};
\node[sum] (sig) at ($(h1)!0.5!(hU)+(11mm,0)$) {$+$};
\node[lbl, left=3.5mm of sig] (nn) {$\mb{n}$};
% ---------------- receiver ----------------
\node[blk, right=5.5mm of sig, minimum height=13mm] (mf)
{matched\\ filters\\ $\mb{M}_u^{\top}/h_u$};
\node[blk, right=5mm of mf, minimum height=13mm] (wnr)
{affinity-aware\\ MMSE\\ $\mb{W}_u(\mb{B})$};
\node[lbl, right=4.5mm of wnr] (out) {$\hat{\mb{e}}_1,\ldots,\hat{\mb{e}}_U$};
% ---------------- affinity measurement ----------------
\coordinate (tap1) at ($(pe1.east)!0.8!(m1.west)$);
\coordinate (tapU) at ($(peU.east)!0.8!(mU.west)$);
\node[blk] (bm) at ($(tapU)+(3mm,-9.5mm)$)
{$B_{uv}=|\langle\mb{e}_u,\mb{e}_v\rangle|$};
% ---------------- edges ----------------
\draw[arr] (b1) -- (pe1);
\draw[arr] (pe1) -- node[above, lbl] {$\mb{e}_1$} (m1);
\draw[arr] (m1) -- node[above, lbl] {$\mb{x}_1$} (h1);
\draw[arr] (bU) -- (peU);
\draw[arr] (peU) -- node[above, lbl, pos=0.42] {$\mb{e}_U$} (mU);
\draw[arr] (mU) -- node[below, lbl] {$\mb{x}_U$} (hU);
\draw[arr] (h1) -| (sig);
\draw[arr] (hU) -| (sig);
\draw[arr] (nn) -- (sig);
\draw[arr] (sig) -- node[above, lbl] {$\mb{r}$} (mf);
\draw[arr] (mf) -- node[above, lbl] {$\mb{t}_u$} (wnr);
\draw[arr] (wnr) -- (out);
\fill (tap1) circle (0.5pt);
\fill (tapU) circle (0.5pt);
\draw[dsh] (tap1) -- ($(tap1 |- bm.north)$);
\draw[dsh] (bm.east) -| (wnr.south);
\end{tikzpicture}
\end{document}
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.