Научная статья на тему 'Аппаратная реализация кодирования информации систематическими полярными кодами'

Аппаратная реализация кодирования информации систематическими полярными кодами Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
696
126
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОДЫ С КОРРЕКЦИЕЙ ОШИБОК / ПОЛЯРНЫЕ КОДЫ / СИСТЕМАТИЧЕСКИЕ ПОЛЯРНЫЕ КОДЫ / ERROR CORRECTING CODES / POLAR CODES / SYSTEMATIC POLAR CODES

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Тимофеев Г.С.

Кодирование информации с помощью корректирующих кодов позволяет осуществлять контроль целостности передаваемых сообщений, а в ряде случаев исправлять ошибки, возникшие при передаче информации по каналу с шумом. Рассматриваются полярные коды двоичные линейные блоковые корректирующие коды, достигающие пропускной способности симметричных каналов без памяти. В основе полярных кодов лежит операция поляризации N-разрядного двоичного симметричного канала без памяти. Рассматриваются операции несистематического и систематического кодирования информации полярными кодами с прямым порядком битов и с битовой перестановкой, приводится метод реализации систематического кодирования через двукратное несистематическое кодирование полярными кодами. Вводится операция прекодирования преобразования K-разрядного информационного вектора в N-разрядный вектор в соответствии с некоторым полярным кодом С. Предлагается схема прекодера, построенная с использованием регистров сдвига, которая позволяет осуществлять прекодирование для любого (N, K)-полярного кода. Приводится обзор вариантов аппаратной реализации несистематических кодеров полярных кодов с прямым порядком битов и с битовой перестановкой и их сравнительные характеристики. Приведенные варианты реализации основываются на конвейерном способе организации вычислений и имеют разрядность входного сигнала P, кратную длине кодового слова N. Предлагается схема систематического кодера (32, 16)-полярного кода с прямым порядком битов, включающая в себя блок прекодера и два блока несистематического кодирования и реализующая конвейерный способ организации вычислений, приводится временная диаграмма конвейера предлагаемого кодера. Рассматриваются варианты масштабирования предлагаемой схемы с целью реализации систематического кодирования полярными кодами с практически значимыми значениями длины кодового слова N. Масштабирование в ширину предполагает увеличение разрядности входного сигнала P, масштабирование в длину предполагает увеличение числа стадий конвейера для каждого блока несистематического кодирования. Приводятся результаты моделирования предлагаемого систематического кодера в пакете Altera Quartus II 13.0 с использованием системы ModelSim 10.1. Результаты полностью совпадают с результатами моделирования в пакете MATLAB R2016b.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Hardware implemenТАtion of systematic polar encoding

Encoding information with error correcting codes provides ability to control the integrity of transmitted messages. In some cases, it also allows correcting errors that appeared during transmission over noise channel. The article provides description of polar codes binary block linear error correcting codes that achieve capacity for symmetric memoryless channels. Polar codes are based on the channel polarization operation based on idea of polarization transformation of N-bit binary symmetric memoryless channel. The article describes non-systematic and systematic polar encoding operations with bit reversed and non-reversed bit order. It also describes systematic polar encoding method based on two applications of non-systematic encoding of polar codes. The paper introduces polar codes precoding operation which means expansion of information vector of length K into vector of length N corresponding to some polar code C. There is a hardware implementation of precoding operation based on usage of shift registers, which allows precoding any vector of length K corresponding to any (N, K) polar code. The article gives a review and comparison of non-systematic polar encoder architectures with bit reversed and non-reversed bit order. Both architectures are based on pipelined computation principle, partially parallel and have input capacity P multiple of the codeword length N. The paper proposes pipelined architecture of systematic polar encoder for (32, 16) non-reversal polar codes including precoder block and two non-systematic encoders, pipeline diagram is provided. There are two methods of architecture scaling. Scaling in width means increase of capacity of input signal P, scaling in length means increase of number of pipeline stages for each non-systematic encoder. Proposed encoder is simulated using Altera Quartus II 13.0 and ModelSim 10.1. The results of simulation are fully coincide with results of modeling using MATLAB R2016b.

Текст научной работы на тему «Аппаратная реализация кодирования информации систематическими полярными кодами»

УДК 519.725.2

