Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 курс / 03 CRC / TEC_2_4.DOC
Скачиваний:
62
Добавлен:
10.12.2013
Размер:
270.85 Кб
Скачать

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)-м такте ключ на вход буферного регистра будет подан сигнал стирания, который его обнулит.

Соседние файлы в папке 03 CRC
  • #
    10.12.201354.5 Кб28coder_g.mdl
  • #
    10.12.201334.83 Кб28coder_h.mdl
  • #
    10.12.2013195.92 Кб26crc_codes.mdl
  • #
    10.12.2013202.19 Кб30decoder.mdl
  • #
    10.12.2013395.18 Кб32TEC_2_3.pdf
  • #
    10.12.2013270.85 Кб62TEC_2_4.DOC
  • #
    10.12.2013404.93 Кб37TEC_2_4.pdf
  • #
    10.12.201384.74 Кб27template_coder.mdl
  • #
    10.12.2013631.31 Кб29template_decoder.mdl