diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-0.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-0.25.mat new file mode 100644 index 0000000..94d92cd Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-0.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-0.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-0.5.mat new file mode 100644 index 0000000..4ffa207 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-0.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-0.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-0.75.mat new file mode 100644 index 0000000..02fa57a Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-0.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-1.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-1.25.mat new file mode 100644 index 0000000..67b7a87 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-1.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-1.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-1.5.mat new file mode 100644 index 0000000..dffc97a Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-1.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-1.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-1.75.mat new file mode 100644 index 0000000..508c249 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-1.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-1.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-1.mat new file mode 100644 index 0000000..3d58afc Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-1.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-10.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-10.mat new file mode 100644 index 0000000..d218c6e Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-10.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-2.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-2.25.mat new file mode 100644 index 0000000..b650fb9 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-2.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-2.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-2.5.mat new file mode 100644 index 0000000..548e94d Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-2.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-2.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-2.75.mat new file mode 100644 index 0000000..32e1412 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-2.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-2.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-2.mat new file mode 100644 index 0000000..4edac36 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-2.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-3.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-3.25.mat new file mode 100644 index 0000000..183b1d1 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-3.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-3.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-3.5.mat new file mode 100644 index 0000000..253f26f Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-3.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-3.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-3.75.mat new file mode 100644 index 0000000..bb73109 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-3.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-3.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-3.mat new file mode 100644 index 0000000..1067e4c Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-3.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-4.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-4.25.mat new file mode 100644 index 0000000..5201c12 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-4.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-4.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-4.5.mat new file mode 100644 index 0000000..a0fd57e Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-4.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-4.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-4.75.mat new file mode 100644 index 0000000..61d5510 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-4.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-4.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-4.mat new file mode 100644 index 0000000..f2d6ce8 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-4.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-5.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-5.25.mat new file mode 100644 index 0000000..375220a Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-5.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-5.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-5.5.mat new file mode 100644 index 0000000..eff25a2 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-5.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-5.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-5.75.mat new file mode 100644 index 0000000..c7d3e82 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-5.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-5.mat new file mode 100644 index 0000000..9ce7fa1 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-6.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-6.25.mat new file mode 100644 index 0000000..8af63fd Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-6.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-6.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-6.5.mat new file mode 100644 index 0000000..9b39675 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-6.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-6.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-6.75.mat new file mode 100644 index 0000000..1ddcce9 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-6.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-6.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-6.mat new file mode 100644 index 0000000..307a6c3 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-6.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-7.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-7.25.mat new file mode 100644 index 0000000..1ca5ab4 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-7.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-7.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-7.5.mat new file mode 100644 index 0000000..9306864 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-7.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-7.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-7.75.mat new file mode 100644 index 0000000..b0db600 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-7.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-7.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-7.mat new file mode 100644 index 0000000..711564e Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-7.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-8.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-8.25.mat new file mode 100644 index 0000000..2e44aa7 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-8.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-8.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-8.5.mat new file mode 100644 index 0000000..7b2eef5 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-8.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-8.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-8.75.mat new file mode 100644 index 0000000..ded25fa Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-8.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-8.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-8.mat new file mode 100644 index 0000000..7a07702 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-8.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-9.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-9.25.mat new file mode 100644 index 0000000..a9e4479 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-9.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-9.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-9.5.mat new file mode 100644 index 0000000..49bff57 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-9.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-9.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-9.75.mat new file mode 100644 index 0000000..66db239 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-9.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-9.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-9.mat new file mode 100644 index 0000000..bfe2e1e Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_-9.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_0.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_0.25.mat new file mode 100644 index 0000000..b481bbc Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_0.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_0.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_0.5.mat new file mode 100644 index 0000000..c18799a Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_0.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_0.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_0.75.mat new file mode 100644 index 0000000..52cf898 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_0.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_0.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_0.mat new file mode 100644 index 0000000..203d2da Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_0.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_1.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_1.25.mat new file mode 100644 index 0000000..9445b13 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_1.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_1.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_1.5.mat new file mode 100644 index 0000000..e790ca4 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_1.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_1.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_1.75.mat new file mode 100644 index 0000000..9f9f64f Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_1.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_1.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_1.mat new file mode 100644 index 0000000..fd59cf0 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_1.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_10.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_10.25.mat new file mode 100644 index 0000000..66bf6a1 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_10.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_10.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_10.5.mat new file mode 100644 index 0000000..a80c92a Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_10.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_10.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_10.75.mat new file mode 100644 index 0000000..dfc1383 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_10.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_10.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_10.mat new file mode 100644 index 0000000..88d402f Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_10.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_11.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_11.25.mat new file mode 100644 index 0000000..f632eb4 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_11.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_11.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_11.5.mat new file mode 100644 index 0000000..fa80ef5 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_11.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_11.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_11.75.mat new file mode 100644 index 0000000..60b86fd Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_11.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_11.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_11.mat new file mode 100644 index 0000000..8f4565c Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_11.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_12.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_12.25.mat new file mode 100644 index 0000000..1e5491a Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_12.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_12.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_12.5.mat new file mode 100644 index 0000000..91c2b94 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_12.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_12.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_12.75.mat new file mode 100644 index 0000000..30764ab Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_12.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_12.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_12.mat new file mode 100644 index 0000000..0573739 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_12.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_13.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_13.25.mat new file mode 100644 index 0000000..23245a1 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_13.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_13.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_13.5.mat new file mode 100644 index 0000000..a9db947 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_13.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_13.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_13.75.mat new file mode 100644 index 0000000..3e5c0d8 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_13.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_13.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_13.mat new file mode 100644 index 0000000..422fef6 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_13.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_14.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_14.25.mat new file mode 100644 index 0000000..cd422b1 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_14.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_14.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_14.5.mat new file mode 100644 index 0000000..32ccbc7 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_14.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_14.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_14.75.mat new file mode 100644 index 0000000..1199e22 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_14.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_14.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_14.mat new file mode 100644 index 0000000..7c1d902 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_14.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_15.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_15.25.mat new file mode 100644 index 0000000..6bbded7 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_15.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_15.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_15.5.mat new file mode 100644 index 0000000..3bf2437 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_15.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_15.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_15.75.mat new file mode 100644 index 0000000..1865a92 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_15.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_15.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_15.mat new file mode 100644 index 0000000..32aff69 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_15.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_16.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_16.25.mat new file mode 100644 index 0000000..93e8a1f Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_16.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_16.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_16.5.mat new file mode 100644 index 0000000..eeacc29 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_16.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_16.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_16.75.mat new file mode 100644 index 0000000..77437d1 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_16.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_16.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_16.mat new file mode 100644 index 0000000..a5bd09f Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_16.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_17.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_17.25.mat new file mode 100644 index 0000000..f4568b2 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_17.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_17.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_17.5.mat new file mode 100644 index 0000000..04751ed Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_17.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_17.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_17.75.mat new file mode 100644 index 0000000..7f1b6a0 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_17.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_17.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_17.mat new file mode 100644 index 0000000..429c26a Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_17.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_18.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_18.25.mat new file mode 100644 index 0000000..52bd9b4 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_18.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_18.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_18.5.mat new file mode 100644 index 0000000..386fc26 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_18.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_18.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_18.75.mat new file mode 100644 index 0000000..1370339 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_18.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_18.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_18.mat new file mode 100644 index 0000000..67d46f9 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_18.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_19.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_19.25.mat new file mode 100644 index 0000000..e73ab3e Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_19.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_19.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_19.5.mat new file mode 100644 index 0000000..54dcece Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_19.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_19.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_19.75.mat new file mode 100644 index 0000000..ec0e199 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_19.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_19.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_19.mat new file mode 100644 index 0000000..a297f60 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_19.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_2.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_2.25.mat new file mode 100644 index 0000000..0dc362b Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_2.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_2.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_2.5.mat new file mode 100644 index 0000000..2f18ae6 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_2.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_2.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_2.75.mat new file mode 100644 index 0000000..3573da5 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_2.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_2.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_2.mat new file mode 100644 index 0000000..5ba8806 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_2.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_20.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_20.25.mat new file mode 100644 index 0000000..e61fb89 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_20.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_20.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_20.5.mat new file mode 100644 index 0000000..f37731a Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_20.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_20.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_20.75.mat new file mode 100644 index 0000000..3de4bfc Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_20.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_20.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_20.mat new file mode 100644 index 0000000..446f12d Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_20.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_21.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_21.25.mat new file mode 100644 index 0000000..3444a1f Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_21.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_21.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_21.5.mat new file mode 100644 index 0000000..67c8646 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_21.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_21.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_21.75.mat new file mode 100644 index 0000000..c0a17a3 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_21.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_21.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_21.mat new file mode 100644 index 0000000..b8a1be8 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_21.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_22.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_22.25.mat new file mode 100644 index 0000000..a8aae01 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_22.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_22.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_22.5.mat new file mode 100644 index 0000000..d38e6b1 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_22.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_22.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_22.75.mat new file mode 100644 index 0000000..d7321e0 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_22.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_22.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_22.mat new file mode 100644 index 0000000..889cb6c Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_22.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_3.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_3.25.mat new file mode 100644 index 0000000..62e8f1f Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_3.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_3.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_3.5.mat new file mode 100644 index 0000000..96e4f14 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_3.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_3.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_3.75.mat new file mode 100644 index 0000000..e181461 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_3.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_3.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_3.mat new file mode 100644 index 0000000..ca5f703 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_3.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_4.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_4.25.mat new file mode 100644 index 0000000..89a273f Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_4.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_4.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_4.5.mat new file mode 100644 index 0000000..78a310e Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_4.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_4.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_4.75.mat new file mode 100644 index 0000000..2ec1e38 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_4.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_4.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_4.mat new file mode 100644 index 0000000..7d1c9a7 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_4.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_5.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_5.25.mat new file mode 100644 index 0000000..1e579d2 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_5.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_5.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_5.5.mat new file mode 100644 index 0000000..fae7007 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_5.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_5.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_5.75.mat new file mode 100644 index 0000000..5ae733a Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_5.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_5.mat new file mode 100644 index 0000000..e268a20 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_6.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_6.25.mat new file mode 100644 index 0000000..77a72ef Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_6.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_6.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_6.5.mat new file mode 100644 index 0000000..3e97be2 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_6.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_6.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_6.75.mat new file mode 100644 index 0000000..79d236c Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_6.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_6.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_6.mat new file mode 100644 index 0000000..dd6ac0d Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_6.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_7.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_7.25.mat new file mode 100644 index 0000000..0a31bff Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_7.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_7.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_7.5.mat new file mode 100644 index 0000000..8295e8e Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_7.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_7.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_7.75.mat new file mode 100644 index 0000000..ccb47c2 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_7.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_7.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_7.mat new file mode 100644 index 0000000..fec45cb Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_7.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_8.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_8.25.mat new file mode 100644 index 0000000..437064f Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_8.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_8.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_8.5.mat new file mode 100644 index 0000000..5140414 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_8.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_8.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_8.75.mat new file mode 100644 index 0000000..20584df Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_8.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_8.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_8.mat new file mode 100644 index 0000000..c5fa404 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_8.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_9.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_9.25.mat new file mode 100644 index 0000000..db5f436 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_9.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_9.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_9.5.mat new file mode 100644 index 0000000..9b95967 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_9.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_9.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_9.75.mat new file mode 100644 index 0000000..e4505eb Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_9.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_9.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_9.mat new file mode 100644 index 0000000..f8f759f Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask16-gray_snr_9.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-0.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-0.25.mat new file mode 100644 index 0000000..840c2ac Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-0.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-0.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-0.5.mat new file mode 100644 index 0000000..7d0711a Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-0.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-0.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-0.75.mat new file mode 100644 index 0000000..f838ad8 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-0.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-1.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-1.25.mat new file mode 100644 index 0000000..50e9087 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-1.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-1.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-1.5.mat new file mode 100644 index 0000000..cc5d371 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-1.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-1.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-1.75.mat new file mode 100644 index 0000000..50b5425 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-1.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-1.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-1.mat new file mode 100644 index 0000000..9920a1b Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-1.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-10.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-10.mat new file mode 100644 index 0000000..8d8db81 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-10.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-2.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-2.25.mat new file mode 100644 index 0000000..025deaf Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-2.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-2.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-2.5.mat new file mode 100644 index 0000000..0b23443 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-2.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-2.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-2.75.mat new file mode 100644 index 0000000..e2eed5b Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-2.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-2.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-2.mat new file mode 100644 index 0000000..4e3216c Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-2.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-3.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-3.25.mat new file mode 100644 index 0000000..ff0c3aa Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-3.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-3.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-3.5.mat new file mode 100644 index 0000000..9c80b7d Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-3.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-3.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-3.75.mat new file mode 100644 index 0000000..50552ad Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-3.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-3.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-3.mat new file mode 100644 index 0000000..f1b0e44 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-3.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-4.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-4.25.mat new file mode 100644 index 0000000..6118e5b Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-4.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-4.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-4.5.mat new file mode 100644 index 0000000..e60b619 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-4.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-4.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-4.75.mat new file mode 100644 index 0000000..3156246 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-4.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-4.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-4.mat new file mode 100644 index 0000000..497b7c4 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-4.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-5.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-5.25.mat new file mode 100644 index 0000000..c6870ef Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-5.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-5.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-5.5.mat new file mode 100644 index 0000000..cb909be Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-5.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-5.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-5.75.mat new file mode 100644 index 0000000..88f5f30 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-5.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-5.mat new file mode 100644 index 0000000..a31f5c0 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-6.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-6.25.mat new file mode 100644 index 0000000..52989ff Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-6.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-6.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-6.5.mat new file mode 100644 index 0000000..40d848d Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-6.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-6.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-6.75.mat new file mode 100644 index 0000000..24c99cc Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-6.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-6.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-6.mat new file mode 100644 index 0000000..ea3dc10 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-6.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-7.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-7.25.mat new file mode 100644 index 0000000..15d8ae0 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-7.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-7.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-7.5.mat new file mode 100644 index 0000000..bb5412a Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-7.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-7.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-7.75.mat new file mode 100644 index 0000000..d0da1e8 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-7.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-7.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-7.mat new file mode 100644 index 0000000..f9a17e4 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-7.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-8.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-8.25.mat new file mode 100644 index 0000000..da0cb90 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-8.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-8.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-8.5.mat new file mode 100644 index 0000000..fb68982 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-8.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-8.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-8.75.mat new file mode 100644 index 0000000..790d1b7 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-8.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-8.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-8.mat new file mode 100644 index 0000000..8422b09 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-8.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-9.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-9.25.mat new file mode 100644 index 0000000..e5089b1 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-9.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-9.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-9.5.mat new file mode 100644 index 0000000..301a341 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-9.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-9.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-9.75.mat new file mode 100644 index 0000000..7d79fab Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-9.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-9.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-9.mat new file mode 100644 index 0000000..29a6734 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_-9.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_0.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_0.25.mat new file mode 100644 index 0000000..971f7b7 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_0.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_0.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_0.5.mat new file mode 100644 index 0000000..a614a52 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_0.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_0.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_0.75.mat new file mode 100644 index 0000000..53ef27e Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_0.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_0.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_0.mat new file mode 100644 index 0000000..e0a3957 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_0.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_1.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_1.25.mat new file mode 100644 index 0000000..ca59c58 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_1.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_1.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_1.5.mat new file mode 100644 index 0000000..2f7285b Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_1.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_1.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_1.75.mat new file mode 100644 index 0000000..747e61f Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_1.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_1.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_1.mat new file mode 100644 index 0000000..28e89d6 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_1.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_10.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_10.25.mat new file mode 100644 index 0000000..4daef66 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_10.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_10.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_10.5.mat new file mode 100644 index 0000000..74d3982 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_10.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_10.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_10.75.mat new file mode 100644 index 0000000..30b54ef Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_10.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_10.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_10.mat new file mode 100644 index 0000000..04aafef Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_10.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_11.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_11.25.mat new file mode 100644 index 0000000..b9cbd0d Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_11.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_11.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_11.5.mat new file mode 100644 index 0000000..93185e4 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_11.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_11.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_11.75.mat new file mode 100644 index 0000000..ff2fefc Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_11.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_11.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_11.mat new file mode 100644 index 0000000..d831070 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_11.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_2.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_2.25.mat new file mode 100644 index 0000000..6aa82af Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_2.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_2.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_2.5.mat new file mode 100644 index 0000000..6972f6a Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_2.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_2.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_2.75.mat new file mode 100644 index 0000000..ffc9dfd Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_2.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_2.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_2.mat new file mode 100644 index 0000000..9d4c90f Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_2.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_3.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_3.25.mat new file mode 100644 index 0000000..a5065a7 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_3.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_3.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_3.5.mat new file mode 100644 index 0000000..03e7442 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_3.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_3.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_3.75.mat new file mode 100644 index 0000000..6b61c0f Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_3.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_3.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_3.mat new file mode 100644 index 0000000..1226b5f Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_3.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_4.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_4.25.mat new file mode 100644 index 0000000..14e582d Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_4.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_4.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_4.5.mat new file mode 100644 index 0000000..1f38f50 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_4.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_4.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_4.75.mat new file mode 100644 index 0000000..7ea80af Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_4.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_4.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_4.mat new file mode 100644 index 0000000..38d7cd9 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_4.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_5.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_5.25.mat new file mode 100644 index 0000000..181fd56 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_5.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_5.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_5.5.mat new file mode 100644 index 0000000..79716a7 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_5.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_5.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_5.75.mat new file mode 100644 index 0000000..8ecae87 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_5.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_5.mat new file mode 100644 index 0000000..e796aaa Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_6.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_6.25.mat new file mode 100644 index 0000000..7202e12 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_6.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_6.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_6.5.mat new file mode 100644 index 0000000..efd8c52 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_6.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_6.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_6.75.mat new file mode 100644 index 0000000..bef6b3c Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_6.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_6.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_6.mat new file mode 100644 index 0000000..f412a8c Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_6.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_7.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_7.25.mat new file mode 100644 index 0000000..fecb3fd Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_7.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_7.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_7.5.mat new file mode 100644 index 0000000..a403e08 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_7.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_7.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_7.75.mat new file mode 100644 index 0000000..1fc4b69 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_7.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_7.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_7.mat new file mode 100644 index 0000000..d67ced3 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_7.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_8.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_8.25.mat new file mode 100644 index 0000000..132b3bf Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_8.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_8.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_8.5.mat new file mode 100644 index 0000000..4f686ca Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_8.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_8.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_8.75.mat new file mode 100644 index 0000000..cec700f Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_8.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_8.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_8.mat new file mode 100644 index 0000000..e8b58ec Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_8.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_9.25.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_9.25.mat new file mode 100644 index 0000000..15deaa5 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_9.25.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_9.5.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_9.5.mat new file mode 100644 index 0000000..fcae88d Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_9.5.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_9.75.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_9.75.mat new file mode 100644 index 0000000..08f42d6 Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_9.75.mat differ diff --git a/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_9.mat b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_9.mat new file mode 100644 index 0000000..a6dbefd Binary files /dev/null and b/PolarM/CapacityHelper/PolarizedCapacityData/ask4-gray_snr_9.mat differ diff --git a/PolarM/CapacityHelper/bpsk_cap.mat b/PolarM/CapacityHelper/bpsk_cap.mat new file mode 100644 index 0000000..5b4308c Binary files /dev/null and b/PolarM/CapacityHelper/bpsk_cap.mat differ diff --git a/PolarM/CapacityHelper/get_bpsk_cap.m b/PolarM/CapacityHelper/get_bpsk_cap.m new file mode 100644 index 0000000..8cef415 --- /dev/null +++ b/PolarM/CapacityHelper/get_bpsk_cap.m @@ -0,0 +1,28 @@ +function [ c ] = get_bpsk_cap( snr_db ) +% assumes e[x^2] = 1; + +x_vec = [-1, 1]; +n_0 = 1/2*10^(-snr_db/10); +delta_y = sqrt(n_0) * 0.001; +max_value = min(10000, max(x_vec) + 3 + 3*sqrt(n_0)); +y_vec = -max_value: delta_y : max_value; +p_y = zeros(length(y_vec), 1); +for y_index = 1 : length(y_vec) + y = y_vec(y_index); + for x_index = 1 : length(x_vec) + x = x_vec(x_index); + p_y(y_index) = p_y(y_index) + exp(-(y - x).^2/2/n_0)/sqrt(2*pi*n_0) * 0.5; + end +end + +p_y = p_y / (sum(p_y)*delta_y); + +h = 0; +for y_index = 1 : length(y_vec) + if p_y(y_index) > 0 + h = h + (-log2(p_y(y_index))) * p_y(y_index) * delta_y; + end +end +c = h - 0.5 * (1 + log(2*pi*n_0))/log(2) ; + + diff --git a/PolarM/CapacityHelper/get_bpsk_llr_for_capacity.m b/PolarM/CapacityHelper/get_bpsk_llr_for_capacity.m new file mode 100644 index 0000000..a960a98 --- /dev/null +++ b/PolarM/CapacityHelper/get_bpsk_llr_for_capacity.m @@ -0,0 +1,23 @@ +function [ mean_llr ] = get_bpsk_llr_for_capacity( const_capacity ) +%UNTITLED2 Summary of this function goes here +% Detailed explanation goes here + + +mean_llr = 0 * const_capacity; + +load('bpsk_cap.mat'); + +for i = 1:size(const_capacity,1) + for j = 1:size(const_capacity,2) + for k = 1:size(const_capacity,3) + for snr_index = 1 : length(snr_vec_db) + if capacity(snr_index) >= const_capacity(i, j, k) + break; + end + end + mean_llr(i, j, k) = 4 * 10^(snr_vec_db(snr_index)/10); + end + end +end +end + diff --git a/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_-0.5_bpsk_bicm.txt b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_-0.5_bpsk_bicm.txt new file mode 100644 index 0000000..d2a2e6a --- /dev/null +++ b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_-0.5_bpsk_bicm.txt @@ -0,0 +1,1024 @@ +50150 +50232 +49690 +49918 +49868 +49776 +50027 +49627 +50108 +49971 +50168 +49991 +50056 +49737 +50008 +50144 +49821 +50011 +50114 +50141 +50176 +50111 +49953 +49843 +49740 +50104 +50129 +49769 +49844 +49814 +49854 +48664 +50048 +49895 +50056 +49934 +50091 +49944 +50153 +49992 +50285 +50365 +50163 +49860 +49850 +49895 +50033 +48071 +50253 +49842 +49906 +49939 +50203 +50062 +49935 +47346 +49992 +49846 +49901 +45895 +49720 +44437 +43397 +24686 +49993 +49786 +50066 +49997 +49968 +50049 +49918 +50233 +50282 +50220 +50087 +50075 +50146 +50026 +50130 +46533 +50076 +50060 +50235 +49870 +50015 +50072 +49868 +45066 +49878 +49887 +49612 +42993 +49308 +40674 +38451 +18039 +50038 +49941 +50024 +49730 +49992 +49501 +49064 +41638 +49916 +48891 +48697 +38737 +48245 +35477 +32113 +11723 +49618 +47930 +47533 +33374 +45910 +29304 +25227 +6862 +42794 +22922 +19103 +3835 +13879 +2046 +1255 +14 +49967 +50134 +50000 +49957 +49734 +49788 +50029 +49905 +50029 +50175 +49865 +49620 +50196 +49531 +49217 +42335 +49902 +50026 +49947 +49637 +49999 +49133 +48914 +39488 +49752 +48925 +48279 +35651 +46998 +32077 +28147 +8813 +50194 +49975 +49892 +48661 +50020 +47982 +47548 +33533 +50109 +46703 +45481 +28949 +43617 +24484 +20309 +4400 +49681 +43737 +41779 +21925 +38464 +17096 +13103 +1871 +32571 +11423 +8338 +805 +5519 +378 +191 +0 +50145 +50114 +50170 +46271 +49647 +44468 +43165 +24065 +49664 +41590 +39342 +18365 +35123 +14016 +10491 +1209 +48342 +36377 +32790 +11792 +28012 +8102 +5639 +366 +21166 +4600 +3058 +98 +1823 +49 +21 +0 +45624 +27583 +23837 +5815 +18337 +3509 +2314 +69 +12841 +1849 +1015 +12 +612 +6 +2 +0 +8189 +750 +438 +5 +243 +0 +0 +0 +121 +0 +0 +0 +0 +0 +0 +0 +49942 +49973 +50261 +49945 +49848 +49974 +49963 +48886 +49966 +50117 +49887 +48323 +50194 +47932 +47296 +32951 +50085 +50223 +50161 +47526 +49870 +46231 +45066 +27474 +49536 +44167 +42076 +22500 +38968 +17707 +14024 +2005 +49868 +49907 +49902 +44699 +50035 +42259 +40278 +19711 +48941 +38491 +35507 +14328 +30539 +10152 +7154 +565 +47220 +31657 +28057 +8392 +22719 +5351 +3564 +160 +16590 +2954 +1793 +49 +1035 +13 +9 +0 +50192 +49526 +48879 +37960 +47758 +34279 +30707 +10487 +45933 +28623 +24590 +6521 +19320 +4032 +2511 +84 +41699 +20949 +16997 +3146 +12462 +1655 +984 +16 +8175 +781 +442 +4 +207 +1 +1 +0 +34191 +12865 +9437 +1007 +6393 +492 +275 +2 +3959 +200 +116 +1 +41 +0 +0 +0 +2375 +76 +35 +0 +16 +0 +0 +0 +11 +0 +0 +0 +0 +0 +0 +0 +49681 +46470 +44940 +27109 +41932 +22070 +17799 +3416 +37610 +16036 +12212 +1605 +8438 +832 +452 +2 +30368 +9935 +6894 +568 +4672 +252 +116 +0 +2796 +116 +61 +0 +34 +0 +0 +0 +22149 +5246 +3407 +165 +2039 +60 +31 +0 +1275 +24 +14 +0 +7 +0 +0 +0 +701 +9 +1 +0 +2 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +14209 +2285 +1401 +18 +840 +15 +4 +0 +455 +6 +5 +0 +1 +0 +0 +0 +253 +1 +2 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +109 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +49972 +49953 +49938 +50181 +49871 +49796 +49869 +44811 +50121 +49709 +49394 +42822 +49233 +40442 +37991 +17423 +49901 +49338 +49145 +39061 +48107 +35199 +32305 +11467 +46562 +29973 +26027 +7239 +20758 +4468 +2926 +105 +49700 +47828 +47014 +31733 +45358 +27029 +23207 +5701 +41364 +20912 +16889 +2977 +12225 +1683 +965 +7 +35286 +14113 +10485 +1167 +7230 +581 +363 +2 +4425 +245 +149 +1 +58 +0 +0 +0 +49361 +43899 +41639 +21541 +37812 +16850 +12727 +1731 +32298 +11173 +8231 +745 +5384 +332 +189 +1 +24633 +6506 +4385 +246 +2744 +95 +49 +0 +1612 +25 +16 +0 +15 +0 +0 +0 +16919 +3118 +1957 +45 +1152 +17 +8 +0 +618 +6 +0 +0 +1 +0 +0 +0 +337 +3 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +48233 +35042 +31391 +10918 +26412 +7447 +5112 +305 +20236 +4271 +2843 +114 +1622 +45 +22 +0 +13849 +2176 +1330 +21 +758 +9 +3 +0 +391 +2 +3 +0 +0 +0 +0 +0 +8406 +837 +489 +6 +280 +1 +0 +0 +139 +0 +0 +0 +0 +0 +0 +0 +78 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +5050 +327 +175 +1 +85 +1 +0 +0 +47 +1 +0 +0 +0 +0 +0 +0 +23 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +12 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +42983 +22854 +18596 +3846 +14111 +2192 +1279 +27 +9689 +1099 +669 +6 +335 +1 +1 +0 +6151 +511 +257 +1 +141 +0 +0 +0 +83 +0 +0 +0 +0 +0 +0 +0 +3481 +191 +77 +0 +65 +0 +0 +0 +26 +0 +0 +0 +0 +0 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1860 +50 +23 +0 +17 +0 +0 +0 +5 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +7 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1013 +14 +11 +1 +1 +0 +0 +0 +4 +0 +0 +0 +0 +0 +0 +0 +3 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_-0.5_bpsk_bicm_250000.txt b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_-0.5_bpsk_bicm_250000.txt new file mode 100644 index 0000000..38ab3be --- /dev/null +++ b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_-0.5_bpsk_bicm_250000.txt @@ -0,0 +1,1024 @@ +125442 +125297 +124908 +125048 +124752 +124458 +125165 +124509 +124930 +124678 +125269 +124900 +125225 +124763 +125083 +124927 +124971 +124916 +125172 +125259 +124980 +125230 +125071 +124854 +124393 +125121 +124860 +124755 +124847 +124590 +124831 +121656 +125051 +125228 +125168 +124744 +124931 +125211 +125053 +125064 +125253 +125481 +125370 +124661 +124811 +124877 +124867 +120071 +124915 +125372 +124763 +125346 +125431 +125075 +124795 +118011 +125379 +124601 +124389 +115131 +124407 +111869 +108181 +61665 +124751 +124986 +125222 +124622 +125047 +125116 +124507 +125049 +125060 +125336 +124881 +125073 +125266 +125136 +125357 +116246 +125041 +125020 +125270 +124419 +124969 +124773 +124743 +112313 +125068 +124462 +123883 +107560 +123612 +101953 +95988 +45151 +124858 +124835 +124948 +124351 +124587 +124379 +123035 +103951 +124898 +123111 +121912 +97104 +120196 +88693 +80430 +29302 +124468 +120497 +118399 +83276 +114788 +73053 +63098 +17053 +107179 +57800 +47703 +9542 +35322 +5244 +3176 +50 +125056 +124983 +125128 +125047 +124334 +124766 +125562 +124457 +124833 +125265 +125023 +124289 +125173 +124375 +123143 +105524 +124879 +124724 +125239 +123610 +125089 +123226 +122442 +98349 +124474 +121779 +120436 +89322 +117636 +79929 +70779 +22098 +125100 +124937 +124912 +122298 +124956 +120243 +118771 +83742 +125333 +117094 +113905 +72069 +108653 +60663 +50560 +10909 +123994 +109340 +104734 +54612 +95965 +42286 +32996 +4561 +81445 +28693 +21170 +2010 +13648 +901 +495 +0 +125140 +124794 +125136 +115895 +124554 +111922 +108348 +60278 +124185 +104537 +98854 +46288 +88416 +35055 +26235 +3007 +120797 +91018 +82136 +29688 +69221 +20536 +14172 +908 +52890 +11608 +7635 +298 +4721 +120 +53 +0 +113732 +69368 +59364 +14860 +45792 +8826 +5634 +150 +32262 +4563 +2620 +39 +1515 +13 +8 +0 +20588 +1950 +1109 +9 +645 +1 +0 +0 +314 +1 +0 +0 +0 +0 +0 +0 +124702 +125311 +125095 +124457 +124919 +125383 +125021 +122482 +124915 +125416 +124993 +121316 +125060 +119362 +118125 +82443 +124937 +125103 +125338 +118613 +124370 +115498 +112768 +69030 +123873 +110390 +105263 +56033 +96834 +44318 +34650 +5032 +124922 +124271 +124442 +111110 +124399 +105338 +100207 +48949 +122396 +96383 +88360 +35589 +76361 +25081 +18100 +1385 +118235 +79915 +70462 +21105 +56814 +13322 +8870 +367 +41322 +7261 +4604 +110 +2533 +35 +20 +0 +124814 +123462 +122059 +94725 +119167 +85679 +76531 +26218 +114245 +71436 +61055 +15921 +48019 +9853 +6187 +207 +104059 +52346 +41923 +7580 +30782 +4091 +2421 +37 +20128 +1852 +1022 +6 +548 +1 +1 +0 +85499 +32173 +24057 +2598 +16112 +1184 +700 +3 +9839 +497 +286 +1 +135 +0 +1 +0 +5829 +174 +95 +0 +39 +0 +0 +0 +22 +0 +0 +0 +0 +0 +0 +0 +124462 +115781 +112203 +67281 +105309 +55073 +44521 +8348 +93721 +39882 +30599 +3947 +21212 +1992 +1176 +7 +75875 +24688 +17681 +1439 +11570 +628 +324 +0 +6855 +248 +122 +0 +76 +0 +0 +0 +54846 +12886 +8598 +397 +5216 +151 +66 +0 +3066 +63 +25 +0 +17 +0 +0 +0 +1677 +20 +11 +0 +9 +0 +0 +0 +3 +0 +0 +0 +0 +0 +0 +0 +35312 +5680 +3476 +55 +2046 +26 +11 +0 +1066 +11 +4 +0 +2 +0 +0 +0 +615 +3 +3 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +304 +2 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +124994 +125331 +125130 +125095 +124862 +124988 +124416 +112467 +125020 +124294 +123952 +107082 +123024 +101591 +95280 +43658 +124978 +123285 +122913 +97574 +120580 +88707 +80464 +28951 +115943 +75122 +64914 +18132 +51790 +11385 +7316 +251 +124301 +119403 +117786 +79398 +113329 +67986 +57854 +14209 +103985 +52443 +42100 +7508 +30534 +4172 +2406 +19 +88555 +34984 +26091 +3013 +18034 +1462 +849 +6 +11090 +608 +343 +2 +182 +0 +0 +0 +124006 +109596 +104168 +53939 +94907 +42016 +32162 +4405 +80779 +28307 +20672 +1865 +13521 +880 +515 +2 +61764 +16203 +11093 +596 +6894 +232 +120 +0 +3963 +83 +44 +0 +38 +0 +0 +0 +42367 +7779 +4905 +143 +2971 +55 +23 +0 +1637 +15 +5 +0 +1 +0 +0 +0 +867 +8 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +120352 +87947 +78386 +27324 +65547 +18381 +12738 +730 +50474 +10787 +7113 +262 +4117 +112 +52 +0 +34534 +5298 +3332 +57 +1906 +15 +13 +0 +1014 +7 +4 +0 +0 +0 +0 +0 +21193 +2141 +1271 +14 +690 +4 +1 +0 +350 +0 +0 +0 +0 +0 +0 +0 +205 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +12360 +764 +450 +1 +243 +1 +0 +0 +125 +1 +0 +0 +0 +0 +0 +0 +54 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +36 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +106966 +57493 +46648 +9473 +35496 +5438 +3277 +72 +24292 +2743 +1607 +15 +875 +6 +0 +0 +15094 +1148 +634 +3 +348 +0 +0 +0 +187 +0 +1 +0 +0 +0 +0 +0 +8738 +447 +206 +0 +137 +0 +0 +0 +73 +0 +0 +0 +0 +0 +0 +0 +41 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +4698 +143 +75 +0 +36 +0 +0 +0 +13 +0 +0 +0 +0 +0 +0 +0 +6 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +8 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +2545 +40 +19 +1 +9 +0 +0 +0 +5 +0 +0 +0 +0 +0 +0 +0 +3 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +2 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_12_ask16-sp_mlc.txt b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_12_ask16-sp_mlc.txt new file mode 100644 index 0000000..3e0d1c0 --- /dev/null +++ b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_12_ask16-sp_mlc.txt @@ -0,0 +1,1024 @@ +50201 +49930 +49889 +50229 +50022 +49770 +50103 +50083 +50026 +49986 +49877 +49986 +49813 +50141 +49924 +50017 +50068 +49893 +49970 +49935 +49861 +49683 +49797 +49817 +50348 +49749 +50063 +49962 +50214 +50051 +50047 +50120 +50107 +49884 +49796 +49972 +50129 +50037 +49763 +49842 +50237 +50123 +49855 +50252 +49907 +50047 +49930 +49877 +49658 +50077 +50027 +49917 +50125 +50238 +50316 +49884 +49844 +50030 +49810 +49925 +50023 +49823 +50052 +49947 +49883 +49864 +50036 +50014 +49893 +50014 +49795 +50142 +50115 +50134 +49796 +49767 +50060 +50152 +49864 +49656 +50139 +49736 +49744 +50009 +49717 +49927 +49809 +49933 +50022 +50057 +49678 +50069 +50146 +50184 +49578 +49527 +50183 +49709 +50140 +49938 +49870 +49840 +49856 +50174 +50034 +49942 +50113 +50191 +49941 +49880 +49881 +49616 +49732 +50166 +49914 +50294 +50121 +49929 +50075 +49258 +49865 +50264 +49934 +49116 +49944 +48541 +47769 +33791 +50076 +50254 +50138 +50207 +49884 +50138 +49807 +49882 +49909 +50172 +49825 +49814 +49885 +50115 +49851 +49832 +50006 +50065 +49878 +49856 +50082 +49831 +49877 +50271 +50138 +50165 +49856 +50106 +49906 +49845 +49924 +49524 +49734 +50249 +50146 +50273 +50041 +50113 +50016 +49957 +50044 +49760 +50113 +49891 +49924 +49921 +50236 +48955 +49885 +50122 +50174 +49856 +49838 +50098 +50165 +48165 +50064 +49669 +50198 +47536 +50053 +46108 +44941 +27114 +49993 +50301 +49738 +50078 +49668 +50156 +50214 +50122 +49927 +49836 +50049 +50155 +49923 +49872 +50122 +47475 +50105 +49842 +50060 +49978 +50028 +50050 +49926 +46420 +50091 +49948 +49428 +44486 +49611 +42651 +40498 +20152 +49886 +50033 +49946 +49829 +50140 +50012 +49602 +43379 +49772 +49422 +49381 +40830 +48811 +37628 +34349 +13212 +50138 +48734 +48014 +35466 +46824 +31326 +27069 +7898 +44155 +24600 +20277 +4296 +15187 +2381 +1450 +16 +50292 +50142 +49808 +49980 +50295 +50171 +49960 +50192 +50244 +49892 +50013 +50030 +49978 +50204 +49898 +50088 +50151 +50149 +50094 +49969 +50239 +50102 +49933 +49852 +50233 +50020 +50363 +49665 +49908 +49409 +49202 +41199 +50234 +49762 +50116 +50092 +49943 +49895 +49859 +49624 +50169 +49809 +49770 +49224 +49993 +48716 +48491 +38053 +49768 +50021 +49901 +48598 +49997 +48262 +47376 +34468 +49751 +46866 +45874 +29807 +43765 +25328 +21456 +4893 +49988 +50068 +49872 +50002 +49912 +50241 +50121 +48463 +49908 +50137 +49871 +47907 +50006 +47410 +46844 +31816 +49795 +49637 +49582 +46701 +50230 +45933 +44466 +26539 +49698 +43511 +41500 +21186 +38039 +16749 +12939 +1805 +49889 +49526 +49992 +44017 +49455 +41984 +39768 +19051 +48542 +37839 +34976 +13852 +29967 +9708 +6894 +529 +47203 +31473 +27506 +8205 +22243 +5010 +3474 +164 +16019 +2722 +1692 +50 +999 +15 +8 +0 +49913 +50106 +50169 +49815 +50031 +50069 +49623 +46722 +50176 +49786 +49806 +45208 +49954 +43372 +41684 +21973 +49977 +49705 +49468 +42276 +49296 +39713 +37168 +16161 +48264 +34817 +31599 +10936 +26100 +7326 +5109 +292 +49907 +48853 +48299 +36312 +47610 +32463 +28733 +9019 +44821 +26447 +22590 +5318 +17446 +3086 +2051 +60 +40454 +19083 +15158 +2465 +10881 +1280 +753 +6 +7103 +556 +326 +1 +196 +1 +1 +0 +49723 +46442 +44874 +26792 +42016 +21980 +17847 +3384 +37565 +16096 +12424 +1670 +8412 +795 +420 +4 +30529 +10041 +7144 +582 +4627 +277 +138 +0 +2724 +108 +54 +0 +29 +0 +0 +0 +22065 +5242 +3597 +174 +2025 +47 +29 +0 +1153 +19 +6 +0 +3 +0 +0 +0 +601 +5 +4 +0 +3 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +50006 +45040 +43245 +23739 +39834 +18955 +14969 +2370 +34684 +13443 +10135 +1121 +6819 +523 +297 +2 +27563 +8162 +5643 +340 +3591 +175 +75 +1 +2070 +59 +31 +0 +19 +0 +0 +0 +19347 +4184 +2678 +95 +1652 +39 +22 +0 +949 +13 +9 +0 +3 +0 +0 +0 +514 +3 +3 +0 +4 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +12528 +1804 +1100 +10 +653 +4 +2 +0 +354 +1 +0 +0 +1 +0 +0 +0 +186 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +94 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +7452 +680 +431 +2 +232 +2 +0 +0 +120 +0 +0 +0 +0 +0 +0 +0 +64 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +26 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +16 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +12 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_12_ask16-sp_mlc_250000.txt b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_12_ask16-sp_mlc_250000.txt new file mode 100644 index 0000000..b305698 --- /dev/null +++ b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_12_ask16-sp_mlc_250000.txt @@ -0,0 +1,1024 @@ +125093 +125086 +124887 +125127 +124767 +124510 +125482 +124741 +124733 +124870 +125178 +125215 +124769 +125405 +125082 +125136 +124740 +125396 +124544 +125077 +125033 +124710 +124990 +125151 +124990 +125142 +124913 +124800 +124921 +125362 +125180 +124842 +124962 +124890 +125469 +125037 +125218 +124724 +124473 +124947 +124915 +125233 +124789 +125089 +125118 +125290 +124923 +125303 +124839 +125124 +124926 +125198 +125127 +125076 +124599 +124741 +125062 +125455 +124912 +125315 +125142 +124802 +124756 +125094 +125098 +125428 +124882 +124979 +124497 +124796 +125010 +124949 +124920 +124775 +124852 +124528 +124845 +124959 +124934 +125515 +125207 +124982 +124903 +125121 +124989 +125351 +124854 +124687 +124701 +124977 +125340 +124860 +125332 +124864 +125031 +124184 +125402 +125121 +124625 +124837 +124859 +124516 +124872 +125212 +124952 +124996 +125047 +124897 +124898 +124790 +124661 +123498 +124956 +125454 +124975 +124965 +124921 +125139 +124718 +123089 +124752 +124561 +124887 +121989 +124810 +120746 +118727 +83943 +124476 +124986 +124836 +124918 +125371 +125010 +125112 +124333 +124827 +125222 +125065 +125183 +125270 +124904 +124929 +124387 +125186 +125110 +124719 +124921 +125319 +125083 +125061 +125306 +125167 +124942 +124514 +125311 +125201 +124828 +125192 +122848 +124550 +125024 +125235 +124939 +125038 +125162 +125077 +125340 +124844 +125293 +125332 +125122 +124681 +124402 +124815 +122188 +124723 +125017 +124928 +125627 +125312 +125101 +125230 +120842 +124751 +124570 +124586 +118341 +125011 +115686 +112807 +68094 +124683 +124618 +124775 +124911 +125249 +125011 +125281 +125335 +124612 +125069 +125053 +125300 +124810 +125054 +124598 +118929 +125004 +125080 +125523 +124893 +124947 +125145 +125006 +116229 +124772 +124791 +124905 +111802 +123960 +107273 +100718 +50396 +125187 +125361 +125368 +124476 +124412 +124415 +124038 +108742 +125150 +124202 +123352 +101677 +121692 +94183 +85161 +33070 +125239 +122471 +120175 +88545 +116734 +78115 +67689 +19649 +110304 +61837 +51288 +10782 +38287 +6058 +3899 +58 +124916 +124765 +124973 +125447 +125266 +124466 +125190 +125281 +124931 +125027 +124653 +124854 +124990 +124584 +125075 +124764 +124766 +125283 +124535 +125069 +124773 +125005 +125152 +124324 +125010 +124887 +125282 +123853 +124805 +123196 +123033 +102954 +125023 +124915 +125012 +124915 +125035 +125175 +125051 +123982 +124759 +125122 +124787 +122833 +125263 +122263 +121580 +95028 +124793 +124812 +124999 +121655 +124981 +120035 +118601 +85147 +124415 +117408 +115223 +74701 +110375 +63644 +54407 +12433 +125274 +125356 +125058 +124683 +124750 +125579 +124870 +121855 +125065 +124869 +124671 +120702 +124608 +118805 +116476 +79822 +125264 +124637 +124794 +117227 +124605 +114466 +111298 +66844 +124287 +108660 +103148 +53738 +94868 +41737 +32230 +4557 +125078 +124489 +124414 +109535 +123967 +104332 +98989 +47528 +121955 +95135 +86664 +34360 +74862 +24294 +17267 +1303 +117618 +78858 +68557 +20456 +55328 +13065 +8571 +367 +40627 +7052 +4395 +107 +2523 +35 +25 +0 +124703 +125063 +125205 +125111 +124632 +124565 +125066 +116504 +124823 +124330 +124717 +113290 +123651 +108926 +104084 +55118 +124801 +124460 +123979 +105544 +122876 +98848 +92135 +39968 +120406 +88014 +78711 +27786 +66251 +18585 +12750 +709 +125114 +122444 +121005 +90988 +118272 +81230 +71719 +22395 +112017 +66684 +55898 +13202 +42989 +7907 +4796 +134 +100116 +47933 +37699 +6086 +27105 +3202 +1851 +14 +17480 +1433 +830 +8 +431 +1 +0 +0 +125012 +115798 +111888 +67136 +105355 +54955 +44827 +8430 +93948 +39787 +30635 +4079 +21231 +2044 +1171 +3 +75755 +24818 +17811 +1434 +11416 +657 +348 +4 +6891 +240 +126 +0 +68 +0 +0 +0 +54819 +12802 +8477 +345 +5144 +141 +74 +0 +2947 +51 +24 +0 +12 +0 +0 +0 +1588 +15 +5 +0 +1 +0 +0 +0 +4 +0 +0 +0 +0 +0 +0 +0 +124296 +112270 +108001 +59451 +99474 +47539 +37638 +6047 +86896 +33559 +25255 +2747 +17117 +1404 +779 +7 +68758 +19994 +14301 +968 +9100 +447 +232 +2 +5246 +149 +76 +0 +37 +0 +0 +0 +49097 +10352 +6921 +248 +4093 +98 +46 +0 +2316 +31 +22 +0 +7 +0 +0 +0 +1218 +13 +8 +0 +3 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +31558 +4639 +2845 +36 +1639 +19 +9 +0 +928 +6 +2 +0 +0 +0 +0 +0 +466 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +237 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +18329 +1727 +984 +0 +515 +0 +2 +0 +303 +0 +0 +0 +0 +0 +0 +0 +183 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +83 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +25 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +29 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_13_ask16-gray_bicm.txt b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_13_ask16-gray_bicm.txt new file mode 100644 index 0000000..54bc8d7 --- /dev/null +++ b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_13_ask16-gray_bicm.txt @@ -0,0 +1,1024 @@ +49985 +49993 +49885 +49841 +50099 +50130 +49834 +49890 +50207 +50003 +50005 +50062 +49671 +50043 +50133 +50035 +49943 +50225 +49981 +50184 +50099 +49829 +49946 +50250 +49672 +49919 +49822 +50073 +50092 +50304 +50292 +50251 +49856 +49791 +49949 +49907 +49769 +50022 +50016 +49864 +49898 +49918 +49998 +49955 +49949 +49884 +50245 +50113 +50193 +49696 +49905 +49846 +50162 +49827 +50098 +49892 +49884 +50152 +49910 +49845 +50065 +49955 +50021 +49394 +50107 +50022 +50231 +50033 +50027 +49937 +50151 +50016 +50380 +49638 +49719 +49926 +50265 +50223 +50033 +50067 +50209 +50200 +50007 +49976 +49739 +49743 +49819 +49960 +49835 +49992 +49904 +50214 +50078 +50044 +49760 +49218 +49962 +49807 +49824 +49953 +50231 +50202 +50030 +49730 +49863 +49928 +49926 +50012 +50063 +50005 +50018 +48880 +50164 +50260 +49831 +50244 +50070 +49893 +49970 +48397 +50160 +50005 +50055 +47898 +49720 +47029 +45995 +29989 +50079 +49917 +49965 +49810 +50081 +50320 +49933 +49987 +49913 +50211 +49996 +50170 +50054 +50086 +49957 +50027 +49784 +49813 +50048 +50061 +50204 +50126 +50115 +49958 +50031 +50016 +50015 +50217 +49963 +50252 +50000 +48378 +50069 +50020 +49787 +50144 +50239 +50207 +49845 +50181 +50313 +50071 +50196 +50055 +49924 +49757 +50033 +48015 +49944 +49986 +49977 +49767 +49765 +49880 +49946 +46756 +49859 +49959 +49829 +45663 +49593 +43947 +42332 +23263 +49625 +50118 +50153 +49956 +50008 +49708 +49905 +49946 +49874 +49842 +50102 +49818 +50047 +50069 +49596 +46135 +50097 +50067 +50198 +49731 +50102 +49994 +49731 +44040 +50195 +49308 +49370 +42075 +49052 +39754 +37012 +15827 +50161 +49985 +49893 +49714 +50046 +49656 +49270 +40210 +49762 +48914 +48571 +36731 +47281 +33186 +29456 +9326 +50089 +47658 +46655 +30247 +44627 +26124 +21808 +4944 +40506 +19488 +15351 +2522 +11060 +1317 +760 +3 +50268 +50253 +50255 +50117 +50001 +49994 +50102 +46956 +50188 +50213 +49703 +45750 +49728 +43689 +42420 +23080 +49975 +49651 +49669 +42826 +49514 +40698 +38195 +17444 +48678 +36711 +33212 +12412 +28273 +8684 +6088 +425 +49658 +49288 +48654 +37769 +47801 +33964 +30801 +10574 +46234 +28856 +24691 +6605 +19417 +4073 +2674 +89 +42108 +21547 +17688 +3335 +12919 +1824 +1172 +15 +8867 +913 +544 +6 +309 +1 +0 +0 +49866 +47092 +46027 +30142 +44237 +25568 +21240 +4862 +40186 +19360 +15316 +2601 +11241 +1342 +751 +7 +34068 +12875 +9608 +1032 +6438 +513 +260 +2 +3933 +184 +98 +0 +66 +0 +0 +0 +25970 +7171 +5066 +322 +3212 +142 +81 +0 +1872 +54 +16 +0 +8 +0 +0 +0 +1065 +18 +6 +0 +4 +0 +0 +0 +5 +0 +0 +0 +0 +0 +0 +0 +49724 +41907 +39821 +19352 +36239 +14978 +11470 +1456 +30382 +10078 +7259 +626 +4666 +299 +153 +0 +23205 +5651 +3874 +205 +2459 +66 +40 +0 +1361 +19 +14 +0 +9 +0 +0 +0 +15577 +2701 +1857 +45 +1037 +10 +6 +0 +606 +5 +0 +0 +1 +0 +0 +0 +309 +5 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +9543 +1076 +656 +6 +376 +5 +1 +0 +203 +1 +0 +0 +0 +0 +0 +0 +114 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +61 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +50043 +49970 +49930 +49786 +50041 +49868 +50025 +49240 +49780 +50013 +50018 +49197 +50209 +48625 +47836 +35695 +50014 +49930 +49975 +48294 +50102 +47631 +46829 +31395 +49844 +45912 +44610 +26712 +41987 +22568 +18242 +3592 +49869 +49980 +49992 +46401 +49634 +45137 +43174 +24485 +49388 +41835 +39704 +19119 +36022 +14796 +11302 +1416 +48847 +37058 +33807 +12993 +29456 +9196 +6570 +485 +22734 +5522 +3824 +184 +2253 +69 +44 +0 +49877 +49368 +49705 +42530 +49209 +39736 +37196 +16461 +47929 +35404 +32041 +11406 +27043 +7952 +5538 +359 +45617 +28994 +24923 +6678 +19777 +4208 +2774 +104 +14228 +2277 +1353 +28 +827 +14 +3 +0 +41384 +21118 +17131 +3182 +12501 +1738 +1073 +11 +8653 +896 +499 +4 +290 +3 +0 +0 +5290 +367 +191 +0 +115 +0 +0 +0 +52 +0 +0 +0 +0 +0 +0 +0 +50043 +48897 +48259 +35793 +47235 +32178 +28825 +8988 +44841 +26838 +22495 +5490 +17562 +3419 +2098 +65 +40674 +19849 +15994 +2755 +11550 +1504 +825 +15 +7666 +704 +422 +1 +219 +1 +2 +0 +34037 +12755 +9656 +1048 +6491 +521 +313 +1 +4169 +223 +137 +0 +41 +0 +0 +0 +2429 +76 +44 +0 +32 +0 +0 +0 +10 +0 +0 +0 +0 +0 +0 +0 +25622 +7070 +4981 +317 +3213 +157 +71 +0 +1973 +48 +25 +0 +15 +0 +0 +0 +1116 +29 +10 +0 +6 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +620 +4 +4 +0 +2 +0 +0 +0 +4 +0 +0 +0 +0 +0 +0 +0 +2 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +3988 +164 +105 +0 +45 +0 +0 +0 +17 +0 +0 +0 +0 +0 +0 +0 +10 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +3 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +5 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +2 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_13_ask16-gray_bicm_250000.txt b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_13_ask16-gray_bicm_250000.txt new file mode 100644 index 0000000..f0af44a --- /dev/null +++ b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_13_ask16-gray_bicm_250000.txt @@ -0,0 +1,1024 @@ +124824 +124653 +125372 +125019 +124888 +125088 +125080 +125115 +124925 +125137 +124796 +125357 +125176 +125287 +124730 +124878 +125157 +125002 +124908 +125084 +124436 +124781 +124985 +124814 +124944 +124982 +125082 +125173 +124916 +125062 +124827 +125037 +125043 +125285 +125351 +124984 +125114 +124674 +124607 +125124 +124879 +125272 +125205 +124882 +124829 +125061 +124665 +125407 +124977 +124792 +125465 +124613 +125275 +125129 +125100 +125015 +125327 +125127 +125686 +125242 +125198 +124800 +124740 +124242 +125322 +124392 +124988 +125236 +125308 +124906 +124811 +124872 +124709 +125112 +125013 +124775 +124892 +124747 +125370 +125059 +125021 +124839 +124937 +125075 +125353 +125081 +125161 +124912 +124834 +125095 +125087 +125373 +125572 +124457 +124469 +123325 +124598 +124770 +124870 +124749 +125121 +125121 +124807 +124897 +125189 +124593 +125245 +124518 +124707 +124926 +124977 +122393 +125053 +125008 +124638 +124360 +124932 +125369 +124621 +120844 +125275 +125332 +124947 +119182 +125005 +117463 +115413 +75158 +125082 +125110 +124606 +125117 +124996 +125103 +125189 +124864 +124478 +124823 +125317 +124981 +124962 +125705 +124732 +125542 +124473 +124899 +124846 +125330 +124661 +125286 +125148 +124963 +125022 +125057 +125225 +124795 +125574 +125018 +125663 +121538 +125256 +125327 +125301 +125139 +124971 +124645 +125013 +124601 +124887 +125157 +125218 +124260 +125096 +124985 +124683 +119752 +125040 +124937 +125028 +125203 +125156 +124912 +124626 +116955 +125305 +124696 +124571 +114200 +124481 +110616 +106463 +57913 +124861 +125020 +125195 +125149 +124721 +124803 +124576 +124722 +124782 +125210 +124685 +124803 +125233 +125228 +124682 +114693 +125057 +124770 +124828 +124465 +125285 +124684 +124573 +111034 +124997 +123766 +123466 +105061 +122300 +98754 +91753 +39775 +125085 +124924 +124751 +123981 +125591 +123659 +122790 +100529 +124921 +122211 +121739 +92133 +119065 +82472 +73492 +23634 +124754 +119467 +116075 +76667 +111158 +64963 +53934 +12078 +101468 +48769 +38280 +6158 +27414 +3227 +1892 +17 +125179 +125051 +124848 +125074 +124881 +125210 +124739 +117159 +125092 +124673 +124981 +114564 +124412 +110361 +105916 +58028 +124914 +124090 +124089 +107253 +123112 +101048 +94807 +43068 +121157 +90500 +82209 +30635 +70525 +21262 +14829 +1028 +125229 +122976 +121892 +94066 +119820 +85876 +76458 +26272 +114465 +72295 +62178 +16637 +48822 +10160 +6609 +210 +105252 +54278 +44044 +8263 +32722 +4637 +2793 +46 +21828 +2244 +1289 +9 +661 +1 +1 +0 +125091 +117905 +115525 +74858 +109901 +63323 +53438 +12306 +100544 +48510 +38226 +6250 +27857 +3422 +2004 +25 +84894 +32289 +23975 +2620 +16237 +1217 +702 +2 +9980 +503 +269 +0 +145 +0 +0 +0 +64851 +17940 +12632 +728 +8160 +334 +167 +0 +4811 +141 +53 +0 +41 +0 +0 +0 +2598 +51 +20 +0 +11 +0 +0 +0 +4 +0 +0 +0 +0 +0 +0 +0 +123531 +105095 +99518 +48446 +90345 +37294 +28258 +3461 +75776 +24653 +17945 +1477 +11568 +614 +327 +0 +57276 +14080 +9551 +514 +5913 +173 +97 +0 +3376 +59 +34 +0 +20 +0 +0 +0 +39380 +6724 +4255 +107 +2607 +42 +24 +0 +1434 +8 +9 +0 +2 +0 +0 +0 +735 +2 +2 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +23937 +2734 +1607 +21 +884 +2 +5 +0 +501 +1 +0 +0 +0 +0 +0 +0 +243 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +133 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +124717 +124760 +124897 +125028 +124734 +125287 +125189 +123627 +125095 +124821 +124796 +122801 +124531 +121785 +120091 +89804 +125170 +125179 +124969 +119969 +125164 +119043 +116679 +79250 +125111 +114965 +111509 +67155 +106021 +55660 +46134 +9077 +124825 +124758 +125392 +115817 +124582 +111924 +108086 +61737 +123926 +105287 +99542 +48220 +90400 +37475 +28182 +3516 +122030 +92889 +85095 +32634 +72804 +22890 +16450 +1186 +57473 +14039 +9459 +433 +5768 +166 +103 +0 +124843 +124280 +123483 +106001 +123280 +100063 +93540 +41163 +120738 +89142 +80312 +28749 +68165 +19986 +13906 +832 +115118 +72904 +62771 +17036 +50300 +10719 +6972 +242 +36013 +5616 +3545 +72 +2125 +20 +16 +0 +103857 +52496 +42874 +7955 +31971 +4518 +2629 +45 +21696 +2141 +1339 +8 +774 +3 +4 +0 +13571 +948 +545 +1 +292 +2 +1 +0 +128 +1 +0 +0 +0 +0 +0 +0 +125484 +121757 +120497 +89492 +117921 +80042 +71531 +22809 +112364 +67052 +56682 +13716 +44201 +8318 +5304 +119 +101134 +49748 +39583 +6842 +29303 +3774 +2226 +36 +19351 +1831 +1021 +1 +573 +2 +2 +0 +84768 +32156 +24046 +2622 +16514 +1270 +739 +2 +10506 +597 +329 +2 +168 +0 +0 +0 +6111 +200 +120 +0 +55 +0 +0 +0 +36 +0 +0 +0 +0 +0 +0 +0 +63497 +17785 +12669 +757 +7992 +345 +161 +0 +4914 +150 +81 +0 +41 +0 +0 +0 +2742 +52 +27 +0 +15 +0 +0 +0 +4 +0 +0 +0 +0 +0 +0 +0 +1479 +18 +6 +0 +6 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +9682 +425 +231 +2 +147 +0 +0 +0 +71 +0 +0 +0 +0 +0 +0 +0 +26 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +25 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +8 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +5 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_4.5_ask4-gray_bicm.txt b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_4.5_ask4-gray_bicm.txt new file mode 100644 index 0000000..19a01cf --- /dev/null +++ b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_4.5_ask4-gray_bicm.txt @@ -0,0 +1,1024 @@ +50185 +49689 +50046 +49746 +49957 +50109 +49855 +49974 +49892 +49949 +50128 +49802 +50166 +50337 +49793 +49759 +49979 +49736 +49709 +50182 +49896 +49859 +50097 +50136 +49880 +49780 +49929 +49816 +49995 +50272 +49929 +49972 +50115 +50037 +50026 +49750 +49869 +49970 +50054 +50202 +50213 +50026 +50062 +50152 +49900 +50036 +50002 +49528 +49819 +49931 +50235 +50074 +49951 +50245 +50136 +49928 +50031 +50030 +50076 +49568 +49971 +50020 +49041 +41285 +50145 +49815 +50252 +50128 +50041 +49888 +50087 +49942 +50430 +50190 +50038 +49863 +49899 +50099 +50211 +49617 +49802 +50249 +50210 +50126 +49982 +50033 +50038 +49507 +50039 +50100 +49775 +49238 +50005 +49081 +48562 +38418 +50020 +50172 +50129 +50155 +49916 +49891 +50026 +48782 +49973 +50200 +49994 +48511 +50125 +47962 +47658 +34517 +49887 +49481 +49959 +47610 +49942 +46942 +45677 +29682 +49863 +44887 +43726 +24768 +40671 +19893 +16412 +2804 +50059 +49826 +49874 +49961 +50037 +50231 +49810 +50132 +49814 +49678 +49776 +49947 +49986 +50054 +49889 +48706 +50199 +50208 +50074 +49751 +49807 +49958 +50111 +48869 +50073 +50110 +50021 +48243 +49862 +47716 +46476 +31480 +49809 +50074 +49986 +50024 +50160 +49806 +49828 +47837 +49591 +49942 +50093 +46452 +49677 +45271 +43824 +25798 +50065 +50141 +49867 +44365 +49796 +42508 +40270 +19906 +49172 +38743 +35923 +14782 +31139 +10610 +7608 +625 +49808 +49869 +50190 +50105 +50333 +49902 +50066 +44605 +50173 +49434 +49614 +42514 +49214 +40395 +37774 +17030 +50273 +49435 +48784 +38782 +48083 +35562 +31853 +11467 +46220 +30015 +25657 +7072 +20282 +4356 +2856 +83 +50245 +47710 +46974 +31612 +45093 +27159 +22744 +5498 +41367 +20691 +16499 +2902 +11851 +1459 +872 +11 +35075 +13599 +10275 +1106 +6914 +549 +319 +0 +4147 +230 +125 +1 +68 +0 +0 +0 +50073 +49974 +50102 +49876 +50083 +50014 +50245 +49764 +50063 +50046 +49988 +50012 +49872 +50259 +49559 +47047 +49853 +50029 +49849 +50185 +49874 +49782 +49774 +45718 +49674 +49759 +49981 +44220 +49491 +41967 +39704 +19360 +49893 +49947 +50008 +49801 +50137 +49792 +49303 +42585 +49988 +49085 +49037 +40159 +48329 +36761 +33779 +12914 +49882 +48728 +48024 +34857 +46680 +30965 +26715 +7778 +44159 +25085 +20409 +4425 +15264 +2548 +1549 +25 +50172 +49982 +49861 +49076 +49873 +48940 +48568 +36276 +50137 +47691 +47075 +31993 +45078 +27381 +23665 +5946 +49574 +45373 +43344 +24859 +41149 +20075 +16020 +2675 +35574 +14001 +10538 +1172 +7038 +550 +325 +0 +49275 +40447 +37144 +15989 +32651 +11604 +8606 +791 +26070 +7203 +4841 +300 +3071 +120 +52 +0 +18825 +3750 +2333 +70 +1398 +27 +21 +0 +797 +13 +8 +0 +2 +0 +0 +0 +49820 +49883 +50281 +46756 +49851 +45534 +43467 +24796 +49512 +42589 +40062 +19335 +35786 +14507 +11006 +1283 +48423 +36664 +33322 +12306 +28485 +8513 +5924 +415 +21903 +5027 +3218 +123 +1985 +48 +27 +0 +45941 +28416 +24075 +6121 +18783 +3677 +2356 +71 +13227 +1877 +1159 +15 +644 +4 +2 +0 +8364 +837 +474 +2 +264 +1 +2 +0 +129 +0 +0 +0 +0 +0 +0 +0 +39323 +18000 +14047 +2127 +9930 +1146 +698 +4 +6527 +458 +290 +0 +146 +1 +0 +0 +3740 +189 +100 +0 +51 +0 +0 +0 +32 +0 +0 +0 +0 +0 +0 +0 +2105 +71 +30 +0 +16 +0 +0 +0 +8 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +49728 +50038 +49958 +47868 +50181 +47242 +46299 +29737 +50228 +45346 +43526 +24791 +40704 +19912 +16130 +2743 +49475 +41183 +38880 +17829 +34374 +13462 +9923 +1103 +28506 +8731 +6140 +462 +3953 +169 +111 +0 +48229 +34798 +31188 +10644 +26064 +7246 +4999 +293 +20016 +4195 +2663 +86 +1700 +38 +20 +0 +13634 +2147 +1269 +24 +723 +11 +1 +0 +398 +2 +4 +0 +0 +0 +0 +0 +44181 +25524 +21653 +5208 +16944 +3169 +1926 +67 +12148 +1614 +1015 +7 +567 +4 +1 +0 +7679 +812 +460 +5 +207 +0 +0 +0 +111 +0 +0 +0 +0 +0 +0 +0 +4683 +304 +148 +0 +97 +0 +0 +0 +40 +0 +0 +0 +0 +0 +0 +0 +25 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +37664 +16980 +13191 +1976 +9575 +1109 +642 +4 +6394 +511 +296 +1 +163 +2 +0 +0 +3978 +227 +114 +0 +67 +1 +1 +0 +31 +0 +0 +0 +0 +0 +0 +0 +2328 +75 +49 +0 +14 +0 +0 +0 +9 +0 +0 +0 +0 +0 +0 +0 +6 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1240 +27 +13 +0 +4 +0 +0 +0 +3 +0 +0 +0 +0 +0 +0 +0 +4 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +29109 +9734 +7143 +650 +5059 +316 +154 +0 +3150 +141 +75 +1 +55 +0 +0 +0 +1907 +50 +33 +0 +22 +0 +0 +0 +7 +0 +0 +0 +0 +0 +0 +0 +1100 +25 +12 +0 +3 +0 +0 +0 +5 +0 +0 +0 +0 +0 +0 +0 +3 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +598 +8 +3 +0 +2 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +320 +2 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_4.5_ask4-gray_bicm_250000.txt b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_4.5_ask4-gray_bicm_250000.txt new file mode 100644 index 0000000..2359d8f --- /dev/null +++ b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_4.5_ask4-gray_bicm_250000.txt @@ -0,0 +1,1024 @@ +124989 +125231 +125108 +124760 +124860 +125220 +124759 +124816 +125053 +124770 +125273 +124480 +125248 +124604 +125203 +124732 +124221 +124826 +124705 +125003 +124651 +125102 +125176 +124848 +124880 +125284 +125616 +124628 +124427 +124867 +125096 +124225 +124767 +125606 +124991 +125080 +124762 +125190 +125049 +125357 +125286 +124958 +124950 +124945 +125173 +124780 +124613 +124801 +124800 +124813 +125477 +125381 +124957 +125340 +125391 +124502 +124751 +125107 +125022 +124006 +124912 +123690 +123220 +103969 +124526 +125031 +124713 +124781 +124856 +125328 +125129 +124936 +125088 +124852 +124689 +125013 +125215 +124784 +124862 +123935 +125351 +124833 +124711 +124807 +125238 +124965 +124700 +124316 +124706 +125143 +124956 +123013 +124892 +122582 +121867 +96397 +124981 +124228 +124998 +125261 +125086 +124874 +124977 +122849 +124899 +124901 +125045 +121645 +124905 +121076 +119366 +86084 +125424 +125065 +124665 +119209 +124436 +117148 +114534 +74509 +124494 +112655 +108347 +61795 +101847 +50222 +40557 +6969 +124837 +125202 +125158 +125029 +125021 +125104 +125245 +125099 +125392 +124803 +125053 +124614 +125083 +124792 +124993 +122511 +124778 +125199 +124713 +124560 +124982 +125110 +125389 +121980 +124850 +125167 +124737 +120138 +124976 +118879 +116566 +79386 +124630 +124828 +125236 +125317 +125122 +124906 +125178 +118721 +125109 +124831 +124534 +116085 +124738 +113293 +110392 +65268 +125147 +124876 +124379 +110842 +124586 +105625 +100942 +50035 +122426 +96930 +89186 +36663 +78026 +26251 +19078 +1638 +125341 +125261 +124986 +124689 +124760 +124493 +124450 +111892 +124813 +124984 +124089 +106662 +122981 +101071 +94903 +42963 +124284 +123414 +122766 +96651 +120499 +88306 +80164 +28389 +115955 +74586 +63863 +17545 +51288 +10962 +7096 +255 +124777 +119625 +117290 +78643 +112376 +67068 +57243 +13793 +103155 +51700 +41536 +7050 +30127 +3948 +2201 +26 +87595 +33927 +25358 +2839 +17020 +1329 +764 +4 +10399 +533 +300 +0 +150 +0 +0 +0 +124654 +125000 +124606 +124916 +124949 +125194 +125021 +125327 +124906 +125326 +124903 +125144 +124656 +125309 +125103 +117466 +124900 +125138 +125373 +124599 +125409 +124376 +124548 +114198 +124827 +124494 +123759 +109693 +123538 +104787 +99434 +48753 +125112 +125436 +124948 +124031 +125111 +124248 +123409 +106514 +125040 +123419 +122312 +99574 +121329 +92078 +84288 +32331 +125243 +121600 +119525 +87197 +116523 +76908 +67434 +19454 +110152 +61972 +51398 +11170 +38639 +6230 +3830 +75 +125095 +125032 +125351 +122600 +124508 +122044 +120282 +90041 +124717 +119813 +117640 +79765 +112982 +68562 +58129 +14452 +124547 +113383 +109275 +62337 +101998 +50133 +39836 +6683 +88982 +35338 +26436 +3025 +17965 +1433 +844 +1 +123085 +100701 +93416 +40070 +81601 +29062 +21111 +1972 +65582 +18007 +12285 +751 +7648 +250 +155 +0 +47226 +9273 +6029 +153 +3498 +78 +31 +0 +1898 +25 +14 +0 +6 +0 +0 +0 +125288 +124708 +124791 +116270 +124749 +113281 +108970 +61729 +123962 +105983 +99726 +48184 +89386 +36081 +27297 +3240 +121055 +92146 +83369 +30990 +70677 +21244 +14764 +989 +54186 +12351 +8126 +369 +4806 +110 +66 +0 +114422 +70869 +60465 +15329 +46941 +9248 +5884 +151 +33269 +4687 +2833 +49 +1609 +17 +7 +0 +20965 +1949 +1170 +5 +632 +0 +0 +0 +332 +1 +1 +0 +0 +0 +0 +0 +98673 +45007 +35407 +5360 +24906 +2880 +1636 +8 +16235 +1242 +699 +2 +389 +0 +0 +0 +9470 +423 +233 +0 +150 +0 +0 +0 +75 +1 +0 +0 +0 +0 +0 +0 +5317 +142 +95 +0 +39 +0 +0 +0 +26 +0 +0 +0 +0 +0 +0 +0 +9 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +125324 +124612 +124712 +120749 +124894 +118115 +114911 +74502 +124709 +112708 +109054 +61635 +101479 +49765 +39897 +6787 +123499 +103229 +96901 +44789 +86563 +33548 +25090 +2757 +71386 +21657 +15204 +1033 +9771 +509 +262 +1 +120316 +86667 +77891 +26945 +65206 +18116 +12550 +673 +50078 +10522 +7049 +237 +4056 +89 +54 +0 +34499 +5223 +3271 +68 +1846 +13 +13 +0 +1018 +1 +5 +0 +1 +0 +0 +0 +111244 +64492 +54011 +12756 +42770 +7775 +4861 +121 +30192 +4101 +2588 +37 +1394 +11 +4 +0 +19468 +1921 +1093 +2 +605 +2 +4 +0 +325 +1 +1 +0 +0 +0 +0 +0 +11704 +686 +426 +2 +212 +0 +0 +0 +114 +0 +0 +0 +0 +0 +0 +0 +64 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +94072 +42183 +33464 +5143 +24058 +2724 +1619 +14 +16367 +1313 +738 +5 +400 +0 +2 +0 +9921 +567 +333 +0 +174 +0 +0 +0 +90 +0 +0 +0 +0 +0 +0 +0 +5862 +215 +109 +0 +53 +0 +0 +0 +28 +0 +0 +0 +0 +0 +0 +0 +18 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +3236 +81 +40 +0 +17 +0 +0 +0 +11 +0 +0 +0 +0 +0 +0 +0 +4 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +73246 +24617 +18136 +1638 +12762 +782 +466 +1 +7898 +370 +186 +0 +97 +0 +0 +0 +4697 +145 +63 +0 +55 +0 +0 +0 +25 +0 +0 +0 +0 +0 +0 +0 +2715 +39 +26 +0 +12 +0 +0 +0 +7 +0 +0 +0 +0 +0 +0 +0 +2 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1501 +13 +4 +0 +2 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +765 +3 +3 +0 +3 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_4.5_ask4-sp_mlc.txt b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_4.5_ask4-sp_mlc.txt new file mode 100644 index 0000000..8e9337c --- /dev/null +++ b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_4.5_ask4-sp_mlc.txt @@ -0,0 +1,1024 @@ +49963 +49832 +50208 +49954 +49702 +50010 +50232 +49937 +49998 +50032 +49713 +50017 +50111 +49757 +49780 +49901 +50218 +49839 +49896 +49979 +49825 +50086 +49820 +50002 +50103 +50105 +50005 +50161 +49766 +49933 +49850 +49854 +50117 +49754 +50047 +50139 +49955 +49908 +49930 +49897 +49943 +50066 +49851 +50343 +50047 +50256 +49505 +49842 +49919 +50280 +50175 +49851 +50182 +49897 +49894 +49491 +50295 +50003 +50189 +49724 +50117 +49504 +49217 +41507 +49986 +50119 +50006 +49934 +49697 +50181 +49935 +50084 +49907 +50210 +49880 +49849 +49779 +49771 +50218 +49549 +49969 +49760 +49988 +50139 +49841 +49907 +50044 +49553 +49695 +50025 +49856 +49155 +50200 +48817 +48854 +38490 +49680 +49852 +49961 +49877 +50082 +49782 +50096 +48908 +49714 +50053 +50102 +48699 +50003 +47928 +47399 +34323 +49951 +49727 +50093 +47679 +49821 +46717 +45974 +29682 +49742 +45096 +43346 +24659 +40701 +20177 +16023 +2758 +50212 +49865 +49819 +50353 +50146 +49882 +50055 +49781 +49692 +50033 +50171 +49813 +50057 +50065 +50268 +49074 +49886 +49969 +50348 +50088 +49983 +50171 +50095 +48764 +50181 +49848 +50445 +47958 +49872 +47286 +46487 +31393 +49905 +49868 +50350 +49858 +50153 +49857 +49962 +47433 +49881 +50049 +49824 +46601 +49682 +45172 +44091 +25908 +50035 +50123 +49641 +44329 +49741 +42424 +40487 +20012 +49029 +38823 +35698 +14967 +31321 +10601 +7612 +602 +50018 +49968 +50109 +49807 +50177 +49935 +50043 +44698 +50178 +49780 +49541 +42449 +49274 +40284 +37982 +17098 +49960 +48955 +49122 +38682 +48250 +35047 +31719 +11197 +46672 +29832 +25443 +7087 +20248 +4271 +2790 +110 +49763 +47934 +46848 +31339 +45074 +26839 +22902 +5469 +41442 +20535 +16428 +2925 +11687 +1464 +877 +10 +34970 +13581 +10079 +1092 +6904 +542 +293 +2 +4124 +228 +111 +0 +76 +0 +0 +0 +49864 +50269 +50235 +50058 +50010 +50032 +49987 +49967 +50057 +49848 +49710 +49944 +50266 +49888 +49965 +46885 +49922 +50194 +49758 +50136 +49887 +49856 +49970 +45772 +50188 +49755 +49626 +43997 +49446 +41781 +39763 +19392 +50102 +49795 +49994 +49872 +50169 +49740 +49538 +42594 +49881 +49638 +49268 +39652 +48263 +36688 +33677 +12860 +50151 +48496 +48045 +34928 +46712 +30968 +26971 +7760 +43772 +24675 +20387 +4433 +15525 +2510 +1572 +32 +49942 +50260 +49917 +49358 +50321 +48866 +48254 +36162 +49955 +47880 +46885 +31794 +45341 +27224 +23230 +5775 +49936 +45775 +43976 +25254 +40704 +19940 +15725 +2644 +35489 +14125 +10551 +1186 +7092 +582 +336 +1 +48954 +39981 +37146 +16154 +32386 +11431 +8389 +807 +25987 +7212 +4954 +295 +3033 +103 +64 +0 +18564 +3703 +2338 +89 +1409 +30 +12 +0 +781 +9 +2 +0 +3 +0 +0 +0 +49851 +49867 +50149 +46699 +49531 +45343 +43395 +24501 +49684 +42385 +39750 +19190 +35647 +14393 +10909 +1205 +48654 +36725 +33447 +12307 +28210 +8386 +5909 +366 +21321 +4897 +3156 +111 +1949 +51 +18 +0 +45696 +28133 +24035 +6191 +18666 +3742 +2315 +69 +12982 +1859 +1088 +21 +696 +5 +5 +0 +8161 +759 +462 +5 +284 +0 +2 +0 +142 +0 +1 +0 +0 +0 +0 +0 +39219 +18016 +13783 +2010 +9838 +1075 +617 +5 +6311 +481 +265 +0 +145 +0 +0 +0 +3701 +176 +94 +0 +43 +0 +0 +0 +28 +0 +0 +0 +0 +0 +0 +0 +2066 +58 +34 +0 +23 +0 +0 +0 +9 +0 +0 +0 +0 +0 +0 +0 +5 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +49953 +49974 +50070 +48381 +49765 +47216 +45725 +29932 +50015 +45553 +43384 +24541 +40487 +19659 +15676 +2520 +49413 +41018 +38358 +17396 +34178 +12931 +9539 +1019 +27871 +8284 +5750 +383 +3708 +149 +86 +0 +47820 +33962 +30246 +10064 +25111 +6616 +4473 +225 +18314 +3614 +2393 +58 +1392 +29 +24 +0 +12687 +1782 +1064 +23 +603 +7 +1 +0 +354 +3 +0 +0 +0 +0 +0 +0 +43475 +23950 +19933 +4243 +15216 +2375 +1556 +30 +10410 +1219 +751 +10 +404 +8 +1 +0 +6403 +512 +273 +2 +160 +0 +1 +0 +79 +0 +0 +0 +0 +0 +0 +0 +3794 +169 +97 +0 +61 +0 +0 +0 +26 +0 +0 +0 +0 +0 +0 +0 +9 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +35236 +13991 +10527 +1233 +7295 +616 +384 +0 +4526 +256 +142 +0 +76 +0 +0 +0 +2650 +113 +63 +0 +26 +0 +0 +0 +17 +0 +0 +0 +0 +0 +0 +0 +1561 +37 +15 +0 +13 +0 +0 +0 +9 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +790 +7 +7 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +24679 +6672 +4646 +237 +2935 +121 +74 +0 +1727 +57 +19 +0 +10 +0 +0 +0 +928 +14 +12 +0 +2 +0 +0 +0 +4 +0 +0 +0 +0 +0 +0 +0 +530 +5 +4 +0 +2 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +273 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +143 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_4.5_ask4-sp_mlc_250000.txt b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_4.5_ask4-sp_mlc_250000.txt new file mode 100644 index 0000000..82f654b --- /dev/null +++ b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_4.5_ask4-sp_mlc_250000.txt @@ -0,0 +1,1024 @@ +124741 +125453 +125248 +125083 +124944 +124969 +125074 +125025 +124676 +124339 +124618 +124997 +124506 +124893 +125145 +124931 +125228 +124737 +124762 +125110 +124875 +125041 +125342 +125013 +124817 +124794 +125376 +124815 +125504 +124915 +124752 +124378 +125009 +124638 +125124 +124754 +125045 +124782 +124582 +125250 +124959 +125237 +124932 +124899 +124875 +124978 +124530 +124232 +124931 +125353 +124929 +124965 +124787 +124952 +124931 +124408 +125195 +124560 +125292 +123986 +125063 +123872 +123083 +104350 +124752 +124860 +125363 +124798 +125036 +124968 +124863 +125300 +124706 +125047 +124863 +125084 +125370 +124511 +125204 +124377 +124480 +124824 +124994 +124779 +125119 +124865 +125122 +123386 +124931 +124977 +124992 +122912 +124942 +122451 +121705 +96096 +124624 +125654 +124743 +124893 +124999 +125222 +124777 +122873 +125183 +125214 +124477 +121709 +125128 +120213 +119110 +86186 +124770 +125127 +124676 +119141 +124843 +117495 +114884 +74208 +124798 +112356 +108482 +61909 +101667 +50222 +40883 +6984 +124917 +124974 +125190 +124922 +124925 +124359 +125249 +125249 +125187 +124993 +124750 +124883 +125653 +124995 +124901 +122225 +125447 +125350 +124863 +125305 +125166 +124861 +124772 +121589 +125385 +125096 +125020 +120051 +124681 +118528 +116786 +79050 +124732 +124824 +125357 +125347 +125386 +125290 +124581 +119584 +124712 +124414 +124537 +116936 +124510 +113492 +109912 +64889 +125396 +124536 +124677 +110665 +124121 +106098 +100881 +50043 +122494 +97123 +89284 +36773 +77701 +26254 +18894 +1553 +125328 +125615 +124497 +124744 +124857 +124522 +124734 +111848 +125257 +124115 +124206 +106810 +122898 +100740 +94852 +42719 +124943 +122669 +122277 +96219 +120547 +88241 +79551 +27955 +116138 +75051 +64114 +17636 +51117 +10924 +7003 +253 +125504 +119824 +116618 +78422 +112135 +66849 +56915 +13573 +103213 +51190 +41390 +7054 +29608 +3827 +2353 +29 +87012 +33677 +25340 +2802 +17217 +1239 +734 +3 +10585 +527 +305 +0 +148 +0 +0 +0 +125243 +124760 +124827 +124959 +124742 +125210 +124775 +125154 +124950 +124453 +124426 +125024 +124851 +125234 +124877 +117733 +125068 +124932 +125237 +125282 +125197 +124930 +124505 +113905 +124881 +124063 +124880 +109873 +123387 +104834 +99659 +48645 +125067 +125070 +124893 +124417 +124986 +124522 +123874 +106793 +125036 +123282 +122878 +100287 +121214 +92068 +84605 +32574 +125384 +121652 +120309 +87445 +116729 +76644 +67429 +19490 +110124 +61698 +51528 +11217 +38678 +6382 +4012 +66 +124927 +125055 +125086 +123163 +124770 +121533 +120426 +90913 +124841 +119404 +117515 +79519 +112610 +68600 +58475 +14622 +124590 +113626 +109614 +62881 +102063 +49669 +40023 +6932 +88782 +35171 +26372 +3058 +17741 +1425 +825 +6 +123022 +101001 +93544 +40457 +81760 +28929 +21174 +2018 +65628 +18043 +12360 +733 +7695 +291 +159 +0 +46934 +9259 +5940 +184 +3584 +59 +40 +0 +1936 +28 +5 +0 +8 +0 +0 +0 +124839 +124737 +124914 +116907 +124430 +112280 +108821 +61865 +123639 +106108 +99172 +47911 +89486 +36100 +27449 +3182 +121497 +92381 +83410 +30807 +70508 +21052 +14872 +996 +54158 +12295 +8061 +307 +4718 +112 +71 +0 +114404 +70453 +60228 +15245 +46854 +9341 +5771 +177 +32765 +4645 +2932 +45 +1620 +19 +8 +0 +20778 +1929 +1206 +6 +626 +4 +2 +0 +350 +0 +0 +0 +0 +0 +0 +0 +98323 +45398 +35458 +5286 +25064 +2800 +1623 +12 +16345 +1224 +668 +3 +373 +0 +0 +0 +9717 +468 +245 +0 +126 +0 +0 +0 +82 +0 +0 +0 +0 +0 +0 +0 +5401 +160 +70 +0 +37 +0 +0 +0 +23 +0 +0 +0 +0 +0 +0 +0 +18 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +125315 +124902 +125049 +119819 +124819 +117849 +114897 +74194 +124758 +113074 +108531 +61439 +100927 +49532 +39433 +6804 +123486 +102571 +96604 +44028 +85127 +32047 +24099 +2564 +69938 +20646 +14414 +985 +9156 +411 +237 +1 +119383 +85065 +75596 +24830 +62636 +16606 +11090 +596 +46869 +9320 +5959 +176 +3505 +72 +37 +0 +31647 +4387 +2673 +50 +1535 +11 +12 +0 +768 +5 +1 +0 +2 +0 +0 +0 +109229 +60332 +50179 +10656 +37923 +6133 +3760 +79 +25811 +3037 +1796 +15 +958 +6 +3 +0 +16193 +1254 +755 +3 +395 +0 +0 +0 +192 +0 +0 +0 +0 +0 +0 +0 +9453 +476 +274 +0 +144 +0 +0 +0 +56 +0 +0 +0 +0 +0 +0 +0 +33 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +88612 +34991 +26733 +3167 +18245 +1619 +915 +5 +11584 +678 +387 +2 +223 +0 +0 +0 +6887 +271 +161 +1 +77 +0 +0 +0 +47 +0 +0 +0 +0 +0 +0 +0 +3761 +85 +44 +0 +20 +0 +0 +0 +13 +0 +0 +0 +0 +0 +0 +0 +10 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1969 +28 +9 +0 +8 +0 +0 +0 +4 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +61747 +16484 +11623 +660 +7394 +291 +154 +0 +4450 +126 +65 +0 +36 +0 +0 +0 +2478 +38 +14 +0 +11 +0 +0 +0 +3 +0 +0 +0 +0 +0 +0 +0 +1315 +20 +7 +0 +3 +0 +0 +0 +5 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +704 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +352 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_9_ask8-gray_bicm_250000.txt b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_9_ask8-gray_bicm_250000.txt new file mode 100644 index 0000000..2253243 --- /dev/null +++ b/PolarM/CodeConstructionData/MC_block_length_1024_512_cc_method_monte-carlo_cc_param_9_ask8-gray_bicm_250000.txt @@ -0,0 +1,1024 @@ +124833 +124837 +125287 +124545 +125136 +125069 +125081 +124979 +125110 +125214 +124571 +125278 +125093 +124856 +124976 +124695 +125130 +124790 +125033 +125226 +124661 +124475 +125361 +125121 +124736 +125373 +124809 +125041 +124947 +125109 +125212 +124690 +125320 +124596 +124508 +125089 +125151 +125049 +124755 +125149 +125383 +125314 +124972 +125140 +124974 +125018 +124907 +125000 +124942 +124962 +124899 +125023 +124950 +125079 +125356 +124767 +124685 +124573 +125157 +124820 +125078 +124563 +124169 +117306 +124900 +124877 +124639 +124628 +125043 +125117 +124996 +124864 +125090 +124704 +124898 +125045 +124951 +124715 +124971 +125365 +125451 +125283 +124987 +125431 +125156 +124902 +124839 +124306 +125196 +124821 +125059 +125316 +124843 +124309 +124623 +112661 +124805 +125037 +125067 +125278 +125432 +124841 +124797 +124861 +124798 +124571 +124979 +124633 +124818 +124608 +123780 +107456 +124843 +124475 +125042 +123950 +124736 +123640 +122398 +101084 +125275 +122196 +121220 +92915 +119199 +84320 +75272 +25514 +125419 +125170 +124813 +124993 +124867 +124794 +125142 +125070 +124650 +124876 +125839 +124835 +124798 +125262 +124932 +124346 +125063 +125089 +125454 +125003 +124988 +125003 +124831 +123851 +125125 +125409 +125122 +123796 +124930 +122822 +122183 +97228 +124959 +125166 +125140 +124981 +124827 +124981 +125042 +122740 +124823 +124770 +125082 +121905 +124750 +120597 +118767 +86821 +124804 +125004 +125654 +119462 +125448 +117619 +114680 +74327 +124295 +112785 +108775 +62167 +101356 +49876 +40160 +6890 +124650 +125425 +124991 +124703 +124985 +124976 +124767 +119143 +125022 +125106 +124885 +116462 +124398 +113201 +109924 +64730 +124857 +124856 +124466 +111075 +124096 +105753 +100234 +49714 +122002 +96186 +88485 +36102 +76635 +25529 +18185 +1484 +124739 +123356 +122662 +97955 +120826 +89713 +81609 +29553 +116327 +75720 +65856 +18566 +52419 +11555 +7562 +278 +106686 +56760 +46171 +8946 +33814 +4990 +2926 +33 +22614 +2268 +1325 +13 +758 +5 +2 +0 +125296 +125451 +124718 +125125 +124913 +124973 +124967 +125023 +125010 +124990 +124992 +124488 +125722 +124910 +124597 +115632 +125197 +125224 +124868 +124743 +125062 +124543 +124108 +111813 +125111 +124159 +124165 +106255 +123068 +100799 +94535 +43107 +124716 +125019 +124892 +124199 +125051 +123191 +123254 +101581 +124841 +122530 +121738 +93472 +119325 +84849 +76198 +25992 +124911 +119342 +117177 +79204 +112885 +68142 +58395 +14498 +104836 +53040 +42874 +7625 +31142 +4091 +2517 +40 +124728 +124604 +124777 +120683 +124996 +119084 +116303 +78004 +124610 +114578 +110387 +65224 +104238 +53402 +43528 +8047 +123908 +104992 +98530 +46738 +88375 +35400 +26627 +3058 +72785 +22846 +15998 +1182 +10261 +530 +316 +0 +119504 +85150 +75156 +25023 +62640 +16683 +11242 +584 +47010 +9398 +6080 +185 +3558 +56 +44 +0 +31183 +4354 +2595 +39 +1522 +13 +9 +0 +730 +4 +4 +0 +0 +0 +0 +0 +124941 +123476 +122999 +99453 +121592 +91533 +83830 +31726 +117268 +78452 +69256 +20750 +56566 +13303 +8940 +354 +109312 +60830 +50692 +10912 +38531 +6306 +4033 +71 +26698 +3180 +1859 +24 +1048 +6 +6 +0 +93604 +40192 +31312 +4242 +22106 +2190 +1254 +14 +14081 +992 +546 +2 +330 +1 +0 +0 +8470 +358 +191 +0 +108 +1 +0 +0 +77 +0 +0 +0 +0 +0 +0 +0 +68706 +20483 +14576 +1026 +9577 +472 +245 +0 +5605 +180 +99 +0 +69 +0 +0 +0 +3252 +66 +31 +0 +12 +0 +0 +0 +9 +0 +0 +0 +0 +0 +0 +0 +1609 +14 +6 +0 +7 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +125344 +124280 +125093 +124745 +124929 +124635 +123664 +105830 +125133 +123652 +122898 +99273 +120746 +90658 +82777 +31521 +125369 +121334 +119279 +85375 +115836 +75850 +65714 +18737 +109212 +60801 +50476 +10696 +38307 +6291 +3787 +60 +124670 +114548 +110810 +65626 +103851 +53398 +43726 +8165 +92418 +39175 +30058 +3898 +20717 +1959 +1092 +5 +74427 +24021 +17321 +1375 +11206 +628 +313 +1 +6801 +222 +126 +0 +71 +0 +0 +0 +122896 +99780 +92354 +40017 +82039 +29552 +21719 +2094 +66232 +18698 +13102 +823 +8213 +344 +184 +0 +48917 +10150 +6776 +231 +4095 +97 +54 +0 +2323 +38 +25 +0 +12 +0 +0 +0 +32046 +4814 +3008 +43 +1734 +20 +11 +0 +937 +8 +5 +0 +2 +0 +0 +0 +513 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +110845 +64630 +54296 +13123 +42757 +8026 +5051 +135 +30280 +4124 +2549 +44 +1446 +15 +12 +0 +19335 +1827 +1021 +10 +563 +2 +4 +0 +360 +0 +0 +0 +0 +0 +0 +0 +10524 +588 +367 +0 +195 +0 +0 +0 +99 +0 +0 +0 +0 +0 +0 +0 +44 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +3569 +90 +58 +0 +32 +0 +0 +0 +13 +0 +0 +0 +0 +0 +0 +0 +4 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +5 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +45141 +9228 +6508 +215 +4232 +107 +53 +0 +2703 +53 +32 +0 +12 +0 +0 +0 +1636 +18 +8 +0 +3 +0 +0 +0 +4 +0 +0 +0 +0 +0 +0 +0 +973 +11 +3 +0 +3 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +562 +3 +3 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +302 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +2 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/PolarM/Constellation.m b/PolarM/Constellation.m new file mode 100644 index 0000000..f7c2da7 --- /dev/null +++ b/PolarM/Constellation.m @@ -0,0 +1,375 @@ +classdef Constellation < handle + % Deals with constellation transmit and receive + + properties + + constellation_points; + + n_bits; + n_sym; + bit_sym_map; + + constellation_name; + is_gray; + + end + + properties (Constant) + + bpsk = [1 -1]; + + ask4_gray = [-3, -1, 3, 1]/sqrt(5); + + ask4_sp = (-3:2:3)/sqrt(5); + + ask8_gray = [-7, -5, -1, -3, 7, 5, 1, 3]/sqrt(21); + + ask8_sp = (-7:2:7)/sqrt(21); + + ask16_gray = [-15, -13, -9, -11, -1, -3, -7, -5, ... + 15, 13, 9, 11, 1, 3, 7, 5]/sqrt(85); + + ask16_sp = (-15:2:15)/sqrt(85); + + end + + methods + + function obj = Constellation ( constellion_name) + obj.constellation_name = constellion_name; + obj.is_gray = 0; + if strcmp (constellion_name, 'bpsk') + obj.constellation_points = obj.bpsk; + obj.n_bits = 1; + elseif strcmp (constellion_name, 'ask4-gray') + obj.constellation_points = obj.ask4_gray; + obj.n_bits = 2; + obj.is_gray = 1; + elseif strcmp (constellion_name, 'ask4-sp') + obj.constellation_points = obj.ask4_sp; + obj.n_bits = 2; + elseif strcmp (constellion_name, 'ask8-gray') + obj.constellation_points = obj.ask8_gray; + obj.n_bits = 3; + obj.is_gray = 1; + elseif strcmp (constellion_name, 'ask8-sp') + obj.constellation_points = obj.ask8_sp; + obj.n_bits = 3; + elseif strcmp (constellion_name, 'ask16-gray') + obj.constellation_points = obj.ask16_gray; + obj.n_bits = 4; + obj.is_gray = 1; + elseif strcmp (constellion_name, 'ask16-sp') + obj.constellation_points = obj.ask16_sp; + obj.n_bits = 4; + else + disp('Unsupported constellation'); + end + + obj.n_sym = 2^obj.n_bits; + obj.bit_sym_map = zeros(obj.n_sym, obj.n_bits); + for sym_index = 0 : obj.n_sym - 1 + a = dec2bin(sym_index, obj.n_bits); + for bit_index = 1 :obj.n_bits + if a(obj.n_bits + 1 - bit_index) == '1' + obj.bit_sym_map(sym_index + 1, bit_index) = 1; + end + end + end + + obj.constellation_points = obj.constellation_points/sqrt(mean(obj.constellation_points.^2)); + + end + + function [sym] = modulate(obj, bits) + sym = zeros(floor(length(bits)/obj.n_bits), 1); + for i = 1 : 1 : length(bits)/obj.n_bits + symbol = 0; + for j = 1 : obj.n_bits + symbol = symbol + 2^(j-1) * bits((i-1)*obj.n_bits+j); + end + sym(i) = obj.constellation_points(symbol + 1); + end + end + + function [p1, llr] = compute_llr_mlc(obj, y, n_0, u) + p0 = zeros(length(y), 1); + p1 = zeros(length(y), 1); + for y_index = 1 : length(y) + for sym_index = 1 : obj.n_sym + valid_symbol = 1; + for m_index = 1 : size(u, 2) + if obj.bit_sym_map(sym_index, m_index) ~= u(y_index, m_index) + valid_symbol = 0; + end + end + if valid_symbol == 0 + continue; + end + m_index = size(u, 2) + 1; + if obj.bit_sym_map(sym_index, m_index) == 0 + p0(y_index) = p0(y_index) + exp(-abs(y(y_index) - obj.constellation_points(sym_index))^2/2/n_0); + else + p1(y_index) = p1(y_index) + exp(-abs(y(y_index) - obj.constellation_points(sym_index))^2/2/n_0); + end + + end + end + llr = log(p0./p1); + p1 = p1./(p0 + p1); + + end + + function [p1, llr] = compute_llr_bicm(obj, y, n_0) + p0 = zeros(length(y) * obj.n_bits, 1); + p1 = zeros(length(y) * obj.n_bits, 1); + for y_index = 1 : length(y) + for sym_index = 1 : 2^obj.n_bits + if length(n_0) == 1 + p_sym = exp(-abs(y(y_index) - obj.constellation_points(sym_index))^2/2/n_0); + else + p_sym = exp(-abs(y(y_index) - obj.constellation_points(sym_index))^2/2/n_0(y_index)); + end + for m_index = 1 : obj.n_bits + if obj.bit_sym_map(sym_index, m_index) == 0 + p0((y_index-1) * obj.n_bits + m_index) = p0((y_index-1) * obj.n_bits + m_index) + p_sym; + else + p1((y_index-1) * obj.n_bits + m_index) = p1((y_index-1) * obj.n_bits + m_index) + p_sym; + end + end + end + end + llr = log(p0./p1); + p1 = p1./(p0 + p1); + end + + function mean_llr = get_mean_llr_bicm(obj, snr_db) + num_sym = 10000; + bits = rand(obj.n_bits*num_sym, 1) < 0.5; + mod_sym = obj.modulate(bits); + + noise = randn(length(mod_sym), 1); + sigma = sqrt(1/2) * 10^(-snr_db/20); + y = mod_sym + noise * sigma; + + [~, llr_bicm] = obj.compute_p1_bicm(y, sigma^2); + + llr_bicm = llr_bicm .* (1 - 2*bits); + mean_llr = zeros(obj.n_bits, 1); + for i_bit = 1 : obj.n_bits + mean_llr(i_bit) = mean(llr_bicm(i_bit: obj.n_bits:end)); + end + end + + function mean_llr = get_mean_llr_mlc(obj, snr_db) + num_sym = 20000; + bits = rand(obj.n_bits*num_sym, 1) < 0.5; + mod_sym = obj.modulate(bits); + noise = randn(length(mod_sym), 1); + + sigma = sqrt(1/2) * 10^(-snr_db/20); + y = mod_sym + noise * sigma; + + llr_mlc = zeros(num_sym*obj.n_bits, 1); + u = zeros(num_sym, obj.n_bits); + n_0 = sigma^2; + for i_bit = 1 : obj.n_bits + u(:, i_bit) = bits(i_bit:obj.n_bits:end); + [~, llr_mlc(i_bit:obj.n_bits:end)] = obj.compute_p1_mlc(y, n_0, u(:, 1:i_bit-1)); + end + + llr_mlc = llr_mlc .* (1 - 2*bits); + mean_llr = zeros(obj.n_bits, 1); + for i_bit = 1 : obj.n_bits + mean_llr(i_bit) = mean(llr_mlc(i_bit: obj.n_bits:end)); + end + + end + + + function cap_vec = get_mlc_capacity(obj, snr_db) + sigma = sqrt(1/2) * 10^(-snr_db/20); + n_0 = sigma^2; + + y_min = max(obj.constellation_points) + 6*sigma + 1; + delta_y = sigma * 0.01; + y_vec = -y_min: delta_y: y_min; + + h_y = zeros(obj.n_bits, 1); + h_y_given_u = zeros(obj.n_bits, 1); + + for i_bit = 1 : obj.n_bits + num_sets = 2^(i_bit - 1); + + p_y = zeros(length(y_vec), num_sets); + p_y_u = zeros(length(y_vec), num_sets, 2); + + for y_index = 1 : length(y_vec) + y = y_vec(y_index); + for i_sym = 1 : obj.n_sym + x = obj.bit_sym_map(i_sym); + set_index = 1; + if i_bit > 1 + a = dec2bin(i_sym - 1, obj.n_bits); + a = a(obj.n_bits - i_bit + 2:obj.n_bits); + set_index = bin2dec(a) + 1; + end + p_y(y_index, set_index) = p_y(y_index, set_index) + ... + exp(-(y - obj.constellation_points(i_sym))^2/2/n_0)/sqrt(2*pi*n_0)/obj.n_sym ; + p_y_u(y_index, set_index, obj.bit_sym_map(i_sym, i_bit) + 1 ) = ... + p_y_u(y_index, set_index, obj.bit_sym_map(i_sym, i_bit) + 1) + ... + exp(-(y - obj.constellation_points(i_sym))^2/2/n_0)/sqrt(2*pi*n_0)/obj.n_sym * 2; + end + end + for y_index = 1 : length(y_vec) + for set_index = 1 : num_sets + if p_y(y_index, set_index) > 0 + h_y(i_bit) = h_y(i_bit) + (-log2(p_y(y_index, set_index)))*p_y(y_index, set_index) * delta_y; + end + end + end + + for y_index = 1 : length(y_vec) + for set_index = 1 : num_sets + for u = 1 : 2 + if p_y_u(y_index, set_index, u) > 0 + h_y_given_u(i_bit) = h_y_given_u(i_bit) + ... + (-log2(p_y_u(y_index, set_index, u))) * ... + p_y_u(y_index,set_index, u) * 0.5 * delta_y; + end + end + end + end + + end + cap_vec = h_y - h_y_given_u; + + end + + + function cap_vec = get_bicm_capacity(obj, snr_db) + + sigma = sqrt(1/2) * 10^(-snr_db/20); + n_0 = sigma^2; + y_min = max(obj.constellation_points) + 6*sigma + 1; + delta_y = sigma * 0.1; + y_vec = -y_min: delta_y: y_min; + cap_vec = zeros(obj.n_bits, 1); + for i_bit = 1 : obj.n_bits + p_y = zeros(length(y_vec), 1); + p_y_u = zeros(length(y_vec), 2); + for y_index = 1 : length(y_vec) + y = y_vec(y_index); + for i_sym = 1 : obj.n_sym + p_y(y_index) = p_y(y_index) + ... + exp(-(y - obj.constellation_points(i_sym))^2/2/n_0)/sqrt(2*pi*n_0)/obj.n_sym ; + p_y_u(y_index, obj.bit_sym_map(i_sym, i_bit) + 1 ) = ... + p_y_u(y_index, obj.bit_sym_map(i_sym, i_bit) + 1) + ... + exp(-(y - obj.constellation_points(i_sym))^2/2/n_0)/sqrt(2*pi*n_0)/obj.n_sym * 2; + end + end + h_y = 0; + h_y_u = 0; + for y_index = 1 : length(y_vec) + if p_y(y_index) > 0 + h_y = h_y + log2(p_y(y_index))*p_y(y_index)*delta_y * (-1); + end + if p_y_u(y_index, 1) > 0 + h_y_u = h_y_u + 0.5 * log2(p_y_u(y_index, 1))*p_y_u(y_index, 1)*delta_y * (-1); + end + if p_y_u(y_index, 2) > 0 + h_y_u = h_y_u + 0.5 * log2(p_y_u(y_index, 2))*p_y_u(y_index, 2)*delta_y * (-1); + end + end + cap_vec(i_bit) = h_y - h_y_u; + end + end + + function cap_vec = get_polarized_capacity(obj, snr_db) + + mat_file_name = ['CapacityHelper/PolarizedCapacityData/', obj.constellation_name, '_snr_', num2str(snr_db), '.mat']; + if exist(mat_file_name, 'file') + cap_data = load(mat_file_name); + cap_vec = cap_data.cap_vec; + else + disp(['Determining and storing polarized capacity for constellation = ' , obj.constellation_name, ' for snr = ', num2str(snr_db)]); + num_sym = 250e3; + num_codes = obj.n_bits; + if num_codes == 3 + num_codes = 4; + end + info_bits = rand(obj.n_bits*num_sym, 1) < 0.5; + coded_bits = zeros(obj.n_bits*num_sym, 1); + + for i_sym = 1 : floor(obj.n_bits*num_sym/num_codes) + coded_bits((i_sym-1)*num_codes + 1 : i_sym * num_codes) = ... + PolarCode.polar_encode(info_bits((i_sym-1)*num_codes + 1 : i_sym * num_codes)); + end + + mod_sym = obj.modulate(coded_bits); + + noise = randn(length(mod_sym), 1); + sigma = sqrt(1/2) * 10^(-snr_db/20); + y = mod_sym + noise * sigma; + + [~, llr_bicm] = obj.compute_llr_bicm(y, sigma^2); + + u_llr = zeros(obj.n_bits*num_sym, 1); + + for i_sym = 1 : floor(obj.n_bits*num_sym/num_codes) + [~, u_llr((i_sym-1)*num_codes + 1 : i_sym * num_codes)] = ... + PolarCode.polar_decode_capacity_llr(llr_bicm((i_sym-1)*num_codes + 1 : i_sym * num_codes), ... + info_bits((i_sym-1)*num_codes + 1 : i_sym * num_codes)); + end + + y_max = 100; + delta_y = 0.25; + y_vec = -y_max:delta_y:y_max; + + cap_vec = zeros(num_codes, 1); + u_llr = max(u_llr, -y_max); + u_llr = min(u_llr, y_max); + + for i_bit = 1 : num_codes + p_y = zeros(length(y_vec), 1); + p_y_u = zeros(length(y_vec), 2); + num_sym0 = 0; + num_sym1 = 0; + for i_sym = 1 : floor(obj.n_bits*num_sym/num_codes) + y_index = floor( (u_llr(i_bit + (i_sym-1)*num_codes) + y_max )/delta_y) + 1; + p_y(y_index) = p_y(y_index) + 1; + if info_bits(i_bit + (i_sym-1)*num_codes) == 0 + p_y_u(y_index, 1) = p_y_u(y_index, 1) + 1; + num_sym0 = num_sym0 + 1; + else + p_y_u(y_index, 2) = p_y_u(y_index, 2) + 1; + num_sym1 = num_sym1 + 1; + + end + end + p_y = p_y /floor(obj.n_bits*num_sym/num_codes); + p_y_u(:,1) = p_y_u(:,1)/num_sym0; + p_y_u(:,2) = p_y_u(:,2)/num_sym1; + h_y = 0; + h_y_u = 0; + for y_index = 1 : length(y_vec) + if p_y(y_index) > 0 + h_y = h_y + log2(p_y(y_index))*p_y(y_index) * (-1); + end + if p_y_u(y_index, 1) > 0 + h_y_u = h_y_u + 0.5 * log2(p_y_u(y_index, 1))*p_y_u(y_index, 1) * (-1); + end + if p_y_u(y_index, 2) > 0 + h_y_u = h_y_u + 0.5 * log2(p_y_u(y_index, 2))*p_y_u(y_index, 2) * (-1); + end + end + cap_vec(i_bit) = h_y - h_y_u; + + end + cap_vec = min(cap_vec, 1); + save(mat_file_name, 'cap_vec'); + end + end + end +end + diff --git a/PolarM/GaussianApproximation/calculate_awgn_polarization.m b/PolarM/GaussianApproximation/calculate_awgn_polarization.m new file mode 100644 index 0000000..9817620 --- /dev/null +++ b/PolarM/GaussianApproximation/calculate_awgn_polarization.m @@ -0,0 +1,23 @@ +function [ channels ] = calculate_awgn_polarization( llr_vec, n ) +% This function calculates polarization + +N = 2^n; +% global bit_reversed; % = bitrevorder((1:N)'); + +if length(llr_vec) == 1 + channels = llr_vec*ones(1, N); +elseif length(llr_vec) == N + channels = llr_vec; +else + disp('Unsupoorted llr, n combinationation'); +end + +for i=1:n + c1 = channels(1:2:N); + c2 = channels(2:2:N); + channels = [phi_x_inv(1 - (1 - phi_x_table(c1)).*(1 - phi_x_table(c2)))', c1 + c2]; +end + + +end + diff --git a/PolarM/GaussianApproximation/initialize_phi.m b/PolarM/GaussianApproximation/initialize_phi.m new file mode 100644 index 0000000..5f3f9fa --- /dev/null +++ b/PolarM/GaussianApproximation/initialize_phi.m @@ -0,0 +1,57 @@ +function initialize_phi(x_increment) + +persistent phi_initialized; +global minus_log_phi_inv_table; +global min_minus_log_phi; +global max_minus_log_phi; +global increment_minus_log_phi; +global phi_x_table; +global min_x; +global max_x; +global increment_x; + +if isempty(phi_initialized) + + phi_initialized = 1; + if nargin < 1 + x_increment = 10^(-4); + end + x_vec = 0: x_increment: 400; + + + phi_vec = (x_vec < 10) .* exp(-0.4527 * x_vec.^(0.86) + 0.0218); + phi_vec = (x_vec >= 10) .* sqrt(pi./(x_vec+0.0001)) .* (1 - 1.4286./(x_vec + 0.0001)) .* exp(-x_vec/4) + phi_vec; + phi_vec = min(phi_vec, 1); + min_minus_log_phi = 0; + max_minus_log_phi = 100; + increment_minus_log_phi = 10^(-3); + minus_log_phi_inv_table = zeros(ceil((max_minus_log_phi - min_minus_log_phi)/increment_minus_log_phi) + 1, 1); + + min_x = 0; + max_x = 100; + increment_x = 0.01; + index = 1; + for x = min_x: increment_x: max_x + increment_x + if (x < 10) + phi_x_table(index) = exp(-0.4527 * x.^(0.86) + 0.0218); + else + phi_x_table(index) =sqrt(pi./(x)) .* (1 - 1.4286./(x)) .* exp(-x/4); + end + index = index + 1; + end + + + for x_index = 1 : length(x_vec) + x_value = x_vec(x_index); + phi_value = phi_vec(x_index); + minus_log_phi = -log(phi_value); + if minus_log_phi < max_minus_log_phi + increment_minus_log_phi + minus_log_phi_index = ceil((minus_log_phi - min_minus_log_phi)/increment_minus_log_phi) + 1; + minus_log_phi_inv_table(minus_log_phi_index) = x_value; + end + end + +end + +end + diff --git a/PolarM/GaussianApproximation/phi_test.m b/PolarM/GaussianApproximation/phi_test.m new file mode 100644 index 0000000..c63f696 --- /dev/null +++ b/PolarM/GaussianApproximation/phi_test.m @@ -0,0 +1,47 @@ + +%phi +clear all +close all; +x_vec = 0: 10^(-5): 400; + +global minus_log_phi_inv_table; +global min_minus_log_phi; +global max_minus_log_phi; +global increment_minus_log_phi; + +phi_vec = (x_vec < 10) .* exp(-0.4527 * x_vec.^(0.86) + 0.0218); +phi_vec = (x_vec >= 10) .* sqrt(pi./(x_vec+0.0001)) .* (1 - 1.4286./(x_vec + 0.0001)) .* exp(-x_vec/4) + phi_vec; +phi_vec = min(phi_vec, 1); +min_minus_log_phi = 0; +max_minus_log_phi = 100; +increment_minus_log_phi = 10^(-5); +minus_log_phi_inv_table = zeros(ceil((max_minus_log_phi - min_minus_log_phi)/increment_minus_log_phi) + 1, 1); + +for x_index = 1 : length(x_vec) + x_value = x_vec(x_index); + phi_value = phi_vec(x_index); + minus_log_phi = -log(phi_value); + if minus_log_phi < max_minus_log_phi + increment_minus_log_phi + minus_log_phi_index = ceil((minus_log_phi - min_minus_log_phi)/increment_minus_log_phi) + 1; + minus_log_phi_inv_table(minus_log_phi_index) = x_value; + end +end + + +x_test = 0:0.01:400; +phi_test2 = phi_x(x_test); +phi_inv_test = phi_x_inv(phi_test2); + + +figure; +% plot(x_vec, phi_vec, 'LineWidth', 2); +hold on; grid on; +plot(x_test, phi_test2, 'LineWidth', 2); +plot(x_test, phi_inv_test, 'LineWidth', 2); + +hold on; grid on; +% hold on; grid on; +% +% for i = 0:0.01:20 +% plot(i, phi(i), 'r*'); +% end \ No newline at end of file diff --git a/PolarM/GaussianApproximation/phi_x.m b/PolarM/GaussianApproximation/phi_x.m new file mode 100644 index 0000000..7fa520b --- /dev/null +++ b/PolarM/GaussianApproximation/phi_x.m @@ -0,0 +1,6 @@ + +function [y] = phi_x(x) + +y = (x < 10) .* exp(-0.4527 * x.^(0.86) + 0.0218); +y = (x >= 10) .* sqrt(pi./x) .* (1 - 1.4286./(x + 0.0001)) .* exp(-x/4) + y; +% y = min(1, y); \ No newline at end of file diff --git a/PolarM/GaussianApproximation/phi_x_inv.m b/PolarM/GaussianApproximation/phi_x_inv.m new file mode 100644 index 0000000..292e019 --- /dev/null +++ b/PolarM/GaussianApproximation/phi_x_inv.m @@ -0,0 +1,14 @@ +function [ x ] = phi_x_inv( y ) + +global minus_log_phi_inv_table; +global min_minus_log_phi; +global max_minus_log_phi; +global increment_minus_log_phi; +minus_log_phi = -log(y); +minus_log_phi = max(minus_log_phi, min_minus_log_phi); +minus_log_phi = min(minus_log_phi, max_minus_log_phi); +minus_log_phi_index = round((minus_log_phi - min_minus_log_phi)/increment_minus_log_phi - 0.499) + 1; +x = minus_log_phi_inv_table(minus_log_phi_index); + +end + diff --git a/PolarM/GaussianApproximation/phi_x_table.m b/PolarM/GaussianApproximation/phi_x_table.m new file mode 100644 index 0000000..6b2871c --- /dev/null +++ b/PolarM/GaussianApproximation/phi_x_table.m @@ -0,0 +1,13 @@ +function [ y ] = phi_x_table( x ) + +global phi_x_table; +global min_x; +global max_x; +global increment_x; +x = max(min_x, x); +x = min(max_x, x); +x_index = round((x - min_x)/increment_x) + 1; +y = phi_x_table(x_index); + +end + diff --git a/PolarM/PolarCode.m b/PolarM/PolarCode.m index 061dfcd..ca44b58 100644 --- a/PolarM/PolarCode.m +++ b/PolarM/PolarCode.m @@ -42,7 +42,14 @@ % CRC crc_matrix; crc_size; - + + %code construction + cc_method; + cc_parameter; + cc_misc; + + % + info_bit_order end methods @@ -69,15 +76,191 @@ obj.bit_reversed_order = bitrevorder((1:obj.block_length)'); channels = PolarCode.calculate_channel_polarization(design_epsilon, obj.n ); - [~, info_bits] = sort(channels(obj.bit_reversed_order), 'ascend'); - + channels = channels(obj.bit_reversed_order); + [~, info_bits_sorted] = sort(channels, 'ascend'); + obj.info_bit_order = info_bits_sorted(obj.block_length:-1:1); obj.frozen_bits = ones(1,obj.block_length); - obj.frozen_bits(info_bits(1:obj.info_length + obj.crc_size)) = 0; - obj.info_bits = info_bits(1:obj.info_length + obj.crc_size); + obj.frozen_bits(info_bits_sorted(1:obj.info_length + obj.crc_size)) = 0; + obj.info_bits = info_bits_sorted(1:obj.info_length + obj.crc_size); obj.llr_based_computation = 0; + obj.cc_method = 'bhattacharya'; + obj.cc_parameter = design_epsilon; + obj.cc_misc = ''; + + disp(['Bhattacharya code construction done. BLER estimate:', num2str(sum(channels(obj.info_bits)))]); + + end + + function monte_carlo_code_construction(obj, design_snr_db, num_runs, constellation_name, receiver_algo) + if (nargin < 3) || isempty(num_runs) + num_runs = 100e3; + end + if (nargin < 4) || isempty(constellation_name) + constellation_name = 'bpsk'; + end + if (nargin < 5) || isempty(receiver_algo) + receiver_algo = 'bicm'; + end + + + obj.cc_method = 'monte-carlo'; + obj.cc_parameter = design_snr_db; + obj.cc_misc = [constellation_name, '_', receiver_algo, '_', num2str(num_runs)]; + + txt_file_name = ['CodeConstructionData/MC_block_length_', obj.get_unique_string(), '.txt']; + + if exist(txt_file_name, 'file') + channels = load(txt_file_name); + disp(['Found monte carlo BER pattern: ', txt_file_name]); + else + disp(['Didnt find monte carlo BER here: ', txt_file_name]); + disp('Hence, determining the monte carlo ber.'); + channels = obj.monte_carlo(design_snr_db, num_runs, constellation_name, receiver_algo); + fileID = fopen(txt_file_name,'w'); + for c = channels + fprintf(fileID,'%d \n',c); + end + fclose(fileID); + end + [~, channel_order] = sort(channels, 'ascend'); + if channels(channel_order(obj.info_length + obj.crc_size)) < 100 + disp('Warning: not enough runs to get a reliable code.'); + disp(['Worst # of errors = ', num2str(channels(channel_order(obj.info_length + obj.crc_size)))]); + end + + obj.info_bits = channel_order(1:obj.info_length + obj.crc_size); + + obj.frozen_bits = ones(1,obj.block_length); + obj.frozen_bits(obj.info_bits) = 0; + bler_estimate = sum(channels(obj.info_bits))/num_runs; + + + disp(['Monte carlo code construction done. Bler estimate = ', num2str(bler_estimate)]); + + end + + function num_err = monte_carlo(obj, design_snr_db, num_runs, constellation_name, receiver) + + num_err = zeros(obj.block_length, 1); + modulation = Constellation(constellation_name); + + for i_run = 1 : num_runs + if mod(i_run, ceil(num_runs/10)) == 1 + disp(['Code construction iteration running = ', num2str(i_run)]); + end + if strcmp(receiver, 'bicm') + + dummy_info = (rand(1, obj.block_length) < 0.5); + dummy_coded = PolarCode.polar_encode(dummy_info); + + elseif strcmp(receiver, 'mlc') + + num_codes = modulation.n_bits; + dummy_info = (rand(num_codes, obj.block_length/num_codes) < 0.5); + dummy_coded = zeros(obj.block_length, 1); + for layer = 1 : num_codes + dummy_coded(layer:num_codes:obj.block_length) = PolarCode.polar_encode(dummy_info(layer,:))'; + end + + end + + mod_sym = modulation.modulate(dummy_coded); + sigma = sqrt(1/2) * 10^(-design_snr_db/20); + noise = sigma * randn(length(mod_sym), 1); + y = mod_sym + noise; + + if strcmp(receiver, 'bicm') + + p1 = 0.5 * ones(obj.block_length, 1); + eff_block_length = floor(obj.block_length/modulation.n_bits)*modulation.n_bits; + [p1(1:eff_block_length),~] = modulation.compute_llr_bicm(y, sigma^2); + [~, ber_tmp] = PolarCode.polar_decode_monte(p1, dummy_info); + num_err = num_err + ber_tmp'; + + elseif strcmp(receiver, 'mlc') + + decoded_coded = zeros(obj.block_length/num_codes, num_codes); + ber = zeros(obj.block_length/num_codes, num_codes); + + for layer = 1 : num_codes + u = decoded_coded(:, 1:layer-1); + [p1,~] = modulation.compute_llr_mlc(y, sigma^2, u); + [decoded_coded(:, layer), ber(:, layer)] = PolarCode.polar_decode_monte(p1, dummy_info(layer, :)); + end + ber = ber(:); + num_err = num_err + ber; + + end + end end + + function [bler_estimate] = ga_code_construction(obj, design_snr_db, constellation_name, receiver_algo) + + modulation = Constellation(constellation_name); + + if strcmp(receiver_algo, 'bicm') + if modulation.n_bits == 1 + capacity = modulation.get_bicm_capacity(design_snr_db); + else + capacity = modulation.get_polarized_capacity(design_snr_db); + end + + elseif strcmp(receiver_algo, 'mlc') + + capacity = modulation.get_mlc_capacity(design_snr_db); + + end + + num_codes = modulation.n_bits; + + mean_llrs = get_bpsk_llr_for_capacity(capacity); + + llr_vec = zeros(obj.block_length, 1); + + if modulation.n_bits == 3 && strcmp(receiver_algo, 'mlc') %non power of 2 not supported + disp('MLC code construction not supported'); + else + for i_code = 1 : num_codes + bit_loc = (i_code-1) * obj.block_length/num_codes + 1 : i_code * obj.block_length/num_codes; + llr_vec(bit_loc) = mean_llrs(i_code); + end + end + + + bit_rev_order_subcode = bitrevorder(1:obj.block_length/ num_codes); + channels = zeros(obj.block_length, 1); + + for i_code = 1 : num_codes + bit_loc = (i_code-1) * obj.block_length/num_codes + 1 : i_code * obj.block_length/num_codes; + tmp_c = calculate_awgn_polarization(llr_vec((bit_loc)).', obj.n - log2(num_codes)); + channels(bit_loc) = tmp_c(bit_rev_order_subcode); + end + + [~, channel_order] = sort(channels, 'descend'); + obj.info_bit_order = channel_order(obj.block_length:-1:1); + + obj.info_bits = channel_order(1:obj.info_length + obj.crc_size); + obj.frozen_bits = ones(1,obj.block_length); + obj.frozen_bits(obj.info_bits) = 0; + bler_estimate = sum(qfunc( sqrt(channels(obj.info_bits))/sqrt(2))); + + obj.cc_method = 'gauss-approx'; + obj.cc_parameter = design_snr_db; + obj.cc_misc = [constellation_name, '_', receiver_algo]; + + disp(['GA code construction done. BLER estimate:', num2str(bler_estimate)]); + + end + + + function [unique_string] = get_unique_string(obj) + unique_string = [num2str(obj.block_length), '_', num2str(length(obj.info_bits)), ... + '_cc_method_', obj.cc_method, '_cc_param_', num2str(obj.cc_parameter), '_', obj.cc_misc]; + end + + %% encoder function coded_bits = encode(obj, info_bits) @@ -597,7 +780,7 @@ function continuePaths_UnfrozenBit(obj, phi) function [ bler, ber ] = get_bler_quick(obj, ebno_vec, list_size_vec) snr_db_vec = ebno_vec + 10*log10(obj.info_length/obj.block_length); - + num_block_err = zeros(length(ebno_vec), length(list_size_vec)); num_bit_err = zeros(length(ebno_vec), length(list_size_vec)); num_runs = zeros(length(ebno_vec), length(list_size_vec)); @@ -710,6 +893,66 @@ function continuePaths_UnfrozenBit(obj, phi) z = w1.*w2 ./ (w1.*w2 + (1-w1).*(1-w2)); end + function [x, ber] = polar_decode_monte(y, dummy_info) + N = length(y); + if (N==1) + if (y > 0.5 && dummy_info == 1) || (y <= 0.5 && dummy_info == 0) + ber = 0; + else + ber = 1; + end + x = dummy_info; + else + u1est = PolarCode.cnop(y(1:2:end),y(2:2:end)); + [u1hardprev, ber1] = PolarCode.polar_decode_monte(u1est,dummy_info(1:N/2)); + u2est = PolarCode.vnop(PolarCode.cnop(u1hardprev',y(1:2:end)),y(2:2:end)); + [u2hardprev, ber2] = PolarCode.polar_decode_monte(u2est,dummy_info(N/2+1:end)); + ber = [ber1 ber2]; + x = reshape([PolarCode.cnop(u1hardprev,u2hardprev); u2hardprev],1,[]); + end + end + + function [x, u] = polar_decode_capacity(y, dummy_info) + N = length(y); + if (N==1) + u = y; + x = dummy_info; + else + u1est = PolarCode.cnop(y(1:2:end),y(2:2:end)); + [u1hardprev, u1] = PolarCode.polar_decode_capacity(u1est,dummy_info(1:N/2)); + u2est = PolarCode.vnop(PolarCode.cnop(u1hardprev',y(1:2:end)),y(2:2:end)); + [u2hardprev, u2] = PolarCode.polar_decode_capacity(u2est,dummy_info(N/2+1:end)); + u = [u1 u2]; + x = reshape([PolarCode.cnop(u1hardprev,u2hardprev); u2hardprev],1,[]); + end + end + + + function [x, u] = polar_decode_capacity_llr(y, dummy_info) + N = length(y); + if (N==1) + u = y; + x = dummy_info; + else + u1est = PolarCode.cnop_llr(y(1:2:end),y(2:2:end)); + [u1hardprev, u1] = PolarCode.polar_decode_capacity_llr(u1est,dummy_info(1:N/2)); + u2est = PolarCode.vnop_llr((1 - 2*u1hardprev').*y(1:2:end),y(2:2:end)); + [u2hardprev, u2] = PolarCode.polar_decode_capacity_llr(u2est,dummy_info(N/2+1:end)); + u = [u1 u2]; + x = reshape([PolarCode.cnop(u1hardprev,u2hardprev); u2hardprev],1,[]); + end + end + + + function l = cnop_llr(l1,l2) + l = 2 * atanh(tanh(l1/2).*tanh(l2/2)); + end + + function l = vnop_llr(l1,l2) + l = l1 + l2; + end + + function channels = calculate_channel_polarization( epsilon, n) N = 2^n; diff --git a/PolarM/main.m b/PolarM/main.m index 16a6477..19b26c2 100644 --- a/PolarM/main.m +++ b/PolarM/main.m @@ -1,7 +1,7 @@ %main m clear all; -n = 11; +n = 8; block_length = 2^n; info_length = 2^(n-1); crc_size = 0; @@ -10,4 +10,4 @@ ebno_vec = 1:0.5:3; polar_code = PolarCode(block_length, info_length, epsilon, crc_size); [bler, ~] = polar_code.get_bler_quick(ebno_vec, list_vec); -[ebno_vec', bler] +[ebno_vec', bler] \ No newline at end of file diff --git a/PolarM/main_GA_CC_Comparison.m b/PolarM/main_GA_CC_Comparison.m new file mode 100644 index 0000000..65a851d --- /dev/null +++ b/PolarM/main_GA_CC_Comparison.m @@ -0,0 +1,76 @@ + +%main_de + + +% close all; +% clear all; +addpath('GaussianApproximation/'); +addpath('CapacityHelper/'); + +initialize_phi(10^(-5)); +n = 10; +block_length = 2^n; +tic + +target_bler = 10^(-5); +rate_vec = [1/32, 1/16, 1/8, 1/4, 2/4, 3/4, 7/8]; +snr_increment = 0.25; +snr_db_vec = -10:snr_increment:30; + +constellation_vec = {'ask4-gray', 'ask4-sp', 'ask16-gray', 'ask16-sp'}; +receiver_vec = {'bicm', 'mlc','bicm', 'mlc'}; + +snr_needed = zeros(length(rate_vec), length(constellation_vec)); +ebno_needed = zeros(length(rate_vec), length(constellation_vec)); + +figure(2); +for i_const = 1 : length(constellation_vec) + + constellation_name = constellation_vec{i_const}; + + reciver_algo = receiver_vec{i_const}; + + modulation = Constellation(constellation_name); + + starting_snr_index = 1; + + for rate_index = 1 : length(rate_vec) + rate = rate_vec(rate_index); + + disp(['Processing constellation : ', constellation_name, ' at rate : ', num2str(rate)]); + polar_code = PolarCode(block_length, ceil(rate*block_length), 0.5); + + for snr_index = starting_snr_index : length(snr_db_vec) + + design_snr_db = snr_db_vec(snr_index); + bler_estimate = polar_code.ga_code_construction(design_snr_db, constellation_name, reciver_algo); + if bler_estimate < target_bler + break; + else + prev_bler_estimate = bler_estimate; + end + + end + + if snr_index == starting_snr_index + disp('Possibly too high starting SNR'); + k = waitforbuttonpress; + end + + starting_snr_index = max(snr_index - 1, 1); + + snr_needed(rate_index, i_const) = (snr_db_vec(snr_index) * log(prev_bler_estimate/target_bler) + snr_db_vec(snr_index - 1) * log(target_bler/bler_estimate) ) / log(prev_bler_estimate/bler_estimate) ; + ebno_needed(rate_index, i_const) = snr_needed(rate_index, i_const) - 10*log10(rate) - 10*log10(modulation.n_bits); + + end + + plot(ebno_needed(:, i_const), rate_vec*modulation.n_bits, 'LineWidth', 2); + hold on; grid on; + legend_vec{i_const} = [constellation_vec{i_const}, ' - ', receiver_vec{i_const}]; + +end +legend(legend_vec); +xlabel('EbNo (dB)', 'FontSize', 14); +ylabel('Rate', 'FontSize', 14); +title(['GA E_b/N_0 vs Rate performance for target bler = ', num2str(target_bler)], 'FontSize', 14); +savefig('gauss-approx.fig'); diff --git a/PolarM/main_MC_CC_Comparison.m b/PolarM/main_MC_CC_Comparison.m new file mode 100644 index 0000000..c4b1f7e --- /dev/null +++ b/PolarM/main_MC_CC_Comparison.m @@ -0,0 +1,126 @@ + + +%main_MC_CC_Comparison + +% close all; +% clear all; +n = 10; +block_length = 2^n; +info_length = block_length/2; + +constellation_vec = {'ask4-sp', 'ask4-gray', 'ask8-gray', 'ask16-sp', 'ask16-gray'}; + +snrMap = containers.Map(... + {'bpsk', 'ask4-sp', 'ask4-gray', 'ask8-gray', 'ask16-sp', 'ask16-gray'}, ... + {-0.5, 4.5, 4.5, 9, 12, 13}); + +rxMap = containers.Map(... + {'bpsk', 'ask4-sp', 'ask4-gray', 'ask8-gray', 'ask16-sp', 'ask16-gray'}, ... + {'bicm', 'mlc' , 'bicm', 'bicm', 'mlc', 'bicm'}); + +monte_carlo_runs = 250e3; + +polar_code = PolarCode(block_length, info_length, 0.5); + +max_runs = 100e3; +max_err = 250; + +base_snr_db_vec = -3: 0.25: 3; +% num_block_err = zeros(length(base_snr_db_vec), length(constellation_vec)); +% num_runs = zeros(length(base_snr_db_vec), length(constellation_vec)); + +figure(1); +tic +for i_const = 3 : length(constellation_vec) + const_name = constellation_vec{i_const}; + receiver_algo = rxMap(const_name); + design_snr_db = snrMap(const_name); + modulation = Constellation(const_name); + + polar_code.monte_carlo_code_construction(design_snr_db, monte_carlo_runs, const_name, receiver_algo); + + snr_db_vec = design_snr_db + base_snr_db_vec; + + for i_run = 1 : max_runs + + if mod(i_run, ceil(max_runs/10)) == 1 + disp(['Sim iteration running = ', num2str(i_run)]); + end + info = rand(1 , info_length) > 0.5; + + if strcmp(receiver_algo, 'bicm') + coded_bits = polar_code.encode(info); + elseif strcmp(receiver_algo, 'mlc') + num_codes = modulation.n_bits; + info_paded = zeros(block_length, 1); + coded_bits = zeros(block_length, 1); + info_paded(polar_code.info_bits) = info; + for layer = 1 : num_codes + info_bit_loc = (layer-1) * block_length/num_codes + 1 : layer * block_length/num_codes; + coded_bits(layer:num_codes:block_length) = PolarCode.polar_encode(info_paded(info_bit_loc))'; + end + end + + mod_sym = modulation.modulate(coded_bits); + + prev_decoded = zeros(length(snr_db_vec), 1); + + noise = randn(length(mod_sym), 1); + + + for i_snr = 1 : length(snr_db_vec) + + if num_block_err(i_snr, i_const) > max_err + continue; + end + run_sim = 1; + num_runs(i_snr, i_const) = num_runs(i_snr, i_const) + 1; + for i_snr2 = 1 : i_snr + if prev_decoded(i_snr2) + run_sim = 0; + end + end + + if (run_sim == 0) + continue; + end + + snr_db = snr_db_vec(i_snr); + + sigma = sqrt(1/2) * 10^(-snr_db/20); + + y = mod_sym + noise * sigma; + if strcmp(receiver_algo, 'bicm') + p1 = 0.5*ones(block_length, 1); + p1(1:floor(block_length/modulation.n_bits) * modulation.n_bits) = modulation.compute_llr_bicm(y, sigma^2); + decoded_bits = polar_code.decode_sc_p1(p1'); + else + decoded_info = zeros(block_length/num_codes, num_codes); + decoded_coded = zeros(block_length/num_codes, num_codes); + for layer = 1 : num_codes + u1 = decoded_coded(:, 1:layer-1); + p1 = modulation.compute_llr_mlc(y, sigma^2, u1).'; + info_bit_loc = (layer-1) * block_length/num_codes + 1 : layer * block_length/num_codes; + [decoded_info(:, layer), decoded_coded(:, layer)] = PolarCode.polar_decode(p1, polar_code.frozen_bits(info_bit_loc)); + end + u_decoded = decoded_info(:); + decoded_bits = u_decoded(polar_code.info_bits)'; + end + + err = any(info ~= decoded_bits); + + if err + num_block_err(i_snr, i_const) = num_block_err(i_snr, i_const) + 1; + else + prev_decoded(i_snr) = 1; + end + + end + end + + semilogy(snr_db_vec + 10*log10(block_length/info_length) - 10*log10(modulation.n_bits), num_block_err(:, i_const)./num_runs(:,i_const), 'LineWidth' , 2); + hold on; grid on; +end +toc +legend(constellation_vec); +savefig('monte-carlo.fig'); diff --git a/README.md b/README.md index f428247..76518bf 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Overview of what is provided Decoding performance ------ -![Alt text](polar_performance.jpeg?raw=true "Performance comparison between PolarC and [Tal] Fig. 1") +![Alt text](results/polar_performance.jpeg?raw=true "Performance comparison between PolarC and [Tal] Fig. 1") The figure above shows the performance comparison between PolarC and [Tal](https://arxiv.org/abs/1206.0050) Fig. 1. A close comparison reveals that the performance for CRC aided polar code is about 0.1 dB worse. Note that the two key differences are (i) code construction method (ii) LLR based decoder with hardware-friendly (see [Stimming](https://arxiv.org/abs/1401.3753)) LLR updates for large values of LLRs. diff --git a/results/gauss_approx.png b/results/gauss_approx.png new file mode 100644 index 0000000..ae90ea0 Binary files /dev/null and b/results/gauss_approx.png differ diff --git a/results/monte_carlo.png b/results/monte_carlo.png new file mode 100644 index 0000000..cbbbca9 Binary files /dev/null and b/results/monte_carlo.png differ diff --git a/polar_performance.jpeg b/results/polar_performance.jpeg similarity index 100% rename from polar_performance.jpeg rename to results/polar_performance.jpeg