kopia lustrzana https://github.com/rs1729/RS
readme-info update
rodzic
89a9d8a50f
commit
e4d01b7318
|
@ -41,7 +41,7 @@ wird DFT verwendet). Je nach Empfangsgeraet oder SDR-Software kann das Signal in
|
|||
https://www.youtube.com/user/boulderplex
|
||||
|
||||
|
||||
* Beiträge:
|
||||
* erläuternde Beiträge:
|
||||
|
||||
http://www.fingers-welt.de/phpBB/viewtopic.php?f=14&t=43&start=525#p50955
|
||||
http://www.fingers-welt.de/phpBB/viewtopic.php?f=14&t=43&start=550#p64707
|
||||
|
@ -49,5 +49,5 @@ wird DFT verwendet). Je nach Empfangsgeraet oder SDR-Software kann das Signal in
|
|||
http://www.fingers-welt.de/phpBB/viewtopic.php?f=14&t=43&start=1000#p87987
|
||||
http://www.fingers-welt.de/phpBB/viewtopic.php?f=14&t=43&start=1000#p88325
|
||||
http://www.fingers-welt.de/phpBB/viewtopic.php?f=14&t=43&start=1000#p88845
|
||||
|
||||
http://www.fingers-welt.de/phpBB/viewtopic.php?f=14&t=43&start=1850#p155677
|
||||
|
||||
|
|
38
ecc/ecc.txt
38
ecc/ecc.txt
|
@ -1,8 +1,24 @@
|
|||
|
||||
In der Regel enthalten die einzelnen frames Checksummen oder CRC-Werte.
|
||||
Einige Radiosonden senden frames mit Codewoertern, die eine Fehlerkorrektur ermoeglichen.
|
||||
|
||||
|
||||
Graw
|
||||
====
|
||||
BCH/Hamming code (N, N-R) = (2^m - 1, N-m), d.h. R=mt mit t=1,
|
||||
korrigiert t=1 Fehler pro Codewort der Laenge N,
|
||||
die Codewoerter haben den Abstand d=3 (bei 2 Fehlern
|
||||
wird falsch dekodiert).
|
||||
Fuer die Sonden DFM-06/09 ist m=3, d.h. Hamming (7, 4),
|
||||
jedoch mit einem Paritaetsbit zu (8, 4) erweitert.
|
||||
Der erweiterte Hammingcode (8, 4) kann zudem 2 Fehler
|
||||
als nicht-korrigierbar erkennen (wird nicht falsch decodiert).
|
||||
|
||||
|
||||
Meisei
|
||||
======
|
||||
BCH(63,51)-Code mit Generatorpolynom
|
||||
x^12+x^10+x^8+x^5+x^4+x^3+1.
|
||||
BCH(63,51)-Code (m=6, t=2) mit Generatorpolynom
|
||||
(x^6+x+1)(x^6+x^4+x^2+x+1)=x^12+x^10+x^8+x^5+x^4+x^3+1.
|
||||
gekuerzt auf (46,34), die letzten 12 bit sind die BCH-Kontrollbits.
|
||||
|
||||
Das Generatorpolynom kann man finden, wenn man geeignete Codewoerter addiert (linearer Code),
|
||||
|
@ -19,7 +35,14 @@ um das kleinste Codewort ungleich 0 zu finden, z.B.:
|
|||
Die 34 Nachrichtenbit sind aufgeteilt in 16+1+16+1, d.h. nach einem 16 bit Block kommt ein Paritaetsbit,
|
||||
dass 1 ist, wenn die Anzahl 1en in den 16 bit davor gerade ist und sonst 0.
|
||||
|
||||
Um nur zu pruefen, kann man Polynomdivision durchfuehren (CRC):
|
||||
Pro Codewort koennen t=2 Fehler korrigiert werden.
|
||||
Ist die Anzahl Fehler #E groesser t, dann ist fuer t < #E <= 2t die Wahrscheinlichkeit,
|
||||
dass Fehler falsch erkannt/decodiert werden, etwa 1/t!, somit fuer t=2 garnicht gering.
|
||||
Da hier gekuerzte Codewoerter und 2 zusaetzliche Paritaetsbits verwendet werden, sollte
|
||||
man bei decodierten Codewoertern pruefen, ob die Paritaetsbits stimmen und ob bei der
|
||||
Decodierung Werte im Null-padding veraendert wurden.
|
||||
|
||||
Um nur die BCH-Codewoerter zu pruefen, kann man Polynomdivision durchfuehren (CRC):
|
||||
1)
|
||||
0000000000000000 1 0000000000000000 1 000010111011 : 0000 0000 0BB
|
||||
-> 0000000000000000100000000000000001000010111011
|
||||
|
@ -77,6 +100,8 @@ Um nur zu pruefen, kann man Polynomdivision durchfuehren (CRC):
|
|||
0
|
||||
|
||||
|
||||
Decoder:
|
||||
bch_ecc.c
|
||||
|
||||
|
||||
Vaisala
|
||||
|
@ -93,7 +118,12 @@ 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
|
||||
|
||||
Es koennen t=12 Fehler pro Codewort korrigiert werden.
|
||||
Fehler der Anzahl t < #E <= 2t werden zuverlaessig erkannt.
|
||||
|
||||
|
||||
Decoder:
|
||||
bch_ecc.c
|
||||
http://www.ka9q.net/code/fec/
|
||||
https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders
|
||||
|
||||
|
@ -151,7 +181,7 @@ DATA 264-462 (max 2*231=462)
|
|||
"interleaved"
|
||||
Die 2 Codewoerter setzen sich zusammen aus den DATA-Bytes an den geraden bzw. ungeraden Positionen und ersten bzw. zweiten RS-PARITY-Teil.
|
||||
|
||||
RS(231,255) RS(231,255) L=40 CRC L=42 CRC L=30 CRC L=89 CRC L=21 CRC L=17 CRC
|
||||
RS(255,231) RS(255,231) L=40 CRC L=42 CRC L=30 CRC L=89 CRC L=21 CRC L=17 CRC
|
||||
8635f44093df1a60 2c87e0fa0521e8943d9cef4c7a67393f6d39fb546461f2111b6447ab79a746c80350cda5344157f8c0c12234f4690222 0f 7928 16174b313933303239331a00000300000a00002f0007322ce53e31991abf12dada3eb68468c16755 d51c 7a2a 15310216060245f302000d08a31607821e08bb210219060243f302000000000000000000000000000000 220d 7c1e 0807d03cdc071fd81ddb19d70a8d0eb602b60cb518d40692ff00ff00ff00 1c27 7d59 b8d83301ff0f881f0f38f4fe18b283038735ff000000003eb8ff4947201e6e3aff55415f13fc6e005440440cf100009e9f7406f85800832b631719d70010bebc172a8b00000000000000000000000000000000000000000000 a48b 7b15 366181193ef05d07e1245b1be0f721f801f6080410 7b0b 7611 0000000000000000000000000000000000 ecc7
|
||||
1)
|
||||
8635f44093df1a60 (HDR)
|
||||
|
|
|
@ -25,7 +25,9 @@ Tools for decoding M10 radiosonde signals.
|
|||
`./m10x -r -c 20150701_402MHz.wav` <br />
|
||||
`sox 20150701_402MHz.wav -t wav - lowpass 6000 2>/dev/null | ./m10x -vv -c` <br />
|
||||
|
||||
####
|
||||
#####
|
||||
<br />
|
||||
|
||||
|
||||
* `pilotsonde/m12.c` - Pilotsonde
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue