Samoopravný kód

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Samoopravné kódy se ve výpočetní technice, telekomunikacích, teorii informace a v teorii kódování používají pro detekci a opravu chyb v datech přenesených nespolehlivými nebo zarušenými komunikačními kanály. Ústřední myšlenkou je, že ke zprávě se přidají nadbytečné informace ve formě samoopravného kódu. Tato redundance umožňuje příjemci detekovat omezený počet chyb kdekoli ve zprávě, a obvykle tyto chyby i opravit bez opakování přenosu. Průkopníkem v tomto oboru byl ve 40. letech 20. století americký matematik Richard Hamming, který v roce 1950 sestrojil první samoopravný kód Hammingův kód (7,4).

Samoopravné kódy se od kódů samodetekčních liší tím, že chyby, ke kterým dochází při přenosu, umějí nejen detekovat, ale i opravit. Díky tomu není nutný zpětný kanál, kterým se v případě chyby zasílají požadavky na opakování přenosu. +more Nevýhodou je nutnost přidávat ke zprávě další informace, takže je nutné přenášet větší objem dat. Samoopravné kódy se proto používají v situacích, kdy by opakované vysílání bylo drahé nebo nemožné, jako jsou jednosměrné komunikační spoje a při přenosu na více přijímačů při multicastu. Jsou také vhodné u spojení s velkou latencí; v případě sondy obíhající planetu Uran může opakování přenosu kvůli chybě způsobit zpoždění pěti hodin. Samoopravné kódy se obvykle používají v modemech, ale i ve velkokapacitních úložištích a v systémech s ECC pamětí.

Zpracování samoopravného kódu v přijímači může být aplikováno až na digitální bitový proud nebo již při demodulaci digitálně modulované nosné. Ve druhém případě jsou samoopravné kódy nedílnou součástí vstupního A/D převodníku v přijímači. +more Pro demodulaci digitálních dat z analogového signálu poškozeného šumem se obvykle používá Viterbiho dekodér, který implementuje algoritmus s měkkým rozhodováním. Mnoho kodérů/dekodérů samoopravných kódů také generuje BER signál, který je možné použít pro doladění analogové přijímací elektroniky.

Maximální podíl chyb nebo chybějících bitů, které lze opravit, je určen návrhem samoopravného kódu, v různých podmínkách jsou tedy vhodné různé samoopravné kódy. Silnější kódy mají obecně větší redundanci, kterou je potřeba přenést dostupnou přenosovou kapacitou, což snižuje efektivní přenosovou rychlost při zlepšování efektivního poměru signál/šum přijímaného signálu. +more Pro výpočet maximální dosažitelné komunikační rychlosti pro danou maximální přijatelnou pravděpodobnost chyby lze použít Shannonovu větu o kanálu, která určuje meze teoretické maximální rychlosti přenosu kanálem s určitou úrovní základního šumu. Důkaz však není konstruktivní, tedy neposkytuje návod, jak vytvořit kód blížící se kapacitě kanálu. Po letech výzkumu se některé pokročilé systémy samoopravných kódů od roku 2016 přibližují teoretickému maximu.

...
...
...
...
+more images (1)

Dopředná oprava chyb

Dopředná oprava chyb (FEC) nebo kanálové kódování je v telekomunikacích, teorii informace, a teorii kódování technika používaná pro detekci a opravu chyb při přenosu dat přes nespolehlivé nebo zarušené komunikační kanály. Ústřední myšlenkou je, že odesilatel kóduje zprávu nadbytečným způsobem, nejčastěji pomocí samoopravných kódů.

Redundance umožňuje příjemci detekovat omezený počet chyb, které se mohou objevit kdekoli ve zprávě, a často tyto chyby i opravit bez opakování přenosu. FEC dává příjemci schopnost opravit chyby bez potřeby zpětného kanálu, pomocí kterého by si vyžádal opakování přenosu dat, ale za cenu potřeby větší šířky pásma dopředného kanálu. +more FEC se proto používá v situacích, kdy opakované přenosy jsou drahé nebo nemožné, například na jednosměrných komunikačních spojích, při přenosu na více přijímačů při multicastu nebo když by opakování přenos způsobilo významnou latenci. Například při příjmu ze sondy obíhající kolem planety Uran by opakování přenosu kvůli chybám způsobilo zpoždění nejméně 5 hodin. FEC informace se používá také v modemech, kde opakování přenosu je možné, ale často neefektivní. Dalším použitím jsou paměti a velkokapacitní úložiště (s magnetickým, optickým nebo polovodičovým médiem) pro zotavení z poškozených dat.

