Декодер с повышенной корректирующей способностью
Иллюстрации
Показать всеИзобретение относится к технике связи и может быть использовано при проектировании новых и модернизации существующих систем передачи дискретной информации. Техническим результатом является повышение достоверности приема информации. Указанный результат достигается тем, что декодер с повышенной корректирующей способностью содержит блок приема, накопитель кодовой комбинации, блок исправления стираний, анализатор сигналов и накопитель оценок, а также датчик случайных чисел, блок формирования стираний, блок упорядочения оценок, блок эквивалентного кода, блок контроля линейности, блок сравнения и обратных перестановок. За счет процедуры рандомизации решений о стираниях снижается число ложных стираний, а за счет использования преобразований эквивалентных кодов обеспечивается полное использование введенной в код избыточности. 1 ил., 2 табл.
Реферат
Изобретение относится к технике связи и может использоваться при проектировании новых и модернизации существующих систем передачи дискретной информации.
Известны устройства восстановления стираний и исправления ошибок, использующие индексы достоверности символов (градации надежности символов) для повышения достоверности приема информации (см. Р.Морелос-Сарагоса. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение. М.: Техносфера, 2005, с.103, …, 105; а также устройства по патентам РФ на изобретения №2166235; 2209519; 2209520; 2256294, 2344556).
Кроме того, известны методы декодирования по упорядоченным статистикам (см. Р.Морелос-Сарагоса. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение. М.: Техносфера, 2005, с.213, …, 216).
Наиболее близким устройством такого же назначения является устройство восстановления кодовой последовательности (см. патент РФ на изобретение №2256294), содержащее блок приема, один выход которого через анализатор сигналов подключен к накопителю, один выход которого подключен к первому входу блока восстановления стираний, информационный выход которого подключен к одному из входов блока исправления стираний, а также накопитель кодовой комбинации, блок оценок демодуляции и блок коррекции, выход которого подключен ко второму входу блока восстановления стираний, управляющий выход которого подключен ко второму входу блока коррекции, первый вход которого подключен к выходу блока оценок демодуляции, первый вход которого подключен к другому выходу накопителя, а второй вход подключен ко второму выходу накопителя кодовой комбинации, вход которого подключен к другому выходу блока приема, а первый выход к другому входу блока исправления стираний.
К недостаткам работы аналогов, в том числе и прототипа, предлагаемого декодера следует отнести неполное использование введенной в код избыточности из-за использования метрики Хэмминга, когда декодер должен обработать все допустимые проверочные соотношения для коррекции принятого вектора. Это приводит к тому, что с увеличением кратности исправляемых кодом ошибок сложность декодера приобретает экспоненциальный характер.
Технический результат - повышение достоверности приема информации. Для достижения технического результата в декодер с повышенной корректирующей способностью, содержащий блок приема, первый выход которого через другой выход накопителя кодовой комбинации подключен к первому входу блока исправления стираний, а также последовательно соединенные анализатор сигналов и накопитель оценок, отличающийся тем, что введен датчик случайных чисел, блок формирования стираний, блок упорядочения оценок, блок эквивалентного кода, блок контроля линейности, блок сравнения и обратных перестановок, при этом второй выход блока приема подключен к одному входу блока формирования стираний, тогда как третий выход блока приема через датчик случайных чисел подключен к другому входу блока формирования стираний, выход которого подключен ко входу анализатора сигналов, при этом выход накопителя оценок через блок упорядочения оценок подключен к первому входу блока эквивалентного кода и его один выход подключен ко входу блока контроля линейности, управляющий выход которого подключен ко второму входу блока эквивалентного кода, а информационный выход подключен к первому входу блока сравнения и обратных перестановок, тогда как его второй вход подключен ко другому выходу блока эквивалентного кода, при этом выход блока сравнения и обратных перестановок подключен ко второму входу блока исправления стираний, а один выход накопителя кодовой комбинации подключен к третьему входу блока эквивалентного кода.
На чертеже приведена структурная электрическая схема предложенного декодера с повышенной корректирующей способностью.
Декодер с повышенной корректирующей способностью содержит блок приема 1, первый выход которого через накопитель кодовой комбинации 7 и его другой выход подключен к первому входу блока исправления стираний 10, при этом второй выход блока приема 1 подключен к одному входу блока формирования стираний 3, тогда как третий выход блока приема 1 через датчик случайных чисел 2 подключен к другому входу блока формирования стираний 3, выход которого через последовательно соединенные анализатор сигналов 4, накопитель оценок 6 и блок упорядочения оценок 5 подключен к первому входу блока эквивалентного кода 8, и его один выход подключен ко входу блока контроля линейности 9, управляющий выход которого подключен ко второму входу блока эквивалентного кода 8, а информационный выход блока контроля линейности 9 подключен к первому входу блока сравнения и обратных перестановок 11, тогда как его второй вход подключен к другому выходу блока эквивалентного кода 8, при этом выход блока сравнения и обратных перестановок 11 подключен ко второму входу блока исправления стираний 10, а один выход накопителя кодовой комбинации 7 подключен к третьему входу блока эквивалентного кода 8.
Рассмотрим поэтапное выполнение алгоритма работы декодера на примере кода БЧХ (15;5;7). Порождающая матрица кода в систематической форме имеет вид:
Пусть от источника информации на вход кодера поступает вектор вида Vинф=11010. В результате умножения вектора Vинф на порождающую матрицу G на выходе кодера формируется последовательность
Vпер=110101100100011.
После передачи этой последовательности по каналу связи принимается вектор, в котором в соответствии с вероятностью ошибки на бит, характерной для данного канала связи, возможно появление ошибок. Пусть образец ошибок имеет вид e=010010001101110. Заметно, что представленный объем ошибочных символов превосходит исправляющую способность кода по исправлению не только ошибок, но и стираний. Естественно, что жесткий декодер и традиционный мягкий декодер не в состоянии исправить возникшую в канале связи комбинацию ошибок. В результате передачи кодового вектора по каналу связи и наложения на него вектора ошибок получаем последовательность вида
nпр=100111101001101.
Эта последовательность фиксируется в блоке приема 1 жестким декодером и через первый выход этого блока направляется в накопитель кодовой комбинации 7.
Кроме того, в блок 1 введен симметричный интервал неопределенности , где E - энергия сигнала, приходящаяся на бит, - математическое ожидание уровня сигнала, а значение ρ выбирается в пределах . Для уменьшения вероятности ошибки целесообразно значение ρ выбирать большим, но это приводит к росту ложных стираний, которые искажают индексы достоверности символов в сторону их занижения. Для минимизации числа ложных стираний вводятся датчик случайного числа и условие его работы. При попадании сигнала в интервал неопределенности блок приема 1 формирует только предварительное решение о стирании и вырабатывает границу вида , где Si - текущий уровень сигнала. Значение y через третий выход блока 1 передается в датчик случайного числа 2. Датчик случайного числа 2 с заданной плотностью распределения вероятностей (например, равномерной) по команде из блока 1 формирует случайное число ξ и дает сигнал на формирование стирания в блок формирования стираний 3 при условии , в противном случае такой сигнал в блок 3 не поступает и стирание не формируется. Если Si близко по своему значению к границе , то стирание не формируется с вероятностью, пропорциональной приближению Si к указанной границе, и значительно большей вероятностью при приближении Si к нулю. Это позволяет снизить долю ложных стираний, что положительно отражается на формировании индексов достоверности символов в анализаторе сигналов 4.
Совместный поток информационных символов и откорректированный поток стираний после прохождения соответственно блоков 1 и 3 разделяются, но между ними всегда сохраняется соответствие по номерам разрядов.
В потоке стираний не стертым в первичной последовательности информационных символов позициям сигналов присваивается значение ноль, а стертым позициям символов присваивается значение единица.
Пусть конфигурация стираний для принятого кодового вектора имеет вид:
Номер символа | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Кортеж стираний | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |
в блоке 4 |
Для определения оценки надежности символа в анализаторе сигналов 4 назначаются два скользящих окна размерами K1 и K2 бит каждое, при этом K1=K2. Окна следуют по выделенной из потока данных последовательности стираний одно за другим, перекрываясь между собой, на интервале одного оцениваемого бита, например, при K1=K2=3 получаем:
При каждом новом шаге каждому окну присваивается вес K1+1 и K2+1, но если в окно попало i стираний, то вес окна уменьшается на эту величину. Общая оценка определяется как сумма оценок первого и второго окна. Если анализируемый символ - стирание, то от общей оценки отнимется единица. Это усиливает различимость оценок надежности. Таким образом, оценка надежности вычисляется для анализируемого символа , попавшего в оба окна в соответствии с выражением
Здесь R - оценка надежности, K1, K2 - ширина оценочных окон, - символы, которые попали в эти окна, - символ, подлежащий оценке и попавший одновременно в оба окна. В результате работы блока 4 в накопителе оценок 6 при условии, что за пределами комбинации стирания отсутствовали, будет зафиксирована последовательность индексов достоверности символов (ИДС) в виде
Номер символа | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Кортеж стираний | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |
ИДС в блоке 6 | 6 | 4 | 5 | 3 | 5 | 6 | 7 | 6 | 3 | 3 | 5 | 2 | 3 | 4 | 6 |
В блоке упорядочения оценок 5 номера символов расставляются в порядке убывания ИДС. Результат работы блока 5 имеет вид
Номер символа | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
ИДС в блоке 6 | 6 | 4 | 5 | 3 | 5 | 6 | 7 | 6 | 3 | 3 | 5 | 2 | 3 | 4 | 6 |
Новое расположение символов в блоке 5 | 7 | 1 | 6 | 8 | 15 | 3 | 5 | 11 | 2 | 14 | 4 | 9 | 10 | 13 | 12 |
В соответствии с полученным двудольным графом переходов в блоке эквивалентного кода 8 формируется матрица перестановок Gпер. Блоку 8 известна порождающая матрица G исходного кода, а также значения символов принятого вектора с ошибками nпр=100111101001101 из накопителя кодовой комбинации 7. На основе этих данных блок 8 формирует порождающую матрицу эквивалентного кода путем умножения матрицы G на матрицу перехода Gпер, что обеспечивает перестановку столбцов матрицы G. Одновременно в блоке 8 за счет умножения вектора nпр на Gпер формируется новый вид вектора , который соответствует эквивалентному коду. Результат преобразований вектора показан в таблице 1.
Таблица 1 - Образования вектора эквивалентного кода | |||||||||||||||
Номер символа | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Значения бит nпр | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |
ИДС в блоке 6 | 6 | 4 | 5 | 3 | 5 | 6 | 7 | 6 | 3 | 3 | 5 | 2 | 3 | 4 | 6 |
Новое расположение символов блоке 5 | 7 | 1 | 6 | 8 | 15 | 3 | 5 | 11 | 2 | 14 | 4 | 9 | 10 | 13 | 12 |
Новый вектор | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 |
Соответственно порождающая матрица G преобразуется к виду
Перестановка столбцов в G может привести к потере линейной независимости между строками матрицы, что однозначно приводит к ошибочному результату декодирования.
Оценку линейной независимости матрицы G'' выполняет блок 9. Из матрицы G'' выделяется матрица Gkxk размерности k×k, и, используя признак равенства детерминанта данной матрицы нулю (признак линейной зависимости строк) или отсутствие такого равенства (признак линейной независимости), оценивается результат перестановки в G. В случае подтверждения признака линейной независимости матрицы G'' информация из блока 9 по информационному выходу передается в блок 11. При нарушении указанного признака блок 9 по управляющему выходу дает команду в блок 8 на перестановку столбцов с номерами k и k+1 и соответствующее изменение параметров nпр и Gпер. Как правило, подобная процедура выполняется один раз и приблизительно всего в 10% общего возможного числа попыток, однако в случае неудачной коррекции nпр и Gпер на первом шаге блок 9 по управляющему выходу дает команду в блок 8 на замену столбцов с номерами k и k+2. Вычисление выполняется в блоке 9 по известным алгоритмам. В результате для рассматриваемого случая получаем detGkxk=1.
Поскольку detGkxk=1, то новая порождающая матрицу приводится к систематической форме и алгоритм вычисления вектора помех продолжается.
В блоке сравнения и обратных преобразований 11 осуществляется приведение матрицы G'' к систематической форме за счет деления единичной матрицы размерности k×k на матрицу Gkxk. Полученная обратная матрица указывает на порядок сложения строк матрицы G'' для получения ее в систематической форме.
Блок 11 при определении порождающей матрицы в систематической форме игнорирует в обратной матрице знак позиции и четные значения позиций, которые из-за работы в двоичном поле принимаются за ноль. Для получения первой строки матрицы G'' в систематической форме блок 11 складывает по модулю два все строки порождающей матрицы G'', исключая первую строку, для получения второй строки матрицы в систематической форме складываются все пять строк матрицы G'' и т.д. В результате в блоке 11 появляется матрица вида
Умножая информационную часть 11101 вектора из блока 5 на новую порождающую матрицу получаем кодовый вектор эквивалентного кода, у которого информационная часть полностью совпадает с трансформированным вектором и находящимся в блоке 5
Вектор в блоке 11 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
Вектор из блока 8 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 |
Вектор ошибок | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 |
В таком представлении вектор ошибок не соответствует комбинации ошибок, действовавшей в канале связи в момент передачи кодового вектора по этому каналу. Для получения истинной комбинации ошибок необходимо данный вектор умножить на обратную матрицу перестановки, известную блоку 8, которая формируется за счет транспонирования исходной матрицы перестановки. Выполнение операции представлено в таблице 2.
Таблица 2 - Образования вектора эквивалентного кода | |||||||||||||||
Номера упорядоченных символов | 7 | 1 | 6 | 8 | 15 | 3 | 5 | 11 | 2 | 14 | 4 | 9 | 10 | 13 | 12 |
Упорядоченное значение ошибок | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 |
Порядковый номер символа | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Расположение ошибок после обратной перестановки | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
Исходный вектор ошибок | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
Полученные данные из блока 11 поступают в блок исправления стираний 10 (позиции ошибок известны) и накладываются по модулю два на принятый вектор, полученный из накопителя кодовой комбинации 7. Исправление ошибок выполнено.
Таким образом, применение декодера с использованием процедуры перехода к эквивалентному коду позволяет исправить в 90% случаев n-k стираний и в 10% случаев n-k-2 стираний, что превосходит кратность исправляемых стираний для декодеров, использующих метрику Хэмминга и способных исправить только d-1 стираний.
Декодер с повышенной корректирующей способностью, содержащий блок приема, первый выход которого через накопитель кодовой комбинации и его другой выход подключен к первому входу блока исправления стираний, а также последовательно соединенные анализатор сигналов и накопитель оценок, отличающийся тем, что введен датчик случайных чисел, блок формирования стираний, блок упорядочения оценок, блок эквивалентного кода, блок контроля линейности, блок сравнения и обратных перестановок при этом второй выход блока приема подключен к одному входу блока формирования стираний, тогда как третий выход блока приема через датчик случайных чисел подключен к другому входу блока формирования стираний, выход которого подключен ко входу анализатора сигналов, при этом выход накопителя оценок через блок упорядочения оценок подключен к первому входу блока эквивалентного кода и его один выход подключен ко входу блока контроля линейности, управляющий выход которого подключен ко второму входу блока эквивалентного кода, а информационный выход подключен к первому входу блока сравнения и обратных перестановок, тогда как его второй вход подключен к другому выходу блока эквивалентного кода, при этом выход блока сравнения и обратных перестановок подключен ко второму входу блока исправления стираний, а один выход накопителя кодовой комбинации подключен к третьему входу блока эквивалентного кода.