Вестник СибГАУ Том 18, № 1. С. 97-104

АППАРАТНАЯ РЕАЛИЗАЦИЯ КОДИРОВАНИЯ ИНФОРМАЦИИ СИСТЕМАТИЧЕСКИМИ ПОЛЯРНЫМИ КОДАМИ

Г. С. Тимофеев

Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31

Е-mail: t1m0feev.grigorij@gmail.com

Кодирование информации с помощью корректирующих кодов позволяет осуществлять контроль целостности передаваемых сообщений, а в ряде случаев - исправлять ошибки, возникшие при передаче информации по каналу с шумом.

Рассматриваются полярные коды - двоичные линейные блоковые корректирующие коды, достигающие пропускной способности симметричных каналов без памяти. В основе полярных кодов лежит операция поляризации N-разрядного двоичного симметричного канала без памяти. Рассматриваются операции несистематического и систематического кодирования информации полярными кодами с прямым порядком битов и с битовой перестановкой, приводится метод реализации систематического кодирования через двукратное несистематическое кодирование полярными кодами.

Вводится операция прекодирования - преобразования K-разрядного информационного вектора в N-разрядный вектор в соответствии с некоторым полярным кодом С. Предлагается схема прекодера, построенная с использованием регистров сдвига, которая позволяет осуществлять прекодирование для любого (N, К)-полярного кода.

Приводится обзор вариантов аппаратной реализации несистематических кодеров полярных кодов с прямым порядком битов и с битовой перестановкой и их сравнительные характеристики. Приведенные варианты реализации основываются на конвейерном способе организации вычислений и имеют разрядность входного сигнала P, кратную длине кодового слова N.

Предлагается схема систематического кодера (32, 16)-полярного кода с прямым порядком битов, включающая в себя блок прекодера и два блока несистематического кодирования и реализующая конвейерный способ организации вычислений, приводится временная диаграмма конвейера предлагаемого кодера. Рассматриваются варианты масштабирования предлагаемой схемы с целью реализации систематического кодирования полярными кодами с практически значимыми значениями длины кодового слова N. Масштабирование в ширину предполагает увеличение разрядности входного сигнала P, масштабирование в длину предполагает увеличение числа стадий конвейера для каждого блока несистематического кодирования. Приводятся результаты моделирования предлагаемого систематического кодера в пакете Altera Quartus II 13.0 с использованием системы ModelSim 10.1. Результаты полностью совпадают с результатами моделирования в пакете MATLAB R2016b.

Ключевые слова: коды с коррекцией ошибок, полярные коды, систематические полярные коды.

Sibirskii Gosudarstvennyi Aerokosmicheskii Universitet imeni Akademika M. F. Reshetneva. Vestnik Vol. 18, No. 1, P. 97-104

HARDWARE 1МРЬЕМЕ!ЧТАТЮК OF SYSTEMATIC POLAR ENCODING

G. S. Timofeev

Reshetnev Siberian State Aerospace University 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation Е-mail: t1m0feev.grigorij@gmail.com

Encoding information with error correcting codes provides ability to control the integrity of transmitted messages. In some cases, it also allows correcting errors that appeared during transmission over noise channel.

The article provides description of polar codes - binary block linear error correcting codes that achieve capacity for symmetric memoryless channels. Polar codes are based on the channel polarization operation based on idea of polarization transformation of N-bit binary symmetric memoryless channel. The article describes non-systematic and systematic polar encoding operations with bit reversed and non-reversed bit order. It also describes systematic polar encoding method based on two applications of non-systematic encoding ofpolar codes.

The paper introduces polar codes precoding operation which means expansion of information vector of length К into vector of length N corresponding to some polar code C. There is a hardware implementation of precoding

operation based on usage of shift registers, which allows precoding any vector of length K corresponding to any (N, K) polar code.

The article gives a review and comparison of non-systematic polar encoder architectures with bit reversed and non-reversed bit order. Both architectures are based on pipelined computation principle, partially parallel and have input capacity P multiple of the codeword length N.

