Added alist files; Simulated proximal decoder with ldpc code from paper

This commit is contained in:
Andreas Tsouchlos 2022-11-14 20:07:11 +01:00
parent 95c052c918
commit e36ec6c774
4 changed files with 640 additions and 16 deletions

View File

@ -35,32 +35,25 @@ def plot_results():
def main():
Path("sim_results").mkdir(parents=True, exist_ok=True)
used_code = "Hamming_7_4"
# used_code = "Golay_24_12"
# used_code = "BCH_31_16"
# used_code = "BCH_31_21"
# used_code = "BCH_63_16"
G = codes.Gs[used_code]
H = codes.get_systematic_H(G)
# H = codes.read_alist_file("res/204.3.486.alist")
H = codes.read_alist_file("res/204.55.187.alist")
k = 102
n = 204
decoders = [
maximum_likelihood.MLDecoder(G, H),
proximal.ProximalDecoder(H, gamma=0.01),
proximal.ProximalDecoder(H, gamma=0.05),
proximal.ProximalDecoder(H, gamma=0.15)
]
k, n = G.shape
SNRs, BERs = simulations.test_decoders(n, k, decoders, target_frame_errors=100)
SNRs, BERs = simulations.test_decoders(n, k, decoders, target_frame_errors=100, SNRs=np.arange(1, 6, 0.5))
df = pd.DataFrame({"SNR": SNRs})
df["BER_ML"] = BERs[0]
df["BER_prox_0_01"] = BERs[1]
df["BER_prox_0_05"] = BERs[2]
df["BER_prox_0_15"] = BERs[3]
df["BER_prox_0_01"] = BERs[0]
df["BER_prox_0_05"] = BERs[1]
df["BER_prox_0_15"] = BERs[2]
df.to_csv(f"sim_results/{used_code}.csv")
df.to_csv(f"sim_results/ldpc.csv")
plot_results()

310
sw/res/204.3.486.alist Normal file
View File

