ИТЕРАТИВНЫЙ ДЕКОДЕР КАСКАДНОГО КОДА НА ПРОГРАММИРУЕМЫХ ЛОГИЧЕСКИХ ИНТЕГРАЛЬНЫХ СХЕМАХ И УСТРОЙСТВО, ЕГО РЕАЛИЗУЮЩЕЕ
ITERATIVE DECODER OF CASCADE CODE ON PROGRAMMABLE LOGICAL INTEGRAL SCHEMES AND DEVICE FOR ITS REALIZATION

rezl
Изобретение относится к области техники связи и, в частности, к системам передачи и хранения информации, в которых для защиты от искажений в канале связи применяют каскадные коды с последовательным соединением через перемежитель циклических линейных блочных кодов (коды Боуза-Чоудхури-Хоквингема - БЧХ коды, коды Рида-Соломона - PC-коды) [1]. Изобретение может быть использовано в кодеках (кодер-декодер) высокоскоростных систем передачи и хранения дискретной информации. Известен способ итерационного декодирования каскадных кодов с последовательным соединением через перемежитель компонентных циклических кодов [2, 3], который включает в себя вычисление синдромов кодовых слов внутреннего кода, определение и коррекцию искаженных позиций кодовых слов внутреннего кода, затем вычисление синдромов кодовых слов внешнего кода, определение и коррекция искаженных позиций кодовых слов внешнего кода и так далее с учетом перемежения/деперемежения если заданное количество итераций не достигнуто и какие-либо синдромы остались ненулевыми. Далее исправленные кодовые слова передаются на выход декодера. Недостатком способа [2] является то, что он обладает большим временем задержки декодирования t:
где i - кол-во выполняемых итераций;
s1
s2
t, t - время вычисления синдромов для внутреннего кода и внешнего кода;
er1
er2
t, t - время вычисления позиций ошибок и их коррекция для внутреннего кода и внешнего кода соответственно.
Техническим результатом предлагаемого изобретения является уменьшение времени задержки декодирования, что в свою очередь позволит либо увеличить количество выполняемых итераций, либо применять оборудование с меньшим ресурсом.
Для достижения технического результата предложен итерационный способ декодирования, который предполагает вычисление синдромов для кодовых слов внутреннего кода и кодовых слов внешнего кода только на первой итерации. На последующих итерациях выполняется их модификация путем сложения по модулю 2 с синдромами корректируемых ошибок. Это позволяет существенно уменьшить время задержки декодирования:
erl
er2
Например, при реализации декодера по рекомендации ITU-T G.975.1 I.9 на ПЛИС время задержки декодирования уменьшается (в зависимости от времени вычисления позиций ошибок t, t) от 2-х и до 100 раз. Модификация, а не полное вычисление синдромов для кодовых слов внутреннего кода и кодовых слов внешнего кода на 2-ой и последующих итерациях положено в основу предлагаемого технического решения. Способ итеративного декодирования каскадного кода с последовательным соединением через перемежитель компонентных кодов Боуза-Чоудхури-Хоквингема, заключающийся в том, что на первой итерации для принятого кадра вычисляют параллельно синдромы для L кодовых слов внутреннего кода, вычисляют позиции искаженных элементов в кодовых словах внутреннего кода, корректируют их, вычисляют параллельно синдромы для М кодовых слов внешнего кода, вычисляют позиции искаженных элементов в кодовых словах внешнего кода, корректируют их и повторяют выше перечисленные действия если какие-либо синдромы не равны нулю или требуемое количество итераций не достигнуто, далее передают систематические части кодовых слов на выход декодера, при этом на второй и последующих итерациях модифицируются синдромы кодовых слов внутреннего кода и внешнего кода, далее по модифицированным синдромам производится вычисление позиций искаженных элементов в кодовых словах внутреннего кода и внешнего кода и далее их коррекция, при этом при декодировании каскадного кода с последовательным соединением через перемежитель внутреннего кода БЧХ и внешнего кода Рида-Соломона требуется дополнительно вычислить значения величин ошибок для кодовых слов кода Рида-Соломона, при этом для детектирования обнаруживаемых, но неисправляемых ошибок в кодовых словах внутреннего и внешнего кодов осуществляют проверку на равенство степени уравнения локаторов ошибок и количества найденных корней, если они не равны, то отказаться от коррекции ошибок, а именно
1
2
1. Записать в оперативную память поступающий на вход декодера кадр, содержащий L кодовых слов внутреннего кода длиной n и М кодовых слов внешнего кода длиной n.
2. Вычислить синдромы для L и М кодовых слов внутреннего и внешнего кода.
3. Вычислить искаженные позиции ошибок в кодовых словах внутреннего кода и откорректировать их в соответствующих позициях сохраненного кадра.
4. Модифицировать синдромы кодовых слов внутреннего кода и внешнего кода путем их сложения модулю 2 с синдромами корректируемых позиций.
5. Вычислить искаженные позиции ошибок в кодовых словах внешнего кода и откорректировать их в соответствующих позициях сохраненного кадра.
6. Модифицировать синдромы кодовых слов внешнего кода и внутреннего кода путем их сложения по модулю 2 с синдромами корректируемых позиций.
7. Повторить п. 3-п. 6 если какие-либо синдромы не равны нулю или требуемое количество итераций не достигнуто.
8. Передать на выход декодера систематические части кодовых слов. Для осуществления способа итерационного декодирования каскадных кодов предлагается итеративный декодер каскадного кода с последовательным соединением через перемежитель компонентных циклических кодов (фиг. 1) содержит блок вычисления синдромов кодовых слов внутреннего кода, блок вычисления синдромов кодовых слов внешнего кода, блок модификации синдромов кодовых слов внутреннего кода, блок модификации синдромов кодовых слов внешнего кода, блок вычисления позиций ошибок кодовых слов внутреннего кода, блок вычисления позиций ошибок кодовых слов внешнего кода, блок формирования синдромов корректируемых ошибок кодовых слов внутреннего кода, блок формирования синдромов корректируемых ошибок кодовых слов внешнего кода, два блока пересчета индексов кодовых слов внутреннего кода, блок пересчета индексов кодовых слов внешнего кода, запоминающее устройство хранения входного кадра, при этом входной кадр, содержащий L кодовых слов внутреннего кода и М кодовых слов внешнего кода, поступает на вход блока вычисления синдромов кодовых слов внутреннего кода, на вход первого блока пересчета индексов кодовых слов внутреннего кода, на вход запоминающего устройства хранения входного кадра, при этом выход блок вычисления синдромов кодовых слов внутреннего кода соединен с первым входом блок модификации синдромов кодовых слов внутреннего кода, а выход блока модификации синдромов кодовых слов внутреннего кода соединен с входом блока вычисления позиций ошибок кодовых слов внутреннего кода, а первый выход блока вычисления позиций ошибок кодовых слов внутреннего кода соединен с входом второго блока пересчета индексов кодовых слов внутреннего кода, а второй выход блока вычисления позиций ошибок кодовых слов внутреннего кода соединен с входом запоминающего устройства хранения входного кадра, а выход второго блока пересчета индексов кодовых слов внутреннего кода соединен с входом блока формирования синдромов корректируемых ошибок кодовых слов внутреннего кода, а выход блока формирования синдромов корректируемых ошибок кодовых слов внутреннего кода соединен с входом блока модификации синдромов кодовых слов внешнего кода, а первый выход блока модификации синдромов кодовых слов внешнего кода соединен с входом блока вычисления позиций ошибок кодовых слов внешнего кода, а второй выход блока модификации синдромов кодовых слов внешнего кода соединен со вторым входом блока вычисления синдромов кодовых слов внешнего кода, а первый выход блока вычисления позиций ошибок кодовых слов внешнего кода соединен с входом блока пересчета индексов кодовых слов внешнего кода, а выход блока пересчета индексов кодовых слов внешнего кода соединен с входом блока формирования синдромов корректируемых ошибок кодовых слов внешнего кода, а выход блока формирования синдромов корректируемых ошибок кодовых слов внешнего кода соединен со вторым входом блока модификации синдромов кодовых слов внутреннего кода, а второй выход блока вычисления позиций ошибок кодовых слов внешнего кода соединен с запоминающим устройством хранения входного кадра, а с выход первого блока пересчета индексов кодовых слов внутреннего кода соединен с первым входом блока вычисления синдромов кодовых слов внешнего кода, а выход блока вычисления синдромов кодовых слов внешнего кода соединен со вторым входом блока модификации синдромов кодовых слов внешнего кода, а с выхода запоминающего устройства хранения входного кадра входной кадр на выход декодера передает систематические части кодовых слов.
Итеративный декодер каскадного кода с последовательным соединением через перемежитель компонентных циклических кодов (фиг. 1) содержит:
- блок вычисления синдромов кодовых слов внутреннего кода - 1;
- блок вычисления синдромов кодовых слов внешнего кода - 2;
- блок модификации синдромов кодовых слов внутреннего кода - 3;
- блок модификации синдромов кодовых слов внешнего кода - 4;
- блок вычисления позиций ошибок кодовых слов внутреннего кода - 5;
- блок вычисления позиций ошибок кодовых слов внешнего кода - 6;
- блок формирования синдромов корректируемых ошибок кодовых слов внутреннего кода - 7;
- блок формирования синдромов корректируемых ошибок кодовых слов внешнего кода - 8;
- первый блок пересчета индексов кодовых слов внутреннего кода - 9-1;
- второй блок пересчета индексов кодовых слов внутреннего кода - 9-2;
- блок пересчета индексов кодовых слов внешнего кода - 10;
1
2
- запоминающее устройство хранения и коррекции входного кадра -11. Блок вычисления синдромов кодовых слов внутреннего кода-1 выполняет вычисление синдромов и запись их в матрицу синдромов внутреннего кода размером Lx(n-k) (используется матрица Вандермонда).
2
2
Блок вычисления синдромов кодовых слов внешнего кода -2 выполняет вычисление синдромов и запись их в матрицу синдромов внешнего кода размером Мх, (n-k) (используется матрица Вандермонда) [4].
Блок модификации синдромов кодовых слов внутреннего кода -3 предназначен для модификации текущих синдромов кодовых слов внутреннего кода путем их сложения по модулю 2 с синдромами корректируемых ошибок кодовых слов внутреннего кода.
Блок модификации синдромов кодовых слов внешнего кода -4 предназначен для модификации текущих синдромов кодовых слов внешнего кода путем их сложения по модулю 2 с синдромами корректируемых ошибок кодовых слов внешнего кода.
Блок вычисления позиций ошибок кодовых слов внутреннего кода -5 предназначен для вычисления позиций ошибок в его L кодовых словах (используется ПГЦ-алгоритм декодирования).
Блок вычисления позиций ошибок кодовых слов внешнего кода -6 предназначен для вычисления позиций ошибок в его М кодовых словах (с помощью ПГЦ-алгоритма декодирования) [2].
Блок формирования синдромов корректируемых ошибок кодовых слов внутреннего кода-7 предназначен для вычисления синдромов корректируемых ошибок для внутреннего кода (используется матрица Вандермонда).
Блок формирования синдромов корректируемых ошибок кодовых слов внешнего кода -8 предназначен для вычисления синдромов корректируемых ошибок для внешнего кода (используется матрица Вандермонда).
Первый и второй блоки пересчета индексов кодовых слов внутреннего кода-9-1, 9-2 предназначены для определения взаимно-однозначного соответствия между индексами элементов кадра и индексами элементов кодовых слов внешнего кода.
Блок пересчета индексов кодовых слов внешнего кода -10 предназначен для определения взаимно-однозначного соответствия между индексами элементов кадра и индексами элементов кодовых слов внутреннего кода. Запоминающее устройство хранения входного кадра -11 предназначено для хранения кадра на весь период декодирования, коррекции кадра в зависимости от поступающих позиций ошибок. Предлагаемое устройство работает следующим образом: Входной кадр, который содержит L кодовых слов внутреннего кода или М перемеженных кодовых слов внешнего кода поступает:
- на вход блока вычисления синдромов кодовых слов внутреннего кода-1, в котором вычисляются синдромы кодовых слов внутреннего кода;
- на вход первого блока пересчета индексов кодовых слов внутреннего кода - 9-1, в котором определяется взаимно-однозначное соответствие между индексами элементов кадра и индексами элементов кодовых слов внешнего кода;
- на первый вход запоминающего устройство хранения входного кадра - 11, в котором запоминается входной кадр на время его декодирования и выполняется коррекция кадра в зависимости от вычисленных позиций ошибок.
2
2
С выхода первого блока пересчета индексов кодовых слов внутреннего кода - 9-1 передаваемые символы (с соответствующими индексами кодовых слов внешнего кода) поступают на вход блока вычисления синдромов кодовых слов внешнего кода - 2, в котором выполняется вычисление синдромов и запись их в матрицу синдромов внешнего кода размером Мх(n-k). С выхода блока вычисления синдромов кодовых слов внешнего кода - 2 вычисленные синдромы кодовых слов внешнего кода поступают на первый вход блока модификации синдромов кодовых слов внешнего кода - 4, в котором вычисляются позиции ошибок кодовых слов внешнего кода.
С выхода блока вычисления синдромов кодовых слов внутреннего кода 1 вычисленные синдромы поступают на вход блока модификации синдромов кодовых слов внутреннего кода - 3, в котором осуществляется модификация поступающих синдромов.
С выхода блока модификации синдромов кодовых слов внутреннего кода - 3 модифицированные синдромы передаются на вход блока вычисления позиций ошибок кодовых слов внутреннего кода - 5, в котором вычисляются позиции ошибок кодовых слов внутреннего кода. С первого выхода блока вычисления позиций ошибок кодовых слов внутреннего кода - 5 вычисленные позиции ошибок кодовых слов внутреннего кода передаются на вход запоминающего устройство хранения входного кадра - 11 для инвертирования искаженных позиций. Со второго выхода блока вычисления позиций ошибок кодовых слов внутреннего кода - 5 вычисленные позиции ошибок передаются на вход второго блока пересчета индексов кодовых слов внутреннего кода - 9-2, в котором определяется взаимно-однозначное соответствие между индексами элементов кадра и индексами элементов кодовых слов внешнего кода. С выхода второго блока пересчета индексов кодовых слов внутреннего кода - 9-2 вычисленные позиции ошибок кодовых слов внутреннего кода вместе с соответствующими индексами элементов кодовых слов внешнего кода передаются на вход блока формирования синдромов корректируемых ошибок кодовых слов внутреннего кода - 7, в котором формируются синдромы корректируемых ошибок кодовых слов внешнего кода. С выхода блока формирования синдромов корректируемых ошибок кодовых слов внутреннего кода - 7 сформированные синдромы корректируемых ошибок кодовых слов внешнего кода поступают на второй вход блока модификации синдромов кодовых слов внешнего кода. С выхода блока модификации синдромов кодовых слов внешнего кода - 4 модифицированные синдромы кодовых слов внешнего кода передаются на вход блока вычисления позиций ошибок кодовых слов внешнего кода - 6, в котором вычисляются позиции ошибок кодовых слов внешнего кода. С выхода блока вычисления позиций ошибок кодовых слов внешнего кода -6 вычисленные позиции ошибок кодовых слов внешнего кода передаются на вход запоминающего устройство хранения входного кадра - 11 для инвертирования искаженных позиций. Далее с выхода блока вычисления позиций ошибок кодовых слов внешнего кода - 6 вычисленные позиции ошибок кодовых слов внешнего кода передаются на вход блока пересчета индексов кодовых слов внешнего кода - 10, в котором происходит пересчет позиций ошибок внешнего кода в соответствующие индексы кодовых слов внутреннего кода. Для выполнения 2-й и последующих итераций выполняется модификация текущих синдромов, для этого с выхода блока формирования синдромов корректируемых ошибок кодовых слов внешнего кода - 8 на вход блока модификации синдромов кодовых слов внутреннего кода - 3 поступают синдромы корректируемых ошибок внутреннего кода и с выхода блока модификации синдромов кодовых слов внешнего кода - 4 на вход блока вычисления синдромов кодовых слов внешнего кода - 2 поступают модифицированные синдромы кодовых слов внешнего кода. Далее вычисляются искаженные позиции кодовых слов внутреннего кода и кодовых слов внешнего кода и корректируются в запоминающем устройстве хранения входного кадра - 11. Далее с выхода запоминающего устройства хранения входного кадра - 11 для дальнейшей обработки на выход декодера передаются кодовые слова внутреннего кода. Таким образом, модификация, а не полное вычисление синдромов кодовых слов внутреннего и внешнего кода на 2-й и последующих итерациях позволяют уменьшить время задержки декодирования.
Список литературы.
1. Forward Error Correction for Submarine Systems, Telecommunication Standardizations Section, International Telecommunication Union, G.975.1, 2004.
2. Yoon, S. High-Speed Two-Parallel Concatenated BCH-Based Super-FEC Architecture for Optical Communications / S. Yoon, H. Lee, K. Lee // IEICE TRANS. FUNDAMENTALS. - 2010. - VOL. E93-A, №4. - P. 769-777.
3. Амелютин, E.В. Высокоскоростной декодер на ПЛИС / Е.В. Амелютин, А.Н. Хмельков, А.М. Сомов // Электросвязь. Импортозамещение: проблемы и решения. - 2016. - №1. - С. 40-42.
4. Moon, Tood К. Error Correction coding. Mathematical Methods and Algorithms / Tood K. - Danver: A John Wiley & Sons, Inc., Publication, 2005. -P. 756.