The paper proposes pipelined architecture of systematic polar encoder for (32, 16) non-reversal polar codes including precoder block and two non-systematic encoders, pipeline diagram is provided. There are two methods of architecture scaling. Scaling in width means increase of capacity of input signal P, scaling in length means increase of number of pipeline stages for each non-systematic encoder. Proposed encoder is simulated using Altera Quartus II 13.0 and ModelSim 10.1. The results of simulation are fully coincide with results of modeling using MATLAB R2016b.

Keywords: error correcting codes, polar codes, systematic polar codes.

Введение. В настоящее время помехоустойчивое кодирование является неотъемлемой частью любой современной системы связи, в том числе космической. Применение помехоустойчивого кодирования позволяет снизить уровень ошибок в передаваемых сообщениях и повысить надежность передачи сообщений.

Полярные коды, предложенные Эрдалом Ариканом, имеют большое практическое значение, поскольку доказано, что они достигают пропускной способности симметричных каналов без памяти [1]. Кроме того, для полярных кодов характерно отсутствие области насыщения ошибок [2] и низкая сложность реализации [3]. Однако полярные коды имеют два существенных недостатка: во-первых, низкую эффективность для коротких кодов и кодов средней длины по сравнению с LDPC-кодами аналогичной длины, а во-вторых, алгоритм последовательного исключения (Successive Cancellation, SC), предложенный Ариканом для декодирования полярных кодов в [1], является последовательным по своей природе, что влечет за собой низкую пропускную способность.

В настоящее время существует ряд методов, решающих эти проблемы. Дальнейшим развитием идеи полярных кодов являются систематические полярные коды [4], позволяющие значительно снизить уровень битовых ошибок в передаваемых сообщениях. Для повышения эффективности полярных кодов был предложен ряд новых алгоритмов декодирования, развивающих идеи SC-декодирования [5-7]. Также был предложен ряд решений, повышающих пропускную способность алгоритмов декодирования [8; 9].

В статье представлен обзор существующих подходов к аппаратной реализации кодирования полярных кодов. Выделена и подробно рассмотрена операция прекодирования - предварительного преобразования информационного сообщения длины K в сообщение длины N, предложен вариант аппаратной реализации. Разработано устройство систематического кодирования полярными кодами, включающее в себя блок, реализующий операцию прекодирования.

Кодирование полярными кодами. Полярные коды относятся к классу двоичных линейных блоковых кодов. В основе процедуры кодирования полярными кодами лежит операция поляризации канала, которая описывается линейным преобразованием, задаваемым матрицей F, где F - 2 х 2 - ядро поляризации,

F = |^i i j ; ®n - n-кратное кронекеровское произведение матрицы с собой; n = log2N, где N - длина кодового слова конструируемого кода. Полярный код С задается набором параметров (N, K, Ac), где N - длина кодового слова; K - размер информационной части; Ac - множество «замороженных» символов, значение которых равно нулю, \Ac\ =N- K, Ac с {0,..., N -1} . Методы построения полярных кодов подробно рассмотрены в [1; 10].

Несистематическое кодирование полярными кодами описывается выражением

XN = uNGN , (1)

где XjN - кодовое слово; uN - вектор, включающий информационные символы (ui g Ac, 1 < i < N) и «замороженные» позиции (ui е Ac, 1 < i < N); GN - порождающая матрица полярного кода, задаваемая матрицей F0n. Если порождающая матрица задается выражением

GN = BNFш , (2)

где BN - матрица перестановки, то код называется полярным кодом с битовой перестановкой (bit-reversed) [1]. Если порождающая матрица задается выражением

GN = F®n , (3)

то код называется полярным кодом без битовых перестановок (non-reversed) [4]. Схемы bit-reversed и non-reversed (8, 5, {1, 3, 5})-полярных кодов представлены на рис. 1.

Систематическое кодирование. Систематическое кодирование позволяет не изменять значения информационных битов. Кроме того, оно позволяет значительно снизить уровень битовых ошибок [4]. Процедура кодирования описывается выражением

N N ^

x1 = У1 gN , (4)

где GN может соответствовать как выражению (2), так и выражению (3).

В векторе XjN значения xi g Ac равны значениям информационных битов, а значения xi е Ac неизвестны. В векторе yjN значения yi е Ac равны нулю, yi g Ac неизвестны. После решения уравнения (4)