@ -0,0 +1,310 @@
204 102
3 6
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
76 98 67
67 36 11
17 44 4
44 66 94
79 24 34
95 69 6
82 87 12
87 60 41
3 8 45
14 2 95
31 79 96
99 62 46
98 6 48
45 29 30
84 33 39
23 35 13
4 23 84
92 91 74
64 77 20
75 99 60
57 100 77
58 59 36
56 12 40
51 80 32
50 54 21
19 37 56
54 86 24
36 48 43
5 70 47
93 38 98
11 78 54
25 71 102
16 88 1
8 61 19
42 40 14
94 13 51
32 49 31
9 56 59
74 20 26
62 43 92
63 75 66
38 34 83
72 65 93
71 55 23
18 22 78
97 96 53
52 31 29
2 27 99
85 42 86
90 28 79
59 85 27
21 15 73
27 45 5
91 5 87
29 53 3
66 17 81
101 74 2
88 46 55
49 97 42
15 51 18
100 63 16
68 41 10
47 82 35
26 68 101
22 57 9
13 19 58
83 89 15
55 73 61
35 10 38
43 39 37
69 7 89
61 16 70
53 64 17
10 25 82
89 26 22
39 101 91
65 1 75
30 14 72
41 92 100
37 47 7
70 81 62
86 76 88
28 50 63
20 95 90
102 72 76
12 11 25
80 3 57
6 67 8
73 9 44
96 4 28
34 21 80
78 58 97
60 90 71
24 18 85
40 94 33
46 102 65
48 93 68
81 83 50
7 30 49
33 52 69
77 84 52
1 32 64
99 95 33
66 76 62
41 102 80
9 99 13
25 45 35
2 91 90
16 89 53
88 39 6
42 11 38
11 49 84
35 51 39
102 60 27
57 14 26
27 80 42
101 42 50
70 34 44
30 92 5
39 79 65
92 29 101
64 28 82
53 67 21
93 8 17
76 43 23
40 10 76
67 84 41
3 98 7
36 52 63
58 18 71
33 88 11
55 75 78
23 56 29
72 23 92
4 57 94
5 2 85
15 70 49
28 40 83
61 71 99
54 9 91
63 19 4
80 35 72
10 12 48
50 82 32
71 83 100
79 86 47
26 48 52
73 3 28
65 101 97
29 26 86
38 66 12
74 97 56
75 7 36
77 27 69
14 63 74
95 16 55
47 4 73
62 24 19
86 73 59
51 61 30
84 47 88
90 65 61
48 72 2
60 77 31
87 94 77
44 59 3
13 36 1
78 13 60
56 54 45
100 58 89
17 74 15
97 81 34
6 87 64
96 6 40
19 17 16
43 44 18
89 62 67
91 93 24
1 100 68
85 33 98
31 37 20
81 96 43
94 41 95
46 15 57
45 32 14
8 64 9
59 21 10
32 53 79
49 25 75
22 1 58
52 22 25
18 50 87
34 68 66
82 20 93
12 5 54
37 78 70
21 30 37
68 85 8
69 31 102
7 38 81
24 69 51
20 46 96
98 55 22
83 90 46
102 179 77 190 33 167
48 108 10 136 57 163
9 128 87 148 55 166
17 135 90 157 3 141
29 136 54 195 53 119
88 173 13 174 6 110
99 200 71 153 80 128
34 186 9 124 88 198
38 106 89 140 65 186
74 143 69 126 62 187
31 112 86 111 2 131
86 195 23 143 7 151
66 167 36 168 16 106
10 155 78 115 35 185
60 137 52 184 67 171
33 109 72 156 61 175
3 171 56 175 73 124
45 192 94 130 60 176
26 175 66 141 34 158
84 202 39 194 19 181
52 197 91 187 25 123
65 190 45 191 75 203
16 133 17 134 44 125
94 201 5 158 27 178
32 107 74 189 86 191
64 147 75 150 39 115
53 116 48 154 51 114
83 138 50 122 90 148
55 150 14 121 47 133
78 119 99 197 14 160
11 181 47 199 37 164
37 188 102 185 24 144
100 131 15 180 95 103
91 193 42 118 5 172
69 113 16 142 63 107
28 129 2 167 22 153
80 196 26 181 70 197
42 151 30 200 69 111
76 120 70 110 15 113
95 126 35 138 23 174
79 105 62 183 8 127
35 111 49 117 59 116
70 176 40 125 28 182
4 166 3 176 89 118
14 185 53 107 9 169
96 184 58 202 12 204
63 157 80 161 29 146
97 163 28 147 13 143
59 189 37 112 99 137
25 144 83 192 98 117
24 160 60 113 36 201
47 191 100 129 101 147
73 123 55 188 46 109
27 140 25 169 31 195
68 132 44 203 58 156
23 169 38 133 26 152
21 115 65 135 87 184
22 130 92 170 66 190
51 187 22 166 38 159
93 164 8 114 20 168
72 139 34 160 68 162
40 158 12 177 81 104
41 141 61 155 83 129
19 122 73 186 102 173
77 149 43 162 96 120
56 104 4 151 41 193
2 127 88 123 1 177
62 198 64 193 97 179
71 199 6 201 100 154
81 118 29 137 72 196
44 145 32 139 93 130
43 134 85 163 78 142
89 148 68 159 52 157
39 152 57 171 18 155
20 153 41 132 77 189
1 125 82 104 85 126
101 154 19 164 21 165
92 168 31 196 45 132
5 146 11 120 50 188
87 142 24 116 91 105
98 182 81 172 56 200
7 194 63 144 74 122
67 204 98 145 42 138
15 161 101 127 17 112
49 180 51 198 94 136
82 159 27 146 49 150
8 165 7 173 54 192
58 110 33 131 82 161
75 177 67 109 71 170
50 162 93 204 84 108
54 178 18 108 76 140
18 121 79 119 40 134
30 124 97 178 43 194
36 183 95 165 4 135
6 156 84 103 10 183
90 174 46 182 11 202
46 172 59 152 92 149
13 203 1 128 30 180
12 103 20 106 48 139
61 170 21 179 79 145
57 117 76 149 64 121
85 114 96 105 32 199

310
sw/res/204.55.187.alist Normal file
View File

