Кодировщик кода турбо-продукта (TPC)
выполняет 2-е кодирование TPC входного сигнала, code = tpcenc(msg,N,K)msg, используя два линейных блочных кода, определяемых длиной кодового слова N и длина сообщения K. Для описания 2-го кодирования TPC посмотрите Турбо Составление Кода продукта.
Кодирование вектора случайных битов с использованием 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 турбокодирования (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 - Длина кодового словаДлина кодового слова, заданная как двухэлементный целочисленный вектор, [NR; ЧПУ]. NR представляет количество строк в кодовой матрице изделия. ЧПУ представляет количество столбцов в матрице кода изделия. Дополнительные сведения о NR и NC см. в разделе Конструирование кода турбо-изделия. Список допустимых пар кодов (N (i), K (i)) см. в разделе Коды компонентов.
Типы данных: double
K - Длина сообщенияДлина сообщения, заданная как двухэлементный целочисленный вектор, [KR; KC]. Для полноформатного сообщения вектор входного столбца, содержащий биты сообщения для кодирования, размещается в матрицу KR-by-KC. KR представляет количество строк в матрице сообщений. KC представляет количество столбцов в матрице сообщений. Дополнительные сведения о KR и KC см. в разделе Конструирование кода турбо-продукта. Список допустимых пар кодов (N (i), K (i)) см. в разделе Коды компонентов.
Типы данных: double
S - Укороченная длина сообщенияУкороченная длина сообщения, заданная как двухэлементный целочисленный вектор, [SR; SC]. Для укороченного сообщения вектор входного столбца, содержащий биты сообщения для кодирования, размещается в матрицу SR-by-SC. SR представляет количество строк в матрице. SC представляет количество столбцов в матрице. Дополнительные сведения о SR и SC см. в разделе Создание кода продукта Turbo.
При указании этого параметра укажите N и K векторов для полноразмерных кодов TPC, которые сокращаются до (N (i) -K (i) + S (i), S (i)) кодов.
Типы данных: double
code - сообщение в кодировке TPCСообщение в кодировке TPC, возвращаемое в виде вектора столбца с тем же типом данных, что и биты входного сообщения.
В этой таблице перечислены поддерживаемые пары кодов компонентов для параметров строк (NR, KR) и столбцов (NC, KC).
NR и KR представляют количество строк в матрице кода продукта и матрице сообщения соответственно.
ЧПУ и КС представляют количество столбцов в матрице кода изделия и матрице сообщения соответственно.
В каждом кодовом типе любые две кодовых пары компонента могут сформировать 2-й кодекс TPC. Таблица также включает возможность исправления ошибок для каждой пары кодов.
| Тип кода | Пары кодов компонентов (NR, KR) и (NC, KC) | Возможность исправления ошибок (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-е TPC кодируют пары. Кодирование по строкам использует кодовую пару (NC, KC), а кодирование по столбцам - кодовую пару (NR, KR). Длина входного вектора должна быть KR· KC. Вектор битов входного сообщения скомпонован в матрицу KR-by-KC.

Строковое кодирование использует (NC, KC) систематический линейный блочный кодер с KC битами на строку. Кодирование по строкам приводит к матрице KR-by-NC, которая включает в себя биты четности, добавленные к каждой строке .

Далее кодирование по столбцам использует систематический линейный блочный кодер (NR, KR) на каждом из столбцов NC. Применение этого 2-D кодирования ТРС к начальной матрице KR-by-KC приводит к матрице NR-by-NC, которая включает в себя биты четности, добавленные к каждой строке и столбцу.
2-я матрица полного кодекса TPC изменена в вектор колонки НОМЕРА длины · NC и возвратился как TPC-закодированная продукция.
Построение укороченных кодов продуктов сообщений
Сокращенные входные сигналы закодированы, используя, определил, что 2-е TPC кодируют пары. Кодирование по строкам использует кодовую пару (NC, KC), а кодирование по столбцам использует кодовую пару (NR, KR). Длина входного вектора должна быть SR· SC. Вектор входных укороченных битов сообщения скомпонован в матрицу SR-by-SC. Укороченная матрица сообщения добавляет два размера, дополняя начало матрицы сообщения нулями. Полученная матрица представляет собой матрицу KR-by-KC.

Строковое кодирование использует (NC, KC) систематический линейный блочный кодер с KC битами на строку. Кодирование по строкам приводит к матрице KR-by-NC, которая включает в себя биты четности, добавленные к каждой строке.

Далее кодирование по столбцам использует систематический линейный блочный кодер (NR, KR) на каждом из столбцов NC.
Применение этого 2-D кодирования ТРС к исходной матрице KR-by-KC и исключение битов с заполнением нуля из выходных данных приводит к матрице (NR-KR + SR) -by- (NC-KC + SC). Эта матрица включает в себя биты четности, добавляемые к каждой строке и столбцу.

2-я матрица сокращенного кодекса TPC изменена в вектор колонки длины (NR-KR+SR) · (NC-KC+SC) и возвратился как TPC-закодированная продукция.
[1] Пиндиа, Р. М. «Почти оптимальное декодирование кодов продукта: блок-турбокоды». Транзакции IEEE по коммуникациям. Том 46, номер 8, август 1998 г., стр. 1003-1010.
Примечания и ограничения по использованию:
Параметры TPC N, K, и S должны быть постоянными значениями. Если значение, используемое для каждого из этих параметров, не изменяется, их можно назначить по выражению или переменной.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.