Читайте также:
|
|
Один из принципов обнаружения ошибок основывается на делении принятой кодовой комбинации на производящий многочлен Р(х).
В общем виде принятая комбинация h(x) в полиномиальном представлении равна сумме h(x)=f(x)+e(x),
где f(x)-многочлен, соответствующий переданной кодовой комбинации,
e(x)-многочлен, соответствующий вектору ошибок.
Ошибки обнаруживаются, если остаток от деления h(x) на Р(х) не равен нулю. Если же остаток равен нулю, то ошибка или отсутствует, или не обнаруживается кодом.
Исправление ошибок является гораздо более трудной задачей, чем обнаружение. Реализация такой операции возможна,
если каждый многочлен исправляемых ошибок будет давать отличный от других ненулевой остаток после деления на Р (х). Поэтому исправление ошибки на приеме может быть осуществлено с помощью следующих операций:
1. Принятое сообщение делится на Р(х) и вычисляется остаток.
2. Из таблиц пли путем некоторых вычислений находится
многочлен ошибок е (х), соответствующий остатку.
3. Найденный многочлен е (х) вычитается из h (х), в результате получается f (x), т. е. переданное сообщение.
Другая, применяемая на практике процедура обнаружения и исправления ошибок циклическими кодами, основывается на том, что комбинации циклического кода являются нулевым пространством по отношению к его проверочной матрице Н. Из этого свойства следует, что произведение вектора любой комбинации, принадлежащей циклическому коду, на матрицу Нт равно нулю. Если же в принятой комбинации содержатся ошибки и эта комбинация попадает в число запрещенных, то результат умножения, называемый синдромом, не будет равен нулю. Обозначив синдром через S = (s0, s1...sn-k-1) будем иметь
(h0,h2,h1…hn-1)*HT=(s0s1…sn-k-1), (2.12)
где вектор (h0h1h2…hn-1)соответствует многочлену принятой комбинации h(x), равному h (х) = f (x) -f e (х). Таким образом, ошибки обнаруживаются, если синдром S не равен нулю.
Исправить можно только те конфигурации ошибок в комбинации, которые дают различные ненулевые синдромы.
В дальнейшем операции обнаружения и исправления ошибок циклическими кодами будут рассмотрены на конкретных примерах.
3. ЦИКЛИЧЕСКИЕ КОДЫ, ИСПРАВЛЯЮЩИЕ ОДНОКРАТНЫЕ ОШИБКИ
Устройство, позволяющее преобразовать комбинации исходного k-элементного кода в комбинации циклического кода, называют кодирующим.
Согласно описанному ранее принципу построения систематического циклического (п,k)-кода, каждый многочлен φ (х), соответствующий определенной комбинации исходного кода, должен быть умножен на одночлен хn-k затем хп-кφ(х) делится на производящий многочлен Р (х). Обе эти операции реализуются с помощью регистра, включенного по виду многочлена Р(х). В результате деления многочлена хп-k φ (х) на производящий многочлен Р (х) в регистре сдвига будет получен остаток R (х) степени, меньшей степени многочлена Р (х). Как было показано, комбинация циклического кода будет выражена в виде многочлена φ (х) с дописанным к нему остатком R (х).
Рассмотрим пример построения и принцип работы кодирующего устройства кода (15.11) для производящего многочлена Р(х) = 1 + х +x4 (рис. 3.1). Элементы комбинации, соответствующей многочлену φ (х), поступают на выходной сумматор, что реализует умножение хn-kφ (х) = х4φ (х).
Pиc. 3.1. Кодирующее устройство систематического кода (15, 11) с образующим многочленом р(х) = 1 + x+x4
В течение k тактов, пока на вход поступают информационные элементы, ключ Кл. находится в положении 1, при этом информационные элементы без всякой задержки поступают на выход кодирующего устройства. С приходом последнего информационного элемента в регистре сдвига определяется остаток от деления хn-kφ (х) на Р (х), после чего ключ Кл. переключается в положение 2 и на выход вслед за информационными элементами считывается остаток R(x), т. е. проверочные элементы. Таким образом, с выхода кодирующего устройства поступает комбинация циклического кода.
Кодирующее устройство несистематического (п,k)-кода реализует умножение φ(х)Р(х). Схема построения КУ для кода (15, 11) с образующим полиномом Р (х) = 1 + х + x4 представлена на рис. 3.2.
Рис. 3.2. Кодирующее устройство несистематического циклического (15, 11)-кода с образующим многочленом р (х)= 1 + х + х4
Выше было показано, что в основе декодирования лежит признак делимости принятой последовательности на производящий многочлен Р (х). Для обнаружения ошибок достаточно убедиться, что остаток от деления не равен нулю, Отсюда ясно, что для построения декодирующего устройства циклического кода, позволяющего только обнаруживать ошибки, можно использовать регистр сдвига с обратными связями, который реализует деление на производящий многочлен Р (х).
Любой систематический (п,k)-код, исправляющий однократные ошибки, должен иметь такое число п — k проверочных разрядов в комбинации, чтобы удовлетворялось неравенство 2n-k≥n+1. Код, построенный таким образом, обеспечивает минимальное кодовое расстояние между любыми разрешенными комбинациями, равное трем.
Как было показано, любая одиночная ошибка может обнаруживаться по ненулевому остатку от деления многочлена h(x), соответствующего принятой комбинации, на производящий многочлен Р (х). Однако для исправления однократных ошибок требуется, чтобы любой ошибке соответствовал определенный отличный от нуля остаток и, во-вторых, чтобы все эти остатки были различны между собой, т. е., чтобы выполнялось взаимооднозначное соответствие между местоположением ошибки и ее остатком. Эти требования выполняются, если остатки в случае одиночных ошибок будут представлять собой степени первообразного элемента, являющегося корнем примитивного многочлена Р(х), и, следовательно, будут ненулевыми элементами поля Галуа GF(2n). Таких различных ненулевых элементов поля GF(2т) будет 2m —1. Пусть на i-й позиции комбинации длины n = 2т —I произошла ошибка, которой соответствует одночлен е (х) = хi. В результате деления принятой комбинации на производящий многочлен Р(х) образуется остаток R(x), представляющий собой элемент а1 поля GF(2m), где а — первообразный элемент поля и корень многочлена Р (х). Этот остаток будет содержаться в регистре сдвига, который реализует операцию деления на многочлен Р (х). При этом сдвиг содержимого регистра на один шаг соответствует умножению на х с последующим приведением результата по модулю Р (х). Следовательно, произведя (п — i) сдвигов остатка R (х), мы тем самым как бы умножили принятую комбинацию h (х) на хn-1 и разделили результат на Р (х). В регистре при этом останется некоторый новый остаток Ri (х) = xn-iR (x) [modP(x)]. Состояние регистра определим из преобразования:
хп-ih(х)=хn-i[ f(x)+ е(х)]=xn-if(х)+хп-iе(х)≡хn ≡1[modP(x)],
где f (х) — разрешенная кодовая комбинация, выраженная в виде многочлена, делящегося на Р (х) без остатка. Следовательно, состояние регистра после (n — i) сдвигов будет соответствовать элементу поля а°= 1. Обнаружив это состояние, можно легко исправить одиночную ошибку.
Рассмотрим процесс исправления одиночных ошибок декодирующим устройством (рис. 3.3) циклического (15,11)кода, производящий многочлен которого имеет вид Р (х) =1+ х+x4 Комбинация циклического кода поступает на вход буферного накопителя емкостью п =15 и одновременно с этим на вход регистра сдвига с обратными связями. Когда элементы комбинации циклического кода заполнят буфер, в регистре сдвига с обратными связями будет содержаться остаток от деления принятой комбинации на производящий многочлен Р (х).
Рис. 3.3. Декодирующее устройство циклического кода (15, 11), исправляющего однократные ошибки
Как было показано, определение ошибочной i-й позиции для рассматриваемого кода осуществляется путем обнаружения состояния (1000) через (п — i) сдвигов, т. е. тогда, когда ошибочный элемент уже покинет буфер. Следовательно, после буферного накопителя необходимо поставить задержку на один элемент, что позволит исправить эту ошибку со следующим тактом (сдвигом). Чтобы предотвратить ложную работу декодирующего устройства во время заполнения комбинацией буфера, а также при наличии в принятой комбинации одиночной ошибки на нулевой позиции, соответствующей коэффициенту при х°, поставлен ключ Кл. Этот ключ замыкается в момент поступления на выходной сумматор 111 первого информационного элемента, соответствующего коэффициенту при х14 в принятой комбинации, а размыкается в момент сброса регистра сдвига с обратными связями, т. е. в момент установления состояния 0000. Сброс можно осуществить, например, из блока обнаружения в момент исправления ошибки подачей единицы в сумматор 11.
Недостатком подобных схем декодирования является то, что после заполнения буферного накопителя в течение следующих п тактов информация на вход декодирующего устройства не должна поступать. В некоторых случаях в зависимости от требований к системе передачи данных это время простоя можно сократить до k сдвигов, если производить исправление одиночных ошибок только среди k информационных элементов принятой комбинации.
Дата добавления: 2015-07-16; просмотров: 182 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Матричное представление циклических кодов | | | ЦИКЛИЧЕСКИЕ КОДЫ, ИСПРАВЛЯЮЩИЕ ПАЧКИ ОШИБОК (КОДЫ ФАЙРА) |