Zpracování samoopravného kódu v přijímači může být aplikováno na digitální proud bitů nebo na demodulaci digitálně modulované nosné. Ve druhém případě je FEC nedílnou součástí počáteční A/D převodníku v přijímači. +more Viterbiho dekodér implementuje algoritmus s měkkým rozhodováním pro demodulaci digitálních dat z analogového signálu poškozeného šumem. Mnoho FEC kodérů také generuje BER signál, který může být používán jako zpětná vazba pro doladění analogové přijímací elektroniky.

Maximální podíl chyb nebo chybějících bitů, které lze opravit, je dán návrhem samoopravného kódu, proto jsou pro různé podmínky vhodné různé dopředné samoopravné kódy. Silnější kódy mají obecně větší redundanci, kterou je potřeba přenést dostupnou přenosovou kapacitou, což snižuje efektivní přenosovou rychlost při zlepšování efektivního poměru signál/šum přijímaného signálu. +more Pro výpočet maximální dosažitelné komunikační rychlosti pro danou maximální přijatelnou pravděpodobnost chyby lze použít Shannonovu větu o kanálu, která určuje meze teoretické maximální rychlosti přenosu kanálem s určitou úrovní základního šumu. Důkaz však není konstruktivní, tedy neposkytuje návod, jak vytvořit kód blížící se kapacitě kanálu. Po letech výzkumu se některé pokročilé systémy samoopravných kódů od roku 2016 přibližují teoretickému maximu za předpokladu nekonečné délky rámce.

Princip fungování

Pro opravu chyb se využívají redundantní informace přidané k přenášeným datům užitím nějakého algoritmu. Nadbytečné bity mohou být složitou funkcí mnoha původních informačních bitů. +more Původní informace se v zakódovaném výstupu může ale nemusí vyskytovat doslovně; kódy, u nichž je součástí výstupu neupravený vstup jsou systematické; kódy, kde tomu tak není, jsou nesystematické.

Triviálním příkladem samoopravných kódů je vysílat každý datový bit třikrát, což se nazývá (3,1) opakovací kód. Na výstupu zarušeného kanálu se může objevit 8 verzí výstupu, viz tabulka níže.

wikitablePřijatá trojiceInterpretováno jako
0000 (bezchybný)
0010
0100
1000
1111 (bezchybný)
1101
1011
0111
To umožňuje opravit chybu v jakémkoli ze tří vzorků „většinovým“ nebo „demokratickým hlasováním“. Opravná schopnost tohoto samoopravného kódu je: * až 1 chybný bit v trojici nebo * až 2 vynechané bity v trojici (případy nejsou uvedené v tabulce). +more Přestože že tento kód jednoduché implementovat a je široce používaný, tato trojitá modulární redundance je poměrně neefektivní samoopravný kód. Lepší samoopravné kódy obvykle kontrolují posledních několik desítek nebo dokonce stovek přijatých bitů pro určení, jak dekódovat několik málo současných bitů (obvykle ve skupinách 2 až 8 bitů).

Průměrování šumu pro omezení chyb

Je možné říci, že samoopravné kódy využívají „průměrování šumu“; protože každý datový bit ovlivňuje mnoho přenášených symbolů, poškození některých symbolů šumem obvykle umožňuje získat původní uživatelská data z jiných přijatých, nepoškozených symbolů, které závisejí také na stejných uživatelských datech. * Kvůli tomuto efektu „hromadění rizika“ digitální komunikační systémy, které používají samoopravné kódy, inklinují k tomu, že fungují dobře nad určitým minimálním poměrem signálu a šumu a nefungují vůbec pod ním. +more * Tento sklon k výsledkům všechno nebo nic - efekt útesu - se projevuje tím silněji, čím silnější je kód, tedy především u kódů, které se blíží teoretickému Shannonovu limitu. * Tuto vlastnost všechno nebo nic může omezovat prokládání dat v případech, kdy mají kanálové chyby tendenci objevovat se ve shlucích. Ale i tato metoda má své limity; nejlépe funguje pro úzkopásmová data.

