tpcenc

Турбокодер продукт кода (TPC)

Описание

пример

code = tpcenc(msg,N,K) выполняет 2-D TPC входного сообщения, msg, используя два линейных блочных кода, заданных длиной кодового слова N и длина сообщения K. Описание кодирования 2-D TPC смотрите в Turbo Product Code Construction.

пример

code = tpcenc(msg,N,K,S) выполняет 2-D TPC на укороченном входном сообщении длины S, использование 2-D TPC энкодер заданного длиной кодового слова (NK+ S) и длина сообщения S.

Примеры

свернуть все

Закодируйте случайный битовый вектор 2-D используя турбокодирование (TPC) с расширенными кодами Хемминга и расширенными кодами BCH.

Задайте (N, K) пары кода для кодирования TPC.

N = [32;64]; 
K = [21;57]; 

Сгенерируйте вектор-столбец случайных бит сообщений. Желаемая длина для бит сообщения является продуктом элементов в K.

msg = randi([0 1],prod(K),1);

TPC-кодирование сообщения.

code = tpcenc(msg,N,K);

Проверьте, что длина закодированного кодового слова является продуктом элементов в N.

size(code)
ans = 1×2

        2048           1

prod(N)
ans = 2048

Закодируйте вектор случайных битов, используя 2-D turbo product (TPC), применяя сокращение сообщения.

Задайте (N, K) пары кода и S для кодирования TPC.

N = [32;64];
K = [21;57];
S = [19;24];

Сгенерируйте вектор-столбец случайных бит сообщений. Желаемая длина для укороченных бит сообщения является продуктом элементов в S.

msg = randi([0 1],prod(S),1);

TPC-кодирование укороченного сообщения.

code = tpcenc(msg,N,K,S);

Проверьте, что длина закодированного кодового слова является продуктом элементов в (N-K+S).

size(code)
ans = 1×2

   930     1

prod(N-K+S)
ans = 930

Входные параметры

свернуть все

Входы биты сообщений для кодирования, заданные как вектор-столбец.

  • Для полноразмерных входных сообщений длина вектора-столбца должна быть продуктом элементов в K.

  • Для сокращенных входных сообщений длина вектора-столбца должна быть продуктом элементов в S.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Длина кодового слова, заданная как двухэлементный целочисленный вектор, [N R; N C]. N R представляет количество строк в матрице кода продукта. N C представляет количество столбцов в матрице кода продукта. Для получения дополнительной информации о N R и N C, смотрите Turbo Product Code Construction. Список допустимых (N (i), K (i)) пар кода см. в разделе «Коды компонентов».

Типы данных: double

Длина сообщения, заданная как двухэлементный целочисленный вектор, [K R; K C]. Для полноразмерного сообщения входной вектор-столбец, содержащий биты сообщения для кодирования, упорядочен в K R-by K C матрицу. K R представляет количество строк в матрице сообщений. K C представляет количество столбцов в матрице сообщений. Для получения дополнительной информации о K R и K C, смотрите Turbo Product Code Construction. Список допустимых (N (i), K (i)) пар кода см. в разделе «Коды компонентов».

Типы данных: double

Укороченная длина сообщения, заданная как двухэлементный целочисленный вектор, [S R; S C]. Для укороченного сообщения входной вектор-столбец, содержащий биты сообщения для кодирования, упорядочен в S R-by S C матрицу. S R представляет количество строк в матрице. S C представляет количество столбцов в матрице. Для получения дополнительной информации о S R и S C, смотрите Turbo Product Code Construction.

Когда вы задаете этот параметр, задайте N и K векторы для полноразмерных кодов TPC, которые укорочены до (N (i) - K (i) + S (i), S (i)) кодов.

Типы данных: double

Выходные аргументы

свернуть все

Сообщение с кодировкой TPC, возвращаемое как вектор-столбец с совпадающим типом данных, что и биты входного сообщения.

  • Для полноразмерных входных сообщений длина возвращенного вектора-столбца является продуктом элементов в N.

  • Для укороченных входных сообщений длина возвращенного вектора-столбца является продуктом элементов в (NK+ S).

Подробнее о

свернуть все

Коды компонентов

В этой таблице перечислены поддерживаемые пары кода компонента для параметров строка (N R, K R) и столбец (N C, K C ).

  • N R и K R представляют количество строк в матрице кода продукта и матрице сообщений, соответственно.

  • N C и K C представляют количество столбцов в матрице кода продукта и матрице сообщений, соответственно.

В рамках каждого типа кода любые две пары кода компонента могут сформировать 2-D код TPC. Таблица также включает возможность исправления ошибок для каждой пары кода.

Тип кодаПары кода компонента (N R, K R) и (N C, K C)Возможность исправления ошибок (T)
Код Хемминга(255,247)1
(127,120)1
(63,57)1
(31,26)1
(15,11)1
(7,4)1
Расширенный код Хемминга (256,247)1
(128,120)1
(64,57)1
(32,26)1
(16,11)1
(8,4)1
Код BCH(255,239)2
(127,113)2
(63,51)2
(31,21)2
(15,7)2
Расширенный код BCH(256,239)2
(128,113)2
(64,51)2
(32,21)2
(16,7)2
Проверка кода четности(256,255)-
(128,127)-
(64,63)-
(32,31)-
(16,15)-
(8,7)-
(4,3)-

Синтаксис кода Продукта Конструкции

Турбокоды (TPC) продукта являются формой конкатенированных кодов, используемых в качестве кодов прямой коррекции ошибок (FEC). Два или более блочных кодов компонентов, таких как систематические линейные блочные коды, используются для создания TPC. Этот энкодер реализует кодирование кода 2-D продукта, как описано в [1], используя два линейных блочных кода.

Энкодер TPC принимает или полноразмерные, или укороченные сообщения.

 Конструкция полноразмерных кодов продуктов сообщений

 Конструкция сокращенных кодов продуктов сообщений

Ссылки

[1] Pyndiah, R.M «. Near-Optimum Decoding of Product Codes: Block Turbo Codes». Транзакции IEEE по коммуникациям. Том 46, № 8, август 1998, стр. 1003-1010.

Расширенные возможности

.

См. также

Функции

Объекты

Блоки

Введенный в R2018a