@ -0,0 +1,310 @@
204 102
5 10
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
1 12 41 20 52
2 41 28 40 34
3 55 98 89 102
4 16 64 6 13
5 93 58 37 25
6 91 62 67 68
7 43 30 34 62
8 87 53 48 50
9 85 81 43 74
10 82 26 77 44
11 42 72 82 33
12 98 83 54 65
13 65 48 41 77
14 10 71 47 92
15 17 74 2 49
16 100 63 81 24
17 6 36 55 5
18 80 59 98 1
19 101 11 80 70
20 47 32 56 90
21 89 49 60 93
22 19 27 87 86
23 7 19 91 10
24 59 25 70 66
25 49 96 72 12
26 64 76 11 48
27 63 35 1 26
28 54 75 57 11
29 31 93 35 91
30 95 66 32 98
31 56 3 22 14
32 88 21 3 23
33 79 88 13 8
34 13 46 96 37
35 36 80 62 40
36 81 101 83 97
37 8 55 19 4
38 37 97 102 60
39 94 52 88 72
40 14 90 26 9
41 9 39 75 101
42 3 5 24 27
43 40 42 51 79
44 22 17 90 63
45 84 43 52 76
46 97 47 85 80
47 33 18 84 95
48 29 73 36 84
49 92 50 78 73
50 27 13 95 20
51 20 102 49 88
52 71 65 66 89
53 99 10 30 85
54 52 85 50 69
55 78 60 25 81
56 96 70 38 43
57 69 67 65 19
58 74 68 14 30
59 60 69 16 41
60 35 54 53 39
61 90 87 23 46
62 48 99 21 18
63 28 95 45 71
64 73 86 31 53
65 76 23 93 78
66 72 51 46 57
67 25 79 28 16
68 51 100 15 96
69 61 37 29 83
70 75 15 71 58
71 68 34 4 17
72 5 92 101 21
73 24 8 17 7
74 32 61 27 99
75 4 84 44 2
76 34 33 39 38
77 46 24 69 31
78 39 6 58 32
79 45 29 64 82
80 2 7 94 56
81 57 45 33 87
82 1 94 100 54
83 86 44 7 47
84 77 91 74 64
85 26 4 18 67
86 102 2 12 35
87 83 77 5 15
88 11 9 63 59
89 50 57 97 22
90 53 78 68 29
91 58 56 86 51
92 38 16 9 42
93 18 40 10 61
94 30 31 76 28
95 44 14 42 100
96 62 82 59 75
97 67 12 99 45
98 21 22 73 94
99 23 20 79 55
100 70 89 8 36
101 15 38 61 3
102 66 1 92 6
1 89 69 9 62
2 95 87 69 99
3 46 50 93 70
4 20 38 65 100
5 94 10 86 74
6 27 84 82 12
7 15 33 41 89
8 44 93 11 52
9 82 73 61 4
10 101 54 66 55
11 62 94 97 15
12 4 40 70 69
13 85 42 89 32
14 86 11 96 29
15 31 37 42 66
16 90 58 95 7
17 99 41 64 93
18 72 74 71 87
19 2 85 14 63
20 78 66 18 43
21 84 35 38 79
22 12 100 47 101
23 18 89 16 39
24 21 82 50 19
25 45 30 4 77
26 47 70 102 61
27 70 62 88 85
28 1 19 78 72
29 19 16 51 94
30 41 23 72 47
31 23 25 75 51
32 64 68 63 57
33 66 44 74 40
34 69 64 98 97
35 57 13 90 10
36 16 34 53 65
37 36 78 45 54
38 30 52 13 67
39 79 22 5 2
40 65 39 24 84
41 68 88 19 81
42 91 2 76 46
43 37 24 68 49
44 13 18 36 24
45 24 92 26 23
46 55 45 40 83
47 48 49 58 35
48 97 28 52 59
49 32 77 54 16
50 59 56 23 68
51 80 90 84 3
52 58 21 33 27
53 33 75 91 26
54 56 8 99 42
55 53 97 44 41
56 40 76 100 5
57 3 47 29 34
58 81 26 22 13
59 38 12 17 95
60 6 101 30 56
61 52 95 77 36
62 74 4 101 50
63 50 6 15 25
64 35 14 94 75
65 10 80 31 6
66 7 36 21 64
67 22 71 20 37
68 11 98 27 38
69 28 86 92 88
70 76 57 55 82
71 102 91 8 9
72 83 48 6 14
73 39 63 10 102
74 29 65 60 22
75 49 7 85 1
76 25 3 7 71
77 73 20 59 33
78 88 15 56 44
79 96 9 32 18
80 34 67 87 78
81 54 59 34 31
82 93 102 67 90
83 92 99 25 91
84 67 96 81 92
85 98 51 28 60
86 63 79 49 80
87 51 55 35 30
88 60 31 1 17
89 77 81 2 11
90 8 43 12 28
91 61 5 80 48
92 17 32 43 53
93 100 27 48 45
94 71 61 57 96
95 5 60 46 8
96 87 17 39 98
97 9 72 3 86
98 26 29 62 20
99 43 46 73 58
100 75 83 79 73
101 14 1 37 76
102 42 53 83 21
1 103 82 130 102 203 27 190 18 177
2 104 80 121 86 144 15 191 75 141
3 105 42 159 31 178 32 199 101 153
4 106 75 114 85 164 71 127 37 111
5 107 72 197 42 193 87 141 17 158
6 108 17 162 78 165 4 174 102 167
7 109 23 168 80 177 83 178 73 118
8 110 37 192 73 156 100 173 33 197
9 111 41 199 88 181 92 103 40 173
10 112 14 167 53 107 93 175 23 137
11 113 88 170 19 116 26 110 28 191
12 114 1 124 97 161 86 192 25 108
13 115 34 146 50 137 33 140 4 160
14 116 40 203 95 166 58 121 31 174
15 117 101 109 70 180 68 165 87 113
16 118 4 138 92 131 59 125 67 151
17 119 15 194 44 198 73 161 71 190
18 120 93 125 47 146 85 122 62 181
19 121 22 131 23 130 37 143 57 126
20 122 51 106 99 179 1 169 50 200
21 123 98 126 32 154 62 168 72 204
22 124 44 169 98 141 31 160 89 176
23 125 99 133 65 132 61 152 32 147
24 126 73 147 77 145 42 142 16 146
25 127 67 178 24 133 55 185 5 165
26 128 85 200 10 160 40 147 27 155
27 129 50 108 22 195 74 170 42 154
28 130 63 171 2 150 67 187 94 192
29 131 48 176 79 200 69 159 90 116
30 132 94 140 7 127 53 162 58 189
31 133 29 117 94 190 64 167 77 183
32 134 74 151 20 194 30 181 78 115
33 135 47 155 76 109 81 154 11 179
34 136 76 182 71 138 7 183 2 159
35 137 60 166 27 123 29 189 86 149
36 138 35 139 17 168 48 146 100 163
37 139 38 145 69 117 5 203 34 169
38 140 92 161 101 106 56 123 76 170
39 141 78 175 41 142 76 198 60 125
40 142 43 158 93 114 2 148 35 135
41 143 2 132 1 119 13 109 59 157
42 144 11 204 43 115 95 117 92 156
43 145 7 201 45 192 9 194 56 122
44 146 95 110 83 135 75 157 10 180
45 147 79 127 81 148 63 139 97 195
46 148 77 105 34 201 66 197 61 144
47 149 20 128 46 159 14 124 83 132
48 150 62 149 13 174 8 195 26 193
49 151 25 177 21 149 51 188 15 145
50 152 89 165 49 105 54 126 8 164
51 153 68 189 66 187 43 131 91 133
52 154 54 163 39 140 45 150 1 110
53 155 90 157 8 204 60 138 64 194
54 156 28 183 60 112 12 151 82 139
55 157 3 148 37 189 17 172 99 112
56 158 31 156 91 152 20 180 80 162
57 159 81 137 89 172 28 196 66 134
58 160 91 154 5 118 78 149 70 201
59 161 24 152 18 183 96 179 88 150
60 162 59 190 55 197 21 176 38 187
61 163 69 193 74 196 101 111 93 128
62 164 96 113 6 129 35 200 7 103
63 165 27 188 16 175 88 134 44 121
64 166 26 134 4 136 79 119 84 168
65 167 13 142 52 176 57 106 12 138
66 168 102 135 30 122 52 112 24 117
67 169 97 186 57 182 6 184 85 140
68 170 71 143 58 134 90 145 6 152
69 171 57 136 59 103 77 104 54 114
70 172 100 129 56 128 24 114 19 105
71 173 52 196 14 169 70 120 63 178
72 174 66 120 11 199 25 132 39 130
73 175 64 179 48 111 98 201 49 202
74 176 58 164 15 120 84 135 9 107
75 177 70 202 28 155 41 133 96 166
76 178 65 172 26 158 94 144 45 203
77 179 84 191 87 151 10 163 13 127
78 180 55 122 90 139 49 130 65 182
79 181 33 141 67 188 99 202 43 123
80 182 18 153 35 167 19 193 46 188
81 183 36 160 9 191 16 186 55 143
82 184 10 111 96 126 11 108 79 172
83 185 87 174 12 202 36 204 69 148
84 186 45 123 75 108 47 153 48 142
85 187 9 115 54 121 46 177 53 129
86 188 83 116 64 171 91 107 22 199
87 189 8 198 61 104 22 182 81 120
88 190 32 180 33 143 39 129 51 171
89 191 21 103 100 125 3 115 52 109
90 192 61 118 40 153 44 137 20 184
91 193 6 144 84 173 23 155 29 185
92 194 49 185 72 147 102 171 14 186
93 195 5 184 29 110 65 105 21 119
94 196 39 107 82 113 80 166 98 131
95 197 30 104 63 163 50 118 47 161
96 198 56 181 25 186 34 116 68 196
97 199 46 150 38 157 89 113 36 136
98 200 12 187 3 170 18 136 30 198
99 201 53 119 62 185 97 156 74 104
100 202 16 195 68 124 82 158 95 106
101 203 19 112 36 162 72 164 41 124
102 204 86 173 51 184 38 128 3 175

