5.5. Декодер с повышенной корректирующей способностьюНа рис. 5.5 приведена структурная схема декодера с повышенной корректирующей способностью. Декодер с повышенной корректирующей способностью содержит блок приема 1, первый выход которого через накопитель кодовой комбинации 7 и его другой выход подключен к первому входу блока исправления стираний 10. При этом второй выход блока приема 1 подключен к одному входу блока формирования стираний 3, тогда как третий выход блока приема 1 через датчик случайных чисел 2 подключен к другому входу блока формирования стираний 3. Выход этого блока через последовательно соединенные анализатор сигналов 4, накопитель оценок 6 и блок упорядочения оценок 5 подключен к первому входу блока эквивалентного кода 8 и его один выход подключен ко входу блока контроля линейности 9. Управляющий выход блока 9 подключен ко второму входу блока эквивалентного кода 8, а информационный выход контроля линейности 9 подключен к первому входу блока сравнения и обратных перестановок 11. Второй вход 11 подключен к другому выходу блока эквивалентного кода Рис. 5.5. Структурная схема декодера 8, при этом выход блока сравнения и обратных перестановок 11 подключен ко второму входу блока исправления стираний 10, а один выход накопителя кодовой комбинации 7 подключен к третьему входу блока эквивалентного кода 8. Рассмотрим поэтапное выполнение алгоритма работы декодера на примере кода БЧХ (15;5;7). Порождающая матрица кода в систематической форме имеет вид: Пусть от источника информации на вход кодера поступает вектор вида 1 1 0 1 0. В результате умножения вектора на порождающую матрицу на выходе кодера формируется последовательность 1 1 0 1 0 1 1 0 0 1 0 0 0 1 1. После передачи этой последовательности по каналу связи принимается вектор, в котором в соответствии с вероятностью ошибки на бит, характерной данному каналу связи, возможно появление ошибок. Пусть образец ошибок имеет вид . Заметно, что представленный объем ошибочных символов превосходит исправляющую способность кода по исправлению не только ошибок, но и стираний. Естественно, что жесткий декодер и традиционный мягкий декодер не в состоянии исправить возникшую в канале связи комбинацию ошибок. В результате передачи кодового вектора по каналу связи и наложения на него вектора ошибок получаем последовательность вида
. Эта последовательность фиксируется в блоке приема 1 жестким декодером и через первый выход этого блока направляется в накопитель кодовой комбинации 7. Кроме того, в блок 1 введен симметричный интервал неопределенности , где – энергия сигнала, приходящаяся на бит, – математическое ожидание уровня сигнала, а значение выбирается в пределах . Для уменьшения вероятности ошибки целесообразно значение выбирать более 0,6, но это приводит к росту ложных стираний, которые искажают индексы достоверности символов в сторону их занижения. Для минимизации числа ложных стираний вводятся датчик случайного числа и условие его работы. При попадании сигнала в интервал неопределенности блок приема 1 формирует только предварительное решение о стирании и вырабатывает границу вида , где - текущий уровень сигнала. Значение через третий выход блока 1 передается в датчик случайного числа 2. Датчика случайного числа 2 с заданной плотностью распределения вероятностей, (например, равномерной) по команде из блока 1 формирует случайное число и дает сигнал на формирование стирания в блок формирования стираний 3 при условии , в противном случае такой сигнал в блок 3 не поступает и стирание не формируется. Если близко по своему значению к границе , то стирание не формируется с вероятностью пропорциональной приближению к указанной границе и значительно большей вероятностью при приближении к нулю. Это позволяет снизить долю ложных стираний, что положительно отражается на процедуре формировании индексов достоверности символов в анализаторе сигналов 4. Совместный поток информационных символов и откорректированный поток стираний после прохождения соответственно блоков 1 и 3 разделяются, но между ними всегда сохраняется соответствием по номерам разрядов. В потоке стираний не стертым в первичной последовательности информационных символов присваивается значение ноль, а стертым позициям символов присваивается значение единица. Пусть конфигурация стираний для принятого кодового вектора имеет вид:
Для определения оценки надежности символа в анализаторе сигналов 4 назначаются два скользящих окна размерами и бит каждое, при этом , при этом ИДС определяются в соответствии с выражением (3.12). В результате работы блока 4 в накопителе оценок 6 при условии, что за пределами комбинации стирания отсутствовали, будет зафиксирована последовательность индексов достоверности символов (ИДС) в виде
В блоке упорядочения оценок 5 номера символов расставляются в порядке убывания ИДС. Результат работы блока 5 имеет вид
В соответствии с полученным двудольным графом переходов в блоке эквивалентного кода 8 формируется матрица перестановок . Блоку 8 известна порождающая матрица исходного кода, а также значения символов принятого вектора с ошибками из накопителя кодовой комбинации 7. На основе этих данных блок 8 формирует порождающую матрицу эквивалентного кода путем умножения матрицы на матрицу перехода , что обеспечивает перестановку столбцов матрицы . Одновременно в блоке 8 за счет умножения вектора на формируется новый вид вектора , который соответствует эквивалентному коду. Результат преобразований вектора показан в таблице 5.1.
Табл. 5.1 Образования вектора эквивалентного кода
Соответственно порождающая матрица преобразуется к виду Перестановка столбцов в может привести к потере линейной независимости между строками матрицы, что однозначно приводит к ошибочному результату декодирования. Оценку линейной независимости матрицы выполняет блок 9. Из матрицы выделяется матрица размерности и, используя признак равенства детерминанта данной матрицы нулю (признак линейной зависимости строк) или отсутствие такого равенства (признак линейной независимости), оценивается результат перестановки в . В случае подтверждения признака линейной независимости матрицы информация из блока 9 по информационному выходу передается в блок 11. При нарушении указанного признака блок 9 по управляющему выходу дает команду в блок 8 на перестановку столбцов с номерами и и соответствующее изменение параметров и . Как правило подобная процедура выполняется один раз и приблизительно всего в 10% общего возможного числа попыток, однако в случае неудачной коррекции и на первом шаге блок 9 по управляющему выходу дает команду в блок 8 на замену столбцов с номерами и . Вычисление выполняется в блоке 9 по известным алгоритмам. Для рассматриваемого случая получаем . Поскольку , то новая порождающая матрицу приводится к систематической форме и алгоритм вычисления вектора помех продолжается. В блоке сравнения и обратных преобразований 11 осуществляется приведение матрицы к систематической форме за счет деления единичной матрицы размерности на матрицу . Полученная обратная матрица указывает на порядок сложения строк матрицы для получения ее в систематической форме. Блок 11 при определении порождающей матрицы в систематической форме игнорирует в обратной матрице знак позиции и четные значения позиций, которые из-за работы в двоичном поле принимаются за ноль. Для получения первой строки матрицы G`` в систематической форме блок 11 складывает по модулю два все строки порождающей матрицы G``, исключая первую строку, для получения второй строки матрицы в систематической форме складываются все пять строк матрицы G`` и т.д. В результате в блоке 11 появляется матрица вида Умножая информационную часть 11101 вектора , из блока 5 на новую порождающую матрицу получаем кодовый вектор эквивалентного кода, у которого информационная часть полностью совпадает с трансформированным вектором и находящемся в блоке 5
В таком представлении вектор ошибок не соответствует комбинации ошибок, действовавшей в канале связи в момент передачи кодового вектора по этому каналу. Для получения истинной комбинации ошибок необходимо данный вектор умножить на обратную матрицу перестановки известную блоку 8, которая формируется за счет транспонирования исходной матрицы перестановки. Выполнение операции представлено в таблице 5.2. Табл.5.2 Образования вектора эквивалентного кода
Полученные данные из блока 11 поступают в блок исправления стираний 10 (позиции ошибок известны) и накладываются по модулю два на принятый вектор, полученный из накопителя кодовой комбинации 7. Исправление ошибок выполнено. Таким образом, применение декодера с использованием процедуры перехода к эквивалентному коду позволяет исправить в 90% случаев стираний и в 10% случаев стираний, что превосходит кратность исправляемых стираний для декодеров, использующих метрику Хэмминга и способных исправить только стираний.
Все приведенные в данной главе варианты построения мягких декодеров обладают новизной технического решения, авторские права на которые закреплены в [1, 33 ,42 ,43, 44], а их теоретическое обоснование изложено в соответствующих главах монографии.
|