tpcenc

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

Синтаксис

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

Описание

пример

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

пример

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

Примеры

свернуть все

Закодируйте случайный битовый вектор с помощью 2D турбо кодирования продукта (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

Закодируйте случайный битовый вектор с помощью 2D турбо кодирования продукта (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, см. Алгоритмы. Для списка допустимых (N (i), K (i)) пары кода, см. Коды Компонента.

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

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

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

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

Когда вы задаете этот параметр, задаете N и векторы K для кодов TPC во всю длину, которые сокращены к (N (i) –K (i) +S (i), S (i)) коды.

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

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

свернуть все

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

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

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

Больше о

свернуть все

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

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

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

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

В каждом типе кода любые две пары кода компонента могут сформировать 2D код 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). Два или больше блочных кода компонента, такие как систематические линейные блочные коды, используются, чтобы создать TPCs. Этот энкодер реализует 2D кодирование кода продукта, как описано в [1], с помощью двух Линейных Блочных кодов.

 Конструкция кодов продуктов сообщения во всю длину

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

Ссылки

[1] Pyndiah, R. M. "Почти оптимальное Декодирование Кодов продуктов: Блокируйте Турбокоды". Транзакции IEEE на Коммуникациях. Объем 46, Номер 8, август 1998, стр 1003–1010.

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

Смотрите также

Функции

Системные объекты

Блоки

Введенный в R2018a