From 7f4647b67474c6c387f5656913754857e87b35d2 Mon Sep 17 00:00:00 2001 From: Zilog80 Date: Fri, 23 Sep 2016 09:38:10 +0200 Subject: [PATCH] ECC: examples --- ecc/ecc.txt | 37 ++++++++++++++++++++++++++++++++++--- rs92/rs92.txt | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 3 deletions(-) diff --git a/ecc/ecc.txt b/ecc/ecc.txt index 2c545cd..0cf9bec 100644 --- a/ecc/ecc.txt +++ b/ecc/ecc.txt @@ -93,12 +93,32 @@ Generatorpolynom fuer RS-Code: X^24 + 0x7A X^23 + 0x76 X^22 + 0xA9 X^21 + 0x46 X^20 + 0xB2 X^19 + 0xED X^18 + 0xD8 X^17 + 0x66 X^16 + 0x73 X^15 + 0x96 X^14 + 0xe5 X^13 + 0x49 X^12 + 0x82 X^11 + 0x48 X^10 + 0x3D X^9 + 0x2B X^8 + 0xCE X^7 + 0x01 X^6 + 0xED X^5 + 0xF7 X^4 + 0x7F X^3 + 0xD9 X^2 + 0x90 X + 0x75 +Decoder: +http://www.ka9q.net/code/fec/ +https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders -RS92: + +RS92 +---- 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-rs_vaisala.c: +1) ./ecc-rs_vaisala 2a2a2a2a2a106510e81820204b34393533393334006100083d3d07b342bb3e9809d3bc3f754c963bebfb690cca2b0fd9670f00670f8c0f11a458111e8810da410d30430ddc84673db01c852167ab07298b3cb05a536e0fffcf4faf7f4f3fff8fcfffffffff7fe5918aef20e8110175879900d0e0e900061f8c048aa393009edea1fe2557dc0019549f04b5160d00ae998b00e12a4200370b8608cacc1900b3e08905bd60040126da9303e1d4b4006d04a00573469700d6a98b00699f120195828f046ed7680503030000000000000000b27dff0202000200f0be2a40a7cd69b9ed0668ec12182e8560ea6dd0733612a1 RS92 codeword @@ -107,8 +127,18 @@ errors: 0 frame: 2a2a2a2a2a106510e81820204b34393533393334006100083d3d07b342bb3e9809d3bc3f754c963bebfb690cca2b0fd9670f00670f8c0f11a458111e8810da410d30430ddc84673db01c852167ab07298b3cb05a536e0fffcf4faf7f4f3fff8fcfffffffff7fe5918aef20e8110175879900d0e0e900061f8c048aa393009edea1fe2557dc0019549f04b5160d00ae998b00e12a4200370b8608cacc1900b3e08905bd60040126da9303e1d4b4006d04a00573469700d6a98b00699f120195828f046ed7680503030000000000000000b27dff0202000200f0be2a40a7cd69b9ed0668ec12182e8560ea6dd0733612a1 +2a) +./rs92gps_rawin -r rs92.wav > rs92raw.txt +cat rs92raw.txt | ./ecc-rs_vaisala > rs92raw_ecc.txt +./rs92gps_rawin --rawin1 -a almanac.txt rs92raw_ecc.txt +2b) +cat rs92raw.txt | ./ecc-rs_vaisala | ./rs92gps_rawin --rawin1 -a almanac.txt +2c) +./rs92gps_rawin -r rs92.wav | ./ecc-rs_vaisala | ./rs92gps_rawin --rawin1 -a almanac.txt -RS41: + +RS41 +---- HEADER 8 RS-PARITY 48 = 2*24 DATA 264-462 (max 2*231=462) @@ -161,7 +191,8 @@ frame: 8635f44093df1a60421080e56396389c102cf6db9276308a11f9f8792cb620beae0662688bba0eb2c0bdfa3bd10f0368c07ad0ac33c77046f0792888134b343032303234341c00000100000d00007a000732013230323434254e00002c011205b43ca475537a2a95050229fd015be502d931084d2a075b3308ed060228fd015de50200000000000000000000000000000061d67c1e4d07a0ba92170e9003fa01f813b40c921fd811fa0bf504d20af920fa17f765137d59950b3501ffc43086200a1101420000000521008f527605b1b600faa7e10e3b1301acce8e1c78c5ff0de3c41479b6ff48781a09dcfdffa2f1c30d51190150e0e4113d1701e27da60504a4ffdb2511085bd1003f05bd0c8346ffda787b156d2f421735a22f00f88b0b1ea7fe220b23030902112a417ea5d0343030313030303120313036313320202033312e362030363733203033353220303730302031323235312033383030203133343036203535333920313430353820353239332037383030203830323120373334203931392039353533383738203937323839373820343238383338353332362032393032313631203539313039203335303539203637303020333738352034363838203636393920363839392038303030c8e4762e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bf08 -CRC16: +CRC16 +----- ./crc_polymod --crc 0000000000000000000000000000000000 ecc7 C7EC 11111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100 diff --git a/rs92/rs92.txt b/rs92/rs92.txt index cabc5fb..f4f1441 100644 --- a/rs92/rs92.txt +++ b/rs92/rs92.txt @@ -84,6 +84,46 @@ Bei almanac-Daten 500-1000m Fehler moeglich, rinex-ephemeris deutlich genauer. 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_rawin -r rs92.wav > rs92raw.txt +cat rs92raw.txt | ./ecc-rs_vaisala > rs92raw_ecc.txt +./rs92gps_rawin --rawin1 -a almanac.txt rs92raw_ecc.txt +2b) +cat rs92raw.txt | ./ecc-rs_vaisala | ./rs92gps_rawin --rawin1 -a almanac.txt +2c) +./rs92gps_rawin -r rs92.wav | ./ecc-rs_vaisala | ./rs92gps_rawin --rawin1 -a almanac.txt + + Bahndaten @@ -107,3 +147,7 @@ http://www.vaisala.com/Vaisala%20Documents/Vaisala%20News%20Articles/VN164/VN164 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 +