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