ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ, каф. Информационных Систем В.Д.КОЛЕСНИК УЧЕБНОЕ ПОСОБИЕ ПО КУРСУ «КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ СООБЩЕНИЙ (Алгебраическая теория блоковых кодов)» Глава 1. Основные принципы кодирования и декодирования при передаче сообщений Санкт-Петербург 2005-2006 Содержание: Предисловие Гл.1 Основные принципы кодирования и декодирования при передаче сообщений §1.1. Блоковое и неблоковое кодирование сообщений 1.1.1 Блоковое кодирование 1.1.2 Неблоковое кодирование §1.2 Математические модели каналов связи §1.3 Основные принципы декодирования 1.3.1 Декодирование по максимуму правдоподобия (МП) 1.3.2 Декодирование по максимуму апостериорной вероятности (МАВ) 1.3.3 Декодирование по минимуму расстояния Хэмминга (МРХ) 1.3.4 Декодирование с помощью шаров Хемминга §1.4 Объем шара Хэмминга 1.4.1 Асимптотика числа точек в шаре Хэмминга §1.5 Способность кода обнаруживать и исправлять ошибки §1.6 Границы для минимального расстояния 1.6.1 Граница Хемминга (граница плотной упаковки) 1.6.2 Асимптотическая форма границы плотной упаковки 1.6.3 Граница Варшамова-Гилберта 1.6.4 Асимптотическая форма границы Варшамова-Гилберта 1.6.5 Граница Бассалыго-Элайеса Предисловие Сегодня трудно представить себе инженера в области цифровых систем, не знакомого с кодами, обнаруживающими и исправляющими ошибки. Защита от ошибок с помощью таких кодов используется в системах передачи сообщений по линиям связи, в оперативной памяти, в компакт дисках, в магнитных и оптических накопителях данных, в коллективных сетях, в которых абоненты могут создавать взаимные помехи, и т.д. История теории кодирования восходит к знаменитой статье Клода Шеннона (1948г.) «Математическая теория связи». В этой статье была показана принципиальная возможность сколь угодно надежной передачи цифровых сообщений по каналам с шумом при условии, что передается некоторое число избыточных сообщений, причем это число должно быть связано с основной характеристикой канала – его пропускной способностью. Первый класс кодов, для которых была разработана простая техническая реализация кодирования-декодирования, был предложен Р.Хеммингом (1950 г.). Позже различными авторами были найдены более эффективные коды. Наиболее интересными с точки зрения реализации являются линейные и линейные циклические коды. Данное пособие в основном посвящено теоретическим основам кодирования и декодирования для таких кодов. Математической основой является линейная алгебра и конечные поля. Целью данных методических указаний является помощь студентам при подготовке к экзамену и написанию курсового проекта по предмету «Кодирование и Декодирование Сообщений». Автор приносит благодарность студентам Анастасии Макаровой и Павлу Семенову, которые взяли на себя тяжелый труд записи лекций и активно участвовали в подготовке некоторых разделов настоящего пособия к публикации. Гл.1. Основные принципы кодирования и декодирования при передаче сообщений §1.1 Блоковое и неблоковое кодирование сообщений Мы начнем с некоторых простых определений и со свойств расстояния Хемминга. Пусть X – некоторое множество, состоящее из q элементов. Будем называть это множество кодовым алфавитом. Всякую последовательность x = ( x1 ,..., x n ) , образованную символами (буквами) алфавита Х мы будем называть словом над алфавитом Х, при этом число n называется длиной слова. Через X n мы будем обозначать множество всех слов с длиной n. Очевидно, что число таких слов | X n | (мощность множества X n ) равна q n . Пусть х и у – два слова из X n . Расстоянием Хемминга d(x,y) между х и у называется число позиций, в которых эти два слова различаются. Например, для Х={0,1,2}, х= (1 0 2 1) и у=(0 2 1 1) имеем d(x,y)=3. Очевидным свойством расстояния Хемминга является свойство аддитивности, согласно которому расстояние между парой последовательностей можно вычислить как сумму расстояний между их подпоследовательностями. Например, если x = ( x 1 , x 2 ) и y = ( y 1 , y 2 ) , то d ( x, y ) = d ( x 1 , y 1 ) + d ( x 2 , y 2 ) при условии, что подпоследовательности ( x i , y i ) имеют одинаковые длины. Расстояние Хэмминга, как и любая другая функция, которая определяется как расстояние, обладает следующими характеристическими свойствами: 1) d(x,y) ≥ 0; d(x,y) = 0 тогда и только тогда, когда x = y (свойство неотрицательности) ; 2) d(x,y) = d(y,x) (свойство симметричности) ; 3) для любых x,y,z ∈ X n выполняется следующее неравенство: d(x,y) ≤ d(x,z) + d(y,z) (неравенство треугольника); Первые два свойства очевидны. Докажем последнее свойство. Доказательство: Пусть , x = ( x1 ,..., x n ) , y = ( y1 ,..., y n ) , z = ( z1 ,..., z n ) – некоторые три последовательности из X n . Воспользуемся свойством аддитивности: n ⎧1, при xi ≠ yi , d(x,y)= ∑ d ( xi , yi ) , где d ( xi , y i ) = ⎨ i =1 ⎩0, при xi = yi . Легко заметить, что d ( xi , y i ) ≤ d ( xi , zi ) + d ( zi , yi ) , т.к. при d ( xi , y i ) =1 неравенство справедливо, поскольку хотя бы одно слагаемое в правой части равно 1, а при d ( xi , yi ) =0 неравенство следует из неотрицательности расстояния. Теперь, суммируя обе части этого неравенства по всем значениям i от 1 до n, получим требуемый результат. Величина w(x), равная количеству ненулевых символов в х , называется весом Хемминга последовательности х . Очевидно, что w(x) = d( x,0 ), где 0 это нулевое слово (слово из всех нулей), длина которого равна длине слова х . Очевидно, что вес Хемминга также обладает свойством аддитивности: d ( x,0) = d ( x 1 ,0) + d ( x 2 ,0) . Из неравенства треугольника очевидным образом вытекают следующие неравенства: (1.1.1) | w( x ) − w( y ) |≤ d ( x, y ) ≤ w( x ) + w( y ) Множество последовательностей над произвольным алфавитом Х , на котором определено расстояние Хемминга d( x,y ), называется пространством Хемминга. При этом функция w( x ) называется метрикой Хемминга на X n . 1.1.1 Блоковое кодирование Пусть U ={ u 1 ,.., u М }- произвольное конечное множество, состоящее из М элементов. Будем называть U множеством сообщений. Предположим, что для представления и передачи сообщений из U используется кодовый алфавит Х , состоящий из q букв. Пусть С = {с1,…,сМ}, ci = ( ci ,1 , ci , 2 , ..., ci ,n ) , - это некоторым образом выбранное подмножество М слов длины n над алфавитом X . Всякое такое подмножество называется кодом над алфавитом Х . Код называется двоичным, если кодовый алфавит содержит только два символа, которые обычно обозначаются как 0 и 1. Если между множеством сообщений U и списком слов кода С установлено взаимно-однозначное соответствие, то С называется q-ичным кодом длины n для кодирования сообщений множества U . При этом последовательности с1,…,сМ называются кодовыми словами, а правило, устанавливающее соответствие между U и С , называется правилом (или способом) кодирования. При блоковом кодировании считается, что все кодовые слова имеют одинаковую длину n, поэтому говорят, что код имеет длину n. Количество кодовых слов в C называется мощностью кода, оно равно числу кодируемых сообщений М. Введем понятие скорости кода (или скорости кодирования). Скорость блокового кода вычисляется по формуле: ∆ 1 R = log 2 M , (бит / символ). n Скорость равна количеству двоичных единиц информации (количеству бит), которые могут быть переданы с помощью одного символа кодового слова. Максимальное значение скорости кода равно log 2 q . Если основание логарифмов взято равным q, то скорость измеряется в q-ичных единицах информации на символ. В двоичном случае максимальное значение скорости R = 1. При такой скорости кодовыми словами являются все возможные двоичные слова и каждый кодовый символ переносит ровно 1 двоичную единицу (1 бит) информации. Такой код является безызбыточным. Он не позволяет ни обнаруживать, ни исправлять ошибки. Уменьшение числа используемых кодовых слов при сохранении их длины n приводит к уменьшению скорости, к появлению избыточности и, возможно, к появлению обнаруживающей и корректирующей способности кода. Избыточность кода определяется как разность между максимальным значением скорости и ее действительным значением. В двоичном случае избыточность равна разности log 2 q − R . Если число сообщений в множестве U равно q k , то каждому сообщению соответствует блок из k q-ичных символов (q-ичный номер сообщения). В результате блокового кодирования каждый такой блок, содержащий k информационных символов, отображается в блок из n кодовых символов. При k ⎛ q − ичн. ед. инф ⎞ этом скорость кодирования равна R = ⎜ ⎟ . Существует много n ⎝ симв ⎠ различных способов блокового кодирования, поскольку существует много способов выбора кодовых слов и много способов сопоставления сообщений и кодовых слов. Ниже в качестве примера приведен один из возможных способов блокового двоичного кодирования для множества U ={ u 1 ,.., u 4 }, состоящего из 4-х сообщений. Пример 1.1.1 . Предположим, что правило кодирования (правило отображения U в С ) задается следующей таблицей Двоичный Кодовое U номер слово u1 0 0 0 0 0 u2 0 1 0 1 1 u3 1 0 1 0 1 u4 1 1 1 1 0 ⎛ бит ⎞ Для этого кода q = k = 2, n=3. Скорость кода равна 2/3 ⎜ ⎟ . Другими ⎝ симв ⎠ словами, каждые 3 кодовых символа переносят 2 бита информации. Избыточность кодирования равна 1/3. Схема кодера, кодирующего сообщения { u 1 ,u 2 ,u 3 ,u 4 }, приведена на рис.1.1. Кодер преобразует двоичный номер сообщения в соответствующее этому сообщению кодовое слово. На вход кодера (входы 1,2) поступают два информационных символа, представляющие номер сообщения. На выходе кодера (выходы 1,2,3) появляются три кодовых символа. Для этого кода первые два кодовых символа просто совпадают с двумя информационными. Третий, избыточный, символ является суммой по модулю два двух информационных. 1 вход 1 выход 2 2 + 3 mod2 Рис.1.1.1 Блоковый кодер для двоичного кода со скоростью 2/3 1.1.2 Неблоковое кодирование При неблоковом кодировании считается, что источник порождает последовательность сообщений неопределенной длины (возможно, бесконечной). При кодировании этой последовательности ей ставится в соответствие другая последовательность, образованная кодовыми символами, также имеющая неопределенную (возможно, бесконечную) длину. Скорость кодирования определяется как R= k 0 /n 0 , если при подаче каждых k 0 информационных символов на выходе кодера появляется n 0 кодовых символов. Примером неблокового q-ичного кодирования является так называемое древовидное кодирование. Правило, устанавливающее такое кодирование, проще всего описать с помощью некоторого графа в виде дерева. Предполагается, что в дереве из каждого узла исходят q k0 ветвей. Каждая такая ветвь соответствует информационному подблоку, состоящему из k 0 символов. Кроме того, каждой ветви, соединяющей пару узлов дерева, сопоставлена q – ичная последовательность, состоящая из n 0 кодовых символов (кодовый подблок). Пример такого дерева для q=2, k 0 =1 и n 0 =2 показан на рис.1.1. Кодовое слово формируется следующим образом. Информационная последовательность разбивается на информационные подблоки по k 0 символов. Каждый информационный подблок указывает какая ветвь дерева и, следовательно, какой набор кодовых символов будет использован на очередном шаге кодирования. При этом первый информационный k 0 -подблок обозначает номер исходящей ветви для первого узла, второй информационный k 0 подблок – номер исходящей ветви для второго узла и т.д. Каждой ветви дерева соответствует (приписана) двоичная кодовая последовательность длины n 0 , называемая кодовым подблоком. Последовательность информационных подблоков устанавливает тот или другой порядок обхода ветвей дерева, зависящий от информационной последовательности. Кодовое слово древовидного кода представляет собой последовательность двоичных кодовых символов, соответствующих данной последовательности ветвей. Для примера на рис.1.1.2. информационной последовательности 10011… соответствует выделенная жирными линиями последовательность ветвей (1 – движение вниз, 0 – движение вверх). При таком обходе дерева порождается кодовая последовательность 1101111110… . Скорость кодирования равна ½, так как каждый информационный символ порождает пару кодовых символов. 00 00 11 00 11 01 10 11 11 01 00 00 10 0 10 01 00 1 11 11 10 11 00 01 01 10 11 10 10 01 00 10 01 Рис.1.1.2. Двоичное кодовое дерево, (инф. послед. 10011…, кодов. послед. 1101111110 ...) Другим примером неблокового кодирования является сверточное кодирование. Схема кодера двоичного сверточного кода показана на рис.1.1.3. Кодер состоит из υ разрядного регистра сдвига и n0 сумматоров по модулю 2. В примере сверточного кодера, показанного на рис 1.1.2, υ =2, n0 =2. Начальное состояние регистра – нулевое. Информационная последовательность поступает на вход регистра. Содержимое регистра обрабатывается сумматорами, на выходах которых образуется кодовая последовательность, которая символ-за-символом поступает на выход. Код называется сверточным в силу того, что кодовые символы образуются в виде сумм вида ci = g 0 mi + g1mi −1 + ... + gν -1mi −ν +1 = (g, mi ) , где (g, m) называется сверткой последовательностей g и m. + Вход 1 2 + Выход Скорость кодир. = 1/2 Рис.1.1.3 Кодер двоичного сверточного кода со скоростью 1/2 Если входная последовательность продвигается через регистр блоками по k 0 символов, то скорость кодирования будет равна k 0 / n0 . Выходы сумматоров поочередно подключаются на вход канала. Можно проверить, что древовидный код (см. рис.1.1.2) и сверточный код, порождаемый кодером (см. рис.1.1.3) эквивалентны, т.е. они порождают одинаковые кодовые cлова при одинаковых информационных последовательностях. Можно показать, что всякий сверточный код является древовидным, но не всякий древовидный код является сверточным. В этом пособии мы рассматриваем только алгебраическую теорию блоковых кодов. Сверточные коды, их характеристики и методы декодирования рассматриваются в другом курсе. §1.2 Математические модели каналов связи Очень часто нас интересует вопрос о вероятности ошибки, которую обеспечивает тот или другой код в заданном канале. Для того чтобы об этом говорить, необходимо задать математическое описание канала связи, по которому происходит передача сообщений. В этом разделе мы рассмотрим несколько простейших математических моделей каналов и дадим основные определения, касающиеся каналов связи и их характеристик. Пусть X ={0,…,q-1} - кодовый алфавит (или алфавит сообщений на входе канала связи). Множество всех слов длины n над алфавитом X мы будем обозначать через X n . Очевидно, что число слов в X n равно q n . Множество допустимых при передаче по каналу последовательностей или множество С кодовых слов представляет собой некоторое подмножество множества X n , С ⊆ X n . На выходе канала в общем случае могут появляться сообщения из другого множества. Обозначим через Y выходной алфавит канала и через Y n множество всех возможных слов над Y . Для задания канала связи со входным алфавитом X и выходным алфавитом Y должны быть заданы переходные вероятности для всех пар p( y | x) n n последовательностей x = ( x1 ,..., xn ) ∈ X и y = ( y1 ,..., y n ) ∈ Y , определяемые как вероятности появления на выходе канала слова y при условии, что на вход канала подано слово x . Можно также рассматривать переходные вероятности для символов (для слов длины 1), относящиеся к моменту времени i. Пусть pi ( y | x ) - вероятность появления на выходе канала символа y при передаче символа x в момент времени i. Другими словами, y - это i-й символ последовательности y, а x-это n i-й символ последовательности x . Если p( y | x ) = ∏ pi ( yi | xi ) для всех слов i =1 x ∈ X , y ∈ Y , то канал называют дискретным каналом без памяти. В этом канале выходной символ y i зависит только от соответствующего входного символа xi и не зависит ни от каких символов на входе и выходе канала в другие моменты времени. Таким образом, к моменту передачи и получения пары xi , yi канал “не помнит” о прошлых и будущих передачах. n n n Для стационарного канала без памяти p( y | x ) = ∏ p( yi | xi ) , т.е. в таком i =1 канале переходные вероятности pi ( y | x ) не зависят от номера передаваемого символа (от времени), а для всех моментов времени задаются одной и той же функцией p ( y | x ) . Приведем пример двоичного симметричного стационарного канала без памяти. Пусть входной и выходной алфавиты канала совпадают, т.е. X=Y={0,1}. Вероятность того, что при передаче нуля на выходе канала оказался нуль, а при передаче единицы - единица, обозначим как 1-p 0 . Вероятность того, что при передаче произошла ошибка, обозначим как p 0 . Предположим, что переходная вероятность для каждого момента времени задается следующим образом: p0 , если y ≠ x, ⎧ p( y | x ) = ⎨ ⎩1 − p0 в противном случае. Модель канала можно представить с помощью графа, приведенного на рис.1.2.1 и показывающего возможные переходы в канале и их вероятности. X 0 p( 0 | 0) Y 0 p (1 | 0 ) = p (0 | 1 ) = p 0 , p ( 0 | 0 ) = p (1 | 1 ) = 1 − p 0 . p( 1 | 0) p ( 0 | 1) 1 p (1 | 1) 1 Рис.1.2.1 ДСК Такой канал без памяти называют двоичным симметричным каналом (ДСК). Для этой модели канала вероятность ошибки на символ p 0 есть единственная характеристика канала. Из стационарности вытекает, что p ( y | x ) = p( y1 | x1 ) p( y 2 | x2 )... p( y n | xn ) . Если обозначить через t – количество позиций, в которых символы на входе и выходе канала различаются, то формула для переходной вероятности будет иметь следующий вид : t ⎛ p ⎞ (1.2.1) p ( y | x ) = po (1 − po ) = (1 − p0 ) ⎜⎜ 0 ⎟⎟ , t= d(x,y). ⎝ 1 − p0 ⎠ Для того, чтобы исследовать поведение вероятности p ( y | x ) как функции от t t n −t n t ⎛ p ⎞ заметим, что f(t)= ⎜⎜ 0 ⎟⎟ ведет себя по-разному в зависимости от того как ⎝ 1 − p0 ⎠ соотносится p 0 с 1/2. Если p0 < 1 / 2, то f(t) убывает с ростом t, если p0 > 1 / 2, то f(t) возрастает с ростом t, при p0 = 1 / 2, f(t)=1 для всех t. Графики функции f(t) при различных значениях вероятности p 0 приведены в логарифмическом масштабе на рис.1.2.2. 10 10 4 3 p > 1/2 0 10 10 10 10 2 1 p = 1/2 0 0 -1 p < 1/2 0 10 10 10 -2 -3 -4 0 5 10 15 20 25 t Рис.1.2.2. Поведение функции f(t), p ( y | x ) = f(t) (1 − p0 ) n Как видно из формулы (1.2.1) и графика на Рис.1.2.2, при вероятности ошибки символа меньшей, чем 1/2, вероятность получения последовательности y , отличающейся от посланной последовательности x в t позициях, будет экспоненциально уменьшаться с ростом числа ошибок t. Это означает, что при необходимости найти кодовое слово x , которое максимизировало бы вероятность p ( y | x ) при данном слове y на выходе канала, мы должны искать кодовое слово, отличающееся от y в наименьшем числе позиций. В случае, когда вероятность ошибки на символ больше 1/2 , мы должны действовать ровно наоборот, т.е. искать кодовое слово, отличающееся от принятого в наибольшем числе позиций. При p0 = 1 / 2 вероятность p ( y | x ) не зависит от выбора x. Количество ошибок на n позициях является случайной величиной и подчиняется биноминальному распределению вероятностей ⎛n⎞ t n! t (1.2.2) P(t ) = ⎜⎜ ⎟⎟ p0 (1 − p0 ) n −t = p0 (1 − p0 ) n −t , t! (n − t )! ⎝t⎠ где ⎛n⎞ n! (1.2.3) ⎜⎜ ⎟⎟ = ⎝ t ⎠ t! ( n − t )! - число сочетаний из n по t. Заметим, что число сочетаний из n по t иногда обозначается как Cnt . Теперь приведем пример двоичного стирающего стационарного канала без памяти. Пусть X ={0,1}-кодовый алфавит на входе канала связи, Y ={0,1,2}алфавит на выходе канала связи. Здесь 2 – символ, который не совпадает ни с одним из передаваемых символов, т.е. символ, который не может быть передан. Мы будем называть стиранием появление на выходе канала этого символа. Вероятность ошибки в символе обозначим через p 0 , вероятность того, что на входе канала появится стирание, обозначим через pст , вероятность того, что на выходе канала появится тот же символ, что и на входе, обозначим через (1- p 0 - pст ). Таким образом, переходные вероятности для символов можно записать следующим образом: ⎧1 − po − pст , если x = y , ⎪ p( y | x ) = ⎨ po , если x ≠ y , y ≠ 2, ⎪ pст , если y = 2. ⎩ Такой канал называется двоичным стирающим каналом (ДСтК). Граф, демонстрирующий возможные переходы, приведен на рис.2.3. X 0 p( 1 | 0) p ( 0 | 1) 1 Y 0 p(0 | 0) p(2|0) 2 p(2|1) p (1 | 0 ) = p (0 | 1 ) = p 0 , p ( 0 | 0 ) = p (1 | 1 ) = 1-p0-pст , p ( 2 | 0 ) = p (2 | 1 ) = pст,. 1 p (1 | 1) рис.2.3. ДСтК Предположим, что при передаче n символов количество ошибок равно t, количество стираний равно s и количество правильных передач равно (n-t-s). Тогда, в силу стационарности получим: n p ( y | x ) = ∏ p ( y i | xi ) = po pст (1 − po − pcm ) n −t − s . . t s i =1 В таком канале число ошибок и стираний являются парой зависимых случайных величин, подчиняющейся мультиномиальному совместному распределению вероятностей ⎛ n ⎞⎛ n − s ⎞ t s P(t , s ) = ⎜⎜ ⎟⎟⎜⎜ ⎟⎟ p0 pcm (1 − p0 − pcm ) n −t − s , t + s ≤ n. (1.2.4) s t ⎝ ⎠⎝ ⎠ или n! t s P (t , s ) = p0 pcm (1 − p0 − pcm ) n −t − s , t + s ≤ n. s! t! ( n − s − t )! Нетрудно заметить, что поведение вероятности p ( y | x ) в зависимости от числа ошибок t при фиксированном числе стираний s зависит от соотношения между вероятностями ошибок и стираний. Если p0 < (1 − pcm ) / 2 , то p ( y | x ) монотонно убывает с ростом t, если p0 > (1 − pcm ) / 2 , то p ( y | x ) монотонно возрастает с ростом t. При p0 = (1 − pcm ) / 2 вероятность p ( y | x ) не зависит от t. Это означает, что при необходимости найти кодовое слово x , которое максимизировало бы вероятность p ( y | x ) при данном слове y на выходе канала, мы должны искать кодовое слово, отличающееся от y в наименьшем числе нестертых позиций. Ниже приведен пример двоичного канала с памятью. Пусть X – входной и Y – выходной алфавиты канала. В рассматриваемом примере эти алфавиты совпадают и состоят из двух символов, т.е. X = Y ={0,1}. Допустим, что при подаче на вход канала слова x = (x1,…, xn) на выходе канала появляется слово y = (y1,…, yn), x ∈ X n , y ∈ Y n . Введем в рассмотрение еще одно слово e = (e1,…, en) ∈ {0, 1}n . Символ ei в последовательности e будет принимать значение 1 в том случае, если на позиции, соответствующей данному символу, произошла ошибка, т.е. если y i ≠ xi . В противном случае этот символ равен 0: ⎧1, при xi ≠ y i , ei = ⎨ ⎩0, при xi = y i . Другими словами, е является последовательностью ошибок. Иногда эту последовательность называют вектором шума. Свойства канала полностью определяются источником шума, который генерирует последовательность ошибок. Процесс передачи по такому каналу можно представить с помощью схемы, показанной на рис.1.2.4. Генератор шума e = ( e ,..., e ) 1 n x = ( x ,...,x ) 1 n + mod 2 y = ( y ,...,y ) , y = x + e mod 2 1 n Рис.1.2.4. Канал с аддитивным по mod2 шумом Поток ошибок поступает от генератора случайных последовательностей (генератора шума). Если случайные последовательности на выходе генератора подчиняются распределению вероятностей Pош (е ) и не зависят от того, какая последовательность поступает на вход канала, то переходные вероятности канала определяются соотношением: p ( y | x ) = Рr (e = y − x | x ) = Pош ( у − х ) , где вычитание понимается как операция обратная сложению по модулю 2. Такой канал называется двоичным каналом с аддитивным шумом. Очевидно, что ДСК это канал с аддитивным шумом. Для этого канала ошибки, порождаемые генератором шума, представляют собой независимые двоичные величины. Если генератор шума порождает зависимые случайные величины, например, если шум - это марковский случайный процесс, то ошибки ei , e j , соответствующие различным моментам времени i,j будут статистически зависимыми. В этом случае события xi , yi будут зависеть также от пары событий x j , y j . Поэтому переходные вероятности p ( y | x ) нельзя записать в виде произведения одномерных переходных вероятностей p( yi | xi ) , i=1,2,…,n, и, следовательно, данный канал будет обладать памятью. §1.3 Основные принципы декодирования Пусть U = { u1 , u 2 ,..., u M } – множество сообщений и С = {c 1 , c 2 ,..., c M } - код над алфавитом X , предназначенный для передачи сообщений из U . Сообщения из множества U и кодовые слова из C однозначно определяют друг друга. Другими словами, для каждого сообщения однозначно определено кодовое слово, используемое для передачи этого сообщения, и, наоборот, каждое кодовое слово соответствует только одному сообщению, которое передается этим словом. Однако в некоторых случаях вместе с множеством U рассматривается некоторое дополнительное сообщением u 0 , которое никогда не передается, но может появиться при декодировании (как, например, стирание в случае двоичного стирающего канала). Чтобы прояснить ситуацию, возникающую при декодировании, обозначим через Y n -множество всех слов длины n над выходным алфавитом канала Y . По выходной последовательности канала y = { y1 , y 2 ,..., y n } ∈ Y n декодер должен вынести решение о том, какое из кодовых слов c ∈ C или какое из сообщений u ∈ U было передано. В качестве решения может быть взято либо одно из сообщений { u1 , u 2 ,..., u M } , либо сообщение u 0 , которое можно толковать как отказ от принятия окончательного решения (стирание). Общая схема кодированиядекодирования приведена на рис.1.3.1. Yn Xn U c1 u1 Y1 c2 u2 U u1 Y2 u2 u0 uM cM Кодировани е YM Передача uM Y0 Декодирова ние Рис.1.3.1. Кодирование, передача по каналу связи, декодирование Для задания декодирования достаточно задать систему непересекающихся M подмножеств Y 0 , Y 1 ,…, Y M , где Y n = Ui =0 Yi . Будем называть эти подмножества областями декодирования (или р ешающим и областями). Будем предполагать , что декодер принимает решение в пользу кодового слова с i (в пользу сообщения u i ) , если выходная последовательность канала находится в i-ой области дек оди рования, т.е., y ∈ Yi , i ≠ 0 . Если же эта последовательность не принадлежит ни одной из ре шающих о бластей Y 1 ,…, Y M , т.е. принадлежит области Y 0 , то декодер принимает решение об обнаружении ошибки, которую он не в состоянии исправить. Если передаваемое сообщение имеет номер j, но y ∈ Yi , i ≠ 0 и j ≠ i , то при декодировании происходит ошибка и получателю выдается неверное решение. Таким образом, всякое разбиение множества Y n на непересекающиеся подмн ожества Y 0 , Y 1 ,…, Y M задает некоторое декодированием для кода С . Также наоборот, всякое декодирование для кода С задает некоторое разбиение Y n на непересекающиеся области декодирования. Пример 1.3.1 . Пусть X = Y ={0,1}, n=3. Выпи шем всевозможные двоичные последовательности длины 3 над алфавитом X : X n = Y n ={000, 001, 010, 111, 100, 101, 110, 111}. Рассмотрим 3 различные кода С 1 , С 2 , С 3 над алфавитом Х . Пусть в качестве кода С 1 выбрано все множество X 3 , тогда скорость кодирования R=(log 2 8)/3=1. Множество передаваемых сообщений U также состоит из 8 сообщений. Решающие области будут иметь следующий вид: Y 1 = {000}; Y 2 = {001}; Y 3 = {010}; Y 4 = {011}; Y 5 = {100}; Y 6 = {101}; Y 7 = {110}; Y 8 = {111}; В отсутствие ошибок слово на выходе канала принадлежит той решающей области, которая соответствует переданному кодовому слову. Область отказа пуста. Очевидно, что всякая ошибка переводит переданное слово в решающую область, соответствующую другому кодовому слову, т.е. ошибки при передаче приводят к ошибке декодирования. Данный код является безызбыточным, он не позволяет обнаруживать и исправлять ошибки. Теперь приведем пример кода, способного обнаруживать некоторые ошибки. Пусть код С 2 выбран следующим образом: С 2 ={000, 011, 101, 110}. В этом коде четыре кодовых слова, его скорость равна R=(log 2 4)/3=2/3 и избыточность равна 1/3. Множество U также состоит из 4 сообщений. Если выбрать решающие области как Y 1 = {000}; Y 2 = {011}; Y 3 = {101}; Y 4 = {110}; Y o = {001, 010, 100, 111}; т о при отсутствии ошибок декодер правильно определяет переданное слово. Однако, при любых ошибках нечетной кратности (т.е. при любых однократных ошибках или ошибке в трех символах) принятое слово оказывается в области отказа. Иначе говоря, однократные и трехкратные ошибки обнаруживаются. Рассмотрим код, способный обнаруживать и исправлять ошибки. Пус ть С 3 ={000, 111}. Скорость такого кода R=(log 2 2)/3=1/3. Избыточность равна 2/3. Множество U в этом случае сокращается до 2-х сообщений. Для начала отметим, что обнаруживающая способность этого кода выше обнаруживающей способности кода С 2 . Если выбрать решающи е области как указано ниже: Y 1 = {000}; Y 2 = {111}; Y o = {001, 010, 100, 011, 101, 110}, т о в отсутствие ошибок декодер правильно определяет переданное слово. При любых одн ократных и двукратных ошибках принятое слово попадет в область отказа. Следовательно, при декодировании кода С 3 с такими решающими областями любые ошибки кратности 1 или 2 обнаруживаются. Для иллюстрации корректирующей способности кода С 3 выберем решающие области следующим образом: Yo = , Y 1 = {000, 100, 010, 001}; Y 2 = {111, 011, 101, 110}, т.е. облас ть от к аза пуста. Всякая однократная ошибка не выводит пер еданное к одовое слово с 1 =(000) или с 2 = (111) из своей решающей области. Поэтому при любых однократных ошибках декодер правильно определит переданное слово. Иначе говоря, при таком декодировании кода С 3 любые однократные ошибки исправляются. 1.3.1 Декодирование по максимуму правдоподобия (МП) Переходные вероятности p( y|x ), x ∈ X n , y ∈ Y n , можно рассматривать как значения функции двух переменных с областью опре деления X n × Y n . Если зафик сировать одну из переменных, напр имер y, то p( y|x ) будет функцией одной переменной х . При этом p( y|x ) как функция от y называ ется фу нкцией правдоподобия. Пусть С = {с1,…,сМ} некоторый код. Декодирование по методу максимального правд оподобия (МП) состоит в отображении принятого слова y в так ое кодовое слово c , для которого функция правдоподобия принимает максимальное значение. При декодировании по максимуму правдоподобия решающая область Y i будет состоять из всех таких y , для которых условные вероятности p( y|сi) принимают м аксимальные значения: Yi = {y : p ( y | c i ) ≥ p ( y | c j ) для всех ∀j ≠ i } . Если для слов c i , c j имеет место равенство p( y | c i ) = p ( y | c j ) , то у произвольным образом относится либо в область Yi , либо в область Y j . Пример 1.3.2 . Пусть X = Y = {0,1} и ка на л связи задан как двоичный симметричный канал (ДСК) б ез памяти с в ероятностью ошибки p0 < 1 / 2 . Рассмотрим декодирование по максимуму правдоподобия в ДСК. Пусть код состоит из двух слов С = {с1, с2}, где c 1 =(000), c 2 =(111). Имеются 8 в ыходны х последовательностей Y n ={000, 001, 010, 011, 100, 101, 110, 111} и две области декодирования Y 1 и Y 2 . Для описания декодирования мы должны определить в какую из двух решающих областей следует отнести каждую выходную последовательность. Сначала найдем, в какую область следует отнести последовательность y 1 =(000). Имеем p( y 1 |c 1 )=p(000|000)=p(0|0)p(0|0)p(0|0)= ( 1 − p0 ) 3 ; p ( y 1 |c 2 )=p(000|111)=p(0|1)p(0|1)p(0|1)= p0 3 ; Поскольку p0 <1/ 2, то p( y 1 |c 1 )= ( 1 − p0 ) 3 > p0 3 =p( y 1 |c 2 ). З н ач и т y 1 =(000) следует отнести в область Y 1 , которая соответствует слову c 1 . Аналогично получим 2 для y 2 = (001), что p( y 2 |c 1 )= p0 (1 − p0 ) 2 и p( y 2 |c 2 )= p0 (1 − p0 ) . Так как снова p( y 1 |c 1 )> p( y 1 |c 2 ), то y 2 также следует отнести в область Y 1 . Подсчитав все значения переходных вероятностей, п олучим Y 1 = {000,001,010,100 }; Y 2 = {111,110,101,011}. Как было показ ано выше, код С с такими областями декодиров ания (т.е. при д екодировании по максимуму правдоподобия) может исправлять однократные ошибки. t ⎛ p ⎞ В дв оичном симметричном канале p( y|с )= (1 − p0 ) ⎜⎜ 0 ⎟⎟ , где t = d (c, y ) ⎝ 1 − p0 ⎠ э то расстояние Хемминга между с и у. Как упоминалось выше (см. рис.1.2.2), эта вероятность зависит от t монотонно, причем она убывает с ростом t при p0 < 1 / 2 . Поэтому неравенство p( y | c i ) ≥ p ( y | c j ) эквивалентно неравенству d (c1 , y ) ≤ d (c 2 , y ) . n Другими словами, область максимального правдоподобия Yi в ДСК при p0 < 1 / 2 , состоит из все х таких посл едовательностей у, кот орые ближе п о Хеммингу к c i , чем к любому другому кодовому слову. 1.3.2 Декодирование по максимуму апостериорной вероятности (МАВ) Пусть С = {с1,…,сМ} - некоторый код и предположим, что для множе ства кодовых слов известно априорное распределение вероятностей p( c i ) , ∀с i ∈ C с к отор ыми эти слова появляются на входе канала. Рассмотрим вероятность p( c i |y ) того, что слово с i было передано, при условии, что на выходе кана ла наблюдается последовательность y ∈ Y n . Эта вероятность называется апостериорной вероятностью слова с i . Метод декодирования по максимуму апостериорной вероятности (МА В) сос тоит в отображении y в такое слово с ∈ C , для которого апостериорная вероятность p( c|y ) принимае т максимальное значение. Вероятности p( c i |y ) для c i ∈ C можно найти по формуле Байеса: p ( y | c i ) p(c i ) , p( c i |y ) = p(y ) где p(y) есть безусловная вер оятность y, которая о пределяется по формуле: p(y) = ∑ p( y|c i ) p( c i ). сi∈C Согласно определению МАВ , реша ющ ая область Y i состоит из таких последовательностей y , которые максимизируют апостериорную вероятность p( c i |y ): Y i = {y : p (c i | y ) ≥ p (c j | y ), ∀j ≠ i } . Если для слов c i , c j имеет место равенство p (c i | y ) = p (c j | y ) , то у произвольным образом относится либо в область Yi , либо в область Y j . Очевидно, ч то п ри априори равновероя тных сообщения х на входе канала, т.е. при p( c i )=1/М для всех i, декодирование по максимуму апостериорной вероятности совпадает с декодированием по максимуму правдоподобия. Можно показать, что декодирование по МАВ минимизирует среднюю вероятность неверного декодирования Perr = ∑ p (c i ) Pr( err | c i ) , где Pr(err | c i ) i вероятность неверного декодирования при передаче слова c i . Действительно, по формуле полной вероятности мы можем записать для вероятности правильного декодирования 1 − Perr = M ∑ p( y ) Pr( ~c ( y ) = c | y ) = ∑ ∑ p( y ) Pr( ~c ( y ) = c | y ) , y∈Y n (1.3.1) i =1 y∈Yi где с – переданное слово, ~c ( y ) - результат декодирования у и Pr( ~c ( y ) = c | y ) - вероятность правильного декодирования при получении слова у. Поскольку декодирование по МАВ заключается в отображении слова у в кодовое слово ~c ( y ) = c i , д ля которого вероятность p( c i |y ) принимает максимальное значение, то при каждом у слагаемые во внутренней сумме в (1.3.1) максимизир уют ся. Следовательно, максимизиру е тся и вся сумма (1.3.1). Поэтому средняя вероятность неверного декодирования Perr принимает минимально возможное значение. 1.3.3 Декодирование по минимуму расстояния Хэмминга (МРХ) Напомним, что расстояние Хемминга d (c, y ) между последоват ельностями с и y это количество позиций, в которых с и y ра зличаются. Пусть С = {с1,…,сМ} - н екоторый код. Метод декодирования кода С по минимуму расстояния Хэмминга (МРХ) состоит в отображении y в такое слово c i ∈ C , для которого расстояние Хэмминга d (c i , y ) имеет минимальное значение. Каждая выходная последовательность y при этом будет отображаться в ближайшее по Хэммингу кодовое слово из С . Ре шающи е области будут строиться следующим образом: Y i = {y : d ( c i , y ) ≥ d ( c j , y ), ∀j ≠ i } . Если для слов c i , c j имеет место равенство d (c i , y ) = d (c j , y ) , то у произвольным образом относится либо в область Yi , либо в область Y j . Как указывалось выше, в ДСК с вероятностью ошибки на символ p0 < 1 / 2 вероятность p ( y | c ) монотонно у бывает с росто м р асстояния Хемминга d (c, y ) . Поэтому в таком канале минимизация расстояния Хемминга максимизирует функцию правдоподобия и, следовательно, два метода декодирования МП и МРХ совпадают. В ДСтК с вероятностью ошибки p0 < (1 − pcm ) / 2 вероятность p ( y | c ) также монотонно убывает с ростом расстояния Хемминга d s (c, y ) , вычисленного по нестертым символам. Поэтому и в этом случае два метода декодирования МП и МРХ совпадают. 1.3.4 Декодирование с помощью шаров Хемминга Предположим, что на множестве Х n всех последовательностей длины n над алфавитом Х определено расстояние Хемминга . Шаром Хэмминга в Х n называется подмножество всех слов множества Х n , которые находятся на расстоянии Хемминга t или меньше от некоторого фиксированного слова х 0 , называемого центром шара. Математически шар Хемминга c центром х 0 и радиусом t задается следующим образом: B t ( х 0 ) = {х : d( х , х 0 ) ≤ t } . В качестве примера в озьмем n=3 и Х={ 0, 1} , тогда X n ={000, 001, 010, 011, 100, 101, 110, 111}. 1) Пусть х 0 =(000), t=0, тогда B 0 ( x 0 )={000}, т.е. шар радиуса 0 содержит единственное слово, це нтр шара; 2) Пусть t=1, тогда B 1 ( x 0 )={000,001,010,100}, т.е. шар радиуса 1 в Х 3 содер жит 4 слова – центр и 3 слова, находящ иеся на расстоянии 1 от центра; 3) Пусть t=2, тогда B 2 ( x 0 )={000,001,010,100,110,011,101}, т.е. в шар радиуса 2 в Х 3 входят все точки шара B 1 ( x 0 ) и еще три слова, находящиеся на расстоянии 2 от центра. 4) Пусть t=3,тогда шар Хэмминга B 3 ( x 0 ) в Х 3 совпадает со всем простра нством Х3. Предположим, что на множестве выходных слов канала Y n возможно построи ть М непересекающихся шаров Хемминга с центрами в кодовых словах и радиусом t: B t ( с i ) = {y : d( y, c i ) ≤ t }, i= 1,2,…,M. 1.3.2) Так как шары не пе ресекаются, то их м ожно использовать в качестве областей декодирования: Y i = B t ( с i ), i= 1,2,…, M. В этом случае область отказа состоит M из точек, не попавших ни в один шар: Y 0 = Y n \ Ui Bt (c i ) . Декодирование с таким набором решающих областей называется декодированием с помощью шаров радиуса t. Заметим, что это декодировани е в общем случае отличается от декодирования по минимуму расстояния Хемминга, описанного в п.1.3.3. §1.4 Объем шара Хэмминга Объемом шара Хэ мминга называется число сл ов в этом шаре. Будем о бозначать объем шара Хэмминга B t ( х 0 ) радиуса t с центром х 0 через | B t ( х 0 ) | . Объем шара Хэмминга не зависит от выбора его центра и определяется формулой: t ⎛n⎞ | B t ( х 0 ) | = ∑ ⎜⎜ ⎟⎟( q − 1) i , (1.4.1) i =0 ⎝ i ⎠ ⎛n⎞ n! - число способов, которыми где q – число букв в алфавите Х . Здесь ⎜⎜ ⎟⎟ = ⎝ i ⎠ i! ( n − i )! можно выбрать двоичные последовательности длины n , которые содержат i единиц и n-i нулей (другими словами, которые имеют вес i ). В недвоичном случае на каждой ненулевой позиции можно расположить (q-1) ненулевых символов. Поэтому величина под знаком суммы в (1.4.1) равна количеству q-ичных последовательностей с весом Хемминга i или количеству последовательностей, лежащих на поверхности шара Хемминга с радиусом i. Это рассуждение обосновывает справедливость формулы (1.4.1). 1.4.1 Асимптотика числа точек в шаре Хэмминга Число точек в шаре Хемминга радиуса t, п остроенного в n-мерном п ространстве, определяется формулой (1.4.1) и зависит от q, n и t. В этом разделе мы рассмотрим поведение | B t ( х 0 ) | в зав и симости от выбора q и t при n → ∞ . Очевидно, что с ростом размерности пространства n число точек в шаре ненулевого радиуса увеличивается к бесконечности. Поэтому мы будем рассма тривать не сам объем шара | B t ( х 0 ) |, а скорость роста объема, а именно 1 log 2 | Bt ( x 0 ) | , при условии, что радиус шара также растет величину n пропорцио нально n: t = τ ⋅ n . Б у дем предполагать, что относит е льный радиус τ = t / n не зависит от n и удовлетворяет неравенствам 0 < τ ≤ ( q − 1) / q . Теорема 1.4.1 . П ри до статочно большом n число точек в шаре B t ( х 0 ), t = τ ⋅ n , удовлетворяет следующему соотношению: 1 ⎛ log ( n ) ⎞ log 2 | Bt ( x 0 ) |= τ ⋅ log 2 ( q − 1) + h(τ ) + O ⎜ 2 ⎟, n ⎝ n ⎠ (1.4.2) где (1.4.3) h (τ ) = −τ ⋅ log 2 τ − (1 − τ ) ⋅ log 2 (1 − τ ) - функция, называемая энтропией двоичного ансамбля, и O (α ) - величина порядка α . Доказательство: Оценим величину | B t ( х 0 ) | св ерху и снизу следующим образом: ⎛n⎞ ⎛n⎞ max i =0,...,t ⎜⎜ ⎟⎟( q-1) i ≤ | Bt (x 0 ) | ≤ max i =0,...,t ⎜⎜ ⎟⎟( q-1) i (t + 1) . (1.4.4) ⎝i⎠ ⎝i⎠ Обе оценки вытекают из (1.4.1). Левая оценка следует из то го, что сумма неотрицательных слагаемых не меньше, чем максимальное слагаемое. Правая оценка следует из того, что эта сумма не превосходит максимальное слагаемое, умноженное на число слагаемых. Хотя обе оценки кажутся весьма грубыми, их точность оказывается вполне достаточной, для того, чтобы получить хорошую асимптотическую оценку числа точек в шаре Хемминга. Вначале покажем, что при τ ≤ ( q − 1) / q максимальным является последнее слагаемое в (1.4.1), соответствующее i=t. Рассмотрим отношение двух соседних слагаемых в (1.4.1) ⎛n⎞ ⎜⎜ ⎟⎟( q − 1) i n! n − i +1 (i − 1)! ( n − i + 1)! ⎝i⎠ = ( q − 1) ⋅ = ( q − 1) . i! ( n − i )! n! i ⎛ n ⎞ i −1 ⎟⎟( q − 1) ⎜⎜ ⎝ i − 1⎠ Следующее слагаемое не меньше предыдущего, если это отношение не n − i +1 ≥ 1 или, что то же самое, меньше единицы, т.е., если ( q − 1) i q −1 i ≤ ( n + 1) . (1.4.5) q q −1 q −1 < ( n + 1) , то неравенство (1.4.5) имеет место для всех q q слагаемых в (1.4.1). Следовательно, каждое следующее слагаемое в (1.4.1) не меньше предыдущего и поэтому максимальным является последнее слагаемое. Таким образом, неравенства (1.4.4) мы можем переписать следующим образом: ⎛n⎞ ⎛n⎞ ⎜⎜ ⎟⎟( q-1) t ≤ | Bt (x 0 ) | ≤ ⎜⎜ ⎟⎟( q-1) t (t + 1). (1.4.6) ⎝t⎠ ⎝t⎠ Д ля з авершения доказательства воспользуемся формулами Стирлинга для факториалов: ⎧ 1 ⎫ n −n ⎧ 1 ⎫ 2πn ⋅ n n ⋅ e −n ⎨ ⎬ < n! < 2πn ⋅ n ⋅ e ⎨ ⎬ ⎩12n + 1 ⎭ ⎩12n ⎭ и вытекающей отсюда асимптотической формулой для числа сочетаний ⎛n⎞ ⎛ log n ⎞ log 2 ⎜⎜ ⎟⎟ = n log 2 n − t log 2 t − (n − t ) log 2 (n − t ) + O (log 2 n ) = n ⋅ {h(τ ) + O ⎜ 2 ⎟} . ⎝ n ⎠ ⎝t⎠ Поскольку t = τn ≤ n Отсюда и из (1.4.6) следует утверждение теоремы. Из доказанной теоремы вытекает, что независимо от выбора центра шара число q −1 , при достаточно большом n точек в шаре Хемминга с радиусом t = τn, где τ ≤ q весьма точно определяется соотношением | B t |~ exp 2 {n ⋅ [τ ⋅ log 2 ( q − 1) + h (τ )]} . Таким образом, в двоичном случае, т.е. при q=2, | B t |~ exp 2 {n ⋅ h (τ )} . (1.4.7) (1.4.8) В другом частном случае, когда q растет с ростом n (например, как в случае кодов РидаСоломона, см. далее, гл.4), главный член асимптотической формулы (1.4.7) определяется первым слагаемым в квадратных скобках. В этом случае | B t |~ exp 2 {n ⋅τ ⋅ log 2 ( q − 1)} ~ q t . (1.4.9) §1.5 Способность кода обнаруживать и исправлять ошибки В данном параграфе мы обсудим связь между минимальным расстоянием некоторого блокового ко да и его способностью обна руж ив ать и и спра влять ошибки. Пу сть С = {с1,…,сМ} - код длины n над алфавитом X . Миним альным расстоя нием кода C называется наименьшее из попарных расстояний Хемминга между различными кодовыми словами из C . Минимальное расстояние кода обозначается как d( С ) или как d, если ясно о каком коде идет речь: ∆ d = min d (x i , x j ) . x i , x j∈C, i ≠ j Мы г о ворим, что код обнаруживает ошибки кратности f, если найдется алгоритм, позволяющий определить наличие искажений в любом принятом слове при условии, что число ошибочных символов в слове не превосходит f. Мы говорим, что код исправляет ошибки кратно ст и t, если найдется алгоритм, позволяющий указать положение ошибок и и х величины при условии, что числ о ошибочных символов в слове не превосходит t. Теорема 1.5.1 . Код с минимальным расстоянием d обнаруживает любые ошибки кратности f ≤ d-1. Доказательство. Для доказательства достаточно указать метод декодирования, который обеспечивает указанное обнаружение. Для этого выберем с истему решающих областей следующим образом: все области Y 1 ,…, Y M будут одноточечными, Y i ={ сi }, а область отказа Y 0 будет содержать все остальные слова из Y n . Докажем теперь теорему от противного. Предположим, что при передаче слова с произошла f-кратная необнаруживаемая ошибка. Это означает, что такая ошибка переводит посланное слово с в область, соответствующую некоторому другому кодовому слову с ′ . Однако, слово с можно перевести в с ′ только, если изменить d (c, c' ) символов, но f < d ≤ d (c, c' ) . Следовательно, никакая ошибка кратности f не может перевести с ни в какое другое кодовое слово и по этой причине обнаруживается. Теорема 1.5.2 . Код с минимальным расстоянием d исправляет любые ошибки кратности t ≤ (d-1)/2. Доказательство. Для доказательства рассмотрим декодирование с ⎡ d − 1⎤ решающими областями в виде шаров Хемминга радиуса t0 = ⎢ , где [a] – ⎣ 2 ⎥⎦ целая часть а. Такое декодирование определяется как декодировани е, решающие области для которо го представляют собой непересекающиеся шары ради у са t0 с центрами в к одовых словах . Тот факт, что области не пересекаются и, следовательно, могут быть взяты для деко дирования, вытекает из нера венства треугольника. Действительно, если мы предполож им против н ое, а и ме н но, чт о два шара Хемминга с радиусом t0 и центрами сi, сj имеют общую точку b, т.е. d (c i , b) ≤ t0 , d (c j , b) ≤ t0 , то d (c i , c j ) ≤ d (c i , b) + d ( b, c j ) ≤ 2t0 < d , что противоречит тому, что минимальное расстояние кода С равно d. Из построения решающих областей следует, что любая ошибка кратности t ≤ t0 оставляет переданное кодовое слово в своей решающей области и, тем самым, исправляется. Мы говорим, что код исправляет ошибки кратности t и обнаруживает ошиб к и кратности f > t, если существует алгоритм, который позволяет указ ать положение ошибок и их величины при условии, что число ошибочных символов не превосходит t, и позвол я ет определить наличие искажений при условии, что число ошибочных символов больше t, но не превосходит f. Теорема 1.5.3 . Код с минимальным расстоянием d исправляет любые ошибки кратности t ≤ t 0 и обнаруживает любые ошибки кратности f > t 0 при условии, что t 0 +f ≤ d-1. Доказательство: Рассмотрим декодирование с помощью шаров Хемминга радиуса t 0 . Поскольку 2t 0 ≤ t 0 +f ≤ d-1, то шары радиуса t 0 не имеют общих точе к , как это было дока за но вы ше, и следовательно, могут быть испол ьзованы в качестве решающих областей. Пусть y – слово на выходе канала. Оно декодируется в c i , если d (c i , y ) ≤ t0 . При этом ошибки кратности t ≤ t 0 исправляютс я . В с лучае ошибок кратности f имеем: t 0 < f ≤ d -1- t 0 . Снова применяя неравенство треугольника, получим d ≤ d (c i , c j ) ≤ d (c i , y ) + d (c j , y ) =f + d (c j , y ) . Таким образом, для любого с лова c j выполняется неравенство d( y, c j ) ≥ d- f >t 0 . Следовательно, ни при какой ошибке кратности f полученное слово у не попадает ни в одну из ре шающи х областе й и по этой причине ошибки к р атности f , t 0 < f ≤ d-1- t 0 , oбнаруживаются. Т еорема 1.5.4 . Код с минимальным р асстоянием d исправляет люб ы е ош ибки кратности t и любые стирания кратности s, если 2t+s ≤ d-1. Доказательство: Предположим, что в принятом слове y имеется s ≤ d-1 стертых символов. Рассмотрим код С ′ , который отличается от исходного кода С , имеющего длину n и минимальное расстояние d, тем, что слова кода С ′ получаются из слов исходного кода укорочением за счет исключения позиций , на к о торых y содержит стирания. Длина n ′ и минимальное расстояние d ′ укороченного кода удовлетворяют условиям n ′ =n-s, d ′ ≥ d- s . Оче видно, что найдется такое расположение позиций стираний, при котором d ′ =d-s. При декодировании этого кода посредством шаров Хемминга с радиусом ⎡ d − s − 1⎤ t0 = ⎢ ⎥⎦ все ошибки кратности t ≤ t 0 в укороченном слове y ′ и, тем самым, 2 ⎣ в исходном слове y будут исправлены. После исправления ошибок мы получим скорректированное выходное слово y ′′ длины n , в котором останутся s ≤ d-1 стертых символов. Имеется единственное слово в коде С , которое совпадает с y ′′ в нестертых позициях. Действительно, если бы существовало два различных слова с таким свойством, скажем c i , c j , то d (c i , c j ) = s < d , что невозможно. Поэтому s стираний и справляются при декодировании y ′′ в кодовое слово из С , совпадающее с ним на нестертых позициях. Следствие . Код с минимальным расстоянием d исправляет любые стирания кратности s ≤ d-1. Последняя теорема показывает,что способность кода исправлять ошибки зависит от числа стертых символов, а способно сть код а и справлять сти рания зависит от числа ошибочных символов. Если в принятом слове нет стираний, то можно исправить вплоть до [(d-1)/2] ошибок. Если в принятом слове нет ошибок, то можно исправить вплоть до d-1 стираний. §1.6 Границы для минимального расстояния Число M кодовых слов, которые можно построить при заданных q и n, зависит от величины минимального расстояния d. Чем больше минимальное расстояние (чем большую обнаруживающую и корректирующую способность мы хотим иметь), тем меньше кодовых слов можно п остроить. Код называтся о птимальным, если при заданных q, n, и d он содержит максимально в озможное число слов. Желательно иметь границы для максимально возможного зна чения M. Такие границы будут получены в настоя щем разделе. 1.6.1 Граница Хемминга (граница плотной упаковки) Теорема 1.6.1 . Для любого q-ичного кода длины n с минимальным расстоянием d=2t+1 число кодовых слов M удовлетворяет условию: qn . (1.6.1) t ⎛n⎞ i ⎜⎜ ⎟⎟( q − 1) ∑ i =0 ⎝ i ⎠ Д ругими словами, не существует кодов, у которых при данных q, n, и d число слов п ревышает правую часть неравенства (1.6.1). Доказательство: Пусть С - код над алфавитом Х, | X |= q , с мин имальным M≤ р асстоянием 2t+1 и M словами. В множестве X n всех q-ичных последовательностей, содержащем q n элементов, построим M шаров радиуса t с центрами в кодовых словах. Такие шары не имеют общих точек. Действительно, если бы шары пересекались, то из неравенства треугольника следовало бы, что минимальное расстояние было бы меньше, чем 2t+1. Неравенство (1.6.1) вытекает из того, что суммарный объем всех шаров, равный M ⋅ | Bt (c ) | , где t |Bt(c)|= ⎛n⎞ ∑ ⎜⎜ i ⎟⎟(q − 1) i - объем шара Хемминга с радиусом t, в силу отсутствия ⎝ ⎠ пересечений не превышает числа всех последовательностей, т.е. M ⋅ | Bt (c ) | ≤ q n . i =0 Полученная оценка называется границей Хемминга (границей плотной упаковки). Она показыва е т, что максимальный объем кода не превышает правой части соотношения (1.6.1). Если число слов некоторо го кода р авно правой части этого неравенства, то этот код является оптимальным в том смысле, что при д анных q, n и t он имеет максимально возможный объем. Такой код также называют плотно упакованным, поскольку его решающие области в виде шаров Хемминга радиуса t заполняют прос транство всех последовательностей максимально плотно. 1.6.2 Асимптотическая форма границы плотной упаковки Асимптотическая граница плотной упаковки (асимптотическая форма границы Хэмминга) является следствием теоремы 1.6.1 и теоремы об асимптотике объема шара Хемминга, доказанной в разделе 1.4.2. Напомним, что скоростью кода называется величина R = log 2 M / n . Мы будем называть величину δ= d / n относительным кодовым расстоянием. Как будет показано ниже, при фиксированном относительном расстоянии δ и при достаточно большом n максимально возможная скорость кода определяется только значением δ. Теорема 1.6.2 . Пу сть d=δn, δ>0 и n достаточно велико. Скорость любого q-ичного кода с минимальным расстоянием d удовлетворяет условию: ⎛δ ⎞ δ R ≤ log 2 q − h⎜ ⎟ − log 2 ( q − 1) , (1.6.2) ⎝2⎠ 2 где h ( x ) = − x log 2 x − (1 − x ) log 2 (1 − x ) . Доказательство: Согласно теореме 1.4.1, при достаточно большом n объем шара Хемминга с радиусом t = δn / 2 имеет следующую асимптотическую оценку: ⎧ ⎛δ ⎞ δ ⎫ | Bt (x ) |≅ exp 2 n ⎨h⎜ ⎟ + log 2 ( q − 1) ⎬ . ⎩ ⎝2⎠ 2 ⎭ Воспользуемся тождеством q n = exp 2 n{log 2 q} , и подставим эту оценку в неравенс тво (1.6.1). В результате получим, что для любого кода с минимальным расстоянием d=δn при достаточно большом n имеет место неравенство (1.6.2). В случае двоичных кодов, q=2, неравенство (1.6.2) упрощается и пр ини м ает следую щ ий в ид: R ≤ 1- h(δ/2). (1.6.3) 1 0.9 0.8 0.7 Rate 0.6 0.5 0.4 0.3 RH 0.2 0.1 0 0 RBE RVG 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 delta Рис.1.6.1 Асимптотические границы для скорости кодирования Верхняя граница скорости кодирования в зависимости от относительного расстояния δ (правая часть неравенства (1.6.3)) приведена на рис.1.6.1 в виде кривой R H (δ). Каждая точка выше этого графика соответствует недостижимому значению скорости при данном значении относительного расстояния δ. Кодов с парой параметров (R H (δ)+ ε ,δ) при достаточно большом n и ε >0 не существует. 1.6.3 Граница Варшамова-Гилберта Граница Хемминга имеет негативный характер и справедлива для всех кодов. Она устанавливает пределы возможного, указывая на то, что не существу ет слишком хороших кодов, т.е. таких, в которых и минимальное расстоян ие, и число кодовых слов были бы слишком большими. Теп ерь мы рассмотрим границу для числа кодовых слов , имеющую позитивный характер, а именно такую, которая гарантирует существование кодов с некоторыми достаточно большими значениями минимального расстояния и числа кодовых слов. Теорема 1.6.3. Cуществует q-ичный код длины n с минимальным расстоянием d, число слов которого удовлетворяет условию: qn M ≥ d −1 (1.6.4) i i ∑ Cn (q − 1) i =0 Доказательство: Доказательство этой теоремы будет носить конструктивный характер и основываться на некотором методе построения кода. Пусть X n – множество всех q-ичных последовательностей над алфавитом X, | X |= q . Выберем первое кодовое слово c 1 из X n произвольным образом и построим шар B d -1 ( c 1 ) с центром в этом слове и радиусом d-1. Если вне этого шара имеется еще хотя бы одно слово, то произвольным образом выбираем второе слово c 2 из множества X n \B d -1 ( c 1 ), т.е. из множества последовательностей из X n за исключением тех, которые уже принадлежат шару B d -1 ( c 1 ). Пост роим шар B d -1 ( c 2 ) и исключим из рассмотрения все точки, которые лежат в объединении 2 построенных шаров. Если множество Xn\ U Bd-1(ci) не пусто, выберем i =1 произвольным образом очередное слово из этого множества. Продолжим такой выбор, сужая на каждом шаге область выбора. Обозначим через M номер шага, M на котором область выбора X n \ U B d -1 ( c i ) впервые оказалась пустой. К этому i =1 моменту уже выбраны M слов c 1 , c 2 ,..., c M . Согласно правилу выбора каждо е слово оказывается на расстоянии не меньшем, чем d, от всех других уже выбранных слов. Слова c 1 , c 2 ,..., c M образуют q-ичный код длины n с минимальным расстоянием d, состоящий из М слов. Поскольку шары B d -1 ( c i ), i=1,2,…,M, покрывают множество X n , т.е. каждое слово из X n входит хотя бы в один шар, то число слов в объединении всех шаров не меньше общего числа последовательностей в X n , т.е. qn ≤ M UB d −1 i =1 (c ) ≤ M ⋅ | Bd −1 (c ) | . (1.6.5) Последнее неравенство следует из тго, что объем объединения множеств не превосходит суммы объемов объединяемых множеств. Утверждение теоремы теперь вытекает из неравенства (1.6.5). 1.6.4 Асимтотическая форма границы Варшамова-Гилберта Асимптотическая форма границы Варшамова-Гилберта следует из теоремы 1.6.3 и теоремы об асимптотике объема шара Хемминга, доказанной в разделе 1.4.2. Теорема 1.6.4. Пусть d-минимальное кодо вое расстояние, d= δn, где 0 ≤ δ < 1/2 , и n достаточно велико. Существует q -ичный код с минимальным расстоянием d, скорость которого удовлетворяет условию: R ≥ log 2 q − h (δ ) − δ log 2 ( q − 1) . (1.6.6) Утверждение вытекает из определения скорости кода, из неравенства (1 .6.4) и асимптотической формулы для объема шара Хемминга с радиусом δ . В случае двоичных кодов, q=2, неравенство (1.6.6) упрощается и приобретает с ледующий вид R ≥ 1 − h (δ ) . (1.6.7) Отметим, что в теореме утверждается существование кодов, которые при данном δ будут иметь скорость не меньшую, чем граница в правой части неравенства (1.6.6). Однако, не устанавливается на сколько скорость будет превышать эту г раницу и, вообще, будет ли такое превышение иметь место. С другой стороны, если существует некоторый код со скорос тью R , то легко строится код со скоростью R′<R той же длины и с тем же минимальным расстоянием с помощью выбрасывания некоторого числа кодовых слов. Это замечание показывает, что теорему 1.6.4 нужно интерпретировать следующим образом. Для любой пары ( R (δ ), δ ) , для которой 0 ≤ δ < 1/2 и R (δ ) ≤ log 2 q − h (δ ) − δ log 2 ( q − 1) , можно построить код со скоростью R (δ ) и относительным минимальным расстоянием δ . Множество таких достижимых пар параметров для q=2 показано на рис.1.6.1 как множество точек под и на кривой RVG (δ ) . Оказывается, что из двух приведенных границ первая, т.е. верхняя граница Хемминга, является асимптотически неточной. Она допускает существенное улучшение. Построение точной верхней границы для скорости кода является весьма трудной задачей. На рис.1.6.1 также показана одна их известных верхних границ – граница БассалыгоЭлайеса (см. кривую RBE (δ ) ). Улучшение нижней границы (границы ВаршамоваГилберта) не известно для относительно малых значений q. 1.6.5 Граница Бассалыго-Элайеса В этом разделе мы покажем вывод верхней границы для скорости кодов, которая существенно улучшает границу плотной упаковки, так как показывает, что не существует кодов со значительно более широким набором параметров, чем это следует из границы Хемминга. Эта граница получается с привлечением более тонких рассуждений. Для упрощения изложения мы рассмотрим только двоичный случай. В пространстве всех q-ичных векторов длины n каждый шар Хемминга t ⎛n⎞ Bt (x ) с центром в x ∈ X n и радиусом t содержит | Bt |= ∑ ⎜⎜ ⎟⎟( q − 1)i таких векторов. i =0 ⎝ i ⎠ Рассм отрим некоторый код С = {c1 , c 2 ,...c M } объема M = q nR и обозначим через M j число его слов, лежащих в шаре Bt ( x j ) . Ясно, что каждое из M слов кода C попадает в | Bt | таких шаро в. Поэтому ∑M x j∈X n j кодовых слов, попадающих в шары радиуса t, равно M t ⎛n⎞ 1 1 Tcp = n ∑ M j = n ⋅ ∑ ⎜⎜ ⎟⎟( q − 1) i = (1− R ) n q x j ∈X n q i =0 ⎝ i ⎠ q = M ⋅ | Bt | и среднее число t ⎛n⎞ i =0 ⎝ ⎠ ∑ ⎜⎜ i ⎟⎟(q − 1) . i (1.6.8) Найдется шар Bt (x ) с центром в некоторой точке x ∈ X n , который содержит T ≥ Tcp кодовых слов c1 , c 2 , ... , c T . Теперь оценим среднее расстояние d cp между этими T словами. Для этого выпишем разности a1 = c1 − x, a 2 T строками и n столбцами ⎡ a11 a12 ... ⎢a a22 ... ⎢ 21 . . ⎢ . ⎢ ⎣aT 1 aT 2 ... = c 2 − x, ..., aT = c T − x в виде таблицы с a1n ⎤ a2 n ⎥ ⎥, . ⎥ ⎥ aTn ⎦ причем ai = c i − x есть i-я строка в приведенной выше таблице. Для оценки среднего расстояния не существенно как определена операция вычитания векторов. Важно только, что { a i }- суть q-ичные векторы и нулевое значение встречается в векторе ai = c i − x только, когда соответствующие компоненты векторов c i и х одинаковы. Обозначим через v k вес k-го столбца этой таблицы. Поскольку векторы a1 , a 2 , ... , aT лежат в шаре радиуса t с центром в нулевом слове, то n ∑v k ≤ t ⋅T . (1.6.9) k =1 Далее, сумма всех попарных расстояний между словами c 1 , c 2 , ... , c T равна сумме попарных расстояний между символами столбцов таблицы, причем вклад k-го столбца равен vk ⋅ (T − vk ) , так как каждый из v k ненулевых символов столбца должен сочетаться с каждым из T − v k нулевых. Поскольку общее число пар кодовых слов равно ⎛ T ⎞ T (T − 1) ⎜⎜ ⎟⎟ = , то среднее расстояние между словами равно 2 ⎝2⎠ n d cp = 2∑ v k ⋅ (T − v k ) k =1 . (1.6.10) T ⋅ (T − 1) Минимальное кодовое расстояние не может превысить среднее расстояние, следовательно, оценивая d cp , мы фактически находим верхнюю оценку минимального расстояния кода С: d ≤ d cp . Теперь мы найдем верхнюю границу для d cp , выполняя условную максимизацию правой части (1.6.10) по всем значениям v k , подчиняющимся условию (1.6.9). Поскольку n замена ограничения в виде неравенства на ограничение в виде равенства ∑v k = t ⋅ T не k =1 уменьшает правой части (1.6.10), то можно решить задачу максимизации методом неопределенных множителей Лагранжа. Задача решается составлением функционала n 2∑ v k ⋅ (T − v k ) ⎛ n ⎞ + λ ⋅ ⎜ ∑ vk − t ⋅ T ⎟ , T ⋅ (T − 1) ⎝ k =1 ⎠ где λ - неопределенный множитель Лагранжа, и отысканием безусловного максимума по переменным v1 , v2 ,..., v n , λ . Для этого частные производные Φ ( v1 , v 2 ,..., v n , λ ) по каждой из переменных приравниваются к нулю. В результате решения этой задачи получим, что правая часть (1.6.10) принимает максимальное значение при vk = t ⋅ T / n для всех k . Подставляя эти значения, получим t⎞ T ⎛ d ≤ d cp ≤ 2t ⋅ ⎜1 − ⎟ ⋅ . (1.6.11) ⎝ n ⎠ T −1 t ⎛n⎞ 1 Так как T – наименьшее целое, для которого T ≥ (1−R ) n ∑ ⎜⎜ ⎟⎟( q − 1)i , то это q i =0 ⎝ i ⎠ условие для больших значений n можно записать следующим образом, используя асимптотическую форму числа точек в шаре Хемминга (см. (1.4.8),(1.4.9)): ⎧ ( a ) T ≥ q n{h (τ )−1+ R }, при фиксированном q, (1.6.12) ⎨ n (τ −1+ R ) , при q растущем вместе с n. ⎩ ( b) T ≥ q Φ ( v1 , v 2 ,..., v n , λ ) = k =1 где τ = t / n . Поэтому верен следующий вывод. Если для данной скорости R и сколь ⎛t⎞ угодно малого положительного ε выбрать радиус t из условия 1 − h⎜ ⎟ = R − ε в случае ⎝n⎠ t (a), или из условия = 1 − R + ε в случае (b), то T ≥ q nε и с ростом n число T будет n экспоненциально расти. Другими словами, в шары Хемминга такого радиуса будет попадать экспоненциальное число кодовых слов. Следовательно, отношение T/(T-1) будет сколь угодно близким к единице. При этом относительное кодовое расстояние δ =d/n будет удовлетворять неравенству (1.6.11): t ⎛ t⎞ δ ≤ 2 ⋅ ⎜1 − ⎟ . (1.6.13) n ⎝ n⎠ Окончательно, верна следующая теорема, в которой предполагается, что основание q фиксировано, n достаточно велико, а скорость кодов оценивается сверху при данном значении расстояния. Теорема 1.9.1 (Граница Бассалыго-Элайеса). Для всякого достаточно длинного qичного кода с минимальным расстоянием d = δn и фиксированным значением q скорость кода R удовлетворяет неравенству ⎛ 1 − 1 − 2δ ⎞ ⎟⎟ . (1.6.14) R ≤ 1 − h⎜⎜ 2 ⎠ ⎝ Доказательство: При заданном 0 ≤ δ ≤ 1 / 2 величина τ = t / n , которая доставляет равенство в (1.6.13) является решением квадратного уравнения τ 2 − τ + δ / 2 = 0 . Это решение приведено в виде аргумента функции h (⋅) в правой части (1.6.14). Действительное значение τ согласно (1.6.13) будет не меньше, чем (1 − 1 − 2δ ) / 2 , и скорость не больше, чем в неравенстве (1.6.14). В случае, когда основание кода растет вместе с его длиной, скорость q-ичного кода 1 + 1 − 2δ по границе Бассалыго-Элайеса удовлетворяет неравенству R ≤ . К сожалению, 2 это дает плохую верхнюю границу скорости для кодов с растущим алфавитом. Далее будет выведена граница Синглтона, которая покажет, что для всякого q-ичного кода скорость не превосходит 1 − δ , что при каждом значении δ лучше, чем правая часть выписанного выше неравенства.