4.7.2. Описание алгоритма при исправлении ошибокВновь рассмотрим код БЧХ с порождающим полиномом g(x)=7218 и значением для нумерации кластера. Код имеет порождающую матрицу в систематической форме, представленную выражением (4.7). Пусть на выходе кодера образовался вектор вида: . В соответствии с алгоритмом передатчик заменяет младший (правый) бит комбинации на бит проверки четность для старших трех разрядов, которые определяют номер кластера. Следовательно, в канал связи будет передан вектор: . Приемник принимает вектор, устанавливая по какому-либо известному принципу градацию надежности для каждого символа комбинации. Пусть соответствие символов и градаций надежности символов (ИДС) имеет вид
Приняв вектор с ошибками, декодер на первом шаге декодирования осуществляет проверку номера кластера на четность. Поскольку подобная проверка дает отрицательный результат, декодер инвертирует второй справа разряд, так как он определяет номер кластера и имеет худшую градацию надежности среди анализируемых оценок на данном шаге алгоритма. Вектор, используемый для последующего анализа, имеет вид
Номер восстановленного кластера получил значение 410. После этого шага декодер переходит на укороченный код (12,4,5), порождающая матрица которого имеет вид (4.8). Далее формируется корректирующий вектор путем умножения номера кластера на первые три строки порождающей матрицы G .
Табл. 4.21 Формирование вектора укороченного кода
При этом младшему разряду этого вектора искусственно присваивается наиболее низкий равный нулю. Далее выполняется основной алгоритм декодера, представленный табл. 4.22. Табл. 4.22 Преобразование вектора укороченного кода по основному алгоритму
В этой таблице переходы от элементов строки «Порядковой нумерации» к элементам строки «Новая нумерация символов» представляются двудольным графом, на основании которого по общеизвестным правилам формируется матрица перестановок размерности . Путем умножения матрицы на матрицу Gук декодер получает результат предварительного преобразования, по которому оценивается свойство нелинейности строк новой матрицы . Для этого из выделяются первые столбцов с образованием матрицы , для которой проверяют условие и выполняется действие по вычислению обратной матрицы , структура которой точно указывает на порядок комбинирования строк матрицы для получения в систематической форме порождающей матрицы . Например, для декодер получит Условие выполняется, следовательно, на основании определяется порождающая матрица эквивалентного кода в систематической форме. . Умножая вектор 0111, выделенный в таблице, на новую порождающую матрицу декодер получает вектор эквивалентного кода
Последующие преобразования по выделению условного вектора ошибок представлены в табл. 4.23, 4.24 и 4.25.
Табл. 4.23 Преобразование вектора укороченного кода по основному алгоритму
Выполнив операцию , декодер получает вектор ошибок, действовавший в канале с вязи при передаче кодового вектора. Для получения истинного вектора укороченного кода необходимо сложить по модулю 2 три вектора: вектор ошибок , корректирующий вектор и вектор укороченного кода. Табл. 4.24 Преобразование вектора укороченного кода по основному алгоритму
Табл. 4.25 Преобразование вектора кода по основному алгоритму
К результату сложения необходимо добавить три старших разряда, отвечающих за номер кластера. Применение предложенного способа мягкого декодирования систематических блоковых позволяет сократить время обработки кодовых комбинаций в декодере за счет снижения размерности квадратной матрицы для определения свойства нелинейности строк переставленной порождающей матрицы после упорядочения столбцов исходной порождающей матрицы. Например, вычисление детерминанта матрицы размерности потребует выполнения 59 элементарных операций, а аналогичные вычисления, проведенные для матрицы размерности потребуют выполнения 12599 подобных операций (снижение вычислительных затрат в 213 раз). Кроме того, способ обеспечивает защиту кластера без введения дополнительной избыточности и исправление стираний за пределами тех возможностей, которые определяются метрикой Хэмминга.
|