Witam, pracuję nad pewnym projektem którego celem jest przesyłanie paczek danych (transmisja w jedną stronę). Ponieważ większość tego typu projektów posiada mechanizm detekcji i korekcji błędów (mówimy tutaj o kodowaniu FEC lub ECC), postanowiłem też swój projekt w to wyposażyć. Jednak po jakimś czasie pracy nad mechanizmem i kilku testach dochodzę do pewnych wniosków: załóżmy że mam ciąg danych składający się z 8 bitów np 00000111. W tym ciągu pierwsze 5 bitów stanowią dane (czyli zera), natomiast 3 ostatnie bity (jedynki) jest to kod nadmiarowy służący wykryciu i skorygowaniu błędów w tych pierwszych 5 bitach. Jeżeli wystąpi jakieś przekłamanie w ciągu danych to za pomocą 3 dodatkowych bitów te przekłamanie można wykryć i naprawić. Problem pojawią się jednak wtedy, gdy uszkodzeniu ulegną te bity nadmiarowe (któryś z nich zostanie błędnie odczytany) a prawdopodobieństwo wystąpienia takich błędów jest takie same jak w tych pierwszych 5 bitach. Wtedy dobrze odczytana wiadomość zostanie uszkodzona, ponieważ bity nadmiarowe zostaną błędnie odczytane.
Zatem więc jaki jest sens stosowania nadmiarowych bitów, które zwiększają objętość danych, a które same są podatne na uszkodzenia, a w związku z tym uszkadzają dane poprawnie odczytane?