Научная статья на тему 'О применении декодеров кодов, исправляющих ошибки, в каналах со стираниями'

О применении декодеров кодов, исправляющих ошибки, в каналах со стираниями Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
5
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
каналы со стираниями / помехоустойчивый код / алгебраический код / декодер кода исправления ошибок / алгоритм исправления стираний

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Е Е. Айдаркин, Н С. Могилевская

Во всех каналах передачи данных возникают непреднамеренных ошибки. Стандартным способом борьбы с ними является использование помехоустойчивых кодеков, основанных на применении алгебраических кодов исправления ошибок. Существуют каналы передачи, в которых возникает особый вид ошибок – стирания, т.е. разновидность ошибки, при которой известно местоположение ошибки, но не известна ее величина. В теории кодирования утверждается, что методы борьбы с ошибками могут быть применены для защиты данных от стираний, однако, эти утверждения не сопровождаются подробностями. Данная работа восполняет этот пробел. Построены алгоритмы исправления стираний с помощью произвольных декодеров для кодов, корректирующих ошибки. Сформулированы леммы о корректности построенных алгоритмов, получены некоторые оценки вероятности успешного декодирования.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Е Е. Айдаркин, Н С. Могилевская

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «О применении декодеров кодов, исправляющих ошибки, в каналах со стираниями»

О применении декодеров кодов, исправляющих ошибки, в каналах со

стираниями

Е.Е. Айдаркин, Н.С. Могилевская Южный федеральный университет, Ростов-на-Дону

Аннотация: Во всех каналах передачи данных возникают непреднамеренных ошибки. Стандартным способом борьбы с ними является использование помехоустойчивых кодеков, основанных на применении алгебраических кодов исправления ошибок. Существуют каналы передачи, в которых возникает особый вид ошибок - стирания, т.е. разновидность ошибки, при которой известно местоположение ошибки, но не известна ее величина. В теории кодирования утверждается, что методы борьбы с ошибками могут быть применены для защиты данных от стираний, однако, эти утверждения не сопровождаются подробностями. Данная работа восполняет этот пробел. Построены алгоритмы исправления стираний с помощью произвольных декодеров для кодов, корректирующих ошибки. Сформулированы леммы о корректности построенных алгоритмов, получены некоторые оценки вероятности успешного декодирования. Ключевые слова: каналы со стираниями, помехоустойчивый код, алгебраический код, декодер кода исправления ошибок, алгоритм исправления стираний.

Введение

Во всех системах цифровой связи для защиты передаваемых данных от непреднамеренных ошибок используются специальные кодеки, основанные на применении алгебраических помехоустойчивых кодов (см., например, [13, 9-11], стандарты передачи данных CCSDS, DVB-H/T/S, IEEE802.16). Упрощенная схема передачи данных по таким системам представлена на рисунке 1.

ис ПС

1 1

кк дк

> г J 1

Линия Связи

Ошибки

Рис. 1. - Схема передачи данных по каналу с защитой от стираний

Данные из источника сообщений (ИС) поступают в кодер канала (КК), где они кодируются некоторым кодом С, затем закодированные данные проходят через линию связи, где могут быть повреждены ошибками. Искаженные закодированные данные поступают на вход декодера канала (ДК), который в процессе декодирования данных пытается исправить ошибки. Успешность работы ДК зависит от числа и структуры ошибок, повредивших передаваемые данные. Результат работы ДК поступает к получателю сообщений (ПС).

Обычно при обсуждении помехоустойчивой защиты систем связи говорят об аддитивных независимых ошибках, т.е. предполагается, что в потоке передаваемых данных значения некоторых символов изменяются. В этом случае декодеру канала не известны позиции ошибочных символов, а в случае недвоичных каналов и величины ошибок. В ряде работ рассматриваются каналы связи, в которых происходит особый тип ошибок -стирания [4-5]. Стирание - это разновидность ошибки, при которой известно местоположение ошибки, но неизвестна ее величина. Другими словами, в потоке данных, заданном над некоторым алфавитом Е появляется специальный символ а(^Е), который означает, что значение данного символа потока данных неизвестно. Очевидно, что задача исправления стираний легче задачи исправления ошибок, так как позиции стираний известны.