Většina telekomunikačních systémů používá pevný kanálový kód navržený tak, aby fungoval v očekávaném nejhorším případě BER, ale pokud je bitová chybovost horší, zcela selžou. Určité systémy se však mohou přizpůsobit podmínkám kanálových chyb: některé druhy hybridní zpětné vazby s automatickým opakováním používají metodu pevných samoopravných kódů, pokud samoopravné kódy stačí pro danou četnost chyb, a když četnost chyb začne být příliš vysoká, přepínají na zpětnou vazbu s automatickým opakováním; adaptivní modulace a kódování používá několik poměrů samoopravného kódu, při vyšší četnosti chyb v kanálu přidávají do paketu více opravných bitů; a méně, když nejsou potřebné.

Typy samoopravných kódů

+more3'>Blokový kód (konkrétně Hammingův kód), v němž se redundantní bity přidávají na konec původní zprávy. Spojitý kód konvoluční kód, kde se redundantní bity přidávají do struktury kódového slova průběžně. Stručná klasifikace samoopravných kódů.

Samoopravné kódy lze rozdělit na kódy blokové a konvoluční. * Blokové kódy pracují na blocích (paketech) bitů nebo symbolů pevné, předem určené, velikosti. +more Praktické blokové kódy obecně mohou být pevně dekódovány v čase úměrném délce bloku. * Konvoluční kódy pracují na proudech bitů nebo symbolů libovolné délky. Obvykle používají měkký přístup k dekódování s použitím Viterbiho algoritmu, někdy se však používají i jiné algoritmy. Viterbiho dekódování umožňuje asymptoticky optimální dekódovací efektivitu s rostoucím omezením délky konvolučního kódu, ale na úkor exponenciálně rostoucí složitosti. Konvoluční kód, který je ukončený, je také 'blokový kód' v tom, že kóduje blok vstupních dat, ale velikost bloku konvolučního kódu je obecně libovolná, zatímco blokové kódy mají pevnou velikost vynucenou jejich algebraickou charakteristikou. Typy ukončení pro konvoluční kódy zahrnuje „useknutí konce“ a „bitový výplach“.

Existuje mnoho typů blokových kódů; Reedovy-Solomonovy kódy jsou významné pro své velké rozšíření na kompaktních discích, DVD, a pevných discích. Příkladem klasických blokových kódů jsou Golayův kód, BCH kód, vícerozměrný kód s kontrolou parity, a Hammingovy kódy.

Hammingův samoopravný kód se často používá pro opravu chyb ve flash pamětech. To poskytuje opravu jednobitových chyb a detekci dvoubitových chyb. +more Hammingovy kódy jsou vhodné pouze pro spolehlivější (SLC) NAND s víceúrovňovými buňkami. hustější NAND s víceúrovňovými buňkami (MLC) mohou používat vícebitové samoopravné kódy, jako například BCH nebo Reed-Solomon. Flash paměti NOR obvykle nepoužívají žádnou opravu chyb.

Klasické blokové kódy se obvykle dekódují pomocí algoritmů s pevným rozhodováním, což znamená, že pro každý vstupní a výstupní signál se provede pevné rozhodnutí, zda odpovídá jedničkovému nebo nulovému bitu. Naproti tomu konvoluční kódy se obvykle dekódují pomocí algoritmů s měkkým rozhodováním jako je Viterbiho algoritmus, MAP nebo algoritmus BCJR, které zpracovávají (diskretizované) analogové signály, a které poskytují mnohem vyšší výkonnost při opravách chyb než dekódování s pevným rozhodováním.

Téměř všechny klasické blokové kódy využívají algebraické vlastnosti konečných těles. Proto jsou klasické blokové kódy často označovány jako algebraické kódy.

V protikladu ke klasickým blokovým kódům, u nichž se často udává schopnost detekce nebo opravy chyb, mnoho moderních blokových kódů jako například Nízkohustotní kód s kontrolou parity takovou záruku postrádá. Místo toho se moderní kódy hodnotí podle jejich četnosti bitových chyb.

Většina kódů pro dopřednou opravu chyb opravuje pouze změny hodnot jednotlivých bitů, ne však vložení nebo výpadek bitu. V tomto případě je Hammingova vzdálenost vhodným způsobem, jak měřit BER. +more Několik málo dopředných samoopravných kódů, jako například Marker Kódy a Watermark kódy, je navrženo tak, aby byly schopné opravit vložení nebo vypouštění bitu. Při použití takových kódů je pro měření bitové chybovosti vhodnější Levenštejnova vzdálenost.

