kopia lustrzana https://github.com/rs1729/RS
lms6: nrz-ambiguity
rodzic
d65c3c0017
commit
2855792d73
|
@ -5,7 +5,7 @@ Lockheed Martin Sippican LMS6
|
|||
|
||||
FSK 4800 baud
|
||||
convolutional code R=1/2, K=7 (CCSDS)
|
||||
(inv(c0),c1)
|
||||
(c0,inv(c1))
|
||||
polyA = x^6+x^3+x^2+x+1 (0x4f)
|
||||
polyB = x^6+x^5+x^3+x^2+1 (0x6d)
|
||||
|
||||
|
@ -85,13 +85,13 @@ qA = x^6+x^5+x^4+x+1
|
|||
qB = x^4+x^3+x^2+x
|
||||
|
||||
receive:
|
||||
...,a(n-1),b(n-1),a(n),b(n),a(n+1),b(n+1),...
|
||||
...,a(n-1),b(n-1),a(n),b(n),a(n+1),b(n+1),... (or inverted)
|
||||
if NRZ-S demod:
|
||||
alpha(n)=[a(n)==b(n-1)]=a(n)+b(n-1)+1
|
||||
beta(n)=[a(n)==b(n)]=b(n)+a(n)+1
|
||||
alpha(n) = [a(n)==b(n-1)] = a(n)+b(n-1)+1 = [a'(n)==b'(n-1)] , a' = inv(a) = a + 1/(1+x)
|
||||
beta(n) = [a(n)==b(n)] = b(n)+a(n)+1 = [a'(n)==b'(n)] , b' = inv(b) = b + 1/(1+x)
|
||||
|
||||
alpha = a + x*b + 1/(1+x)
|
||||
beta = a + b + 1/(1+x)
|
||||
alpha = a + x*b + 1/(1+x) = a' + x*b' + x/(1+x)
|
||||
beta = a + b + 1/(1+x) = a' + b' + 1/(1+x)
|
||||
|
||||
m*pA = alpha
|
||||
m*pB = beta
|
||||
|
@ -108,9 +108,13 @@ polyA + x*polyB = (x+1)qA = pA
|
|||
beta = m*pB = m*polyA + m*polyB = cA + cB
|
||||
alpha = m*pA = m*polyA + x*m*polyB = cA + x*cB
|
||||
|
||||
alpha + beta = (1+x)cB = (1+x)b
|
||||
alpha + x*beta = (1+x)cA = (1+x)a + 1
|
||||
alpha + beta = (1+x)cB = (1+x)b = (1+x)b' + 1
|
||||
alpha + x*beta = (1+x)cA = (1+x)a + 1 = (1+x)a'
|
||||
|
||||
cA = a + 1/(1+x) = a'
|
||||
cB = b = b' + 1/(1+x)
|
||||
|
||||
here:
|
||||
cA = a' , cB = inv(b')
|
||||
|
||||
cB = b
|
||||
cA = a + 1/(1+x)
|
||||
|
||||
|
|
|
@ -1007,7 +1007,7 @@ int main(int argc, char **argv) {
|
|||
for (i = 0; i < len; i++) {
|
||||
|
||||
inc_bufpos();
|
||||
bit = rbit ^ (bc%2); // (inv(c0),c1)
|
||||
bit = rbit ^ (bc%2); // (c0,inv(c1))
|
||||
bc++;
|
||||
buf[bufpos] = 0x30 + bit;
|
||||
|
||||
|
@ -1035,7 +1035,7 @@ int main(int argc, char **argv) {
|
|||
|
||||
while ( pos < RAWBITBLOCK_LEN ) {
|
||||
if (read_rawbit(fp, &rbit) == EOF) break;
|
||||
bit = rbit ^ (bc%2); // (inv(c0),c1)
|
||||
bit = rbit ^ (bc%2); // (c0,inv(c1))
|
||||
bc++;
|
||||
blk_rawbits[pos] = 0x30 + bit;
|
||||
pos++;
|
||||
|
|
Ładowanie…
Reference in New Issue