Теория алгебраических помехоустойчивых кодов, корректирующих ошибки, хорошо разработана и продолжает развиваться. Возможность коррекции ошибок основана на внесении избыточности в исходные данные. В некоторых работах по теории кодирования (см., например, [2, 6-9]) говорится, что методы борьбы с ошибками могут быть применены для защиты данных от стираний, однако, эти утверждения не сопровождаются подробностями.

М Инженерный вестник Дона, №12 (2023) ivdon.ru/ru/magazine/arcliive/nl2y2023/8861

Целью данной работы является разработка алгоритмов исправления стираний в данных, закодированных произвольным алгебраическим кодом С исправления ошибок. Разрабатываемые алгоритмы исправляют стирания с использованием штатных декодеров используемого кода С.

Универсальный способ декодирования кодовых слов со стираниями

Рассмотрим произвольный блочный [п,к,й]ч-код С, где п - длина кода, к - его размерность, й - минимальное кодовое расстояние, а алфавит кода отождествляется с полем Галуа ^ мощности ц. Известные теоретические оценки [2, 7, 9, 11] указывают на способности произвольного [п, к, -кода С по исправлению в одном кодовом слове ошибок:

£ <

и стираний:

й-1

(1)

р<а-\. (2)

Все известные декодеры помехоустойчивых кодов могут быть разделены на две группы: универсальные и специальные алгоритмы декодирования. Малочисленная группа универсальных декодеров состоит из алгоритмов, которые могут быть применены к произвольному помехоустойчивому коду определенного типа, специальные -разрабатываются для конкретных кодов, и даже, возможно, к кодам с ограниченным набором параметров. Универсальные декодеры проигрывают специальным по скорости работы и требованиям к используемой памяти устройств. Такие декодеры практически никогда не применяются в реальных системах связи.

Среди группы универсальных декодеров особую роль играет декодер по минимуму расстояния Хемминга [6, 10]. Этот декодер зачастую используется в качестве эталона для оценки корректирующих способностей

специальных декодеров. Для того, чтобы этот декодер мог быть применен для исправления стираний, требуются минимальные изменения. Декодер такого типа может быть применен и без изменений, но изменения могут сократить поиск похожих слов, а, следовательно, улучшить скорость работы. Приведем измененный алгоритм, учитывающий наличие ошибок только типа стирание.

Алгоритм 1. Исправление стираний по минимуму расстояния Хемминга.

Для запуска алгоритма декодирования рассматриваемого кода -кода необходимо предварительно создать список всех кодовых

слов С1 = {с1,с2, ...,сп) еРЦ1, ¿ = 1, ц1. Очевидный способ его создания состоит в последовательном умножении всех возможных информационных слов на порождающую матрицу кода.

Вход: список Т, пришедшее по каналу кодовое слово со стираниями 1 Е Р™*, где - это множество векторов длины п, заданных над алфавитом Рц* = { а 1, где а - символ стирания.

Выход: сообщение об ошибке декодирования или такое кодовое слово , что если , то для всех .

Шаг 1. Построить множество М = {¡11)¡12)...}, содержащее слова таблицы , чьи координаты совпадают со всеми нестертыми координатами .

Шаг 2. Если \ М \ = 1 , то подать на выход алгоритма с = ¡1, иначе вернуть ошибку декодирования. •

Замечание 1.1. Алгоритм не оценивает превышает ли число стираний в векторе Ь границу (2) в явном виде. Неявно эта проверка происходит при оценке мощности множества на шаге 2. Введение проверки на число стираний, повредивших вектор , сократит время работы алгоритма, но может ухудшить результативность алгоритма, связанную с

неравномерностью распределения кодовых слов в пространстве векторов длины п.

Замечание 1.2. Применение декодера по минимуму расстояния Хемминга в случае стирающего канала не усложняет оригинальный алгоритм. Однако, несмотря на свою простоту этот алгоритм не применим в реальных системах связи: с ростом длины п кодовых слов растет число цк строк таблицы Т, и, как следствие, сложность поиска в ней. Например, для двоичного кода с п = 1024 число кодовых слов в таблице Т составит Ь = 21024 « 10341.

Применение специализированных декодеров, исправляющих ошибки, в стирающем канале

