Турбокодер продукт кода (TPC)
выполняет 2-D TPC входного сообщения, code
= tpcenc(msg
,N
,K
)msg
, используя два линейных блочных кода, заданных длиной кодового слова N
и длина сообщения K
. Описание кодирования 2-D TPC смотрите в Turbo Product Code Construction.
Закодируйте случайный битовый вектор 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
msg
- Входные биты сообщений для кодированияВходы биты сообщений для кодирования, заданные как вектор-столбец.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| logical
N
- Длина кодового словаДлина кодового слова, заданная как двухэлементный целочисленный вектор, [N R; N C]. N R представляет количество строк в матрице кода продукта. N C представляет количество столбцов в матрице кода продукта. Для получения дополнительной информации о N R и N C, смотрите Turbo Product Code Construction. Список допустимых (N (i), K (i)) пар кода см. в разделе «Коды компонентов».
Типы данных: double
K
- Длина сообщенияДлина сообщения, заданная как двухэлементный целочисленный вектор, [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
- Укороченная длина сообщенияУкороченная длина сообщения, заданная как двухэлементный целочисленный вектор, [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
code
- Сообщение с кодировкой TPCСообщение с кодировкой TPC, возвращаемое как вектор-столбец с совпадающим типом данных, что и биты входного сообщения.
В этой таблице перечислены поддерживаемые пары кода компонента для параметров строка (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 принимает или полноразмерные, или укороченные сообщения.
Конструкция полноразмерных кодов продуктов сообщений
Полноразмерные входные сообщения кодируются с помощью заданных 2-D пар кода TPC. В строковой кодировке используется пара кода (N C, K C), а в столбцовой - пара кода (N R, K R). Вход вектора должна быть K R· K C. Вектор бит входного сообщения упорядочен в K R-by K C матрицу.
Строковая кодировка использует (N C, K C) систематический линейный блочный энкодер с K битами C на строку. Строковое кодирование приводит к K матрице R-by N C, которая включает биты четности, добавленные к каждой строке.
Затем в столбцовой кодировке используется (N R, K R) систематический линейный блочный энкодер на каждом из N C столбцов. Применение этой 2-D кодировки TPC к исходной матрице K R-by K C приводит к N матрице R-by N C, которая включает в себя биты четности, добавленные к каждой строке и столбцу.
Матрица 2-D TPC с полным кодом изменяется в вектор-столбец длины N R· N C и возвращается как выход с кодировкой TPC.
Конструкция сокращенных кодов продуктов сообщений
Укороченные входные сообщения кодируются с помощью заданных 2-D пар кода TPC. В строковой кодировке используется пара кода (N C, K C), а в столбцовой кодировке используется пара кода (N R, K R). Вход вектора должна быть S R· S C. Входной вектор укороченных бит сообщения упорядочен в S R-by S C матрицу. Сокращенная матрица сообщений заполняет две размерности, заполняя начало матрицы сообщений нулями. Получившаяся матрица является K R-by- K C-матрицей.
Строковая кодировка использует (N C, K C) систематический линейный блочный энкодер с K битами C на строку. Строковое кодирование приводит к K матрице R-by N C, которая включает биты четности, добавленные к каждой строке.
Затем в столбцовой кодировке используется (N R, K R) систематический линейный блочный энкодер на каждом из N столбцов C.
Применение этой 2-D кодировки TPC к исходной матрице K R-by K C и исключение заполненной нулями бит из выхода результатов в матрице (N R- K R + S R) -by- (N C- K C + S C). Эта матрица включает биты четности, добавленные к каждой строке и столбцу.
2-D матрица укороченного кода TPC переформатируется в вектор-столбец длины (N R- K R + S R)· (N C- K C + S C) и возвращается как выход с кодированием TPC.
[1] Pyndiah, R.M «. Near-Optimum Decoding of Product Codes: Block Turbo Codes». Транзакции IEEE по коммуникациям. Том 46, № 8, август 1998, стр. 1003-1010.
Указания и ограничения по применению:
Параметры TPC N
, K
, и S
должны быть постоянными значениями. Если значение, используемое для каждого из этих параметров, не меняется, можно назначить их по выражению или переменной.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.