Kódový poměr a kompromis mezi spolehlivostí a přenosovou rychlostí

Základním principem samoopravného kódu je přidat nadbytečné bity, které pomáhají dekodéru najít původní zprávu, která byla zakódována vysílačem. Kódový poměr určitého samoopravného kódu se definuje jako poměr mezi počtem informačních bitů a celkovým počtem bitů (tj. +more informace plus redundance bity) v daném komunikačním paketu. Kódový poměr je tedy reálné číslo. Nízký kódový poměr blízký nule implikuje silný kód, které používá mnoho nadbytečných bitů pro dosažení dobré výkonnosti, zatímco velký kódový poměr blízký jedničce implikuje slabý kód.

Nadbytečné bity, které chrání informaci, se musí přenášet stejnými komunikačními prostředky jako užitečná data. Z toho plyne základní kompromis mezi spolehlivostí a přenosovou rychlostí. +more Jedním extrémem je silný kód (s nízkým kódovým poměrem), který může způsobit významné zvýšení poměru signálu k šumu (SNR) v přijímači klesající bitovou chybovostí, za cenu omezení efektivní přenosové rychlosti. Opačným extrémem je nepoužívat žádný samoopravný kód (tj. kódový poměr roven 1), tj. používat celou kapacitu kanálu pro přenos informací, ale bez jakékoli ochrany dat proti poškození.

Zajímavou otázkou je, jak efektivní může být přenos informací s využitím samoopravného kódu, který má zanedbatelnou četnost chyb. Tuto otázku zodpověděl Claude Shannon ve své druhé větě, která říká, že kapacita kanálu je maximální přenosová rychlost dosažitelná takovým samoopravným kódem, jehož četnost chyb se blíží nule: Její důkaz používá gaussovské náhodné kódování, které pro skutečné aplikace není vhodné. +more Horní mez daná Shannonovou prací inspirovala dlouhou historii navrhování samoopravných kódů, které se této výkonnostní hranici mohou blížit. Po roce 2000 je známo několik kódů, které mohou Shannonova limitu téměř dosáhnout. Implementace takových samoopravných kódů je však obvykle extrémně složitá.

Nejoblíbenější samoopravné kódy představují kompromis mezi výkonností a výpočetní složitostí. Jejich parametry obvykle udávají rozsah možných kódových poměrů, které lze optimalizovat podle použitého scénáře. +more Tato optimalizace se obvykle provádí pro dosažení nízké pravděpodobnosti dekódovacích chyb při minimalizaci vlivu na přenosovou rychlost. Jiným kritériem pro optimalizaci kódového poměru je vyvážit nízkou četnost chyb a počet opakování přenosu pro minimalizaci energetické náročnosti komunikace.

Zřetězení samoopravných kódů pro zlepšení výkonnosti

Klasické (algebraické) blokové kódy a konvoluční kódy se často kombinují do zřetězených kódovacích schémat, v nichž většinu práce zastane konvoluční kód malé omezené délky, který se dekóduje Viterbiho algoritmem, a blokový kód (obvykle Reedův-Solomonův) s větší délkou symbolu a délkou bloku „uklidí“ chyby způsobené konvolučním dekodérem. Velmi nízké četnosti chyb lze dosáhnout jediným průchodem dekodérem s touto rodinou samoopravných kódů, ale pro velký rozsah přenosových podmínek (jako jsou přenosy z kosmických sond) se doporučuje iterativní dekódování.

Zřetězené kódy byly standardní praxí pro satelitní komunikaci a komunikaci s kosmickými sondami od doby Voyageru 2, technika byla poprvé použita v roce 1986 pro přenos záznamů z Uranu. Sonda Galileo používala iterativní zřetězené kódy pro snížení velmi vysoké četnosti chyb způsobené selháním antény.

Nízkohustotní kontrolou parita (LDPC)

Nízkohustotní kódy s kontrolou parity (LDPC) kódy jsou třídou vysoce efektivních lineárních blokových kódů vytvořených z mnoha kódů s jedinou kontrolou parity . Mohou poskytovat výkonnost velmi blízkou kapacitě kanálu (teoretickému maximu) dekódovacím přístupem s opakovanými měkkými rozhodnutími, a časovou složitostí úměrnou délce bloku. +more Praktické implementace silně spoléhají na paralelní dekódování složkových SPC kódů.

