Lockheed Martin Sippican LMS6 (403 MHz) FSK 4800 baud convolutional code R=1/2, K=7 (CCSDS) (c0,inv(c1)) polyA = x^6+x^3+x^2+x+1 (0x4f) polyB = x^6+x^5+x^3+x^2+1 (0x6d) ( NRZ-S: polyA = qA + x*qB polyB = qA + qB K=8: 0x95: pA = x^7+x^4+x^2+1 = (x+1)(x^6+x^5+x^4+x+1) = (x+1)qA 0x22: pB = x^5+x = (x+1)(x^4+x^3+x^2+x)=x(x+1)^3 = (x+1)qB -> K=7: 0x73: qA = x^6+x^5+x^4+x+1 0x1e: qB = x^4+x^3+x^2+x (d_f=6) ((x+1)-catastrophic) ) bits: little endian bytes: big endian 4800 bit/s: rate=1/2: 300 byte/s Reed-Solomon RS(255,223)-CCSDS blocks block format: SYNC (5 byte) + RS-codeword (255 byte) (-> block size: 260 byte) SYNC: 0x0058f33fb8 (0x58f33fb8 little-endian <-> 0x1ACFFC1D big-endian bytes) RS-codeword: RS-MSG (223 byte) + RS-PAR (32 byte) 260:300 = 13:15 - every 13 sec block-position repeats, full-frame length 13 sec (data-frames): 13*300 byte = 15 blocks 1 data-frame per sec: 223 DATA bytes ( + fill) DATA = 221 byte + 2 byte CRC16 DATA: 24 54 00 00 .. (len=221+2) CRC16: poly 0x1021 synchronisation: a) (24)54 00 00 .. (DATA-frame) b) (00)58 f3 3f b8 (RS-block) every 6,7 sec: SYNC | DATA=RS-MSG | RS-PAR | SYNC | ... e.g. 0058f33fb8|24540000007a9a4a1f130cbf07ebffe6d5a724379382ffa65ed3014af1e700c57f0030fc0016f30038062d1f83e87e6e1cfb46c5882b80000000000000000010241f93527ea51cf0fe0e092c1f7d6199e91cf727050300840000000000000000022d1f82806c481cf28f241a1e1f988f57a41cf61524172a1f8a93d8971cfad879072f1f82ce07431ced04ee05291f8d40eddb1ceaddfb1e2b1f8d3b04691ce93c511d1b1f95ed89031cf18e5203c33700000003a60a09b3110000000000001be4360fc22803c34903c35003c34c03c34c00000026ee3986069d361682f5fb|b00f3bd474dc5798959cb3abbd9a6b81a50b3bbbfeaf87cdc15a220cf5e6c437|0058f33fb8 sync/header: .. pp pp pp 24 54 00 00 00 (7A .. ..) wobei pp sich wiederholendes (sync-)byte, z.B. 0xCA oder 0x30 Dann beginnt Frame mit 3 byte Sonde-SN, 0x7A.... = 80..... , dann Frame-Counter, GPS. https://www.youtube.com/watch?v=-0Ydq9Ole48 subframe: 0x7A .. | SN/ID |Count|TOW/ms | |Lat/B60B60 |Lon/B60B60 | Alt/mm |vE/mm |vN/mm |vU/mm | 7A 9A 4A 1C 5C 0C B4 6D 12 FF E7 0D B6 24 2D CA 2D FF 52 36 C2 01 1E E6 68 00 B1 1B 00 11 33 00 11 E4 .. 7A 9A 4A 1C 5D 0C B4 70 FC FF EC CA 81 24 2D CB CF FF 52 54 CF 01 1E F7 3A 00 B1 D4 00 0F 7F 00 10 B9 .. 7A 9A 4A 1C 5E 0C B4 74 E3 FF E3 5E 52 24 2D CC B9 FF 52 71 EB 01 1F 0A 7F 00 AC 27 00 08 92 00 13 14 .. 7A 9A 4A 1C 5F 0C B4 78 C9 FF E9 34 63 24 2D CD 1F FF 52 8D D7 01 1F 18 8A 00 A5 2F 00 03 CF 00 0D E9 .. 7A 9A 4A 1C 60 0C B4 7C B5 FF DF A8 9C 24 2D CD 58 FF 52 A9 7E 01 1F 27 0D 00 A3 A2 00 02 1C 00 0E 70 .. SN: 0x7A9A4A = 8034890 [ 7260] Di (11:12:31.0) lat: 50.876534° lon: -0.954636° alt: 18802.28m vH: 45.6m/s D: 84.5° vV: 4.6m/s [ 7261] Di (11:12:32.0) lat: 50.876569° lon: -0.953991° alt: 18806.59m vH: 45.7m/s D: 85.0° vV: 4.3m/s [ 7262] Di (11:12:33.0) lat: 50.876588° lon: -0.953366° alt: 18811.52m vH: 44.1m/s D: 87.1° vV: 4.9m/s [ 7263] Di (11:12:34.0) lat: 50.876597° lon: -0.952767° alt: 18815.11m vH: 42.3m/s D: 88.7° vV: 3.6m/s [ 7264] Di (11:12:35.0) lat: 50.876602° lon: -0.952174° alt: 18818.83m vH: 41.9m/s D: 89.3° vV: 3.7m/s pA = x^7+x^4+x^2+1 = (x+1)qA pB = x^5+x = (x+1)qB 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),... (or inverted) if NRZ-S demod: 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) = a' + x*b' + x/(1+x) beta = a + b + 1/(1+x) = a' + b' + 1/(1+x) m*pA = alpha m*pB = beta m*polyA = cA m*ployB = cB polyA = qA + x*qB = x^6+x^3+x^2+x+1 polyB = qA + qB = x^6+x^5+x^3+x^2+1 polyA + polyB = (x+1)qB = pB 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 = (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')