Рассмотрим произвольный помехоустойчивый кодек борьбы с ошибками, основанный на применении блочного [п,к,й]ч-кода С, и состоящий из алгоритмов его кодирования и декодирования. Для определенности будем считать, что декодер возвращает кодовые слова. Построим несколько алгоритмов исправления стираний, зависящих от числа стираний, повредивших кодовое слово, и мощности алфавита кода. Если не вносить изменения в имеющиеся алгоритмы кодирования и декодирования данного [п,к,й]ч-кода С, то естественным способом применить данный кодек для исправления стираний состоит в том, чтобы заменить стирания в полученных кодовых словах на случайные символы из ^.

Рассмотрим случай применения [п, к, -кода С, где ц > 2, и построим два алгоритма, применение которых зависит от числа р стираний, повредивших кодовое слово. Если р <1 (см. (1)), то процедура исправления стираний довольно проста.

Алгоритм 2. Коррекция стираний, число которых не превосходит половины кодового расстояния.

М Инженерный вестник Дона, №12 (2023) ivdon.ru/ru/magazine/arcliive/nl2y2023/8861

Вход: кодовое слово b = (b 1,.. .,bn)EF^*, где F^* = Fqu{а], а -символ стирания, р - число стираний в b, декодер Dес [п, к, dd]б?-кода С.

Выход: сообщение об ошибке декодирования или такое кодовое слово с Е С ( , что если b2 ^ а, то b2 = с2 для всех i = 1 , п.

Шаг 1. Если р > t (см. (1)), то выдать сообщение об ошибке декодирования и завершить работу алгоритма.

Шаг 2. Создать вспомогательный вектор Г = (0,0,..., 0) Е F£. В цикле по i = 1, п если b2 ^ а, то r2 •• = b2.

Шаг 3. Подать на выход алгоритма с = D е с (Г). •

Построенный алгоритм корректен в силу того, что кодовое слово, поступающее на вход алгоритма Dес, повреждено не более чем t ошибками. Такое число ошибок гарантировано исправляется декодером кода С.

Если для числа стираний, повредивших кодовое слово справедливо р < р (см. (2)), то для их исправления можно использовать алгоритм 3.

Алгоритм 3. Исправление стираний, число которых достигает р.

Вход: кодовое слово b = (b1,.. .,bn) Е FП*, поврежденное стираниями; р - число стираний в Ь, декодер Dес [п, к, dd]б?-кода С.

Выход: сообщение об ошибке декодирования или такое кодовое слово: , что если , то для всех .

Шаг 1. Если р > d — 1 (см. (2)), то выдать сообщение об ошибке декодирования и завершить работу алгоритма.

Шаг 2. Номера i позиций Ь, таких что b2 = а, упорядочить по возрастанию и поместить во множество

Шаг 3. Построить все возможные последовательности символов из длины : .

Шаг 4. Для каждого 12 = (I2, 12,.■ -,1р) Е L выполнить:

Шаг 4.1. построить вектор г? = (г1,г2>,...^П^ЕРП, где во все коэффициенты , для которых , помещены элементы в их

естественном порядке, а в коэффициенты , для которых , помещены элементы входного вектора .

Шаг 4.2. Используя стандартный декодер Бес() кода С, декодировать Ъ? Е РЦП: = (А.'2?.'. ■ ->гп) = Бес(Ъ?). Если для любого к( £ е): г1к = Ьк, то завершить алгоритм с результатом 2?, иначе переход на шаг 4. •

Максимальное число стираний, которыми может быть поврежден входной кодовый вектор (1 — 1 (см. (2)). Из теории помехоустойчивого кодирования известно (см., например, [10]), что для пары любых кодовых слов 11, 12 произвольного [п,к,((]ц-кода С выполняется: (( (с1,12) > (( , где (() - функция, определяющая расстояние Хемминга между ее аргументами. Таким образом, на шаге 4.2 во сравнения позиций восстановленного вектора с неповрежденными позициями входного вектора происходит проверка корректности восстановления . Если и отличаются хотя бы в одном нестертом коэффициенте, то - ошибочно восстановленный вектор, и алгоритм продолжает свою работу. Так как в алгоритме испытываются все возможные варианты заполнения стертый позиций элементами , то, очевидно, что верный вариант будет найден в ходе работы алгоритма, что обеспечивает корректность алгоритма.

Оценим количество итераций алгоритма 3, необходимых для успешного декодирования кодового слова [п,к,(]ц-кода С в алгоритме 3. Вероятность получить верный ответ на -той итерации шага 4:

е= е - г (4 — 1) е - 1*С°е - ?' (3)

где е - количество стираний ( t < е < ( — 1), t определяется формулой (1). Тогда вероятность того, что алгоритм успешно восстанавливает кодовое слово после -ой итерации определяется равенством:

р = 1 — пи 1 (1 — рд .

Утверждение. Равенство (3) корректно.

Доказательство. Вероятность успешного декодирования задается отношением числа хороших вариантов комбинаций подстановки к общему числу всех возможных подстановок в стертые позиции кодового слова (см. шаг 3 алгоритма). Хорошими комбинациями подстановки считаем те, которые позволяют алгоритму найти искомое кодовое слово и закончить работу.

Рассмотрим знаменатель (3). - это число возможных вариантов заполнения е стираний элементами алфавита Рц. Если алгоритм выполняет _]-тую итерацию 4 шага, то это означает, что на предыдущих итерациях искомое кодовое слово найдено не было. Следовательно, общее количество оставшихся вариантов задается выражением , где - номер

итерации, при этом нумерация итераций начинается с единицы.

Обратимся к числителю (3), в нем вычисляется количество хороших исходов. В таких исходах подстановка I? (шаг 4 алгоритма) содержит от (е — 1) до е позиций с верно «угаданными» значениями. Рассмотрим, как организованы слагаемые суммы в (3). На произвольной позиции вектора может находиться различных значений. Если угаданы позиций вектора, то остальные позиций неверны, и существует

вариантов заполнения этих позиций. Существует различных способов расположить неверно угаданные позиции в . •

Пример 1. Рассмотрим [2ОД 0 ,7]3-код. Вероятности успешного декодирования кодового слова, поврежденного 6 стираниями (см. (2)), с помощью алгоритма 3 представлены в таблице 1 . Общее количество комбинаций подстановок на стертые позиции составляет 729.

М Инженерный вестник Дона, №12 (2023) ivdon.ru/ru/magazine/arcliive/nl2y2023/8861

Таблица 1. Вероятности успешного декодирования алгоритмом 3 [2ОД 0, 7]з- кода С.

№ итерации 1 2 3 4 5 6 7 8 9 10 11

Вероятность декодирования 0.32 0.54 0.69 0.79 0.86 0.9 0.93 0.96 0.97 0.98 0.99

Пример 2. Рассмотрим [31,17,1 0 ]9-код. Вероятности успешного декодирования кодового слова, поврежденного 9 стираниями (см. (2)), с помощью алгоритма 3 представлены в таблице 1. Общее количество возможных вариантов заполнения стертых позиций составляет 387 420 489.

Таблица 2. Вероятности успешного декодирования алгоритмом 3 [31,17,1 0 ]9- кода С.

№ итерации 1 2 3 4 5 57 114 287

Вероятность декодирования 0.012 0.024 0.036 0.048 0.059 0.501 0.751 0.97

Алгоритм 3 может быть улучшен для случая двоичных кодов.

Алгоритм 4. Исправление стираний в двоичных данных.

Вход: кодовое слово Ь = ( Ь±,..., Ьп) Е Р2Щ*, искаженное стираниями; р -число стираний в , декодер -кода .

Выход: сообщение об ошибке декодирования или такое кодовое слово с Е С (РП), что если Ь2 ^ а, то Ь2 = с2 для всех 1 = 1 , п.

Шаг 1. Если р > й — 1 , то выдать сообщение об ошибке декодирования и завершить работу алгоритма.

Шаг 2. Позиций стертых символов записать в список е = ••• > ер}-

Шаг 3. г • = Ь, во все Е г,1 Е е, записать случайные значения из Р2.

Шаг 4. Вычислить т. = (г± ,... ,гп) = О е с (Г) (Е РП).

Шаг 5. Если для всех к, к £ е: гк = Ьк, то завершить алгоритм и вернуть в качестве результата. Иначе, инвертировать все позиции вектора Ъ Е РП, номера которых лежат в множестве е. Перейти на шаг 4. •

Некоторые замечания о таком способе декодирования приведены, например, в [8]. Сформулируем и докажем лемму о корректности алгоритма 4.

Лемма. Пусть С - некоторый алгебраический помехоустойчивый [п,к,сС] 2-код, гарантированно исправляющий t ошибок (см. (1)) в произвольном кодовом слове. Пусть на вход алгоритма 4 поступает -

кодовое слово из , поврежденное стираниями, где , тогда

алгоритм выдает в результате своей работы кодовое слово , которое совпадает с на всех нестертых позициях.

Доказательство. На шаге 1 алгоритм прекращает свою работу, если число стираний, повредивших входной вектор, превосходит границу (2), иначе алгоритм переходит на следующий шаг. Рассмотрим случай р = С — 1 . Если следующие рассуждения верны для этого равенства, то они будут верны и для случаев . На шаге 3 во все стертые позиции входного

вектора помещаются случайные элементы поля . Пусть , из

них оказались неверно «угаданными» значениями, тогда значений

окажутся «угаданы», т.е. совпадать с соответствующими значениями исходного кодового вектора. Очевидно, что справедливо неравенство

. Если , то алгоритм успешно закончит свою

работу за один проход шагов 4-5, иначе, если и < р/ 2, то алгоритм успешно закончит свою работу за второй проход шагов 4-5.

Проверка корректности декодирования и принятие решения о необходимости второй итерации шага 4 происходит на шаге 5. Корректность шага 5 основана на свойстве минимального кодового расстояния, а именно,

неверно декодированное слово отличается не менее, чем в одной позиции от слова, принятого по каналу. •

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Обсуждение построенных алгоритмов Построенные алгоритмы 1-4 позволяют применять коды исправления ошибок, а также спроектированные для них кодеры и декодеры для исправления стираний. Эти алгоритмы можно рассматривать, как надстройку над произвольными декодерами кодов исправления ошибок (см. рис. 2).

ис ПС

1 1 1

кк Надстройка для стираний

ДК

л

V_

Линия Свнэи 5S

Стирания

Рис. 1. - Схема передачи данных по каналу с защитой от ошибок в случае стираний

Можно понизить сложность алгоритмов 3-4, если используемые внутри них декодеры Dec О используют какие-либо методы проверки принадлежности произвольного слова к коду (например, через вычисление синдрома [10, 11]). В этом случае можно не проводить полный процесс декодирования на каждой итерации цикла, а сразу отбрасывать слова, не принадлежащие рассматриваемому коду.

Построенные алгоритмы могут быть полезны, так как существует большое количество декодеров кодов, исправляющих ошибки, реализованных аппаратно, и, используя построенные алгоритмы, можно адаптировать их применение для случая стирающих каналов. Построенные

алгоритмы могут выполнять несколько запусков используемых декодеров, что отрицательно влияет на скорость работы алгоритмов. Однако необходимо отметить, что в алгоритмах 2-4 проводится несколько независимых друг от друга итераций декодирования, следовательно они могут быть распараллелены. Более того, естественным кажется применять алгоритмы 2 и 3 совместно, переключаясь между ними в зависимости от числа стираний, поразивших кодовое слово. Основной недостаток построенных алгоритмов - то, что они никаким образом не используют знание номеров стертых позиций.

Заключение

В работе построены алгоритмы исправления стираний, в основе которых лежит использование декодеров кодов, исправляющих ошибки. При этом не предполагается внесение каких-либо изменений в используемые декодеры, что означает, что построенные алгоритмы могут быть применены в ситуациях, когда необходимо исправлять стирания, но в наличии нет специализированных декодеров для стираний или их аппаратных реализаций. В работе показана корректность построенных алгоритмов, получены некоторые оценки. Необходимо отметить, что исходя из описанных недостатков построенных алгоритмов, можно сделать вывод, что следует развивать специальные методы, ориентированные на исправления стираний, например, [4-5]. Такие методы лишены описанных выше недостатков и могут обладать более простыми алгоритмами кодирования и декодирования.

Литература

1. Кларк Дж., Кейн Дж. Кодирование с исправлением ошибок в системах цифровой связи; пер. с англ. под ред. Б.С. Цыбакова // М.: Радио и связь, 1987. 392 с.

2. Рацеев С.М., Череватенко С.М. Об алгоритмах декодирования обобщенных кодов Рида-Соломона на случай ошибок и стираний // Вестник Самарского университета. Естественнонаучная серия. 2021. Т. 27 №2. С. 715.

3. Костюков А. С., Башкиров А. В., Никитин Л. Н., Бобылкин И. С., Макаров О. Ю. Помехоустойчивое кодирование в современных форматах связи // Вестник ВГТУ. 2019. №2. С. 132-139.

4. Айдаркин Е. Е., Могилевская Н. С. Экспериментальное исследование корректирующей способности матричного метода равновесных столбцов защиты данных от стираний // Компьютерная оптика. 2022. Т. 46. № 5. С. 840-847. DOI 10.18287/2412-6179-CO-1122. - EDN XVMPHM.

5. Luby M., Mitzenmacher M., Shokrollahi M. A., Spielman D. Efficient erasure correcting codes // IEEE Transactions Information Theory. 2001. Vol. 47, pp. 569-584.

6. Колесник В. Д. Кодирование при передаче и хранении информации (Алгебраическая теория блоковых кодов) : учебное пособие // М.: Высшая школа. 2009. 549 c. ISBN 978-5-06-005917-5.

7. Питерсон У., Уэлдон Э. Коды, исправляющие ошибки // М.: Мир, 1976. 594 с.

8. Tomlinson M., Tjhai C. J., Ambroze M. A., Ahmed M., Jibril M. Error-correction coding and decoding: bounds, codes, decoders, analysis and applications // Springer International Publishing. 2017. 522 p.

9. Вернер М. Основы кодирования. Учебник для ВУЗов // Мир программирования. М.: Техносфера, 2006. ISBN: 5-94836-019-9.

10. Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение // М.: Техносфера. 2006. 320 с.

11. Деундяк В.М., Маевский А.Э., Могилевская Н.С. Методы помехоустойчивой защиты данных // Ростов-на-Дону: Издательство Южного федерального университета. 2014. 309 с.

References

1. Clark J., Kane J. Codirovanie s ispravleniem oshibok v sistemah cifrovoy svyazy; per. s angl. pod red. B.S. Cybankova [Error-correction coding for digital communiations]. M.: Radio I Svyaz. 1987. 392 p.

2. Ratseev S.M., Cherevatenko O.I. Vestnik Samarskogo Universiteta. Estestvennonaunchnaya seria. 2021. T. 27, №2. Pp. 7-15.

3. Kostyukov A.S., Bashkyrov A.V., Nikitin L.N., Bobylkin I.S., Makarov O.U. Vestnik VGTU. 2019. №2. Pp. 132 - 139.

4. Aydarkin E.E., Mogilevskaya N.S. Computernaya optika. 2022. T. 46. № 5. Pp. 840-847. DOI 10.18287/2412-6179-C0-1122. EDN XVMPHM.

5. Luby M., Mitzenmacher M., Shokrollahi A., Spielman D. IEEE Transactions Information Theory. 2001. Vol. 47. Pp. 569-584.

6. Kolesnik V.D. Kodirovanie pri peredache I chranenii informatsii (Algebraicheskaya teoria blockovyh codov) : uchebnoe posobie [Coding in the transmission and storage of information (Algebraic theory of block codes): study guide] M.: Vyshaya Shkola. 2009. 549 p. ISBN 978-5-06-005917-5.

7. Piterson Y., Yeldon A. Cod'y, ispravlayushie oshibki [Error-correcting codes] M.: Mir. 1976. 594 p.

8. Tomlinson M., Tjhai C. J., Ambroze M. A., Ahmed M., Jibril M. Error-correction coding and decoding: bounds, codes, decoders, analysis and applications. Springer International Publishing. 2017. Pp. 522.

9. Verner M. Osnovy kodirovanya. Uchebnik dlya VUZov. [Coding Basics. Textbook for universities] Mir programmirovanya. M.: Tehnosfera. 2006. ISBN: 5-94836-019-9.

10. Morelos-Saragosa R. Iskusstvo pomehoustoichivogo kodirovania. Metody, algoritmy, primenenie. [The art of error-correcting codes. Methods, algorithms, applications.] M.: Tehnosfera. 2006. 320 p.

11. Deundyak V.M., Maevskiy A.E., Mogilevskaya N.S. Metody pomehoustoychivoy zachity dannykh [Methods of noise-resistant data protection]. Rostov-na-Donu: Izdatelstvo Uznogo federal'nogo universiteta. 2014. 309 p.

i Надоели баннеры? Вы всегда можете отключить рекламу.