RS92-SGP Modulation: GFSK raw: 4800 baud SGP: 1 frame/s raw-frame: 4800 symbols RS92-SGP: manchester -> 2400 bit/s 8N1, startbit, 8 bit, stopbit (-> 10bit/byte) Frame: 240 byte, little endian error correction: (CRC,) Reed-Solomon 0x00: Header (SGP): 2A 2A 2A 2A 2A 10 dann: 65 10 [FrameNb] [SondeID] 0x06: 65 10 0x08: FrameNb(2byte), 20 20 0x0C: SondeID(8byte), 00 61 00 0x17: Cal_Nb(1byte) Wenn Cal_Nb=00, dann ?? ?? 12 02 FF FF 01 00 | freq: 0x0212 = 530 -> (400000 + freq*10) kHz Frequenzen: D7 00 -> 402.15 MHz (Zadar) E0 00 -> 402.24 MHz (Udine) E6 00 -> 402.30 MHz (Udine/Muenchen/Meiningen) 0E 01 -> 402.70 MHz (Idar-Oberstein/Kuemmersbruck) 22 01 -> 402.90 MHz (Hohenspeissenberg) 5E 01 -> 403.50 MHz (Uccle) 7C 01 -> 403.80 MHz (Praha) 86 01 -> 403.90 MHz (De Bilt) 90 01 -> 404.00 MHz (Udine) 9A 01 -> 404.10 MHz (Norderney) AE 01 -> 404.30 MHz (Schleswig2) C2 01 -> 404.50 MHz (Meppen 6,12 Uhr) FE 01 -> 405.10 MHz (Meppen 9 Uhr/Lindenberg) 12 02 -> 405.30 MHz (Essen) 3A 02 -> 405.70 MHz (Bergen) 0x46: 67 3D 0x48: GPS TOW (gps time of week) (Receiver: Common Transmission Time vs Common Reception Time) 0x4E..0x55: GPS PRN 12*5 bit = 60 bit, auf 8 byte verteilt: little endian 00000111 1122222x 33333444 4455555x 66666777 7788888x 99999AAA AABBBBBx PRN-32, 6.bit: Entweder es ist die 3.PRN in dem Block und dann steht es im sonst nicht genutzten 16.bit x, oder wenn im 16-bit-Block noch eine weitere PRN folgt, dann ist diese entweder PRN-1 oder eine gerade PRN, so dass man im letzteren Fall das unterste Bit wieder loescht. Das Status-Byte sollte anzeigen, dass es sich davor tatsaechlich um PRN-32 handelt und nicht um einen Satelliten, der noch nicht gelockt ist. 0x56..0x61: 12 byte GPS STATUS 0x62: 12*8 byte GPS DATA 4 byte pseudochips; 3 byte delta_chips/385; 1 byte pseudochip-counter 32bit-fract, Faktor 2^(-10)=1/1024 df = c/(chips/sec) / 2^10 = 299792.458/1023.0/1024.0 = 0.286183844 // c=299792458m/s, 1023000chips/s pseudorange[m] = - df[m/chips] * pseudochips[chips] dl = L1/(chips/sec)/4 = 1575.42/1.023/4.0; //385.0 // GPS L1 1575.42MHz=154*10.23MHz, dl=154*10/4 delta(pseudochips, 1s) = delta_chips/dl delta(pseudochips) = ca 25800 +/- d, + sat kommt naeher - sat entfernt sich d.h. chip-counter zaehlt, wieviele chips im Intervall schon empfangen wurden; wenn sat sich entfernt, weniger chips. nach ca 14 min reset Geschwindigkeit kann aus delta_chips/385 errechnet werden: a) 1sec-ECEF-Differenz von pseudochips und delta_chips (braucht nur Sat-Positionen); b) delta_chips/Doppler als Relativgeschwindigkeiten mit gleicher "Design Matrix" wie fuer Positions-Approximation, wobei V-Startwert (0,0,0) (braucht auch Sat-Geschwindigkeiten). Bei GPS-Loesung ist DOP-Wert der Konstellation wichtig fuer die Genauigkeit. Bei almanac-Daten 500-1000m Fehler moeglich, rinex-ephemeris deutlich genauer. 0xC8: 8 byte aux-data (z.B. O3) Error Correction Code CRC16 / Reed-Solomon HEADER 6 DATA 210 RS-PARITY 24 2a2a2a2a2a10 (header) 6510 (L=2*0x10=32) e81820204b34393533393334006100083d3d07b342bb3e9809d3bc3f754c963b ebfb 690c (L=2*0x0c=24) ca2b0fd9670f00670f8c0f11a458111e8810da410d30430d dc84 673d (L=2*0x3d=122) b01c852167ab07298b3cb05a536e0fffcf4faf7f4f3fff8fcfffffffff7fe5918aef20e8110175879900d0e0e900061f8c048aa393009edea1fe2557dc0019549f04b5160d00ae998b00e12a4200370b8608cacc1900b3e08905bd60040126da9303e1d4b4006d04a00573469700d6a98b00699f120195828f04 6ed7 6805 (L=2*0x05=10) 03030000000000000000 b27d ff02 (L=2*0x02=4) 02000200 f0be2a40a7cd69b9ed0668ec12182e8560ea6dd0733612a1 (Reed-Solomon parity) ecc/ecc-rs_vaisala.c: 1) ./ecc-rs_vaisala 2a2a2a2a2a106510e81820204b34393533393334006100083d3d07b342bb3e9809d3bc3f754c963bebfb690cca2b0fd9670f00670f8c0f11a458111e8810da410d30430ddc84673db01c852167ab07298b3cb05a536e0fffcf4faf7f4f3fff8fcfffffffff7fe5918aef20e8110175879900d0e0e900061f8c048aa393009edea1fe2557dc0019549f04b5160d00ae998b00e12a4200370b8608cacc1900b3e08905bd60040126da9303e1d4b4006d04a00573469700d6a98b00699f120195828f046ed7680503030000000000000000b27dff0202000200f0be2a40a7cd69b9ed0668ec12182e8560ea6dd0733612a1 RS92 codeword errors: 0 0000000000000000000000000000000000000000000002000202FF7DB2000000000000000003030568D76E048F829501129F69008BA9D60097467305A0046D00B4D4E10393DA26010460BD0589E0B30019CCCA08860B3700422AE1008B99AE000D16B5049F541900DC5725FEA1DE9E0093A38A048C1F0600E9E0D0009987750111E820EF8A91E57FFFFFFFFFCF8FFF3F4F7FAF4FCFFF0F6E535AB03C8B2907AB6721851CB03D6784DC0D43300D41DA10881E1158A4110F8C0F67000F67D90F2BCA0C69FBEB3B964C753FBCD309983EBB42B3073D3D08006100343339333539344B202018E81065A1123673D06DEA60852E1812EC6806EDB969CDA7402ABEF0 frame: 2a2a2a2a2a106510e81820204b34393533393334006100083d3d07b342bb3e9809d3bc3f754c963bebfb690cca2b0fd9670f00670f8c0f11a458111e8810da410d30430ddc84673db01c852167ab07298b3cb05a536e0fffcf4faf7f4f3fff8fcfffffffff7fe5918aef20e8110175879900d0e0e900061f8c048aa393009edea1fe2557dc0019549f04b5160d00ae998b00e12a4200370b8608cacc1900b3e08905bd60040126da9303e1d4b4006d04a00573469700d6a98b00699f120195828f046ed7680503030000000000000000b27dff0202000200f0be2a40a7cd69b9ed0668ec12182e8560ea6dd0733612a1 2a) ./rs92gps -r rs92.wav > rs92raw.txt cat rs92raw.txt | ./ecc-rs_vaisala > rs92raw_ecc.txt ./rs92gps --rawin1 -a almanac.txt rs92raw_ecc.txt 2b) cat rs92raw.txt | ./ecc-rs_vaisala | ./rs92gps --rawin1 -a almanac.txt 2c) ./rs92gps -r rs92.wav | ./ecc-rs_vaisala | ./rs92gps --rawin1 -a almanac.txt 3) ./rs92ecc -b --ecc -e rinex.txt rs92.wav ./rs92ecc -b --ecc --crc -e rinex.txt rs92.wav Fehler werden nur in raw-output angezeigt: ./rs92ecc -b --ecc -r rs92.wav Bahndaten SEM Almanac: https://celestrak.com/GPS/almanac/SEM/ Rinex Ephemeris: http://cddis.gsfc.nasa.gov/Data_and_Derived_Products/GNSS/broadcast_ephemeris_data.html ftp://cddis.gsfc.nasa.gov/gnss/data/daily/YYYY/DDD/YYn/brdcDDD0.YYn.Z (updated) ftp://cddis.gsfc.nasa.gov/gnss/data/daily/YYYY/brdc/brdcDDD0.YYn.Z (final) GPS calendar: http://adn.agi.com/GNSSWeb/ Geoid: http://geographiclib.sourceforge.net/cgi-bin/GeoidEval weitere Infos: http://www.vaisala.com/Vaisala%20Documents/Brochures%20and%20Datasheets/RS92SGP-Datasheet-B210358EN-F-LOW.pdf http://www.vaisala.com/Vaisala%20Documents/Vaisala%20News%20Articles/VN164/VN164_State-of-the-Art_Radiosonde_Telemetry.pdf http://brmlab.cz/project/weathersonde/ http://prohu.altervista.org/convert.pdf (PTU, Haeberli 2001) Reed-Solomon-Decoder: http://www.ka9q.net/code/fec/ https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders