
- •I. Общие положения
- •1. Декодирование циклических кодов (бчх-кодов)
- •1.1. Принцип синдромного декодирования бчх-кодов
- •1.2. Принципы декодирования бчх-кодов по алгоритму Меггита (декодер Меггита)
- •1.3. Проектирование декодеров Меггита
- •1.4. Декодер Меггита для укороченных бчх-кодов
- •II. Порядок выполнения работы
- •1. Порядок выполнения расчетной части лабораторной работы
- •2. Порядок выполнения программной части лабораторной работы
- •III. Содержание отчета
- •Приложение
1.3. Проектирование декодеров Меггита
Структурная схема декодера Меггита в режиме исправления ошибок приведена на рис. 1.1. Селектор настраивается на полином ошибки. Рассмотрим варианты построения селектора для исправления однократной ошибки. Для исправления однократной ошибки селектор состоит из одного k-входового конъюнктора, который настраивается на выделение ошибки в старшем разряде, т. е. на следующий вектор ошибки (табл. 1.3):
Рис.
1.1. Структурная схема декодирующего
устройства Меггита
Таблица 1.3
V′ |
a'0 |
a'1 |
… |
a'n-1 |
e |
0 |
0 |
… |
1 |
Первые n тактов происходит заполнение буферного регистра полиномом V'(x). Одновременно осуществляется вычисление синдрома S(x). Если после n-го такта элементы памяти генератора синдрома обнулились, значит, ошибок в принятом векторе нет, или кратность ошибки превышает корректирующую способность кода. Если в элементах памяти генератора синдрома находится ненулевой остаток, то деление продолжается дальше. При этом открывается ключ, давая возможность селектору исправить ошибку. На том такте, когда ошибочный разряд попадает в старший (n – 1) разряд буферного регистра, комбинация вектора синдрома S0,…, Sk–1 совпадает с настройкой селектора. Это означает, что выход селектора устанавливается равным 1. Тогда на следующем такте ошибочный разряд, выдвигаясь из старшего разряда БР, складывается по модулю 2 с выходом селектора, что эквивалентно инверсии ошибочного символа (исправлению ошибки). После этого элементы памяти генератора синдрома обнуляются сигналом Reset.
Номер такта, на котором сработает селектор, определяется следующим образом:
2n – i –1, (1.9)
где i – номер ошибочного разряда.
Соответственно, номер такта, на котором произойдет исправление ошибки,
2n –i. (1.10)
Для кода Хемминга с dmin = 4 генератор синдрома строится по схеме раздельного деления полинома V'(x) на g(x) и на (1 x). Поэтому все расчеты селектора для исправления однократной ошибки проводятся аналогично предыдущему примеру.
Первые n тактов происходит заполнение буферного регистра полиномом V'(x). Одновременно осуществляется вычисление синдрома S(x). Если после n-го такта элементы памяти генератора синдрома обнулились, значит, ошибок в принятом векторе нет, или кратность ошибки превышает корректирующую способность кода. Синдром Sk контролирует кратность ошибки (Sk = 1 – однократная ошибка, Sk = 0 – двукратная ошибка (или ошибок нет)). При однократной ошибке деление продолжается дальше. При этом открывается ключ, давая возможность селектору исправить ошибку. На том такте, когда ошибочный разряд попадает в старший (n–1)-й разряд буферного регистра, комбинация вектора синдрома S0,…, Sk–1 совпадает с настройкой селектора. Это означает, что выход селектора устанавливается равным «1». Тогда на следующем такте ошибочный разряд, выдвигаясь из старшего разряда БР, складывается по модулю 2 с выходом селектора, что эквивалентно инверсии ошибочного символа (исправлению ошибки). После этого элементы памяти генератора синдрома обнуляются сигналом Reset.
В случае возникновения двукратной ошибки после n-го такта синдром Sk будет равен «0». При этом выполнятся все необходимые условия для формирования сигнала стирания (Erase), поскольку хотя бы один из синдромов {S0, S1, ..., Sk–1} будет равен «1». Поэтому через открывшийся на (n+1)-м такте ключ на вход буферного регистра будет подан сигнал стирания, который его обнулит.