LDPC kódy jako první popsal Robert G. +more Gallager ve své doktorské práci v roce 1960, ale kvůli výpočetní náročnosti kodéru a dekodéru a nasazení Reedových-Solomonových kódů byly až do 90. let téměř ignorovány.

LDPC kódy se nyní používají v mnoha moderních standardech vysokorychlostní komunikace, jako například DVB-S2, WiMAX (IEEE 802. +more16 standard pro mikrovlnnou komunikaci), Vysokorychlostní bezdrátové LAN (IEEE 802. 11n), 10GBase-T Ethernet (802. 3an) a G. hn/G. 9960 (ITU-T Standard pro přenos dat přes energetická vedení, telefonní linky a koaxiální kabely). Další LDPC kódy jsou součástí bezdrátových komunikačních standardů v 3GPP MBMS (viz Fountainovy kódy).

Turbokódy

Turbokódy používají iterativní schéma s měkkým dekódováním; pro získání blokového kódu, který může fungovat zlomek decibelu od Shannonova limitu, se kombinují dva nebo více relativně jednoduchých konvolučních kódů s prokládáním. V praktických aplikacích se používaly před nízkohustotními kódy s kontrolou parity, a v současnosti poskytují podobnou výkonnost.

Jednou z prvních komerčních aplikací turbo kódování byla technologie používaná digitálními mobilními sítěmi CDMA2000 1x (TIA IS-2000), kterou vyvinula firma Qualcomm a prodávaly firmy Verizon Wireless, Sprint, a další mobilní operátoři. Používá se také ve standardu Evolution CDMA2000 1x pro přístup k Internetu jako 1xEV-DO (TIA IS-856). +more I tento standard vyvinula firma Qualcomm, a byl používán firmami Verizon Wireless (jako Broadband Access), Sprint (jako Power Vision příp. Mobile Broadband).

Lokální dekódování a testování kódů

Někdy je nezbytné dekódovat pouze jednobitové zprávy nebo kontrolovat, zda je daný signál kódové slovo bez prohledávání celého signálu. Může to mít smysl při streamování, kde kódová slova jsou příliš velká na to, aby byla klasicky dekódována dostatečně rychle, a kde nás někdy zajímá jen málo bitů zprávy. +more Takové kódy začaly být také důležitým nástrojem v teorii složitosti, např. pro návrh pravděpodobnostně kontrolovatelný důkazy.

Lokálně dekódovatelné kódy jsou samoopravné kódy pro který jediný bity zprávy lze pravděpodobnostně získat pouze hledáním v malém (řekněme konstantním) počtu pozic kódového slova, dokonce když kódové slovo bylo poškozeno v nějaké konstantní části pozic. Lokálně testovatelné kódy jsou samoopravné kódy, pro něž lze pravděpodobnostně zkontrolovat, zda signál je blízký kódovému slovu zpracováním pouze malého počtu symbolů ze signálu.

Prokládání

Demonstrace významu prokládání

Prokládání se často používá v digitální komunikaci a pro ukládání dat, aby se zlepšila výkonnost dopředných samoopravných kódů. Mnoho komunikačních kanálů není bezpaměťových: chyby se obvykle objevují ve shlucích. +more Pokud počet chyb v kódovém slově překračuje funkčnost samoopravného kódu, získání původního kódového slova selže. Prokládání tento problém zmírňuje zamícháním zdrojových symbolů do několika kódových slov, s cílem dosáhnout rovnoměrnějšího rozdělení chyb. Proto se prokládání často používá pro opravu shluků chyb.

Analýza moderních opakovaných kódů, jako jsou turbokódy a LDPC kódy, obvykle předpokládá nezávislé rozdělení chyb. Systémy používající LDPC kódy proto obvykle využívají přídavné prokládání symbolů uvnitř kódového slova.

Prokladač je integrální komponentou turbokódů a jeho patřičný návrh je kritický pro dosažení dobré výkonnosti. Iterativní dekódovací algoritmus funguje nejlépe, když ve faktorgrafu, který reprezentuje dekodér, nejsou žádné krátké cykly; prokladač se proto konstruuje tak, aby neobsahoval krátké cykly.

