Коды делятся на два больших класса. Коды с исправлением ошибок имеют целью восстановить с вероятностью, близкой к единице, посланное сообщение. Коды с обнаружением ошибок имеют целью выявить с вероятностью, близкой к единице, наличие ошибок.
Простой код с обнаружением ошибок основан на схеме
Соответствующая схема декодирования тривиальна:$$D(a_1\ldots a_ma_{m+1})= \begin{cases}a_1\ldots a_m,\text{если $\sum^{m+1}_{i=1}a_i$ --- четна;}\\ \hbox{\it \<ошибка\>},\text{если $\sum^{m+1}_{i=1}a_i$ --- нечетна.} \end{cases}$$ Разумеется, что четность $$\sum^{m+1}_{i=1}a_i$$ не гарантирует безошибочной передачи.
Пример. Проверка четности при $$m=2$$ реализуется следующим кодом (функцией $$E$$ ): $$00\rightarrow000$$, $$01\rightarrow011$$, $$10\rightarrow101$$, $$11\rightarrow110$$. В двоичном симметричном канале доля неверно принятых сообщений для этого кода (хотя бы с одной ошибкой) равна $$q^3+3pq^2+3p^2q$$ (три, две или одна ошибка соответственно). Из них незамеченными окажутся только ошибки точно в двух битах, не изменяющие четности. Вероятность таких ошибок $$3pq^2$$. Вероятность ошибочной передачи сообщения из двух бит равна $$2pq+q^2$$. При малых $$q$$ верно, что $$3pq^2\ll2pq+q^2$$.
Рассмотрим $$(m,3m)$$ -код с
Пример. Предположим $$q=0.1$$. Тогда вероятность ошибки при передачи одного бита - 0.028, те. этот код снижает вероятность ошибки с 10% до 2.8%. Подобным образом организованная передача с пятикратным повторением даст вероятность ошибки на бит $$q^5+5pq^4+10p^2q^3=0.00856=0.856%$$, т.е. менее 1%. В результате вероятность правильной передачи строки длиной 10 возрастет с $$0.9^{10}\approx35%$$ до $$0.972^{10}\approx75\%$$ при тройных повторениях и до $$0.99144^{10}\approx92%$$ при пятикратных повторениях.
Тройное повторение обеспечивает исправление одной ошибки в каждой позиции за счет трехкратного увеличения времени передачи.
Рассмотрим $$(2048,2313)$$ -код, используемый при записи данных на
магнитофонную ленту компьютерами Apple II. К каждому байту исходных данных прибавляется бит
четности и, кроме того, после каждых таких расширенных битом четности 256
байт добавляется специальный байт, также расширенный битом четности. Этот
специальный байт, который называют
(рис 8.1) Приведенные ранее примеры простейших кодов принадлежат к классу
Пример. Пусть $$a=1001$$ и $$b=0011$$, тогда $$w(a)=w(b)=2$$, $$d(a,b)=2$$.
Далее операция $$+$$ при применении к двоичным словам будет означать поразрядное сложение без переноса, т.е. сложение по модулю 2 или "исключающее ИЛИ" (XOR).
Расстояние между двоичными словами $$a$$ и $$b$$ равно весу их поразрядной суммы, т.е. $$d(a,b)=w(a+b)$$.
Если два слова различаются в каком-либо разряде, то это добавит единицу к весу их поразрядной суммы.
Следовательно, если $$a$$ и $$b$$ - слова длины $$n$$, то вероятность того, что слово $$a$$ будет принято как $$b$$, равна $$p^{n-d(a,b)}q^{d(a,b)}$$.
Наример, вероятность того, что слово 1011 будет принято как 0011, равна $$p^3q$$.
Для возможности обнаружения ошибки в одной позиции минимальное расстояние между словами кода должно быть большим 1.
Иначе ошибка в одной позиции сможет превратить одно кодовое слово в другое, что не даст ее обнаружить.
Для того, чтобы код давал возможность обнаруживать все ошибки кратности, не большей $$k$$, необходимо и достаточно, чтобы наименьшее расстояние между его словами было $$k+1$$.
Достаточность доказывается конструктивно: если условие утверждения выполнено для $$E$$, то в качестве декодирующей функции $$D$$ следует взять функцию, сообщающую об ошибке, если декодируемое слово отличается от любого из слов из образа $$E$$. Необходимость доказывается от противного: если минимальное расстояние $$k'<k+1$$, то ошибка в $$k'$$ позициях сможет превратить одно кодовое слово в другое.
Для такого кода вероятность того, что ошибки в сообщении останутся необнаруженными, равна$$\sum^n_{i=k+1}C^i_np^{n-i}q^i=C^{k+1}_np^{n-k-1}q^{k+1}+\cdots+ C^{n-1}_npq^{n-1}+q^n\approx$$ $$[$$ при малых $$q$$ и не слишком маленьких $$k]\approx C^{k+1}_np^{n-k-1}q^{k+1}$$.
Для того, чтобы код давал возможность исправлять все ошибки кратности, не большей $$k$$, необходимо и достаточно, чтобы наименьшее расстояние между его словами было $$2k+1$$.
Достаточность доказывается конструктивно: если условие утверждения выполнено для $$E$$, то в качестве декодирующей функции $$D$$ следует взять функцию, возвращающую ближайшее к декодируемому слово из образа $$E$$. Необходимость доказывается от противного. Пусть расстояние между выбранными словами в коде равно $$2k$$. Тогда если при передаче каждого из этих слов случится $$k$$ ошибок, которые изменят биты, в которых различаются эти слова, то приемник получит два идентичных сообщения, что свидетельствует о том, что в данной ситуации исправление $$k$$ ошибок невозможно. Следовательно, минимальное расстояние между словами кода должно быть большим $$2k$$.
Пример. Рассмотрим $$(1,3)$$ -код, состоящий из $$E$$, задающей отображение $$0\rightarrow000$$ и $$1\rightarrow111$$, и $$D$$, задающей отображение $$000\rightarrow0, 001\rightarrow0, 010\rightarrow0, 011\rightarrow1, 100\rightarrow0, 101\rightarrow1, 110\rightarrow1, 111\rightarrow1$$. Этот код (с тройным повторением) исправляет ошибки в одной позиции, т.к. минимальное расстояние между словами кода равно 3.
Если код исправляет все ошибки кратности $$k$$ и меньшей, то вероятность ошибочного приема слова длины $$n$$ очевидно не превосходит $$\sum^n_{i=k+1}C^i_np^{n-i}q^i$$. Вероятность правильного приема в этом случае не меньше, чем$$\sum^k_{i=0}C^i_np^{n-i}q^i=p^n+C^1_np^{n-1}q+\cdots+C^k_np^{n-k}q^k.$$
Передачу данных часто удобно рассматривать следующим образом. Исходное
сообщение $$a=a_1\ldots a_m$$ кодируется функцией $$E$$ в
кодовое слово $$b=b_1\ldots b_n$$. Канал связи при передаче добавляет к нему
функцией $$T$$
Пример. Пусть передаваемое слово $$a=01$$ кодируется словом $$b=0110$$, а строка ошибок - $$e=0010$$. Тогда будет принято слово $$r=0100$$. Система, исправляющая ошибки, переведет его в 0110 и затем восстановит переданное слово 01.
Если система только обнаруживает ошибки и расстояние между любыми кодовыми словами $$k\ge2$$, то любая строка ошибок $$e$$ с единственной единицей приведет к слову $$r=b+e$$, которое не является кодовым.
Пример. Рассмотрим $$(2,3)$$ -код с проверкой четности. Множество кодовых слов - $$\{000, 011, 101, 110\}$$. Ни одна из строк ошибок 001, 010, 100, 111 не переводит одно кодовое слово в другое. Поэтому однократная и тройная ошибки могут быть обнаружены.
Пример. Следующий $$(2,5)$$ -код обнаруживает две ошибки:$$a_1=00\rightarrow00000=b_1,\qquad a_2=01\rightarrow01011=b_2,$$ $$a_3=10\rightarrow10101=b_3,\qquad a_4=11\rightarrow11110=b_4.$$ Этот же код способен исправлять однократную ошибку, потому что любые два кодовых слова отличаются по меньшей мере в трех позициях. Из того, что $$d(b_i,b_j)\ge3$$ при $$i\ne j$$, следует, что однократная ошибка приведет к приему слова, которое находится на расстоянии 1 от кодового слова, которое было передано. Поэтому схема декодирования, состоящая в том, что принятое слово переводится в ближайшее к нему кодовое, будет исправлять однократную ошибку. В двоичном симметричном канале вероятность правильной передачи одного блока будет не меньше чем $$p^5+5p^4q$$.
Нижняя граница задает необходимое условие для помехозащитного кода с заданными характеристиками, т.е. любой такой код должен ему соответствовать, но не всегда можно построить код по подобранным, удовлетворяющим условию характеристикам. Верхняя граница задает достаточное условие для существования помехозащитного кода с заданными характеристиками, т.е. по любым подобранным, удовлетворяющим условию характеристикам можно построить им соответствующий код.
Упражнение 37 Имеется $$(8,9)$$ -код с проверкой четности. Вычислить вероятность того, что в случае ошибки этот код ее не обнаружит, если вероятность ошибки при передаче каждого бита равна 1%. Вычислить также вероятность ошибочной передачи без использования кода. Сделать аналогичные расчеты для случая, когда вероятность ошибки в десять раз меньше.
Упражнение 38 Вычислить минимальную и максимальную оценки количества дополнительных разрядов $$r$$ для кодовых слов длины $$n$$, если требуется, чтобы минимальное расстояние между ними было $$d$$. Рассмотреть случаи $$n=32$$, $$d=3$$ и $$n=23$$, $$d=7$$.
Ранее каждая схема кодирования описывалась таблицами, задающими кодовое слово длины $$n$$ для каждого исходного слова длины $$m$$. Для блоков большой длины этот способ требует большого объема памяти и поэтому непрактичен. Например, для $$(16,33)$$ -кода потребуется $$33*2^{16}=2\,162\,688$$ бит.
Гораздо меньшего объема памяти требует матричное кодирование. Пусть $$E$$ матрица размерности $$m\times n$$, состоящая из элементов $$e_{ij}$$, где $$i$$ - это номер строки, а $$j$$ - номер столбца. Каждый из элементов матрицы $$e_{ij}$$ может быть либо 0, либо 1. Кодирование реализуется операцией $$b=aE$$ или $$b_j=a_1e_{1j}+a_2e_{2j}+\cdots+a_me_{mj}$$, где кодовые слова рассматриваются как векторы, т.е как матрицы-строки размера $$1\times n$$.
Пример. Рассмотрим следующую $$3\times6$$ -матрицу:$$E=\left\lbrack\matrix{100110\cr 010011\cr 001111\cr}\right\rbrack.$$ Тогда кодирование задается такими отображениями: $$000\rightarrow000000$$, $$001\rightarrow001111$$, $$010\rightarrow010011$$, $$011\rightarrow011100$$, $$100\rightarrow100110$$, $$101\rightarrow101001$$, $$110\rightarrow110101$$, $$111\rightarrow111010$$.
Рассмотренный пример показывает преимущества матричного кодирования: достаточно запомнить $$m$$ кодовых слов вместо $$2^m$$ слов. Это общий факт.
Кодирование не должно приписывать одно и то же кодовое слово разным исходным сообщениям. Простой способ добиться этого состоит в том, чтобы $$m$$ столбцов (в предыдущем примере - первых) матрицы $$E$$ образовывали единичную матрицу. При умножении любого вектора на единичную матрицу получается этот же самый вектор, следовательно, разным векторам-сообщениям будут соответствовать разные вектора систематического кода.
Матричные коды называют также
Упражнение 39 Вычислить минимальную оценку по Плоткину количества дополнительных разрядов $$r$$ для кодовых слов матричного кода, если требуется, чтобы минимальное расстояние между ними было $$d$$. Рассмотреть случаи из предыдущего упражнения.
Коды делятся на два больших класса. Коды с исправлением ошибок имеют целью восстановить с вероятностью, близкой к единице, посланное сообщение. Коды с обнаружением ошибок имеют целью выявить с вероятностью, близкой к единице, наличие ошибок.
Простой код с обнаружением ошибок основан на схеме
Соответствующая схема декодирования тривиальна:$$D(a_1\ldots a_ma_{m+1})= \begin{cases}a_1\ldots a_m,\text{если $\sum^{m+1}_{i=1}a_i$ --- четна;}\\ \hbox{\it \<ошибка\>},\text{если $\sum^{m+1}_{i=1}a_i$ --- нечетна.} \end{cases}$$ Разумеется, что четность $$\sum^{m+1}_{i=1}a_i$$ не гарантирует безошибочной передачи.
Пример. Проверка четности при $$m=2$$ реализуется следующим кодом (функцией $$E$$ ): $$00\rightarrow000$$, $$01\rightarrow011$$, $$10\rightarrow101$$, $$11\rightarrow110$$. В двоичном симметричном канале доля неверно принятых сообщений для этого кода (хотя бы с одной ошибкой) равна $$q^3+3pq^2+3p^2q$$ (три, две или одна ошибка соответственно). Из них незамеченными окажутся только ошибки точно в двух битах, не изменяющие четности. Вероятность таких ошибок $$3pq^2$$. Вероятность ошибочной передачи сообщения из двух бит равна $$2pq+q^2$$. При малых $$q$$ верно, что $$3pq^2\ll2pq+q^2$$.
Рассмотрим $$(m,3m)$$ -код с
Пример. Предположим $$q=0.1$$. Тогда вероятность ошибки при передачи одного бита - 0.028, те. этот код снижает вероятность ошибки с 10% до 2.8%. Подобным образом организованная передача с пятикратным повторением даст вероятность ошибки на бит $$q^5+5pq^4+10p^2q^3=0.00856=0.856%$$, т.е. менее 1%. В результате вероятность правильной передачи строки длиной 10 возрастет с $$0.9^{10}\approx35%$$ до $$0.972^{10}\approx75\%$$ при тройных повторениях и до $$0.99144^{10}\approx92%$$ при пятикратных повторениях.
Тройное повторение обеспечивает исправление одной ошибки в каждой позиции за счет трехкратного увеличения времени передачи.
Рассмотрим $$(2048,2313)$$ -код, используемый при записи данных на
магнитофонную ленту компьютерами Apple II. К каждому байту исходных данных прибавляется бит
четности и, кроме того, после каждых таких расширенных битом четности 256
байт добавляется специальный байт, также расширенный битом четности. Этот
специальный байт, который называют
(рис 8.1) Приведенные ранее примеры простейших кодов принадлежат к классу
Пример. Пусть $$a=1001$$ и $$b=0011$$, тогда $$w(a)=w(b)=2$$, $$d(a,b)=2$$.
Далее операция $$+$$ при применении к двоичным словам будет означать поразрядное сложение без переноса, т.е. сложение по модулю 2 или "исключающее ИЛИ" (XOR).
Расстояние между двоичными словами $$a$$ и $$b$$ равно весу их поразрядной суммы, т.е. $$d(a,b)=w(a+b)$$.
Если два слова различаются в каком-либо разряде, то это добавит единицу к весу их поразрядной суммы.
Следовательно, если $$a$$ и $$b$$ - слова длины $$n$$, то вероятность того, что слово $$a$$ будет принято как $$b$$, равна $$p^{n-d(a,b)}q^{d(a,b)}$$.
Наример, вероятность того, что слово 1011 будет принято как 0011, равна $$p^3q$$.
Для возможности обнаружения ошибки в одной позиции минимальное расстояние между словами кода должно быть большим 1.
Иначе ошибка в одной позиции сможет превратить одно кодовое слово в другое, что не даст ее обнаружить.
Для того, чтобы код давал возможность обнаруживать все ошибки кратности, не большей $$k$$, необходимо и достаточно, чтобы наименьшее расстояние между его словами было $$k+1$$.
Достаточность доказывается конструктивно: если условие утверждения выполнено для $$E$$, то в качестве декодирующей функции $$D$$ следует взять функцию, сообщающую об ошибке, если декодируемое слово отличается от любого из слов из образа $$E$$. Необходимость доказывается от противного: если минимальное расстояние $$k'<k+1$$, то ошибка в $$k'$$ позициях сможет превратить одно кодовое слово в другое.
Для такого кода вероятность того, что ошибки в сообщении останутся необнаруженными, равна$$\sum^n_{i=k+1}C^i_np^{n-i}q^i=C^{k+1}_np^{n-k-1}q^{k+1}+\cdots+ C^{n-1}_npq^{n-1}+q^n\approx$$ $$[$$ при малых $$q$$ и не слишком маленьких $$k]\approx C^{k+1}_np^{n-k-1}q^{k+1}$$.
Для того, чтобы код давал возможность исправлять все ошибки кратности, не большей $$k$$, необходимо и достаточно, чтобы наименьшее расстояние между его словами было $$2k+1$$.
Достаточность доказывается конструктивно: если условие утверждения выполнено для $$E$$, то в качестве декодирующей функции $$D$$ следует взять функцию, возвращающую ближайшее к декодируемому слово из образа $$E$$. Необходимость доказывается от противного. Пусть расстояние между выбранными словами в коде равно $$2k$$. Тогда если при передаче каждого из этих слов случится $$k$$ ошибок, которые изменят биты, в которых различаются эти слова, то приемник получит два идентичных сообщения, что свидетельствует о том, что в данной ситуации исправление $$k$$ ошибок невозможно. Следовательно, минимальное расстояние между словами кода должно быть большим $$2k$$.
Пример. Рассмотрим $$(1,3)$$ -код, состоящий из $$E$$, задающей отображение $$0\rightarrow000$$ и $$1\rightarrow111$$, и $$D$$, задающей отображение $$000\rightarrow0, 001\rightarrow0, 010\rightarrow0, 011\rightarrow1, 100\rightarrow0, 101\rightarrow1, 110\rightarrow1, 111\rightarrow1$$. Этот код (с тройным повторением) исправляет ошибки в одной позиции, т.к. минимальное расстояние между словами кода равно 3.
Если код исправляет все ошибки кратности $$k$$ и меньшей, то вероятность ошибочного приема слова длины $$n$$ очевидно не превосходит $$\sum^n_{i=k+1}C^i_np^{n-i}q^i$$. Вероятность правильного приема в этом случае не меньше, чем$$\sum^k_{i=0}C^i_np^{n-i}q^i=p^n+C^1_np^{n-1}q+\cdots+C^k_np^{n-k}q^k.$$
Передачу данных часто удобно рассматривать следующим образом. Исходное
сообщение $$a=a_1\ldots a_m$$ кодируется функцией $$E$$ в
кодовое слово $$b=b_1\ldots b_n$$. Канал связи при передаче добавляет к нему
функцией $$T$$
Пример. Пусть передаваемое слово $$a=01$$ кодируется словом $$b=0110$$, а строка ошибок - $$e=0010$$. Тогда будет принято слово $$r=0100$$. Система, исправляющая ошибки, переведет его в 0110 и затем восстановит переданное слово 01.
Если система только обнаруживает ошибки и расстояние между любыми кодовыми словами $$k\ge2$$, то любая строка ошибок $$e$$ с единственной единицей приведет к слову $$r=b+e$$, которое не является кодовым.
Пример. Рассмотрим $$(2,3)$$ -код с проверкой четности. Множество кодовых слов - $$\{000, 011, 101, 110\}$$. Ни одна из строк ошибок 001, 010, 100, 111 не переводит одно кодовое слово в другое. Поэтому однократная и тройная ошибки могут быть обнаружены.
Пример. Следующий $$(2,5)$$ -код обнаруживает две ошибки:$$a_1=00\rightarrow00000=b_1,\qquad a_2=01\rightarrow01011=b_2,$$ $$a_3=10\rightarrow10101=b_3,\qquad a_4=11\rightarrow11110=b_4.$$ Этот же код способен исправлять однократную ошибку, потому что любые два кодовых слова отличаются по меньшей мере в трех позициях. Из того, что $$d(b_i,b_j)\ge3$$ при $$i\ne j$$, следует, что однократная ошибка приведет к приему слова, которое находится на расстоянии 1 от кодового слова, которое было передано. Поэтому схема декодирования, состоящая в том, что принятое слово переводится в ближайшее к нему кодовое, будет исправлять однократную ошибку. В двоичном симметричном канале вероятность правильной передачи одного блока будет не меньше чем $$p^5+5p^4q$$.
Нижняя граница задает необходимое условие для помехозащитного кода с заданными характеристиками, т.е. любой такой код должен ему соответствовать, но не всегда можно построить код по подобранным, удовлетворяющим условию характеристикам. Верхняя граница задает достаточное условие для существования помехозащитного кода с заданными характеристиками, т.е. по любым подобранным, удовлетворяющим условию характеристикам можно построить им соответствующий код.
Упражнение 37 Имеется $$(8,9)$$ -код с проверкой четности. Вычислить вероятность того, что в случае ошибки этот код ее не обнаружит, если вероятность ошибки при передаче каждого бита равна 1%. Вычислить также вероятность ошибочной передачи без использования кода. Сделать аналогичные расчеты для случая, когда вероятность ошибки в десять раз меньше.
Упражнение 38 Вычислить минимальную и максимальную оценки количества дополнительных разрядов $$r$$ для кодовых слов длины $$n$$, если требуется, чтобы минимальное расстояние между ними было $$d$$. Рассмотреть случаи $$n=32$$, $$d=3$$ и $$n=23$$, $$d=7$$.
Ранее каждая схема кодирования описывалась таблицами, задающими кодовое слово длины $$n$$ для каждого исходного слова длины $$m$$. Для блоков большой длины этот способ требует большого объема памяти и поэтому непрактичен. Например, для $$(16,33)$$ -кода потребуется $$33*2^{16}=2\,162\,688$$ бит.
Гораздо меньшего объема памяти требует матричное кодирование. Пусть $$E$$ матрица размерности $$m\times n$$, состоящая из элементов $$e_{ij}$$, где $$i$$ - это номер строки, а $$j$$ - номер столбца. Каждый из элементов матрицы $$e_{ij}$$ может быть либо 0, либо 1. Кодирование реализуется операцией $$b=aE$$ или $$b_j=a_1e_{1j}+a_2e_{2j}+\cdots+a_me_{mj}$$, где кодовые слова рассматриваются как векторы, т.е как матрицы-строки размера $$1\times n$$.
Пример. Рассмотрим следующую $$3\times6$$ -матрицу:$$E=\left\lbrack\matrix{100110\cr 010011\cr 001111\cr}\right\rbrack.$$ Тогда кодирование задается такими отображениями: $$000\rightarrow000000$$, $$001\rightarrow001111$$, $$010\rightarrow010011$$, $$011\rightarrow011100$$, $$100\rightarrow100110$$, $$101\rightarrow101001$$, $$110\rightarrow110101$$, $$111\rightarrow111010$$.
Рассмотренный пример показывает преимущества матричного кодирования: достаточно запомнить $$m$$ кодовых слов вместо $$2^m$$ слов. Это общий факт.
Кодирование не должно приписывать одно и то же кодовое слово разным исходным сообщениям. Простой способ добиться этого состоит в том, чтобы $$m$$ столбцов (в предыдущем примере - первых) матрицы $$E$$ образовывали единичную матрицу. При умножении любого вектора на единичную матрицу получается этот же самый вектор, следовательно, разным векторам-сообщениям будут соответствовать разные вектора систематического кода.
Матричные коды называют также
Упражнение 39 Вычислить минимальную оценку по Плоткину количества дополнительных разрядов $$r$$ для кодовых слов матричного кода, если требуется, чтобы минимальное расстояние между ними было $$d$$. Рассмотреть случаи из предыдущего упражнения.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.