mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-22 04:11:16 -05:00
Add software for Golay(24,12) lookup table.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6414 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
eecf44782c
commit
dc0ed894f6
28
lib/golay24_table.c
Normal file
28
lib/golay24_table.c
Normal file
@ -0,0 +1,28 @@
|
||||
void golay24_table_(int cw[])
|
||||
{
|
||||
// Compute arnd return the table of 4096 codewords for the Golay (24,12) code.
|
||||
|
||||
// Array y contains the twelve rows (columns) of the parity-check matrix
|
||||
int y[12] = { 0x7ff, 0xee2, 0xdc5, 0xb8b, 0xf16, 0xe2d,
|
||||
0xc5b, 0x8b7, 0x96e, 0xadc, 0xdb8, 0xb71 };
|
||||
|
||||
int c[2]; /* Codeword composed of 12-bit info and 12-bit parity */
|
||||
|
||||
|
||||
int i,j,k;
|
||||
int aux;
|
||||
int weight(int vector);
|
||||
|
||||
for(k=0; k<4096; k++) {
|
||||
c[0] = k;
|
||||
c[1] = 0;
|
||||
for (i=0; i<12; i++) {
|
||||
aux = 0;
|
||||
for (j=0; j<12; j++) {
|
||||
aux = aux ^ ((c[0] & y[i]) >> j & 1);
|
||||
}
|
||||
c[1] = (c[1] << 1) ^ aux;
|
||||
}
|
||||
cw[k]=4096*c[0] + c[1];
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user