Návrh prokladače zahrnuje: * pravoúhlé (nebo rovnoměrné) prokladače (podobné metodě používající skip faktory popsané výše) * konvoluční prokladače * náhodné prokladače (kde prokladač je známá náhodná permutace) * S-náhodné prokladač (kde prokladač je známá náhodná permutace taková, že žádné vstupní symboly do vzdálenosti S se neobjeví na výstupu do vzdálenosti S). * bezkonfliktní kvadratický permutační polynom (QPP). +more Příkladem jeho použití je mobilní komunikační standard Long Term Evolution.

V komunikačních systémech s více nosnými se může používat prokládání mezi nosnými pro získání frekvenční diverzity, např. pro zmírnění kmitočtově závislého úniku nebo při úzkopásmovém rušení.

Příklad

Přenos bez prokládání:

Bezchybná zpráva: aaaabbbbccccddddeeeeffffgggg Přenos se shlukem chyb: aaaabbbbccc____deeeeffffgggg

Každá skupina stejných písmen zde reprezentuje čtyřbitové kódové slovo s jednobitovou informací pro opravu chyb. Zatímco kódové slovo cccc bylo změněno v jednom bitu a lze jej tedy opravit, kódové slovo dddd bylo změněno ve třech bitech, takže buď nemůže být vůbec dekódováno nebo bude dekódováno nesprávně.

S prokládáním:

Původní kódová slova: aaaabbbbccccddddeeeeffffgggg S prokládání: abcdefgabcdefgabcdefgabcdefg Přenos se shlukem chyb: abcdefgabcd____bcdefgabcdefg Přijatá kódová slova po odstranění prokládání: aa_abbbbccccdddde_eef_ffg_gg

V každém z kódových slov „aaaa“, „eeee“, „ffff“, a „gggg“ je změněn pouze jeden bit, takže jednobitový samoopravný kód je všechna dekóduje správně.

Přenos bez prokládání:

Původní přenášená věta: ThisIsAnExampleOfInterleaving Přijatý věta se shlukem chyb: ThisIs______pleOfInterleaving

Výraz „AnExample“ skončí téměř nesrozumitelný a je obtížné jej opravit.

S prokládáním:

Přenášená věta: ThisIsAnExampleOfInterleaving. Bezchybný přenos: TIEpfeaghsxlIrv. +moreiAaenli. snmOten. Přijatá věta se shlukem chyb: TIEpfe______Irv. iAaenli. snmOten. Přijatá věta po odstranění prokládání: T_isI_AnE_amp_eOfInterle_vin_.

Žádné slovo není úplně ztraceno, a chybějící písmena lze snadno uhodnout.

Nevýhody prokládání

Použití prokládání zvyšuje celkové zpoždění, protože pro dekódování paketu musí být přijat celý prokládaný blok. Prokladače také skrývají strukturu chyb; pokročilejší dekódovací algoritmy mohou zohlednit strukturu chyb bez prokládání a dosáhnout spolehlivější komunikace než jednodušší dekodéry kombinované s prokladačem. +more Příkladem takového algoritmu jsou struktury založené na neuronových sítích.

Software pro samoopravné kódy

Při návrhu samoopravných kódů (ECCs) a pro jejich ověřování a zlepšování je běžnou praxí simulace jejich chování softwarem. Bezdrátový standard 5G vyvolává celou řadu aplikací pro softwarové samoopravné kódy v podobě cloudové rádiové přístupové sítě (C-RAN) s použitím softwarově definovaného rádia (SDR). +more Softwarové samoopravné kódy by se měly přímo používat při komunikaci. Například v 5G sítích by mohl být software zpracovávající samoopravné kódy umístěn v cloudu a signál z antén by se přímo zpracovával počítači: tímto způsobem by se zlepšila flexibilita komunikační sítě a zlepšila energetická efektivita systému.