вектор XjN является кодовым словом систематического полярного кода. Алгоритмы программной реализации систематического кодирования полярными кодами подробно рассмотрены в [11]. Рис. 2 иллюстрирует операцию систематического кодирования non-reversed (8, 5, {1, 3, 5})-кодом.

Для bit-reversed полярного кодирования операция систематического кодирования аналогична, за исключением соединения элементов «исключающее ИЛИ», которое соответствует рис. 1.

В работах [12; 13] рассматривается метод реализации систематического кодирования полярными кодами через двукратную операцию несистематического кодирования. Для этого необходимо:

1) преобразовать информационное сообщение djK

в сообщение u1N в соответствии с Ac;

2) осуществить процедуру несистематического

N ,N

кодирования над вектором u1 , получить вектор x1 ;

3) обнулить символы x- е Ac;

4) осуществить процедуру несистематического

tN

кодирования над измененным вектором x1 , получить вектор x1N .

На рис. 3. представлена схема систематического кодирования на основе несистематического non-reversed кодирования.

Ы1 = 0 •— +-

«2 = di • и:, = О

Ш = d

щ = 0 •—(+-(4-

•—I—

Х1

щ — d5 Ф

• ■•'а

"6 = ¿3 • щ — di Щ — ¿5

-i-

<кг

-+

-• Х-2

—• :г3

%-• ^

-•

Хв -9 х7

-Ф Х8

Рис. 1. Схемы полярного (8, 5, {1, 3, 5})-кода: bit-reversed (а); non-reversed (б)

Рис. 2. Схема систематического non-reversed полярного кодирования (8, 5, {1, 3, 5})-кодом

Рис. 3. Схема систематического кодирования на основе несистематического non-reversed кодирования (8, 5, {1, 3, 5})-полярным кодом

б

а

Прекодирование информации. Термином «пре-кодирование» обозначим операцию преобразования информационного сообщения й* в сообщение ы^ в соответствии с множеством Ас:

/ (й*, Ас) = ыN.

Прекодирование для (8, 5, {1, 3, 5})-кода будет выглядеть так:

/ ({й?1, й 2, й3, й 4, й5},{1,3,5}) = {0, ё1,0, й 2, 0, й3, й 4, й5}.

Введем понятие маски полярного кода. Маска полярного кода - это вектор т длины N такой, что т, = 0 для I е Ас и mi = 1 для I <£ Ас. Для (8, 5, {1, 3, 5})-кода маска полярного кода имеет вид т = {0, 1, 0, 1, 0, 1, 1, 1}.

Операция прекодирования может быть реализована с использованием регистров сдвига вправо (рис. 4, 5). Прекодирование (8, 5, {1, 3, 5})-полярного кода потребует 5-разрядный сдвиговый регистр Б для вектора й, 8-разрядный сдвиговый регистр М для вектора т и 8-разрядный сдвиговый регистр и для вектора и.

Сдвиг в регистре М осуществляется на каждом цикле работы, на выход поступает значение младшего бита М1. Сдвиг в регистре Б осуществляется при условии М1 = 1. Входной сигнал регистра и равен М1ЛБ1. На рис. 4, а описывается состояние регистров прекодера (8, 5, {1, 3, 5})-полярного кода. В первый цикл работы осуществляется загрузка вектора т в регистр М и вектора й в регистр Б. Непосредственно операция прекодирования осуществляется за следующие 8 циклов. Таким образом, прекодирование вектора и для (8, 5, {1, 3, 5})-кода осуществляется за N+1 циклов. Схема прекодера (8, 5, {1, 3, 5})-полярного кода приведена на рис. 5, а.

Перейдем к обобщенной схеме прекодера с разрядностью Р регистров сдвига Б, М и и, кратной N и К. Рассмотрим подробно диаграмму состояний такого прекодера с Р = 4, представленную на рис. 4, б:

Цикл 1: загрузка й14 в рег. Б; загрузка т4 = {1,1,0,1} в рег. М; простой в рег. и.

Цикл 2: сдвиг в рег. Б; сдвиг в рег. М; и4 = й1.

Цикл 3: сдвиг в рег. Б; сдвиг в рег. М;

и 34 = {й^ й 2 }.

Цикл 4: простой в рег. Б; сдвиг в рег. М; и 2 = К, й 2,0}.

Цикл 5: сдвиг в рег. Б; сдвиг в рег. М; и14 = {й1,й2,0,й3} - прекодирование и4 завершено.

Цикл 6: простой в рег. Б; простой в рег. М; простой в рег. и.

Цикл 7: простой в рег. Б; загрузка т5 = {0,0,1,0} в рег. М; простой в рег. и.

Цикл 8: простой в рег. Б; сдвиг в рег. М;

и4 = {й 2,0, й3,0}.

Цикл 9: простой в рег. Б; сдвиг в рег. М;

и4 = {0, й3, 0,0}.

Цикл 10: сдвиг в рег. Б; сдвиг в рег. М;

и14 = {й3,0,0, й 4}.

Цикл 11: загрузка d5 в рег. D; простой в рег. M; простой в рег. U.

Цикл 12: простой в рег. D; сдвиг в рег. M;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

U14 = {0,0,d4,0} - прекодирование u5 завершено.

Цикл 13: простой в рег. D; загрузка m9 = {1,1,0,1} в рег. M; простой в рег. U.

Цикл 14: сдвиг в рег. D; сдвиг в рег. M;

U4 = {0, d4,0, d5}.

Прекодирование u14 длилось в течение циклов 1-5,

44

начиная с загрузки d1 и m1 , затем в течение цикла 6 происходит простой прекодера. Прекодирование u58 длилось в течение циклов 7-12, начиная с загрузки m58 . Разница в один цикл связана с тем, что при пре-

кодировании u58 загрузка m58 и d58 происходит в циклах 7 и 11 соответственно. Таким образом, простои, аналогичные простою в цикле 6, вводятся для того, чтобы прекодирование P бит всегда осуществлялось за P+2 цикла. Схема обобщенного прекодера с P = 4 представлена на рис. 5, б.

Для реализации необходимо добавить сигналы разрешения сдвига Shift_en для регистров M и U. Shift_en = 0 в том случае, если регистр маски M уже не содержит бит маски, но еще не прошло P+2 цикла с прошлой операции прекодирования.

Методы аппаратной реализации несистематического кодирования. Схемы несистематических полярных кодов, рассмотренные выше, могут быть реализованы в виде комбинационной схемы - параллельного кодера. Такое устройство имеет N входов,

включает в себя N (log2 N) элементов «исключающее ИЛИ» и осуществляет кодирование за n этапов.

Очевидным недостатком такого решения является его плохая масштабируемость, поскольку при параллельной реализации разрядность входа и выхода такой схемы равна длине кодового слова N. Для минимизации разрядности входа и выхода схемы кодирования необходимо применение методов конвейеризации вычислений [14].

Первым из рассматриваемых вариантов применения методов конвейеризации является конвейерная схема несистематического bit-reversed кодера [15; 16] с разрядностью входного и выходного сигнала P и длиной кодового слова N. На рис. 6. Представлена схема с P = 4 и N = 16.

Другой вариант - конвейерный несистематический non-reversed кодер с P = 4 и N = 16, представлен на рис. 7 [13]. В таблице приведены сравнительные характеристики параллельного кодера и рассматриваемых схем.

Как видно из таблицы, кодер 1 требует меньшего количества элементов «исключающее ИЛИ», чем кодер 2. Недостаток кодера 1 проявляется при реализации систематического кодирования согласно схеме на рис. 4. В этом случае требуется хранить маску полярного кода в non-reversed форме для осуществления прекодирования информации и в bit-reversed форме для наложения маски в ходе систематического кодирования, что влечет за собой дополнительные расходы ресурсов памяти.

цикл 1

2

3

4

5

6 1 8 9

10 11 12

13

14

15

16

17

18 IS

D5 Dtl Dj|m|Di

d5 dJ

d5 d4

0 M

С Al

0 0

0 0

0_ 0

0 0

□ D □ п □ □ □ m m n □ □ □□□ El J

0 JM 0 0 ■

0 ~o~| 0 0 |o

"dT [dT

Mi Ml Mi Mi M4 МЭ M2 Ml

1 1 1 0 1 0 1 0

0 1 1 1 0 1 0 1

0 0 1 1 1 0 1 0

0 0 0 1 1 1 0 1

0 0 0 0 1 1 1 0

0 0 0 0 0 1 1 1

0 0 0 0 0 0 1 1

0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 0

1 1 1 0 1 0 1 0

0 1 1 1 0 1 0 1

0 0 1 1 1 0 1 0

0 0 0 1 1 1 0 1

0 0 0 0 1 1 1 0

0 0 0 0 0 1 1 1

0 0 0 0 0 0 1 1

0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 0

0 1 1 0 1 0 1 0

us Ш U6 US U4 из U2 Ul

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

dL 0 0 0 0 0 0 0

0 di 0 0 0 0 0 0

d: 0 dl 0 0 0 0 0

0 di 0 dl 0 0 0 0

& 0 d; 0 dl 0 0 0

d4 d3 0 di 0 dl 0 0

ds dj d3 0 d! 0 dl 0

ds d4 di 0 di a dl 0

0 d; d4 d3 0 d: 0 dl

di 0 ds d4 d3 0 d: 0

0 di 0 ds d4 di 0 d:

d2 0 di 0 ds di d? 0

0 d2 0 di 0 di d4 di

di 0 dz 0 dl a ds d4

d-i ds 0 di 0 di 0 di

di d4 da 0 d2 0 di 0

[|4 ill a di 0 ill 0

ЦИЕП 1 2 3 ■4

5

6

7

8 9

10 11 12

13

14

D4 D3 D2 Dl

d4 d3 d: di

0 d4 ds d:

0 0 d4 ds

0 0 d4 d3

0 0 0 d4

0 0 0 d4

0 0 0 d4

0 0 0 d4

0 0 0 d4

0 0 0 0

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

ds d7 di ds

ds d7 di ds

ds d7 d6 ds

0 ds d7 de

M4 № M2 Ml

1 0 1 1

0 1 0 1

0 0 1 0

0 0 0 1

0 0 0 0

0 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

0 0 0 0

0 0 0 0

0 0 0 0

0 0 1 1

0 0 0 1

U4 U3 U2 Ul

0 0 0 0

di 0 0 a

d2 di 0 0

0 d2 di 0

аз 0 d2 di

d3 0 d: di

d3 0 d: di

0 d3 0 d2

0 0 d3 0

d4 0 0 d3

d4 0 0 d3

0 <14 0 0

0 d4 0 0

ds 0 d4 0

Рис. 4. Состояние регистров прекодера (8, 5, {1, 3, 5})-полярного кода (а); состояние регистров обобщенного прекодера с Р = 4 (б)

Регистр сдвига информационных бит

Регистр сдгаига прекодированных бит

А V

D, V

D.,

Shift. .en

Load

Sn

Регистр сдвига бит маски

-K Mi v

-V

Ms

Load

Scut

— Sn

& —

u5

Sim

Регистр сдвига информационных бит

Регистр сдвига прекодированных бит

-К V

D, V

D-

Shift. .en

Load s„ Sfini

& —

Регистр сдвига бит маски

V

Mi v

M,

Shift_en

Load

Sout

Sn

Ul

U4

S h i ft_e n

s„„,

S,n

Рис. 5. Схема прекодера (8, 5, {1, 3, 5})-полярного кода (а); обобщенная схема прекодера (б)

б

а

б

а

Рис. 6. Конвейерный несистематический bit-reversed (16, ^)-кодер с P = 4 (кодер 1)

Рис. 7. Конвейерный несистематический non-reversed (16, К)-кодер с P = 4 (кодер 2) Сравнительные характеристики рассматриваемых схем кодирования

Характеристики Параллельная схема Кодер 1 [15; 16] Кодер 2 [13]

Разрядность N P P

«Искл. ИЛИ» N N2 N) P - (log2 N ) P ('"g'N)

Регистры - P(N ■) P (N -1)

Мультиплексоры - P (log. N) P (log- N)

Задержка кодирования 0 N+p _ 2 P N+p _ 2 P

Кодер систематического полярного кода. На рис. 8 представлена структурная схема разработанного устройства систематического (32, 16)-полярного кода с разрядностью P = 8. Систематическое кодирование реализуется в соответствии со схемой на рис. 3. Временная диаграмма конвейера систематического (32, 16)-кодера представлена на рис. 9.

Блок «Прекодер» реализует операцию прекодиро-вания и является обобщенным прекодером с P = 8. Он преобразует информационное сообщение I в вектор U в соответствии с маской полярного кода M, результат записывается в регистр 1. Блоки «НСК 1» и «НСК 2» -конвейерные несистематические non-reversed (32, K)-кодеры с P = 8. Блок «НСК 1» кодирует вектор U в X'. Наложение маски M на вектор X' осуществляется с помощью двухвходового элемента «И», результат записывается в регистр 2. Затем блок «НСК 2» кодирует преобразованный вектор X' в вектор X, который и является кодовым словом.

Кодирование сообщения (N, К)-кодером разрядности P осуществляется за N стадий, длительность сти P осуществляется за р стадий, длительность

(N )

каждой стадии составляет 21--1 1 + 3 цикла, общее

IP J

время кодирования составляет 3 N циклов. Отношение длительности цикла предлагаемого систематиче-

ского кодера ТСК к длительности цикла блока «Прекодер» ТПр описывается выражением ТСК = (P + 2)ТПр.

Разработанный систематический кодер был смоделирован в пакете Altera Quartus II 13.0 с использованием системы ModelSim 10.1. На рис. 10 приведены результаты симуляции в системе ModelSim 10.1. Моделировалось систематическое кодирование информационного сообщения d = 16'h{2F, 59} (32, 16)-полярным кодом с маской m = 32'h{88, E8, E8, EE}. Результат кодирования равен х = 32'h{AC, AC, 53, 5C}. Результат моделирования совпадает с результатом моделирования систематического полярного (32, 16)-кода в пакете MATLAB R2016b, построенного с использованием библиотеки [17].

Заключение. В работе представлен обзор метода помехоустойчивого кодирования, получившего название полярного кода. Рассмотрены методы кодирования полярными кодами и варианты их аппаратной реализации. Выделена операция прекодирования, предложен метод ее аппаратной реализации. Разработано устройство систематического кодирования полярными (32, К)-кодами, реализующее также и операцию прекодирования, проведено его моделирование. Разработанное устройство может быть масштабировано для кодирования информации полярными кодами с практически значимыми значениями длины кодового слова N.

Рис. 8. Структурная схема систематического (32, 16)-кодера

Прекод-е бит Ui-Ui загруэкэ бит Ui-Ui ИСК 1 бит Ui-Ui НСК 1 бит Ul-Us НСК 1 бит Ui-Uï наложение MiMihu Jfl-Х'й, ШИСЬ н Регистр 2 НСК 2 бит Х'1-Х'в НСК 2 Сит X'i-X'i НСК 2 бит И'1-Х'!

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

б Регистр 1 Шаг 1 Шаг 2 LUi)r 3 Шаг 1 Шаг 2 Шаг 3