11
sw/sim_results/ldpc.csv Normal file
View File

@ -0,0 +1,11 @@
,SNR,BER_prox_0_01,BER_prox_0_05,BER_prox_0_15
0,1.0,0.12745098039215685,0.1317156862745098,0.435343137254902
1,1.5,0.1032843137254902,0.1073577946029897,0.4167647058823529
2,2.0,0.0886764705882353,0.09187536400698894,0.4475
3,2.5,0.06348039215686274,0.06462063086104007,0.4189705882352941
4,3.0,0.055074971164936565,0.03978257969854609,0.44857843137254905
5,3.5,0.035550256138491436,0.018195755668522554,0.41799019607843135
6,4.0,0.023133814929480565,0.006259426847662142,0.4513235294117647
7,4.5,0.011700300558179477,0.00220798701994459,0.4648378582202112
8,5.0,0.005628177196804648,0.0005365073064232019,0.5115686274509804
9,5.5,0.0020973563554775145,8.043597037287447e-05,0.5982224665567162
1 SNR BER_prox_0_01 BER_prox_0_05 BER_prox_0_15
2 0 1.0 0.12745098039215685 0.1317156862745098 0.435343137254902
3 1 1.5 0.1032843137254902 0.1073577946029897 0.4167647058823529
4 2 2.0 0.0886764705882353 0.09187536400698894 0.4475
5 3 2.5 0.06348039215686274 0.06462063086104007 0.4189705882352941
6 4 3.0 0.055074971164936565 0.03978257969854609 0.44857843137254905
7 5 3.5 0.035550256138491436 0.018195755668522554 0.41799019607843135
8 6 4.0 0.023133814929480565 0.006259426847662142 0.4513235294117647
9 7 4.5 0.011700300558179477 0.00220798701994459 0.4648378582202112
10 8 5.0 0.005628177196804648 0.0005365073064232019 0.5115686274509804
11 9 5.5 0.0020973563554775145 8.043597037287447e-05 0.5982224665567162