V tomto kontextu existuje různě dostupný software s otevřeným zdrojovým textem uvedený níže (seznam není kompletní). * [url=https://aff3ct. +moregithub. io/]AFF3CT[/url] (A Fast Forward Error Correction Toolbox): kompletní komunikační řetěz v C++ (obsahuje mnoho podporovaných kódů jako Turbo, LDPC, polární kódy, atd. ), velmi rychlý a specializovaný na kanálové kódování (může být použit jako program pro simulace nebo jako knihovna pro SDR). * IT++: C++ knihovna tříd a funkcí pro lineární algebru, numerické optimalizace, zpracování signálu, komunikaci a statistiku. * [url=https://gitlab. eurecom. fr/oai/openair-cn]OpenAir[/url]: implementace 3GPP specifikací sítí Evolved Packet Core v jazyce C.

Seznam samoopravných kódů

VzdálenostKód
2 (detekce jedné chyby)parita
3 (oprava jedné chyby)trojitá modulární redundance
3 (oprava jedné chyby)perfektní Hammingův kód, např. Hammingův kód (7,4)
4 (Hammingův kód)rozšířený Hammingův kód
5 (oprava dvou chyb)
6 (oprava dvou chyb odhalení tří chyb)Nordstromův-Robinsonův kód
7 (oprava tří chyb)perfektní binární Golayův kód
8 (TECFED)rozšířený binární Golayův kód

* AN kódy * BCH kód, který lze navrhnout tak, aby opravoval libovolný počet chyb v kódovém bloku * Barkerův kód používán pro radary, telemetrii, ultrazvuk, Wifi, sítě mobilní telefonů DSSS, GPS atd. * Bergerův kód * Kód s konstantní váhou * Konvoluční kód * Expanderové kódy * Skupinové kódy * Golayovy kódy, z nichž Binární Golayův kód má praktický význam * Goppův kód používaný v McEliecově kryptosystému * Hadamardův kód * Hagelbargerův kód * Hammingův kód * Kód vycházející z latinského čtverce pro nebílý šum (převládající například při vysokorychlostních přenosech po napájecích vodičích) * Lexikografický kód * Lineární síťové kódování typ výmazového opravného kódu přes síť místo dvoubodové spoje * Dlouhý kód * Nízkohustotní kód s kontrolou parity, také známý jako Gallagerův kód, jako archetyp řídkých grafových kódů * LT kód je téměř optimální Fountainův kód * Kód m z n * Nordstromův-Robinsonův kód, používaný v geometrii a teorii grup * Online kód, téměř optimální Fountainův kód * Polární kód (teorie kódování) * Raptor kód, téměř optimální Fountainův kód * Reedovy-Solomonovy kódy * Reedův-Mullerův kód * Opakovat-accumulate kód * Opakovací kódy, např. +more trojnásobná modulární redundance * Spinální kód, bezpoměrový, nelineární kód založený na pseudonáhodných hashovacích funkcích * Tornado kód, téměř optimální výmazový kód, předchůdce Fountainových kódů * Turbokód * Walshův-Hadamardův kód * Cyklický redundantní součet (CRCs) je schopen opravit jednobitové chyby pro zprávy délky nejvýše 2^{n-1}-1 bitů pro optimální generátor polynomů stupně n, viz Bitové filtry.

Odkazy

Reference

Literatura

(xxii+762+6 stránky) * * (x+2+208+4 stránky) * * * [url=https://web. archive. +moreorg/web/20070519161253/http://www. st. com/stonline/products/literature/an/10123. htm]"Error Correction Code in Single Level Cell NAND Flash memories"[/url] 2007-02-16 * [url=https://web. archive. org/web/20160304050018/http://www. eetasia. com/ARTICLES/2004NOV/A/2004NOV29_MEM_AN10. PDF. SOURCES=DOWNLOAD]"Error Correction Code in NAND Flash memories"[/url] 2004-11-29 * [url=http://perspectives. mvdirona. com/2012/02/observations-on-errors-corrections-trust-of-dependent-systems/]Observations on Errors, Corrections, & Trust of Dependent Systems[/url], by James Hamilton, 2012-02-26 * Sphere Packings, Lattices and Groups, By J. H. Conway, Neil James Alexander Sloane, Springer Science & Business Media, 2013-03-09 - Mathematics - 682 pages.

Související články

Kódový poměr * Výmazový kód * Dekodér s měkkým rozhodováním * Burst samoopravný kód * Detekce a oprava chyb * Samoopravné kódy se zpětnou vazbou

Externí odkazy

[url=https://github.com/supermihi/lpdec]lpdec: knihovna pro lineární prediktivní dekódování a související věci (Python)[/url]

Kategorie:Detekce a oprava chyb

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top