képesség az adó és a vevő közötti átvitel folyamán From Wikipedia, the free encyclopedia
Az informatikában és az információelméletben fontos gyakorlati kérdés a hibák felismerése és kijavítása. A hibafelismerés egy képesség az adó és a vevő közötti átvitel folyamán a zaj vagy egyéb zavar okozta rendellenességek miatti torzulások jelzésére. A hibajavítási képesség lehetővé teszi a hiba helyének felismerését és kijavítását is.
Ezt a szócikket át kellene olvasni, ellenőrizni a szöveg helyesírását és nyelvhelyességét, a tulajdonnevek átírását. Esetleges további megjegyzések a vitalapon. |
Ha az adott cél hibajavítás, akkor önmagában a hibafelismerési képesség megléte látszólag nem elegendő. A hibajavítási módszerek általában számítás igényesek, vagy számos, az alkalmazások számára szükségtelen, redundáns adat hozzáadást jelentik. Néhány alkalmazás esetén, különösen adó-vevő rendszerek esetén, a hibafelismerő rendszer, az úgynevezett (automatic repeat request – ARQ) automatikus ismétlés kérés rendszerrel együttesen alkalmazva – a módszer alapja, hogy igény esetén a küldő képes a küldött üzenetet vagy annak egy részét ismételten elküldeni – bár kevésbé hatékonyan, de képes hibajavításra, a nagy mennyiségű, ismételten elküldött adat segítségével.
Számos módszer létezik a hibák felismerésére, néhány közülük meglehetősen egyszerű.
A megoldások több változata ismert. Az elküldött adatok bitsorozatát bitek blokkjaira tördelik, és küldésnél minden blokkot egy előre megadott számszor újraküldenek. Például, úgy küldjük el a "1011" bitsorozatot, hogy minden bitnégyest háromszor küldünk el.
Tegyük fel, hogy elküldtük a "1011 1011 1011" sorozatot, amit "1010 1011 1011" sorozatnak veszünk. Mivel egy csoport eltér a másik kettőtől, megállapítható, hogy az átvitel hibás volt. Ez a megoldás nem túl hatékony; a hiba felderítése azon a feltételezésen alapul, hogy a vett csoportok eltérnek (például ha a "1010 1010 1010" csoportokat vettük, akkor ez a módszer helyes átvitelnek detektálja).
Bár ez a megoldás igen egyszerű, mégis használatos: néhány eljárás az állomás számok küldésénél ezt használja.
Adott az elküldendő adatok folyama, amelyet bitek blokkjaira tördelnek, és minden egyes blokkban lévő 1 értékű bitet megszámolnak. A blokkhoz tartozó "paritásbit" értékét beállítják vagy törlik, attól függően, hogy a számlálás eredménye páros vagy páratlan volt. Ha az így ellenőrzött blokkok átlapolják egymást, akkor a paritásbitekkel még a hiba helye is behatárolható, és esetleg még javítható is, ha a hiba csak egy bitnél jelentkezik: ez a Hamming kódolás alapelve.
A paritásellenőrző módszereknek vannak korlátai: egy paritásbit csak egyetlen egybites hiba felismerését garantálhatja. Ha két vagy több bit sérül, akkor a paritásellenőrzés helyes eredményt adhat, annak ellenére, hogy az átvitel hibás volt.
Sokkal átfogóbb hibafelismerő (és javító) módszert tesznek lehetővé a véges testek és a felettük értelmezett polinomok bizonyos tulajdonságainak kihasználása.
A ciklikus redundancia-ellenőrzés az adatblokkot egy polinom együtthatóinak tekinti, amelyet eloszt egy előre meghatározott, állandó polinommal. Az osztás eredményének együtthatói alkotják a redundáns adatbiteket, a CRC-t.
A fenti módszerek képesek arra, hogy felismerjék, ha az adatok hibásan érkeztek, azonban ez gyakran nem elegendő. Gondoljunk egy olyan alkalmazásra, mint például egy egyirányú, rádión keresztüli géptávíró kapcsolat (SITOR). Ha az üzenetet gyorsan kell venni, és hiba nélkül, teljes üzenetnek meg kell érkeznie, akkor nem elegendő csupán azt tudni, hogy az üzenet hibamentes, a második feltétel, a teljesség ebből még nem következik, az üzenet lehet hibamentes, de hiányos.
Előnyös lenne a vevő oldal számára, ha valahogyan megállapíthatná, hogy hiba történt, és azt ki is tudná javítani. Bizonyos eljárások ezt lehetővé is teszik. Például a NATO fonetikus ábécéjének használatával – ha a küldő a "WIKI" szót szeretné elküldeni, akkor az ábécé használatával a "WHISKEY INDIA KILO INDIA" üzenet kerülne ténylegesen elküldésre, és vevő oldalon (*-gal jelöljük a hibásan vett betűket) a "W***KEY I**I* **LO **DI*" betűsorozat érkezik. A hibajavítások lehetségesek, mivel a használt "ábécé"-ben csak egy szó kezdődik "W"-vel és végződik "KEY"-el, és hasonlóképen javítható a többi vett szó. Ez az elv néhány hibajavító kódban (error correcting code – ECC) meg is jelenik.
A hibajavító kódoknak azonban megvannak a saját korlátaik: néhány képes adott számú bithibát javítani, és csak jelezni tudja a többi bithibát. Vannak egy hibát felismerni és javítani képes (single error correcting – SEC) kódok, vannak kettős hibát (double error detecting – DED) felismerni és javítani képes kódok is. Vannak olyan kódok is, amelyek képesek több hibát is felismerni és javítani.
Egy tipikus TCP/IP protokollokat használó hálózatban a hibafelismerés több szinten is megvalósul:
A NASA bonyolultabb hibajavító kódokat használ. Az 1969 és 1977 között a Mariner űrhajók Reed-Muller kódokat használtak. Ennél az űrhajónál a zajok eloszlását a jól ismert "harang-görbe" szerintinek, normál eloszlásúnak tekintették, így a Reed-Muller kódok elég jól megfeleltek.
A Voyager–1 és a Voyager–2 űrszondák már színes képeket közvetítettek a Jupiterről és a Szaturnuszról 1979-ben és 1980-ban.
A különböző mélyűri és bolygókutató küldetések alapján a új hibajavító rendszereket kellett találni. A kutatás sikerrel járt, és a "one size fits all" azaz az "egy méret mindenre" hibajavító módszerek megfelelőnek látszanak, bár néhány probléma még továbbra is megoldatlan.
A műholdak transzpondereinek sávszélességének növelésére folyamatos igény van, amelyet részint a televíziós csatornák (ideértve új csatornákat és a High Definition TV-t) részint az IP adatkapcsolatok táplálnak. A transzponderek hozzáférhetőségeinek és sávszélességeinek a bővítése korlátozott, mivel a transzponderek kapacitását elsődlegesen az alkalmazott modulációs módszer és az alkalmazott hibajavító kódolási (FEC) ráta határozza meg.
Scientific-Atlanta (jelenleg a Cisco Systems-hez tartozik) kidolgozott egy új kódolási eljárást a kapacitás növelésére: a Turbo kódokat összekapcsolta egy minimális komplexitású Reed-Solomon kódokkal.
Áttekintés
Az információelmélet alapján bizonyos, hogy egy adott hibavalószínűség esetén lehetséges olyan hibajavító kódot konstruálni, ami a hibavalószínűséget csökkenti, bár járulékos információmennyiség hozzáadásával ( redundáns adatok), ami nagy hibavalószínűség esetében nem előnyös. A Shannon korlát egy elérhető alsó korlátot határoz meg a hibajavításra (ez az elfogadható zajszint), ha állandó (mennyiségű) a redundancia, de nem ad útmutatást arra, hogy milyen kell lennie az optimális kódolónak.
A hibajavító kódok feloszthatók a blokk kódok és a konvolúciós kódok csoportjaira. Más hibajavító blokk kódok, mint a Reed-Solomon kódok átalakítják a bitek egy csoportját a bitek egy nagyobb csoportjába, olyan módon, hogy a blokkonként felismerhető és javítható hibák száma nagyobb legyen.
Sajnos, a gyakorlati tapasztalatok azt mutatják, hogy a hibák inkább hibacsomókban lépnek fel, mint véletlenszerűen elszórtan. Ezt jelenséget gyakran kompenzálják a kódolás után bitek beszúrásával (shuffling vagy interleaving). A megoldással a hibacsomósodást egybites hibává lehet átalakítani. A dekódolás előtt egy fordított folyamattal a beszúrt bitek eltávolíthatók.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.