Ирен од с 6и| и<-и :ь SsrpyîKi Сиг U'H-ULI, HC« 1 бит Us-Uu НСК1 бит U.-IJlè HCKl Сит U'H-Ulli нглончние MvMcbirï K'T-X'lt, t.;IV; f e регистр 2 НСК 2 биТ 1 - - 'II. НСК 2 бит XVX'it. НСК 2 Сит XVX'ib

н Регистр ] Шлг 1 1 Лаг 2 Шаг] Шаг] Шаг 2 ШагЗ

Прекод-е Бит Li L Загрузка бит Ui7-Um HOU бит IhMlu HCKl Сит Ui.-Uîj НСК 1 бнТ Uiï-Um наложение Ml. M " . :) 1 >»■ JJFMf( Б Регистр 2 НСК 2 бит X'ir-X'jt НСК 2 Сит X'iï-X'za НСК 2 бит X'lT-Jfu

я Регистр 1 1 Лаг 1 Шаг г ШагЗ Шаг 1 Шаг 2 ШагЗ

Лрекод-е бит UZ5-ÜU 3d PYiHd бит Ujï-Ue НСК 1 Сит U в- U я НСК 1 бит Uîs-Uî? НСК 1 бит Uj'.-Uu Наложение М&М» на JCîvK'M, элпи<1. (1 Регистр 2 НСК 2 Сит X'ïS'X'u НСК 2 бит X'îl-X'î! НСК 2 бит X'^-X i.1

s Регистр 1 Шэг1 Шаг: Шаг 3 Шаг! Шаг 2 ШагЗ

:-> кода

Цикл

Рис. 9. Временная диаграмма конвейера систематического (32, 16)-кодера

Рис. 10. Результаты симуляции в системе ModelSim 10.1

References

1. Arikan E. Channel polarization: A method for constructing capacity-achieving codes for symmetric binary-input memoryless channels. IEEE Transactions on Information Theory. 2009, Vol. 55, No. 7, P. 3051-3073. DOI: 10.1109/TIT.2009.2021379.

2. Eslami A., Pishro-Nik H. On bit error rate performance of polar codes in finite regime. IEEE

Communication, Control and Computing 48th Annual Allerton Conference. 2010, P. 188-194. DOI: 10.1109/ ALLERTON.2010.5706906.

3. Leroux C., Raymond A. J., Sarkis G. A semiparallel successive-cancellation decoder for polar codes. IEEE Transactions on Signal Processing. Vol. 61, No. 2, 2013. P. 289-299. DOI: 10.1109/TSP.2012.2223693.

4. Arikan E. Systematic polar coding. IEEE Communications Letters. 2011, Vol. 15, No. 8, P. 860-862.

BecmnuK CuôfÂy. TOM 18, № 1

5. Tal I., Vardy A. List decoding of polar codes. IEEE International Symposium on Information Theory. 2011, P. 1-5.

6. Niu K., Chen K. Stack Decoding of Polar Codes. Election Letter. 2012, Vol. 48, No. 12, P. 695-696. DOI: 10.1049/el.2012.1459.

7. Trifonov P., Miloslavskaya V. Polar subcodes. IEEE Journal on Selected Areas in Communications. 2016, Vol. 34, No. 2, P. 254-266. DOI: 10.1109/JSAC.2015. 2504269.

8. Leroux C., Raymond A. J. Hardware Implementation of Successive Cancellation Decoders for Polar Codes.

Journal of Signal Processing Systems archive. 2012, Vol. 69, No. 3, P. 305-315. DOI: 10.1007/s11265-012-0685-3.

9. Leroux C., Tal I. Hardware architectures for successive cancellation decoding of polar codes. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2011. DOI: 10.1109/ICASSP.2011. 5946819.

10. Vangala H., Viterbo E., Hong Yi. A Comparative Study of Polar Code Constructions for the AWGN Channel. Available at: https://arxiv.org/abs/1501.02473? context=cs (accessed: 28.11.2016).

11. Vangala H., Viterbo E., Hong Yi. Efficient systematic polar encoding. IEEE Communication Letters. 2016, Vol. 20, No. 1, P. 17-20. DOI: 10.1109/LCOMM.2015. 2497220.

12. Sarkis G., Giard P., Vardy A., Thibeault C., Gross W. J. Fast Polar Decoders: Algorithm and

Implementation. IEEE Journal on Selected Areas in Communications. 2014, Vol. 32, No. 5, P. 946-957. DOI: 10.1109/JSAC.2014.140514.

13. Sarkis G., Tal I. Flexible and Low-Complexity Encoding and Decoding of Systematic Polar Codes. IEEE Transactions on Communications, 2015. DOI: 10.1109/ TC0MM.2016.2574996.

14. Parhi K. K. VLSI Digital Signal Processing Systems: Design and Implementation. USA, Wiley, 1999, 784 p.

15. Indumathi G., Aarthi Alias Ananthakirupa V. P. M. B., Ramesh M. Architectural Design of 32 Bit Polar Encoder. Circuits and Systems. 2016, No. 7, P. 551-561. Doi: 10.4236/cs.2016.75047.

16. Yamuna devi S., Magdalinjoenita G., Revathi V. An Advanced Architecture for 16-bit Polar Codes using Partially Parallel Encoder. International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE). 2016, Vol. 5, No. 1, P. 16-18.

17. Vangala H., Viterbo E., Hong Yi. Polar coding algorithms in MATLAB. Available at: https://ecse. monash.edu//staff/eviterbo/polarcodes.html (accessed: 24.11.2016).

© TnMO^eeB r. C., 2017

i Надоели баннеры? Вы всегда можете отключить рекламу.