Ця стаття є сирим з іншої мови. Можливо, вона створена за допомогою машинного перекладу або перекладачем, який недостатньо володіє обома мовами.(листопад 2024) |
У сфері обчислювальної техніки, телекомунікацій, теорії інформації та теорії кодування пряма корекція помилок ( FEC ) або канальне кодування є технікою, яка використовується для контролю помилок під час передачі даних через ненадійні або зашумлені канали зв'язку .
Основна ідея полягає в тому, що відправник кодує повідомлення з використанням надлишкової інформації, зазвичай застосовуючи код корекції помилок (*error correction code*, ECC). Завдяки цій надлишковості приймач може не лише виявляти помилки, що можуть виникнути в будь-якій частині повідомлення, але й часто виправляти обмежену кількість цих помилок. Таким чином, зворотний канал для повторного запиту на пересилання може не знадобитися. Вартість такого підходу полягає у збільшенні необхідної пропускної здатності прямого каналу передачі.
Американський математик Річард Геммінг започаткував цей напрям у 1940-х роках і в 1950 році створив перший код для корекції помилок - код Геммінга.
Метод корекції помилок на основі випередження (FEC) застосовується в ситуаціях, коли повторна передача є дорогою або неможливою, наприклад, при односторонніх каналах зв’язку або під час передавання даних до кількох отримувачів у режимі мультикаст .
FEC також корисне для з’єднань з великою затримкою; наприклад, у випадку супутників, що обертаються навколо далеких планет, повторна передача через помилки спричинила б до затримки на кілька годин. Окрім цього метод широко використовується в модемах і стільникових мережах .
Обробка FEC на приймачі може застосовуватися як до цифрового потоку бітів, так і під час демодуляції цифровомодульованого носія. У другому випадку FEC є невід’ємною частиною початкового аналого-цифрового перетворення в приймачі. Декодер Viterbi реалізує алгоритм м’якого рішення для демодуляції цифрових даних з аналогового сигналу, спотвореного шумом. Багато декодерів FEC також можуть генерувати сигнал рівня бітової похибки (BER), який можна використовувати як зворотний зв'язок для точного налаштування аналогової приймальної електроніки.
Інформація FEC додається до пристроїв масового зберігання даних (магнітних, оптичних і твердотільних/флеш накопичувачів), що дозволяє відновлювати пошкоджені дані. Цей метод також використовується пам'яті комп'ютерів ECC, особливо в системах, де потрібні спеціальні заходи для забезпечення надійності.
Максимальна частка помилок або відсутніх бітів, які можна виправити, визначається конструкцією коду ECC, тому різні коди корекції помилок підходять для різних умов. Загалом, сильніший код вимагає більшої надлишковості, яку необхідно передавати через доступну смугу пропускання, що зменшує ефективну швидкість передачі бітів, водночас підвищуючи (співвідношення сигнал/шум) на приймальній стороні . Теорема кодування для зашумленого каналу розроблена Клодом Шеноном дозволяє обчислити максимальну досяжну пропускну здатність каналу при заданій максимально допустимій ймовірності помилки. Це встановлює межі теоретично максимальної швидкості передавання інформації через канал із певним базовим рівнем шуму. Однак цей доказ не є конструктивним і, отже, не дає уявлення про те, як створити код що досягне цієї пропускної здатності. Після багатьох років досліджень деякі вдосконалені системи FEC, такі як полярний код наближаються до теоретичного максимуму, визначеного ємінстю каналу Шеннона за умови гіпотетичної нескінченної довжини кадру.
Метод
Захист від помилок ECC досягається шляхом додавання надлишкових даних до переданої інформації за допомогою спеціального алгоритму. Надлишковий біт може бути складною функцією, що залежить від багатьох бітів оригінальної інформації. Початкова інформація може бути представлена дослівно або в незакодованому результаті: коди, які містять незмінені вхідні дані у виході називаються систематичними, тоді як ті, які не містять, називаються несистематичними .
Простий приклад ECC це передача кожного біта даних тричі, що відомо як код повторення (3,1) . при передачі через зашумлений канал приймач може отримати 8 можливих варіантів вихідного сигналу, як показано в табличці нижче:
Трійку отримали | Інтерпретується як |
---|---|
000 | 0 (без помилок) |
001 | 0 |
010 | 0 |
100 | 0 |
111 | 1 (без помилок) |
110 | 1 |
101 | 1 |
011 | 1 |
Такий метод дозволяє виправити помилку в будь-якому з трьох зразків за допомогою «більшості голосів» або «демократичного голосування». Можливості цього коду ECC такі:
- До 1 помилки у будь-якому з трьох бітів у трійці.
- До 2 відсутніх бітів у трійці (ці випадки не показані в таблиці).
Хоча метод потрійної модульної надлишковості простий в реалізації та широко використовується, потрійна модулярна надмірність є відносно неефективним ECC. Більш ефективніі ECC-коди зазвичай перевіряють останні кілька десятків або навіть останні кілька сотень останніх отриманих бітів, щоб визначити, як декодувати поточну невелику групу бітів (зазвичай у групах від 2 до 8 бітів).
Усереднення шуму для зменшення помилок
Метод ECC можна описати як «усереднення шуму»; оскільки кожен біт даних впливає на багато переданих символів, пошкодження деяких символів шумом зазвичай дозволяє витягнути початкові дані користувача з інших, непошкоджених символів, які також залежать від тих самих даних.
- Завдяки такому ефекту «розподілу ризику» цифрові комунікаційні системи, що використовують ECC, зазвичай працюють добре при певному мінімальному (співвідношенні сигнал/шум), і не працюють зовсім, якщо це співвідношення нижче порогового.
- Ця тенденція «все або нічого» – так званий ефект обриву – стає більш вираженою, коли використовуються сильніші коди, що наближаються до теоретичної межі Шеннона .
- Перемежування даних, закодованих за допомогою ECC, може зменшити ефект «все або нічого», коли помилки в каналі мають схильність виникати пакетами. Однак цей метод має обмеження; його найкраще застосовувати для вузькосмугових даних.
Більшість телекомунікаційних систем використовують фіксований код каналу, розрблений для роботи при очікуваному найгіршому показнику бітових помилок, і повністю припиняють функціонування, якщо показник помилок перевищує цей поріг. Однак деякі системи адаптуються до заданих умов помилки каналу: деякі варіанти гібридного автоматичного повторного запиту (ARQ) використовують фіксований метод ECC, поки він може впоратися з рівнем помилок, а потім переходять на ARQ, коли рівень помилок стає занадто високою; Адаптивна модуляція та кодування використовує різні рівні швидкості ECC, додаючи більше коригувальних бітів у пакет при високому рівні помилок у каналі або зменшуючи їх, коли вони не є потрібними.
Типи
Дві основні категорії кодів ECC - це блокові коди та згорткові коди .
- Блокові коди працюють із фіксованими блоками (пакетами) бітів або символів попередньо визначеного розміру. Практичні блокові коди, як правило, можна декодувати жорстким методом за поліноміальний час відносно довжини блоку.
- Згорткові коди працюють із потоками бітів або символів довільної довжини. Найчастіше, для їх декодування використовується алгоритм Вітербі, хоча іноді використовуються й інші алгоритми. Декодування Вітербі забезпечує асимптотично оптимальну ефективність декодування зі збільшенням обмежувальної довжини згорткового коду, однак при цьому складність алгоритму зростає експоненціально. Якщо згортковий код завершується, то він також може розглядатися як «блоковий код», оскільки кодує певний блок вхідних даних. Однак розмір блоку згорткового коду, зазвичай, довільний, тоді як блокові коди мають фіксований розмір, що визначається їх алгебраїчними характеристиками. Прикладами завершення згорткових кодів є «циклічне продовження» та «вимивання бітів».
Існує багато типів блокових кодів; серед них варто відзначити Коди Ріда-Соломона, які широко використовуються в компакт-дисках, DVD-дисках і жорстких дисках . Інші приклади класичних блокових кодів включають коди Голея, BCH-коди, багатовимірні коди парності та коди Хеммінга .
ЕСС-коди Хеммінга часто використовуються для виправлення помилок у NAND-флеш-пам'яті . Цей метод забезпечує виправлення однобітових помилок і виявлення двобітових. Коди Хеммінга підходять лише для більш надійної одношарової комірокової NAND (SLC). У більш щільній багатошаровій комірковій (MLC) NAND можуть застосовуватися багатобітні коригувальні ECC, наприклад BCH або коди Ріда-Соломона. NOR-флеш зазвичай не використовує жодної корекції помилок.
Класичні блокові коди зазвичай декодуються за допомогою жорстко-розв'язувальних алгоритмів, які приймають чітке рішення для кожного вхідного та вихідного сигналу, визначаючи чи відповідає він біту "1" або "0". У свою чергу згорткові коди зазвичай декодуються за допомогою алгоритмів м’якого прийняття рішень, таких як алгоритми Вітербі, MAP або BCJR. Ці алгоритми працюють із (дискретизованими) аналоговими сигналами та забезпечують значно вищу ефективність корекції помилок у порівнянні з жорстко-розв'язуваними алгоритмами.
Майже всі класичні блокові коди використовують алгебраїчні властивості скінченних полів . Через це класичні блокові коди часто називають алгебраїчними кодами.
На відміну від класичних блокових кодів, які часто визначають здатність виявляти або виправляти помилки, багато сучасних блокових кодів, таких як коди LDPC, не мають жодних гарантій. Замість цього сучасні коди оцінюються за рівнем бітових помилок.
Більшість кодів прямого виправлення помилок здатні виправляти лише помилки зміни бітів, але не помилки вставки чи видалення бітів. У цьому контексті відстань Хеммінга є відповідним способом вимірювання рівня бітових помилок . Деякі коди прямого виправлення помилок розроблені для корекції помилок вставки та видалення бітів, наприклад, маркерні коди та водяні знаки-коди. У таких випадках Відстань Левенштейна є більш придатним способом для вимірювання частоти бітових помилок.
Кодова швидкість і компроміс між надійністю та швидкістю передачі даних
Основний принцип ECC полягає у додаванні надлишкових бітів, які допомагають декодеру визначити справжнє повідомлення, закодоване передавачем. Кодова швидкість системи ECC визначається як співвідношення між кількістю інформаційних бітів і загальною кількістю бітів (тобто інформаційних плюс надлишкових) у даному пакеті зв’язку. Таким чином, кодова швидкість є дійсним числом. Низька кодова швидкість, близька до нуля, означає сильний код, який використовує багато надлишкових бітів для досягнення високої продуктивності. Натомість висока кодова швидкість, близька до 1, означає слабкий код.
Надлишкові біти, що захищають інформацію, повинні передаватися через ті самі ресурси зв'язку, які вони намагаються захистити. Це призводить до фундаментального компромісу між надійністю та швидкістю передачі даних. В одному з крайніх випадків сильний код (із низькою кодовою швидкістю) може суттєво підвищити співвідношення сигнал/шум (SNR) у приймачі, знижуючи частоту бітових помилок ціною зменшення ефективної швидкості передачі даних. З іншого боку, відсутність ECC (тобто кодова швидкість дорівнює 1) дозволяє повністю використовувати канал для передачі інформації, але залишає біти без додаткового захисту.
Цікавим є питання: наскільки ефективною в плані передачі інформації може бути ECC з незначною ймовірністю декодувальної помилки? На це питання відповів Клод Шеннон своєю другою теоремою, яка стверджує, що пропускна здатність каналу є максимальною швидкістю передачі бітів, досяжною будь-якою ECC із ймовірністю помилки, що прагне до нуля. Його доведення базується на випадковому кодуванні Гауса, яке не є придатним для практичного використання. Однак верхня межа, визначена в роботі Шеннона, надихнула на тривалі дослідження у розробці ECC, які наближаються до граничної продуктивності. Сьогодні існують різні коди здатні майже досягнути межі Шеннона. Однак коди ECC що досягають пропускної здатності зазвичай надзвичайно складні для реалізації.
Найпопулярніші ECC пропонують компроміс між продуктивністю та обчислювальною складністю. Їхні параметри зазвичай дають діапазон можливих кодових швидкостей, які можна оптимізувати залежно від конкретного сценарію. Зазвичай така оптимізація спрямована на досягнення низької ймовірності декодувальної помилки з мінімальним впливом на швидкість передачі даних. Іншим критерієм оптимізації кодової швидкості є баланс між низьким рівнем помилок і кількістю повторних передач для зниження енергетичних витрат на зв’язок.
Об’єднані коди ECC для покращення продуктивності
Класичні (алгебраїчні) блокові коди та згорткові коди часто поєднують в схемах каскадного кодування. У таких схемах згортковий код із короткою обмеженою довжиною, декодований за допомогою алгоритму Вітербі, виконує більшу частину роботи, а блоковий код (зазвичай код Ріда–Соломона) із більшим розміром символів та довжиною блоку виправляє будь-які помилки, допущені згортковим декодером. Однопрохідне декодування з використанням цієї сім'ї кодів виправлення помилок може забезпечити дуже низький рівень помилок, але для умов передачі на великі відстані (наприклад, глибокий космос) рекомендується ітеративне декодування.
Каскадні коди стали стандартною практикою в супутниковому та міжпланетному зв’язку з часів, коли апарат «Вояджер-2» вперше використав цю техніку під час свого зближення з Ураном у 1986 році. Космічний апарат Galileo застосовував ітеративні каскадні коди для компенсації дуже високого рівня помилок, спричинені виходом із ладу антени.
Перевірка парності низької щільності (LDPC)
Коди з низькою щільністю перевірок на парність (LDPC) — це клас високоефективних лінійних блокових кодів, створених на основі багатьох одноразових кодів перевірки парності (SPC). Вони забезпечують продуктивність, що наближається до пропускної здатності каналу (теоретичного максимуму), використовуючи ітеративний підхід до декодування з м’яким рішенням, при цьому складність алгоритму залишається лінійною відносно довжини блоку. Практична реалізація таких кодів значною мірою спирається на паралельне декодування складових кодів SPC.
Коди LDPC були вперше запропоновані Робертом Г. Галлагером у його докторській дисертації в 1960 році. Однак через високу обчислювальну складність реалізації як кодера так і декодера, а також через популярність кодів Ріда-Соломона, вони здебільшого залишалися поза увагою до 1990-х років.
Сьогодні коди LDPC використовуються в багатьох сучасних високошвидкісних стандартах зв’язку, таких як DVB-S2 (цифрове відеомовлення через супутник другого покоління), WiMAX (стандарт IEEE 802.16e для мікрохвильового зв’язку), високошвидкісна бездротова локальна мережа ( IEEE 802.11n) . ), 10GBase-T Ethernet (802.3an) і G.hn/G.9960 (стандарт ITU-T для передачі даних через лінії електропередач, телефонні лінії та коаксіальний кабель). Інші LDPC коди стандартизовані для бездротових стандартів зв’язку в межах 3GPP MBMS (див. fountain codes ).
Турбо коди
Турбокодування — це ітеративна схема м’якого декодування, яка поєднує два або більше відносно простих згорткових кодів і перемежувач для створення блокового коду, що забезпечує продуктивність, яка наближається до межі Шеннона з точність до частки дицибела . Турбокоди були впроваджені в практичне використання раніше за LDPC-коди і тепер забезпечують подібну ефективність.
Одним із перших комерційних застосувань турбокодування була цифрова стільникова технологія CDMA2000 1x (TIA IS-2000), розроблена компанією Qualcomm і реалізована операторами Verizon Wireless, Sprint та іншими. Турбокоди також використовуються у вдосконаленій версії CDMA2000 1x спеціально для доступу до Інтернету, 1xEV-DO (TIA IS-856). Як і 1x, технологія EV-DO була розроблена компанією Qualcomm і використовується операторами Verizon Wireless, Sprint та іншими (маркетингова назва Verizon для 1xEV-DO – Broadband Access, маркетингові назви Sprint для споживачів і компаній для 1xEV-DO – Power Vision і Mobile широкосмуговий доступ відповідно).
Локальне декодування та тестування кодів
Іноді необхідно лише декодувати окремі біти повідомлення або перевірити, чи є певний сигнал кодовим словом, і зробити це без аналізу всього сигналу. Це може бути доцільним у потокових налаштуваннях, коли кодові слова занадто великі, щоб їх можна було класично декодувати достатньо швидко, і коли наразі цікаві лише кілька бітів повідомлення. Такі коди також стали важливим інструментом у теорії обчислювальної складності, наприклад, для створення ймовірнісно перевірюваних доказів .
Локально декодовані коди — це коди з виправленням помилок, для яких окремі біти повідомлення можуть бути відновлені ймовірнісно, аналізуючи лише невелику (наприклад, постійну) кількість позицій кодового слова, навіть якщо кодове слово було пошкоджено у певній постійній частині позицій. Локально тестовні коди, — це коди з виправленням помилок, для яких можна ймовірнісно перевірити, чи сигнал близький до кодового слова, аналізуючи лише невелику кількість позицій сигналу.
Не всі локально декодовані коди (LDC) є локально тестованими кодами (LTC) і не всі вони є локально коригувальними кодами (LCC), Наприклад, LCC q-запитами мають експоненційну межу довжини тоді як LDC можуть мати субекспоненціальну довжину.
Перемежування
Перемежування широко використовується в системах цифрового зв'язку та зберігання даних для покращення продуктивності кодів прямого виправлення помилок. Багато каналів зв’язку не є безпам’ятними: помилки зазвичай виникають у вигляді сплесків, а не незалежно. Якщо кількість помилок у межах кодового слова перевищує здатність коду виправити помилки, відновити початкове кодове слово не вдається. Перемежування вирішує цю проблему шляхом перетасовування вихідних символів між кількома кодовими словами, тим самим створюючи більш рівномірний розподіл помилок. Тому чергування широко використовується для виправлення сплескових помилок .
Аналіз сучасних ітерованих кодів, таких як турбо-коди та коди LDPC, зазвичай пприпускає незалежний розподіл помилок. Тому системи, які використовують LDPC коди, зазвичай використовують додаткове чергування символів у межах кодового слова.
Для турбо-кодів перемежувач є невід’ємним компонентом, і правильне його проектування має вирішальне значення для забезпечення високої продуктивності. Ітеративний алгоритм декодування працює найкраще, коли у факторному графі, який представляє декодер, відсутні короткі цикли; тому перемежувач обирається таким чином, щоб уникнути коротких циклів.
Конструкції перемежувача включають:
- прямокутні (або рівномірні) перемежувачі (схожі на метод що використовує пропускні фактори, описані вище)
- згорткові перемежувачі
- випадкові перемежувачі (де перемежувач є відомою випадковою перестановкою)
- S-випадковий перемежувач (випадкові перестановки з обмеженням, що жодні вхідні символи, розсташовані не менше ніж на відстані S, не можуть опинитися на такій самій відстані в результаті).
- квадратичний поліном перестановок без конфліктів (QPP). Приклад використання у стандарті мобільного зв’язку 3GPP Long Term Evolution .
У системах багатоканального зв'язку перемежування між каналами може застосовуватися для забезпечення частотної диверсифікації, наприклад, для зменшення впливу частотно-селективного завмирання або вузькосмугових перешкод.
приклад
Передача без чергування :
Повідомлення без помилок: aaaabbbbccccddddeeeeffffgggg Передача з пакетною помилкою: aaaabbbbccc____deeeeffffgggg
Тут кожна група однакових літер представляє 4-бітовий код із корекцією однобітових помилок. Кодове слово "cccc" змінене в одному біті та може бути виправлене, але кодове слово "dddd" змінене у трьох бітах, тому або не може бути декодоване взагалі, або може бути декодовано неправильно .
З перемежуванням :
Кодові слова без помилок: aaaabbbbccccddddeeeeffffgggg Перемежовується: abcdefgabcdefgabcdefgabcdefg Передача з пакетною помилкою: abcdefgabcd____bcdefgabcdefg Отримані кодові слова після деперемежування: aa_abbbbccccdddde_eef_ffg_gg
У кожному з кодових слів « aaaa », « eeee », « ffff » та « gggg » змінено лише один біт, тому код із корекцією однобітових помилок декодує все правильно.
Передача без чергування :
Оригінальне передане речення: ThisIsAnExampleOfInterleaving Отримане речення з пакетною помилкою: ThisIs______pleOfInterleaving
Термін « AnExample » стає переважно нерозбірливим і складним для виправлення.
З перемежуванням :
Передане речення: ThisIsAnExampleOfInterleaving... Передача без помилок: TIEpfeaghsxlIrv.iAaenli.snmOten. Отримане речення з пакетною помилкою: TIEpfe______Irv.iAaenli.snmOten. Отримане речення після деперемежування: T_isI_AnE_amp_eOfInterle_vin_...
Жодне слово не втрачається повністю, і пропущені літери можна відновити з мінімальними припущеннями.
Недоліки чергування
Використання технік чергування збільшує загальну затримку. Це пов'язано з тим, що весь блок має бути отриманий перш ніж пакети можуть бути декодовані. Також перемежувачі приховують структуру помилок; без перемежувача більш просунуті алгоритми декодування можуть використовувати структуру помилок для досягнення більш надійної комунікації, ніж простіший декодер у поєднанні з перемежувачем. Прикладом такого алгоритму є структура нейронної мережі .
Моделювання поведінки кодів корекції помилок (ECC) у програмному забезпеченні є поширеною практикою для проєктування, валідації та вдосконалення ECC. Новий стандарт бездротового зв’язку 5G відкриває нові можливості для застосування програмних ECC: це хмарні мережі радіодоступу (C-RAN) у контексті радіо-зв'язку з програмно визначеною архітектурою (SDR) . Ідея полягає в тому, щоб безпосередньо використовувати програмні ECC у комунікаціях. Наприклад, у 5G програмні ECC можуть розташовуватися в хмарі, а антени - підключатися до цих обчислювальних ресурсів підвищуючи таким чином гнучкість комунікаційної мережі та, в перспективі, підвищуючи енергоефективність системи.
У цьому контексті доступні різні Open-source програмні рішення (список неповний):
- AFF3CT (A Fast Forward Error Correction Toolbox): повний комунікаційний ланцюжок у C++ (підтримує багато кодів, таких як Turbo, LDPC, Polar тощо), дуже швидкий і спеціалізується на канальному кодуванні (може використовуватися як програма для моделювання або як бібліотека для SDR).
- IT++ : бібліотека C++ класів і функцій для лінійної алгебри, числової оптимізації, обробки сигналів, комунікацій та статистики.
- OpenAir : реалізація (на С) специфікацій 3GPP, що стосуються еволюційної мережі пакетного ядра.
Список кодів для виправлення помилок
Відстань | Код |
---|---|
2 (виявлення однієї помилки) | Парність |
3 (виправлення однієї помилки) | Потрійне модульне резервування |
3 (виправлення однієї помилки) | ідеальний Хеммінг, такий як Хеммінг (7,4) |
4 ( SECDED ) | Розширений Хеммінг |
5 (виправлення подвійної помилки) | |
6 (виправлення подвійної/потрійної помилки) | Код Нордстрома-Робінсона |
7 (виправлення трьох помилок) | ідеальний двійковий код Голея |
8 (TECFED) | розширений двійковий код Голея |
- коди AN
- Код алгебраїчної геометрії
- Код BCH, який може бути розроблений для виправлення будь-якої довільної кількості помилок на блок коду.
- Код баркера, який використовується для радарів, телеметрії, ультразвуку, Wi-Fi, мобільних телефонних мереж DSSS, GPS тощо.
- Код Бергера
- Код постійної ваги
- Згортковий код
- Коди розширення
- Коди груп
- Коди Голея, з яких практичний інтерес становить двійковий код Голея
- Код Гоппи, який використовується в криптосистемі McEliece
- Код Адамара
- Код Хагельбаргера
- Код Хеммінга
- Код на основі латинського квадрата для небілого шуму (поширений, наприклад, у широкосмуговому зв’язку через лінії електропередач)
- Лексикографічний код
- Лінійне мережеве кодування, тип коду коригування стирання в мережах замість зв’язків «точка-точка».
- Довгий код
- Код перевірки парності з низькою щільністю, також відомий як код Галлагера, як архетип для кодів розріджених графів
- Код LT, який є майже оптимальним кодом корекції стирання без швидкості (код Fountain)
- m з n кодів
- Код Нордстрома-Робінсона, що використовується в геометрії та теорії груп
- Онлайн-код, майже оптимальний безшвидкісний код для виправлення стирання
- Полярний код (теорія кодування)
- Код Raptor, майже оптимальний безшвидкісний код корекції стирання
- Виправлення помилок Ріда–Соломона
- Код Ріда-Мюллера
- Повторно-накопичувальний код
- Коди повторення, такі як потрійне модульне резервування
- Спінальний код, безшвидкісний, нелінійний код, заснований на псевдовипадкових хеш-функціях
- Код Tornado, майже оптимальний код корекції стирання та попередник кодів Fountain
- Турбо код
- Код Уолша–Адамара
- Циклічні перевірки надлишковості (CRC) можуть виправляти щонайбільше 1-бітові помилки для повідомлень біт для оптимальних генеруючих поліномів ступеня , див.
Дивіться також
- Вибуховий код виправлення помилок
- Швидкість коду
- Коди стирання
- Виявлення та виправлення помилок
- Коди з виправленням помилок із зворотним зв'язком
- Лінійний код
- Квантова корекція помилок
- Декодер м'якого рішення
Примітки
- Charles Wang; Dean Sklar; Diana Johnson (Winter 2001–2002). Forward Error-Correction Coding. Crosslink. The Aerospace Corporation. 3 (1). Архів оригіналу за 14 березня 2012. Процитовано 5 березня 2006.
- Charles Wang; Dean Sklar; Diana Johnson (Winter 2001–2002). Forward Error-Correction Coding. Crosslink. The Aerospace Corporation. 3 (1). Архів оригіналу за 14 березня 2012. Процитовано 5 березня 2006.
How Forward Error-Correcting Codes Work]
- Maunder, Robert (2016). Overview of Channel Coding.
- (April 1950). Error Detecting and Error Correcting Codes. . USA: . 29 (2): 147—160. doi:10.1002/j.1538-7305.1950.tb00463.x. hdl:10945/46756. S2CID 61141773.
- "Hamming codes for NAND flash memory devices" [Архівовано 21 серпня 2016 у Wayback Machine.]. EE Times-Asia. Apparently based on "Micron Technical Note TN-29-08: Hamming Codes for NAND Flash Memory Devices" [Архівовано 29 серпня 2017 у Wayback Machine.]. 2005. Both say: "The Hamming algorithm is an industry-accepted method for error detection and correction in many SLC NAND flash-based applications."
- What Types of ECC Should Be Used on Flash Memory? (Application note). Spansion. 2011.
Both Reed–Solomon algorithm and BCH algorithm are common ECC choices for MLC NAND flash. ... Hamming based block codes are the most commonly used ECC for SLC.... both Reed–Solomon and BCH are able to handle multiple errors and are widely used on MLC flash.
- Jim Cooke (August 2007). The Inconvenient Truths of NAND Flash Memory (PDF). с. 28.
For SLC, a code with a correction threshold of 1 is sufficient. t=4 required ... for MLC.
- A Simple Scheme for Belief Propagation Decoding of BCH and RS Codes in Multimedia Transmissions. . 2008: 1—12. 2008. doi:10.1155/2008/957846.
- Shah, Gaurav (2006). Keyboards and covert channels. USENIX. Процитовано 20 грудня 2018.
- Tse, David; Viswanath, Pramod (2005), Fundamentals of Wireless Communication, Cambridge University Press, UK
- Shannon, C. E. (1948). A mathematical theory of communication (PDF). . 27 (3–4): 379–423 & 623–656. doi:10.1002/j.1538-7305.1948.tb01338.x.
{{}}
:|hdl-access=
вимагає|hdl=
() - . ISBN .
{{}}
: Пропущений або порожній|title=
() - IEEE Standard, section 20.3.11.6 "802.11n-2009" [Архівовано 3 лютого 2013 у Wayback Machine.], IEEE, 29 October 2009, accessed 21 March 2011.
- ; Viderman, Michael. Locally Testable vs. Locally Decodable Codes.
- Brubaker, Ben (9 січня 2024). 'Magical' Error Correction Scheme Proved Inherently Inefficient. Quanta Magazine (англ.). Процитовано 9 січня 2024.
- Kothari, Pravesh K.; Manohar, Peter (2023). An Exponential Lower Bound for Linear 3-Query Locally Correctable Codes. arXiv:2311.00558 [cs.CC].
- Kerenidis, Iordanis; de Wolf, Ronald (9 червня 2003). Exponential lower bound for 2-query locally decodable codes via a quantum argument. Proceedings of the thirty-fifth annual ACM symposium on Theory of computing (англ.). ACM. с. 106–115. arXiv:quant-ph/0208062. doi:10.1145/780542.780560. ISBN .
- Yekhanin, Sergey (February 2008). Towards 3-query locally decodable codes of subexponential length. Journal of the ACM (англ.). 55 (1): 1—16. doi:10.1145/1326554.1326555. ISSN 0004-5411.
- Efremenko, Klim (31 травня 2009). 3-query locally decodable codes of subexponential length. Proceedings of the forty-first annual ACM symposium on Theory of computing (англ.). ACM. с. 39—44. doi:10.1145/1536414.1536422. ISBN .
{{}}
: Проігноровано|journal=
() - Vucetic, B.; Yuan, J. (2000). Turbo codes: principles and applications. Springer Verlag. ISBN .
- Practical Loss-Resilient Codes. Proc. 29th Annual Association for Computing Machinery (ACM) Symposium on Theory of Computation. 1997.
- Digital Video Broadcast (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other satellite broadband applications (DVB-S2). En 302 307. ETSI (V1.2.1). April 2009.
- Andrews, K. S.; Divsalar, D.; Dolinar, S.; Hamkins, J.; Jones, C. R.; Pollara, F. (November 2007). The Development of Turbo and LDPC Codes for Deep-Space Applications. . 95 (11): 2142—2156. doi:10.1109/JPROC.2007.905132.
- Dolinar, S.; Divsalar, D. (15 серпня 1995). Weight Distributions for Turbo Codes Using Random and Nonrandom Permutations. TDA Progress Report. 122: 42—122. Bibcode:1995TDAPR.122...56D. CiteSeerX 10.1.1.105.6640.
- Takeshita, Oscar (2006). Permutation Polynomial Interleavers: An Algebraic-Geometric Perspective. . 53 (6): 2116—2132. arXiv:cs/0601048. Bibcode:2006cs........1048T. doi:10.1109/TIT.2007.896870.
- Digital Video Broadcast (DVB); Frame structure, channel coding and modulation for a second generation digital terrestrial television broadcasting system (DVB-T2). En 302 755. ETSI (V1.1.1). September 2009.
- Techie (3 червня 2010). Explaining Interleaving. W3 Techie Blog. Процитовано 3 червня 2010.
- Krastanov, Stefan; Jiang, Liang (8 вересня 2017). Deep Neural Network Probabilistic Decoder for Stabilizer Codes. Scientific Reports. 7 (1): 11003. arXiv:1705.09334. Bibcode:2017NatSR...711003K. doi:10.1038/s41598-017-11266-1. PMC 5591216. PMID 28887480.
- Nordstrom, A.W.; Robinson, J.P. (1967), An optimum nonlinear code, Information and Control, 11 (5–6): 613—616, doi:10.1016/S0019-9958(67)90835-2
- . ISBN .
{{}}
: Пропущений або порожній|title=
()
Подальше читання
- ; (2007). The Theory of Error-Correcting Codes. North-Holland Mathematical Library. Т. 16 (вид. digital print of 12th impression, 1st). AT&T Shannon Labs, Florham Park, New Jersey, USA: / . ISBN . LCCN 76-41296. (xxii+762+6 pages)
- Clark, Jr., George C.; Cain, J. Bibb (1981). Error-Correction Coding for Digital Communications. New York, USA: . ISBN .
- Arazi, Benjamin (1987). Swetman, Herb (ред.). A Commonsense Approach to the Theory of Error Correcting Codes. MIT Press Series in Computer Systems. Т. 10 (вид. 1). Massachusetts Institute of Technology. ISBN . LCCN 87-21889. (x+2+208+4 pages)
- Wicker, Stephen B. (1995). Error Control Systems for Digital Communication and Storage. Englewood Cliffs, New Jersey, USA: Prentice-Hall. ISBN .
- Wilson, Stephen G. (1996). Digital Modulation and Coding. Englewood Cliffs, New Jersey, USA: Prentice-Hall. ISBN .
- "Error Correction Code in Single Level Cell NAND Flash memories" 2007-02-16
- "Error Correction Code in NAND Flash memories" 2004-11-29
- Observations on Errors, Corrections, & Trust of Dependent Systems, by James Hamilton, 2012-02-26
- Sphere Packings, Lattices and Groups, By J. H. Conway, Neil James Alexander Sloane, , 2013-03-09 – Mathematics – 682 pages.
Зовнішні посилання
- Morelos-Zaragoza, Robert (2004). The Correcting Codes (ECC) Page. Процитовано 5 березня 2006.
- error correction zoo. Database of error correcting codes.
- lpdec: library for LP decoding and related things (Python)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Nemaye perevirenih versij ciyeyi storinki jmovirno yiyi she ne pereviryali na vidpovidnist pravilam proektu Cya stattya ye sirim perekladom z inshoyi movi Mozhlivo vona stvorena za dopomogoyu mashinnogo perekladu abo perekladachem yakij nedostatno volodiye oboma movami Bud laska dopomozhit polipshiti pereklad listopad 2024 U sferi obchislyuvalnoyi tehniki telekomunikacij teoriyi informaciyi ta teoriyi koduvannya pryama korekciya pomilok FEC abo kanalne koduvannya 1 2 3 ye tehnikoyu yaka vikoristovuyetsya dlya kontrolyu pomilok pid chas peredachi danih cherez nenadijni abo zashumleni kanali zv yazku Osnovna ideya polyagaye v tomu sho vidpravnik koduye povidomlennya z vikoristannyam nadlishkovoyi informaciyi zazvichaj zastosovuyuchi kod korekciyi pomilok error correction code ECC Zavdyaki cij nadlishkovosti prijmach mozhe ne lishe viyavlyati pomilki sho mozhut viniknuti v bud yakij chastini povidomlennya ale j chasto vipravlyati obmezhenu kilkist cih pomilok Takim chinom zvorotnij kanal dlya povtornogo zapitu na peresilannya mozhe ne znadobitisya Vartist takogo pidhodu polyagaye u zbilshenni neobhidnoyi propusknoyi zdatnosti pryamogo kanalu peredachi Amerikanskij matematik Richard Gemming zapochatkuvav cej napryam u 1940 h rokah i v 1950 roci stvoriv pershij kod dlya korekciyi pomilok kod Gemminga 4 Metod korekciyi pomilok na osnovi viperedzhennya FEC zastosovuyetsya v situaciyah koli povtorna peredacha ye dorogoyu abo nemozhlivoyu napriklad pri odnostoronnih kanalah zv yazku abo pid chas peredavannya danih do kilkoh otrimuvachiv u rezhimi multikast FEC takozh korisne dlya z yednan z velikoyu zatrimkoyu napriklad u vipadku suputnikiv sho obertayutsya navkolo dalekih planet povtorna peredacha cherez pomilki sprichinila b do zatrimki na kilka godin Okrim cogo metod shiroko vikoristovuyetsya v modemah i stilnikovih merezhah Obrobka FEC na prijmachi mozhe zastosovuvatisya yak do cifrovogo potoku bitiv tak i pid chas demodulyaciyi cifrovomodulovanogo nosiya U drugomu vipadku FEC ye nevid yemnoyu chastinoyu pochatkovogo analogo cifrovogo peretvorennya v prijmachi Dekoder Viterbi realizuye algoritm m yakogo rishennya dlya demodulyaciyi cifrovih danih z analogovogo signalu spotvorenogo shumom Bagato dekoderiv FEC takozh mozhut generuvati signal rivnya bitovoyi pohibki BER yakij mozhna vikoristovuvati yak zvorotnij zv yazok dlya tochnogo nalashtuvannya analogovoyi prijmalnoyi elektroniki Informaciya FEC dodayetsya do pristroyiv masovogo zberigannya danih magnitnih optichnih i tverdotilnih flesh nakopichuvachiv sho dozvolyaye vidnovlyuvati poshkodzheni dani Cej metod takozh vikoristovuyetsya pam yati komp yuteriv ECC osoblivo v sistemah de potribni specialni zahodi dlya zabezpechennya nadijnosti Maksimalna chastka pomilok abo vidsutnih bitiv yaki mozhna vipraviti viznachayetsya konstrukciyeyu kodu ECC tomu rizni kodi korekciyi pomilok pidhodyat dlya riznih umov Zagalom silnishij kod vimagaye bilshoyi nadlishkovosti yaku neobhidno peredavati cherez dostupnu smugu propuskannya sho zmenshuye efektivnu shvidkist peredachi bitiv vodnochas pidvishuyuchi spivvidnoshennya signal shum na prijmalnij storoni Teorema koduvannya dlya zashumlenogo kanalu rozroblena Klodom Shenonom dozvolyaye obchisliti maksimalnu dosyazhnu propusknu zdatnist kanalu pri zadanij maksimalno dopustimij jmovirnosti pomilki Ce vstanovlyuye mezhi teoretichno maksimalnoyi shvidkosti peredavannya informaciyi cherez kanal iz pevnim bazovim rivnem shumu Odnak cej dokaz ne ye konstruktivnim i otzhe ne daye uyavlennya pro te yak stvoriti kod sho dosyagne ciyeyi propusknoyi zdatnosti Pislya bagatoh rokiv doslidzhen deyaki vdoskonaleni sistemi FEC taki yak polyarnij kod 3 nablizhayutsya do teoretichnogo maksimumu viznachenogo yeminstyu kanalu Shennona za umovi gipotetichnoyi neskinchennoyi dovzhini kadru Zmist 1 Metod 2 Userednennya shumu dlya zmenshennya pomilok 3 Tipi 4 Kodova shvidkist i kompromis mizh nadijnistyu ta shvidkistyu peredachi danih 5 Ob yednani kodi ECC dlya pokrashennya produktivnosti 6 Perevirka parnosti nizkoyi shilnosti LDPC 7 Turbo kodi 8 Lokalne dekoduvannya ta testuvannya kodiv 9 Peremezhuvannya 9 1 priklad 9 2 Nedoliki cherguvannya 10 Spisok kodiv dlya vipravlennya pomilok 11 Divitsya takozh 12 Primitki 13 Podalshe chitannya 14 Zovnishni posilannyaMetodred Zahist vid pomilok ECC dosyagayetsya shlyahom dodavannya nadlishkovih danih do peredanoyi informaciyi za dopomogoyu specialnogo algoritmu Nadlishkovij bit mozhe buti skladnoyu funkciyeyu sho zalezhit vid bagatoh bitiv originalnoyi informaciyi Pochatkova informaciya mozhe buti predstavlena doslivno abo v nezakodovanomu rezultati kodi yaki mistyat nezmineni vhidni dani u vihodi nazivayutsya sistematichnimi todi yak ti yaki ne mistyat nazivayutsya nesistematichnimi Prostij priklad ECC ce peredacha kozhnogo bita danih trichi sho vidomo yak kod povtorennya 3 1 pri peredachi cherez zashumlenij kanal prijmach mozhe otrimati 8 mozhlivih variantiv vihidnogo signalu yak pokazano v tablichci nizhche Trijku otrimali Interpretuyetsya yak 000 0 bez pomilok 001 0 010 0 100 0 111 1 bez pomilok 110 1 101 1 011 1 Takij metod dozvolyaye vipraviti pomilku v bud yakomu z troh zrazkiv za dopomogoyu bilshosti golosiv abo demokratichnogo golosuvannya Mozhlivosti cogo kodu ECC taki Do 1 pomilki u bud yakomu z troh bitiv u trijci Do 2 vidsutnih bitiv u trijci ci vipadki ne pokazani v tablici Hocha metod potrijnoyi modulnoyi nadlishkovosti prostij v realizaciyi ta shiroko vikoristovuyetsya potrijna modulyarna nadmirnist ye vidnosno neefektivnim ECC Bilsh efektivnii ECC kodi zazvichaj pereviryayut ostanni kilka desyatkiv abo navit ostanni kilka soten ostannih otrimanih bitiv shob viznachiti yak dekoduvati potochnu neveliku grupu bitiv zazvichaj u grupah vid 2 do 8 bitiv Userednennya shumu dlya zmenshennya pomilokred Metod ECC mozhna opisati yak userednennya shumu oskilki kozhen bit danih vplivaye na bagato peredanih simvoliv poshkodzhennya deyakih simvoliv shumom zazvichaj dozvolyaye vityagnuti pochatkovi dani koristuvacha z inshih neposhkodzhenih simvoliv yaki takozh zalezhat vid tih samih danih Zavdyaki takomu efektu rozpodilu riziku cifrovi komunikacijni sistemi sho vikoristovuyut ECC zazvichaj pracyuyut dobre pri pevnomu minimalnomu spivvidnoshenni signal shum i ne pracyuyut zovsim yaksho ce spivvidnoshennya nizhche porogovogo Cya tendenciya vse abo nichogo tak zvanij efekt obrivu staye bilsh virazhenoyu koli vikoristovuyutsya silnishi kodi sho nablizhayutsya do teoretichnoyi mezhi Shennona Peremezhuvannya danih zakodovanih za dopomogoyu ECC mozhe zmenshiti efekt vse abo nichogo koli pomilki v kanali mayut shilnist vinikati paketami Odnak cej metod maye obmezhennya jogo najkrashe zastosovuvati dlya vuzkosmugovih danih Bilshist telekomunikacijnih sistem vikoristovuyut fiksovanij kod kanalu rozrblenij dlya roboti pri ochikuvanomu najgirshomu pokazniku bitovih pomilok i povnistyu pripinyayut funkcionuvannya yaksho pokaznik pomilok perevishuye cej porig Odnak deyaki sistemi adaptuyutsya do zadanih umov pomilki kanalu deyaki varianti gibridnogo avtomatichnogo povtornogo zapitu ARQ vikoristovuyut fiksovanij metod ECC poki vin mozhe vporatisya z rivnem pomilok a potim perehodyat na ARQ koli riven pomilok staye zanadto visokoyu Adaptivna modulyaciya ta koduvannya vikoristovuye rizni rivni shvidkosti ECC dodayuchi bilshe koriguvalnih bitiv u paket pri visokomu rivni pomilok u kanali abo zmenshuyuchi yih koli voni ne ye potribnimi Tipired nbsp Blokovij kod zokrema kod Hemminga de nadlishkovi biti dodayutsya yak blok do kincya pochatkovogo povidomlennya nbsp Bezperervnij zgortkovij kod de nadlishkovi biti postijno dodayutsya do strukturi kodovogo slova Dvi osnovni kategoriyi kodiv ECC ce blokovi kodi ta zgortkovi kodi Blokovi kodi pracyuyut iz fiksovanimi blokami paketami bitiv abo simvoliv poperedno viznachenogo rozmiru Praktichni blokovi kodi yak pravilo mozhna dekoduvati zhorstkim metodom za polinomialnij chas vidnosno dovzhini bloku Zgortkovi kodi pracyuyut iz potokami bitiv abo simvoliv dovilnoyi dovzhini Najchastishe dlya yih dekoduvannya vikoristovuyetsya algoritm Viterbi hocha inodi vikoristovuyutsya j inshi algoritmi Dekoduvannya Viterbi zabezpechuye asimptotichno optimalnu efektivnist dekoduvannya zi zbilshennyam obmezhuvalnoyi dovzhini zgortkovogo kodu odnak pri comu skladnist algoritmu zrostaye eksponencialno Yaksho zgortkovij kod zavershuyetsya to vin takozh mozhe rozglyadatisya yak blokovij kod oskilki koduye pevnij blok vhidnih danih Odnak rozmir bloku zgortkovogo kodu zazvichaj dovilnij todi yak blokovi kodi mayut fiksovanij rozmir sho viznachayetsya yih algebrayichnimi harakteristikami Prikladami zavershennya zgortkovih kodiv ye ciklichne prodovzhennya ta vimivannya bitiv Isnuye bagato tipiv blokovih kodiv sered nih varto vidznachiti Kodi Rida Solomona yaki shiroko vikoristovuyutsya v kompakt diskah DVD diskah i zhorstkih diskah Inshi prikladi klasichnih blokovih kodiv vklyuchayut kodi Goleya BCH kodi bagatovimirni kodi parnosti ta kodi Hemminga ESS kodi Hemminga chasto vikoristovuyutsya dlya vipravlennya pomilok u NAND flesh pam yati 5 Cej metod zabezpechuye vipravlennya odnobitovih pomilok i viyavlennya dvobitovih Kodi Hemminga pidhodyat lishe dlya bilsh nadijnoyi odnosharovoyi komirokovoyi NAND SLC U bilsh shilnij bagatosharovij komirkovij MLC NAND mozhut zastosovuvatisya bagatobitni koriguvalni ECC napriklad BCH abo kodi Rida Solomona 6 7 NOR flesh zazvichaj ne vikoristovuye zhodnoyi korekciyi pomilok 6 Klasichni blokovi kodi zazvichaj dekoduyutsya za dopomogoyu zhorstko rozv yazuvalnih algoritmiv 8 yaki prijmayut chitke rishennya dlya kozhnogo vhidnogo ta vihidnogo signalu viznachayuchi chi vidpovidaye vin bitu 1 abo 0 U svoyu chergu zgortkovi kodi zazvichaj dekoduyutsya za dopomogoyu algoritmiv m yakogo prijnyattya rishen takih yak algoritmi Viterbi MAP abo BCJR Ci algoritmi pracyuyut iz diskretizovanimi analogovimi signalami ta zabezpechuyut znachno vishu efektivnist korekciyi pomilok u porivnyanni z zhorstko rozv yazuvanimi algoritmami Majzhe vsi klasichni blokovi kodi vikoristovuyut algebrayichni vlastivosti skinchennih poliv Cherez ce klasichni blokovi kodi chasto nazivayut algebrayichnimi kodami Na vidminu vid klasichnih blokovih kodiv yaki chasto viznachayut zdatnist viyavlyati abo vipravlyati pomilki bagato suchasnih blokovih kodiv takih yak kodi LDPC ne mayut zhodnih garantij Zamist cogo suchasni kodi ocinyuyutsya za rivnem bitovih pomilok Bilshist kodiv pryamogo vipravlennya pomilok zdatni vipravlyati lishe pomilki zmini bitiv ale ne pomilki vstavki chi vidalennya bitiv U comu konteksti vidstan Hemminga ye vidpovidnim sposobom vimiryuvannya rivnya bitovih pomilok Deyaki kodi pryamogo vipravlennya pomilok rozrobleni dlya korekciyi pomilok vstavki ta vidalennya bitiv napriklad markerni kodi ta vodyani znaki kodi U takih vipadkah Vidstan Levenshtejna ye bilsh pridatnim sposobom dlya vimiryuvannya chastoti bitovih pomilok 9 Kodova shvidkist i kompromis mizh nadijnistyu ta shvidkistyu peredachi danihred Osnovnij princip ECC polyagaye u dodavanni nadlishkovih bitiv yaki dopomagayut dekoderu viznachiti spravzhnye povidomlennya zakodovane peredavachem Kodova shvidkist sistemi ECC viznachayetsya yak spivvidnoshennya mizh kilkistyu informacijnih bitiv i zagalnoyu kilkistyu bitiv tobto informacijnih plyus nadlishkovih u danomu paketi zv yazku Takim chinom kodova shvidkist ye dijsnim chislom Nizka kodova shvidkist blizka do nulya oznachaye silnij kod yakij vikoristovuye bagato nadlishkovih bitiv dlya dosyagnennya visokoyi produktivnosti Natomist visoka kodova shvidkist blizka do 1 oznachaye slabkij kod Nadlishkovi biti sho zahishayut informaciyu povinni peredavatisya cherez ti sami resursi zv yazku yaki voni namagayutsya zahistiti Ce prizvodit do fundamentalnogo kompromisu mizh nadijnistyu ta shvidkistyu peredachi danih 10 V odnomu z krajnih vipadkiv silnij kod iz nizkoyu kodovoyu shvidkistyu mozhe suttyevo pidvishiti spivvidnoshennya signal shum SNR u prijmachi znizhuyuchi chastotu bitovih pomilok cinoyu zmenshennya efektivnoyi shvidkosti peredachi danih Z inshogo boku vidsutnist ECC tobto kodova shvidkist dorivnyuye 1 dozvolyaye povnistyu vikoristovuvati kanal dlya peredachi informaciyi ale zalishaye biti bez dodatkovogo zahistu Cikavim ye pitannya naskilki efektivnoyu v plani peredachi informaciyi mozhe buti ECC z neznachnoyu jmovirnistyu dekoduvalnoyi pomilki Na ce pitannya vidpoviv Klod Shennon svoyeyu drugoyu teoremoyu yaka stverdzhuye sho propuskna zdatnist kanalu ye maksimalnoyu shvidkistyu peredachi bitiv dosyazhnoyu bud yakoyu ECC iz jmovirnistyu pomilki sho pragne do nulya 11 Jogo dovedennya bazuyetsya na vipadkovomu koduvanni Gausa yake ne ye pridatnim dlya praktichnogo vikoristannya Odnak verhnya mezha viznachena v roboti Shennona nadihnula na trivali doslidzhennya u rozrobci ECC yaki nablizhayutsya do granichnoyi produktivnosti Sogodni isnuyut rizni kodi zdatni majzhe dosyagnuti mezhi Shennona Odnak kodi ECC sho dosyagayut propusknoyi zdatnosti zazvichaj nadzvichajno skladni dlya realizaciyi Najpopulyarnishi ECC proponuyut kompromis mizh produktivnistyu ta obchislyuvalnoyu skladnistyu Yihni parametri zazvichaj dayut diapazon mozhlivih kodovih shvidkostej yaki mozhna optimizuvati zalezhno vid konkretnogo scenariyu Zazvichaj taka optimizaciya spryamovana na dosyagnennya nizkoyi jmovirnosti dekoduvalnoyi pomilki z minimalnim vplivom na shvidkist peredachi danih Inshim kriteriyem optimizaciyi kodovoyi shvidkosti ye balans mizh nizkim rivnem pomilok i kilkistyu povtornih peredach dlya znizhennya energetichnih vitrat na zv yazok 12 Ob yednani kodi ECC dlya pokrashennya produktivnostired Dokladnishe Block code ta Convolutional code Klasichni algebrayichni blokovi kodi ta zgortkovi kodi chasto poyednuyut v shemah kaskadnogo koduvannya U takih shemah zgortkovij kod iz korotkoyu obmezhenoyu dovzhinoyu dekodovanij za dopomogoyu algoritmu Viterbi vikonuye bilshu chastinu roboti a blokovij kod zazvichaj kod Rida Solomona iz bilshim rozmirom simvoliv ta dovzhinoyu bloku vipravlyaye bud yaki pomilki dopusheni zgortkovim dekoderom Odnoprohidne dekoduvannya z vikoristannyam ciyeyi sim yi kodiv vipravlennya pomilok mozhe zabezpechiti duzhe nizkij riven pomilok ale dlya umov peredachi na veliki vidstani napriklad glibokij kosmos rekomenduyetsya iterativne dekoduvannya Kaskadni kodi stali standartnoyu praktikoyu v suputnikovomu ta mizhplanetnomu zv yazku z chasiv koli aparat Voyadzher 2 vpershe vikoristav cyu tehniku pid chas svogo zblizhennya z Uranom u 1986 roci Kosmichnij aparat Galileo zastosovuvav iterativni kaskadni kodi dlya kompensaciyi duzhe visokogo rivnya pomilok sprichineni vihodom iz ladu anteni Perevirka parnosti nizkoyi shilnosti LDPC red Dokladnishe Turbo code Kodi z nizkoyu shilnistyu perevirok na parnist LDPC ce klas visokoefektivnih linijnih blokovih kodiv stvorenih na osnovi bagatoh odnorazovih kodiv perevirki parnosti SPC Voni zabezpechuyut produktivnist sho nablizhayetsya do propusknoyi zdatnosti kanalu teoretichnogo maksimumu vikoristovuyuchi iterativnij pidhid do dekoduvannya z m yakim rishennyam pri comu skladnist algoritmu zalishayetsya linijnoyu vidnosno dovzhini bloku Praktichna realizaciya takih kodiv znachnoyu miroyu spirayetsya na paralelne dekoduvannya skladovih kodiv SPC Kodi LDPC buli vpershe zaproponovani Robertom G Gallagerom u jogo doktorskij disertaciyi v 1960 roci Odnak cherez visoku obchislyuvalnu skladnist realizaciyi yak kodera tak i dekodera a takozh cherez populyarnist kodiv Rida Solomona voni zdebilshogo zalishalisya poza uvagoyu do 1990 h rokiv Sogodni kodi LDPC vikoristovuyutsya v bagatoh suchasnih visokoshvidkisnih standartah zv yazku takih yak DVB S2 cifrove videomovlennya cherez suputnik drugogo pokolinnya WiMAX standart IEEE 802 16e dlya mikrohvilovogo zv yazku visokoshvidkisna bezdrotova lokalna merezha IEEE 802 11n 13 10GBase T Ethernet 802 3an i G hn G 9960 standart ITU T dlya peredachi danih cherez liniyi elektroperedach telefonni liniyi ta koaksialnij kabel Inshi LDPC kodi standartizovani dlya bezdrotovih standartiv zv yazku v mezhah 3GPP MBMS div fountain codes Turbo kodired Turbokoduvannya ce iterativna shema m yakogo dekoduvannya yaka poyednuye dva abo bilshe vidnosno prostih zgortkovih kodiv i peremezhuvach dlya stvorennya blokovogo kodu sho zabezpechuye produktivnist yaka nablizhayetsya do mezhi Shennona z tochnist do chastki dicibela Turbokodi buli vprovadzheni v praktichne vikoristannya ranishe za LDPC kodi i teper zabezpechuyut podibnu efektivnist Odnim iz pershih komercijnih zastosuvan turbokoduvannya bula cifrova stilnikova tehnologiya CDMA2000 1x TIA IS 2000 rozroblena kompaniyeyu Qualcomm i realizovana operatorami Verizon Wireless Sprint ta inshimi Turbokodi takozh vikoristovuyutsya u vdoskonalenij versiyi CDMA2000 1x specialno dlya dostupu do Internetu 1xEV DO TIA IS 856 Yak i 1x tehnologiya EV DO bula rozroblena kompaniyeyu Qualcomm i vikoristovuyetsya operatorami Verizon Wireless Sprint ta inshimi marketingova nazva Verizon dlya 1xEV DO Broadband Access marketingovi nazvi Sprint dlya spozhivachiv i kompanij dlya 1xEV DO Power Vision i Mobile shirokosmugovij dostup vidpovidno Lokalne dekoduvannya ta testuvannya kodivred Inodi neobhidno lishe dekoduvati okremi biti povidomlennya abo pereviriti chi ye pevnij signal kodovim slovom i zrobiti ce bez analizu vsogo signalu Ce mozhe buti docilnim u potokovih nalashtuvannyah koli kodovi slova zanadto veliki shob yih mozhna bulo klasichno dekoduvati dostatno shvidko i koli narazi cikavi lishe kilka bitiv povidomlennya Taki kodi takozh stali vazhlivim instrumentom u teoriyi obchislyuvalnoyi skladnosti napriklad dlya stvorennya jmovirnisno pereviryuvanih dokaziv Lokalno dekodovani kodi ce kodi z vipravlennyam pomilok dlya yakih okremi biti povidomlennya mozhut buti vidnovleni jmovirnisno analizuyuchi lishe neveliku napriklad postijnu kilkist pozicij kodovogo slova navit yaksho kodove slovo bulo poshkodzheno u pevnij postijnij chastini pozicij Lokalno testovni kodi ce kodi z vipravlennyam pomilok dlya yakih mozhna jmovirnisno pereviriti chi signal blizkij do kodovogo slova analizuyuchi lishe neveliku kilkist pozicij signalu Ne vsi lokalno dekodovani kodi LDC ye lokalno testovanimi kodami LTC 14 i ne vsi voni ye lokalno koriguvalnimi kodami LCC 15 Napriklad LCC q zapitami mayut eksponencijnu mezhu dovzhini 16 17 todi yak LDC mozhut mati subeksponencialnu dovzhinu 18 19 Peremezhuvannyared nbsp Korotka ilyustraciya ideyi cherguvannya Peremezhuvannya shiroko vikoristovuyetsya v sistemah cifrovogo zv yazku ta zberigannya danih dlya pokrashennya produktivnosti kodiv pryamogo vipravlennya pomilok Bagato kanaliv zv yazku ne ye bezpam yatnimi pomilki zazvichaj vinikayut u viglyadi spleskiv a ne nezalezhno Yaksho kilkist pomilok u mezhah kodovogo slova perevishuye zdatnist kodu vipraviti pomilki vidnoviti pochatkove kodove slovo ne vdayetsya Peremezhuvannya virishuye cyu problemu shlyahom peretasovuvannya vihidnih simvoliv mizh kilkoma kodovimi slovami tim samim stvoryuyuchi bilsh rivnomirnij rozpodil pomilok 20 Tomu cherguvannya shiroko vikoristovuyetsya dlya vipravlennya spleskovih pomilok Analiz suchasnih iterovanih kodiv takih yak turbo kodi ta kodi LDPC zazvichaj ppripuskaye nezalezhnij rozpodil pomilok 21 Tomu sistemi yaki vikoristovuyut LDPC kodi zazvichaj vikoristovuyut dodatkove cherguvannya simvoliv u mezhah kodovogo slova 22 Dlya turbo kodiv peremezhuvach ye nevid yemnim komponentom i pravilne jogo proektuvannya maye virishalne znachennya dlya zabezpechennya visokoyi produktivnosti 20 23 Iterativnij algoritm dekoduvannya pracyuye najkrashe koli u faktornomu grafi yakij predstavlyaye dekoder vidsutni korotki cikli tomu peremezhuvach obirayetsya takim chinom shob uniknuti korotkih cikliv Konstrukciyi peremezhuvacha vklyuchayut pryamokutni abo rivnomirni peremezhuvachi shozhi na metod sho vikoristovuye propuskni faktori opisani vishe zgortkovi peremezhuvachi vipadkovi peremezhuvachi de peremezhuvach ye vidomoyu vipadkovoyu perestanovkoyu S vipadkovij peremezhuvach vipadkovi perestanovki z obmezhennyam sho zhodni vhidni simvoli rozstashovani ne menshe nizh na vidstani S ne mozhut opinitisya na takij samij vidstani v rezultati 24 kvadratichnij polinom perestanovok bez konfliktiv QPP 25 Priklad vikoristannya u standarti mobilnogo zv yazku 3GPP Long Term Evolution U sistemah bagatokanalnogo zv yazku peremezhuvannya mizh kanalami mozhe zastosovuvatisya dlya zabezpechennya chastotnoyi diversifikaciyi napriklad dlya zmenshennya vplivu chastotno selektivnogo zavmirannya abo vuzkosmugovih pereshkod 26 prikladred Peredacha bez cherguvannya Povidomlennya bez pomilok aaaabbbbccccddddeeeeffffgggg Peredacha z paketnoyu pomilkoyu aaaabbbbccc deeeeffffgggg Tut kozhna grupa odnakovih liter predstavlyaye 4 bitovij kod iz korekciyeyu odnobitovih pomilok Kodove slovo cccc zminene v odnomu biti ta mozhe buti vipravlene ale kodove slovo dddd zminene u troh bitah tomu abo ne mozhe buti dekodovane vzagali abo mozhe buti dekodovano nepravilno Z peremezhuvannyam Kodovi slova bez pomilok aaaabbbbccccddddeeeeffffgggg Peremezhovuyetsya abcdefgabcdefgabcdefgabcdefg Peredacha z paketnoyu pomilkoyu abcdefgabcd bcdefgabcdefg Otrimani kodovi slova pislya deperemezhuvannya aa abbbbccccdddde eef ffg gg U kozhnomu z kodovih sliv aaaa eeee ffff ta gggg zmineno lishe odin bit tomu kod iz korekciyeyu odnobitovih pomilok dekoduye vse pravilno Peredacha bez cherguvannya Originalne peredane rechennya ThisIsAnExampleOfInterleaving Otrimane rechennya z paketnoyu pomilkoyu ThisIs pleOfInterleaving Termin AnExample staye perevazhno nerozbirlivim i skladnim dlya vipravlennya Z peremezhuvannyam Peredane rechennya ThisIsAnExampleOfInterleaving Peredacha bez pomilok TIEpfeaghsxlIrv iAaenli snmOten Otrimane rechennya z paketnoyu pomilkoyu TIEpfe Irv iAaenli snmOten Otrimane rechennya pislya deperemezhuvannya T isI AnE amp eOfInterle vin Zhodne slovo ne vtrachayetsya povnistyu i propusheni literi mozhna vidnoviti z minimalnimi pripushennyami Nedoliki cherguvannyared Vikoristannya tehnik cherguvannya zbilshuye zagalnu zatrimku Ce pov yazano z tim sho ves blok maye buti otrimanij persh nizh paketi mozhut buti dekodovani 27 Takozh peremezhuvachi prihovuyut strukturu pomilok bez peremezhuvacha bilsh prosunuti algoritmi dekoduvannya mozhut vikoristovuvati strukturu pomilok dlya dosyagnennya bilsh nadijnoyi komunikaciyi nizh prostishij dekoder u poyednanni z peremezhuvachem Prikladom takogo algoritmu ye struktura nejronnoyi merezhi 28 Modelyuvannya povedinki kodiv korekciyi pomilok ECC u programnomu zabezpechenni ye poshirenoyu praktikoyu dlya proyektuvannya validaciyi ta vdoskonalennya ECC Novij standart bezdrotovogo zv yazku 5G vidkrivaye novi mozhlivosti dlya zastosuvannya programnih ECC ce hmarni merezhi radiodostupu C RAN u konteksti radio zv yazku z programno viznachenoyu arhitekturoyu SDR Ideya polyagaye v tomu shob bezposeredno vikoristovuvati programni ECC u komunikaciyah Napriklad u 5G programni ECC mozhut roztashovuvatisya v hmari a anteni pidklyuchatisya do cih obchislyuvalnih resursiv pidvishuyuchi takim chinom gnuchkist komunikacijnoyi merezhi ta v perspektivi pidvishuyuchi energoefektivnist sistemi U comu konteksti dostupni rizni Open source programni rishennya spisok nepovnij AFF3CT A Fast Forward Error Correction Toolbox povnij komunikacijnij lancyuzhok u C pidtrimuye bagato kodiv takih yak Turbo LDPC Polar tosho duzhe shvidkij i specializuyetsya na kanalnomu koduvanni mozhe vikoristovuvatisya yak programa dlya modelyuvannya abo yak biblioteka dlya SDR IT biblioteka C klasiv i funkcij dlya linijnoyi algebri chislovoyi optimizaciyi obrobki signaliv komunikacij ta statistiki OpenAir realizaciya na S specifikacij 3GPP sho stosuyutsya evolyucijnoyi merezhi paketnogo yadra Spisok kodiv dlya vipravlennya pomilokred Vidstan Kod 2 viyavlennya odniyeyi pomilki Parnist 3 vipravlennya odniyeyi pomilki Potrijne modulne rezervuvannya 3 vipravlennya odniyeyi pomilki idealnij Hemming takij yak Hemming 7 4 4 SECDED Rozshirenij Hemming 5 vipravlennya podvijnoyi pomilki 6 vipravlennya podvijnoyi potrijnoyi pomilki Kod Nordstroma Robinsona 7 vipravlennya troh pomilok idealnij dvijkovij kod Goleya 8 TECFED rozshirenij dvijkovij kod Goleya kodi AN Kod algebrayichnoyi geometriyi Kod BCH yakij mozhe buti rozroblenij dlya vipravlennya bud yakoyi dovilnoyi kilkosti pomilok na blok kodu Kod barkera yakij vikoristovuyetsya dlya radariv telemetriyi ultrazvuku Wi Fi mobilnih telefonnih merezh DSSS GPS tosho Kod Bergera Kod postijnoyi vagi Zgortkovij kod Kodi rozshirennya Kodi grup Kodi Goleya z yakih praktichnij interes stanovit dvijkovij kod Goleya Kod Goppi yakij vikoristovuyetsya v kriptosistemi McEliece Kod Adamara Kod Hagelbargera Kod Hemminga Kod na osnovi latinskogo kvadrata dlya nebilogo shumu poshirenij napriklad u shirokosmugovomu zv yazku cherez liniyi elektroperedach Leksikografichnij kod Linijne merezheve koduvannya tip kodu koriguvannya stirannya v merezhah zamist zv yazkiv tochka tochka Dovgij kod Kod perevirki parnosti z nizkoyu shilnistyu takozh vidomij yak kod Gallagera yak arhetip dlya kodiv rozridzhenih grafiv Kod LT yakij ye majzhe optimalnim kodom korekciyi stirannya bez shvidkosti kod Fountain m z n kodiv Kod Nordstroma Robinsona sho vikoristovuyetsya v geometriyi ta teoriyi grup 29 Onlajn kod majzhe optimalnij bezshvidkisnij kod dlya vipravlennya stirannya Polyarnij kod teoriya koduvannya Kod Raptor majzhe optimalnij bezshvidkisnij kod korekciyi stirannya Vipravlennya pomilok Rida Solomona Kod Rida Myullera Povtorno nakopichuvalnij kod Kodi povtorennya taki yak potrijne modulne rezervuvannya Spinalnij kod bezshvidkisnij nelinijnij kod zasnovanij na psevdovipadkovih hesh funkciyah 30 Kod Tornado majzhe optimalnij kod korekciyi stirannya ta poperednik kodiv Fountain Turbo kod Kod Uolsha Adamara Ciklichni perevirki nadlishkovosti CRC mozhut vipravlyati shonajbilshe 1 bitovi pomilki dlya povidomlen 2 n 1 1 displaystyle 2 n 1 1 nbsp bit dlya optimalnih generuyuchih polinomiv stupenya n displaystyle n nbsp div Mathematics of cyclic redundancy checks BitfiltersDivitsya takozhred Vibuhovij kod vipravlennya pomilok Shvidkist kodu Kodi stirannya Viyavlennya ta vipravlennya pomilok Kodi z vipravlennyam pomilok iz zvorotnim zv yazkom Linijnij kod Kvantova korekciya pomilok Dekoder m yakogo rishennyaPrimitkired Charles Wang Dean Sklar Diana Johnson Winter 2001 2002 Forward Error Correction Coding Crosslink The Aerospace Corporation 3 1 Arhiv originalu za 14 bereznya 2012 Procitovano 5 bereznya 2006 Charles Wang Dean Sklar Diana Johnson Winter 2001 2002 Forward Error Correction Coding Crosslink The Aerospace Corporation 3 1 Arhiv originalu za 14 bereznya 2012 Procitovano 5 bereznya 2006 How Forward Error Correcting Codes Work a b Maunder Robert 2016 Overview of Channel Coding Hamming Richard Wesley April 1950 Error Detecting and Error Correcting Codes Bell System Technical Journal USA AT amp T 29 2 147 160 doi 10 1002 j 1538 7305 1950 tb00463 x hdl 10945 46756 S2CID 61141773 Hamming codes for NAND flash memory devices Arhivovano 21 serpnya 2016 u Wayback Machine EE Times Asia Apparently based on Micron Technical Note TN 29 08 Hamming Codes for NAND Flash Memory Devices Arhivovano 29 serpnya 2017 u Wayback Machine 2005 Both say The Hamming algorithm is an industry accepted method for error detection and correction in many SLC NAND flash based applications a b What Types of ECC Should Be Used on Flash Memory Application note Spansion 2011 Both Reed Solomon algorithm and BCH algorithm are common ECC choices for MLC NAND flash Hamming based block codes are the most commonly used ECC for SLC both Reed Solomon and BCH are able to handle multiple errors and are widely used on MLC flash Jim Cooke August 2007 The Inconvenient Truths of NAND Flash Memory PDF s 28 For SLC a code with a correction threshold of 1 is sufficient t 4 required for MLC A Simple Scheme for Belief Propagation Decoding of BCH and RS Codes in Multimedia Transmissions International Journal of Digital Multimedia Broadcasting 2008 1 12 2008 doi 10 1155 2008 957846 Shah Gaurav 2006 Keyboards and covert channels USENIX Procitovano 20 grudnya 2018 Tse David Viswanath Pramod 2005 Fundamentals of Wireless Communication Cambridge University Press UK Shannon C E 1948 A mathematical theory of communication PDF Bell System Technical Journal 27 3 4 379 423 amp 623 656 doi 10 1002 j 1538 7305 1948 tb01338 x a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite journal title Shablon Cite journal cite journal a hdl access vimagaye hdl dovidka ISBN 978 1 4799 3083 8 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite conference title Shablon Cite conference cite conference a Propushenij abo porozhnij title dovidka IEEE Standard section 20 3 11 6 802 11n 2009 Arhivovano 3 lyutogo 2013 u Wayback Machine IEEE 29 October 2009 accessed 21 March 2011 Kaufman Tali Viderman Michael Locally Testable vs Locally Decodable Codes Brubaker Ben 9 sichnya 2024 Magical Error Correction Scheme Proved Inherently Inefficient Quanta Magazine angl Procitovano 9 sichnya 2024 Kothari Pravesh K Manohar Peter 2023 An Exponential Lower Bound for Linear 3 Query Locally Correctable Codes arXiv 2311 00558 cs CC Kerenidis Iordanis de Wolf Ronald 9 chervnya 2003 Exponential lower bound for 2 query locally decodable codes via a quantum argument Proceedings of the thirty fifth annual ACM symposium on Theory of computing angl ACM s 106 115 arXiv quant ph 0208062 doi 10 1145 780542 780560 ISBN 978 1 58113 674 6 Yekhanin Sergey February 2008 Towards 3 query locally decodable codes of subexponential length Journal of the ACM angl 55 1 1 16 doi 10 1145 1326554 1326555 ISSN 0004 5411 Efremenko Klim 31 travnya 2009 3 query locally decodable codes of subexponential length Proceedings of the forty first annual ACM symposium on Theory of computing angl ACM s 39 44 doi 10 1145 1536414 1536422 ISBN 978 1 60558 506 2 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite book title Shablon Cite book cite book a Proignorovano journal dovidka a b Vucetic B Yuan J 2000 Turbo codes principles and applications Springer Verlag ISBN 978 0 7923 7868 6 Practical Loss Resilient Codes Proc 29th Annual Association for Computing Machinery ACM Symposium on Theory of Computation 1997 Digital Video Broadcast DVB Second generation framing structure channel coding and modulation systems for Broadcasting Interactive Services News Gathering and other satellite broadband applications DVB S2 En 302 307 ETSI V1 2 1 April 2009 Andrews K S Divsalar D Dolinar S Hamkins J Jones C R Pollara F November 2007 The Development of Turbo and LDPC Codes for Deep Space Applications Proceedings of the IEEE 95 11 2142 2156 doi 10 1109 JPROC 2007 905132 Dolinar S Divsalar D 15 serpnya 1995 Weight Distributions for Turbo Codes Using Random and Nonrandom Permutations TDA Progress Report 122 42 122 Bibcode 1995TDAPR 122 56D CiteSeerX 10 1 1 105 6640 Takeshita Oscar 2006 Permutation Polynomial Interleavers An Algebraic Geometric Perspective IEEE Transactions on Information Theory 53 6 2116 2132 arXiv cs 0601048 Bibcode 2006cs 1048T doi 10 1109 TIT 2007 896870 Digital Video Broadcast DVB Frame structure channel coding and modulation for a second generation digital terrestrial television broadcasting system DVB T2 En 302 755 ETSI V1 1 1 September 2009 Techie 3 chervnya 2010 Explaining Interleaving W3 Techie Blog Procitovano 3 chervnya 2010 Krastanov Stefan Jiang Liang 8 veresnya 2017 Deep Neural Network Probabilistic Decoder for Stabilizer Codes Scientific Reports 7 1 11003 arXiv 1705 09334 Bibcode 2017NatSR 711003K doi 10 1038 s41598 017 11266 1 PMC 5591216 PMID 28887480 Nordstrom A W Robinson J P 1967 An optimum nonlinear code Information and Control 11 5 6 613 616 doi 10 1016 S0019 9958 67 90835 2 ISBN 9781450310598 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite conference title Shablon Cite conference cite conference a Propushenij abo porozhnij title dovidka Podalshe chitannyared MacWilliams Florence Jessiem Sloane Neil James Alexander 2007 The Theory of Error Correcting Codes North Holland Mathematical Library T 16 vid digital print of 12th impression 1st AT amp T Shannon Labs Florham Park New Jersey USA North Holland Elsevier BV ISBN 978 0 444 85193 2 LCCN 76 41296 xxii 762 6 pages Clark Jr George C Cain J Bibb 1981 Error Correction Coding for Digital Communications New York USA Plenum Press ISBN 0 306 40615 2 Arazi Benjamin 1987 Swetman Herb red A Commonsense Approach to the Theory of Error Correcting Codes MIT Press Series in Computer Systems T 10 vid 1 Massachusetts Institute of Technology ISBN 0 262 01098 4 LCCN 87 21889 x 2 208 4 pages Wicker Stephen B 1995 Error Control Systems for Digital Communication and Storage Englewood Cliffs New Jersey USA Prentice Hall ISBN 0 13 200809 2 Wilson Stephen G 1996 Digital Modulation and Coding Englewood Cliffs New Jersey USA Prentice Hall ISBN 0 13 210071 1 Error Correction Code in Single Level Cell NAND Flash memories 2007 02 16 Error Correction Code in NAND Flash memories 2004 11 29 Observations on Errors Corrections amp Trust of Dependent Systems by James Hamilton 2012 02 26 Sphere Packings Lattices and Groups By J H Conway Neil James Alexander Sloane Springer Science amp Business Media 2013 03 09 Mathematics 682 pages Zovnishni posilannyared Morelos Zaragoza Robert 2004 The Correcting Codes ECC Page Procitovano 5 bereznya 2006 error correction zoo Database of error correcting codes lpdec library for LP decoding and related things Python Otrimano z https uk wikipedia org wiki Kod z vipravlyannyam pomilok