Commit graph

79 commits

Author SHA1 Message Date
Ahmet Inan
f3d3afbe01 align parity bits accordingly
if we want to use a crc aid at the end, we should move the start of the
first parity bit as far as possible to the front, otherwise we want the
last bit to be a parity bit
2024-01-21 11:07:52 +01:00
Ahmet Inan
0bb0eaf5a9 added parity check aided SCL decoding 2024-01-20 15:33:00 +01:00
Ahmet Inan
47b520638b make a quicker, coarser test 2023-07-25 11:50:53 +02:00
Ahmet Inan
01878fc81a use 3/10-rate sequence from TwoInt project 2023-07-14 10:29:39 +02:00
Ahmet Inan
cb7271c85f added polar code reliability sequence constructor 2023-07-07 10:24:32 +02:00
Ahmet Inan
b9d074adcf set frozen bits from a reliability sequence 2023-06-18 09:41:46 +02:00
Ahmet Inan
272440d749 better not to be clever here 2023-06-07 12:27:01 +02:00
Ahmet Inan
ebb989ce50 wait for more errors to get a better estimation 2023-06-01 07:28:17 +02:00
Ahmet Inan
8370e6a51c added SIMD acceleration for GF(2^8) and GF(2^16) 2023-05-09 16:04:32 +02:00
Ahmet Inan
078ae40d83 merged encoder and decoder 2023-05-08 08:12:17 +02:00
Ahmet Inan
26e83f13d6 optimize for Raspberry Pi 4 2023-05-05 14:20:00 +02:00
Ahmet Inan
986059694e added support for aarch64
__ARM_NEON__ is not defined on gcc anymore ..
2023-05-05 08:06:59 +02:00
Ahmet Inan
f2ebaf4504 allow user to decode block by block 2023-04-28 10:55:46 +02:00
Ahmet Inan
daa622d1eb show some numbers 2023-04-24 15:44:19 +02:00
Ahmet Inan
bb527dd888 better not to bind here 2023-04-24 14:54:22 +02:00
Ahmet Inan
eb6e002d52 added Cauchy Reed Solomon erasure coding
Read more about the Cauchy matrix:

https://en.wikipedia.org/wiki/Cauchy_matrix

The Art of Computer Programming
Volume 1: Fundamental Algorithms
Donald E. Knuth - 1997
Paragraph 1.2.3: Sums and Products

Page 37, Cauchy's matrix:
$a_{ij} = \frac{1}{x_i + y_j}$

Page 38, Exercise 41:
$b_{ij} = \frac{\prod_{k=1}^{n}{(x_j + y_k)(x_k + y_i)}}{(x_j + y_i)\prod_{k \ne j}^{n}{(x_j - x_k)}\prod_{k \ne i}^{n}{(y_i - y_k)}}$
2023-04-24 13:35:30 +02:00
Ahmet Inan
9774948cd3 added reference implementation and exhaustive testing 2023-04-20 14:04:32 +02:00
Ahmet Inan
476a346295 use -O2 with -ffast-math and -ftree-vectorize 2022-04-07 21:36:38 +02:00
Ahmet Inan
0e1a5a45e4 the 2/3 LDPC code uses T=10 BCH code in DVB 2021-07-22 09:24:45 +02:00
Ahmet Inan
d9b98653dd use short code and a larger list with fixed-point 2021-07-13 13:45:06 +02:00
Ahmet Inan
a1764d4d83 added CRC aided SCL example 2021-07-13 12:15:57 +02:00
Ahmet Inan
631ec8beef use uint32_t for the frozen bits 2021-07-13 10:50:06 +02:00
Ahmet Inan
cc1f412f5d added polar bit freezers, encoders and decoders 2021-07-11 10:30:22 +02:00
Ahmet Inan
024ffa1d25 use C++17 for new alignment support 2021-07-10 23:34:09 +02:00
Ahmet Inan
369decd8c3 added and used DVB 2/3 code as default 2021-06-08 14:58:19 +02:00
Ahmet Inan
912c89a0b9 added more examples and references 2021-06-08 13:37:29 +02:00
Ahmet Inan
671b2f22ce relax range requirement for soft inputs to full range 2020-08-07 08:13:08 +02:00
Ahmet Inan
811024f128 added BCH(15, 5) T=3 example 2020-08-06 20:39:01 +02:00
Ahmet Inan
34a21139c7 added ordered statistics decoding 2020-08-06 13:39:09 +02:00
Ahmet Inan
ea07a593d7 added BCH(127, 64) T=10 example 2020-07-31 10:10:38 +02:00
Ahmet Inan
451bc4e5cc added BCH(255, 131) T=18 example 2020-07-28 15:41:45 +02:00
Ahmet Inan
6045870288 added BCH(31, 16) T=3 for testing 2020-06-15 07:33:21 +02:00
Ahmet Inan
b54be1c997 moved constructor generator argument to template parameter 2020-06-14 20:43:45 +02:00
Ahmet Inan
759ca4b896 added tests for Simplex and Hadamard encoders 2020-06-13 13:28:42 +02:00
Ahmet Inan
ae13fc7acc doubled loops 2020-06-12 12:06:41 +02:00
Ahmet Inan
43c5d6a91a encoder and soft decoder for augmented Hadamard codes 2020-06-11 23:11:31 +02:00
Ahmet Inan
77f27a8c5e made T a template parameter 2020-06-10 19:53:10 +02:00
Ahmet Inan
f8b782033d print histogram of distances and verify T 2020-06-10 18:32:52 +02:00
Ahmet Inan
fd0555a3e5 added more examples 2020-06-10 14:01:33 +02:00
Ahmet Inan
2be153ca67 only point out decoder errors if decoder is sure 2020-06-09 14:37:55 +02:00
Ahmet Inan
809ab3690b return -1 if unsure 2020-06-09 14:36:19 +02:00
Ahmet Inan
05bd06ec0a also return codeword unmodulated 2020-06-09 09:24:05 +02:00
Ahmet Inan
5cf0ff2297 added soft Chase decoding for short BCH codes
gives about 1.5dB gain while only half the speed of hard decision.
2020-06-08 18:22:54 +02:00
Ahmet Inan
130af67e08 these codes are short .. 2020-06-08 10:15:50 +02:00
Ahmet Inan
5d944ca7a9 added encoder and syndrome decoder for short BCH codes 2020-06-07 18:28:25 +02:00
Ahmet Inan
af29e0434a increased iterations 2020-06-01 12:08:07 +02:00
Ahmet Inan
2adfe54c76 added test for msg len 2 2020-06-01 09:31:42 +02:00
Ahmet Inan
620466021b added encoder and soft decoder for simplex codes 2020-05-31 17:43:29 +02:00
Ahmet Inan
e2b46aed76 added test for the Maximum length sequence 2020-05-29 12:37:23 +02:00
Ahmet Inan
0b37102383 getting rid of obsolete version 2019-10-01 22:17:04 +02:00