Декодер продукта кода (TPC)
Communications Toolbox/Обнаружение и исправление ошибок/Блокировка
Блок TPC Decoder выполняет 2-D turbo product code (TPC) декодирование LLR мягкого входа, соответствующих коду продукта, итеративно, используя алгоритм Чейза-Пиндии. Код продукта является 2-D конкатенацией линейных блочных кодов. Линейный блочный код может быть проверкой кода четности, кодом Хемминга или кодом BCH, способным исправить две ошибки. Расширенные и укороченные коды могут применяться независимо к каждой размерности. Описание декодирования 2-D TPC смотрите в Turbo Product Code Decoding.
Для получения информации о допустимых парах кода и возможности исправления ошибок для каждой действительной пары кода, см. Раздел «Пары кода компонента».
In
- Журнал коэффициентов правдоподобияЖурнал вероятностных коэффициентов, заданных как вектор-столбец.
Для полноразмерных входных сообщений длина вектора-столбца является продуктом числа строк в коде, Nr и количества столбцов в коде, Nc.
Для сокращенных входов сообщений длина вектора-столбца является продуктом (N R- K R + S R) и (N C- K C + S C), где:
N R является значением числа строк в коде, Nr.
K R является значением числа строк в сообщении, Kr.
S R является значением числа строк в сокращенном сообщении, Sr.
N C является значением числа столбцов в коде, Nc.
K C является значением числа столбцов в сообщении Kc.
S C является значением числа столбцов в сокращенном сообщении Sc.
Типы данных: double
| single
Out
- декодированное сообщение TPCДекодированное сообщение TPC, возвращаемое как вектор-столбец с двоичными значениями.
Для полноразмерных входов сообщений длина вектора-столбца является продуктом количества строк в сообщении, Kr и количества столбцов в сообщении, Kc.
Для укороченных входных сообщений длина вектора-столбца является продуктом из количества строк в укороченном сообщении, Sr и количества столбцов в укороченном сообщении, Sc.
Типы данных: Boolean
Iter
- Фактическое количество итераций декодированияФактическое количество итераций декодирования, возвращаемое как положительное целое число.
Чтобы включить этот порт, выберите Выходное количество выполненных итераций.
Типы данных: double
Extended codes
- Индикатор расширенных кодов для параметров строки TPCon
(по умолчанию) | off
Когда выбран Extended кодов, списки для Number of строк in code, Nr и Number of строк in message, Kr содержат допустимые значения для расширенных отдельных пар кода (N R, K R).
Когда Extended кодов очищается, списки для Number of строк in code, Nr и Number of строк in message, Kr содержат допустимые значения для невыданных отдельных пар кода (N R, K R).
Number of rows in code, Nr
- Количество строк в матрице кода продукта16
(по умолчанию) | целое числоКоличество строк в матрице кода продукта, N R. Список целочисленных значений изменяется в зависимости от значения параметра Extended codes.
Number of rows in message, Kr
- Количество строк в матрице сообщений11
(по умолчанию) | целое числоКоличество строк в матрице сообщений, K R. Список целочисленных значений изменяется в зависимости от настройки расширенных кодов и количества строк в коде, Nr.
Specify shortened message length
- Задайте укороченную длину сообщения для строкoff
(по умолчанию) | on
Выберите Specify shortened message length, чтобы задать значение для количества строк в сокращенном сообщении Sr.
Number of rows in shortened message, Sr
- Количество строк в сокращенной матрице сообщений9
(по умолчанию) | целое числоКоличество строк в укороченной матрице сообщений, S R, заданное в виде целого числа, меньше или равного K R. Когда вы задаете этот параметр, предоставьте полноразмерные N R и K значения R, чтобы задать пару кода (N R, K R). Затем эта пара кода сокращается до пары кода (N R- K R + S R, S R), где:
N R является значением числа строк в коде, Nr.
K R является значением числа строк в сообщении, Kr.
S R является значением числа строк в сокращенном сообщении, Sr.
Чтобы включить этот параметр, выберите Задать укороченную длину сообщения.
Типы данных: double
Extended codes
- Индикатор расширенных кодов для параметров столбца TPCon
(по умолчанию) | off
При выборе Расширенные коды, списки Количество столбцов в коде, Nc и Количество столбцов в сообщении, Kc содержат допустимые значения для расширенных отдельных пар кода (N C, K C).
Когда Расширенные коды очищены, списки Количества столбцов в коде, Nc и Количество столбцов в сообщении, Kc содержат допустимые значения для неэкструзионных отдельных пар кода (N C, K C).
Number of columns in code, Nc
- Количество столбцов в матрице кода продукта32
(по умолчанию) | целое числоКоличество столбцов в матрице кода продукта, N C. Список целочисленных значений изменяется в зависимости от значения параметра Extended codes.
Number of columns in message, Kc
- Количество столбцов в матрице сообщений26
(по умолчанию) | целое числоКоличество столбцов в матрице сообщений, K C. Список целочисленных значений изменяется в зависимости от настройки расширенных кодов и количества столбцов в коде, Nc.
Specify shortened message length
- Задайте укороченную длину сообщения для столбцовoff
(по умолчанию) | on
Выберите Specify shortened message length, чтобы задать значение для числа столбцов в сокращенном сообщении Sc.
Number of columns in shortened message, Sc
- Количество столбцов в сокращенной матрице сообщений22
(по умолчанию) | целое числоКоличество столбцов в сокращенной матрице сообщений, S C, заданное в виде целого числа. Когда вы задаете этот параметр, предоставьте полноразмерные N значений C и K C, чтобы задать пару кода (N C, K C). Затем эта пара кода сокращается до пары кода (N C- K C + S C, S C), где:
N C является значением числа столбцов в коде, Nc.
K C является значением числа столбцов в сообщении Kc.
S C является значением числа столбцов в сокращенном сообщении Sc.
Чтобы включить этот параметр, выберите Задать укороченную длину сообщения.
Типы данных: double
Maximum number of iterations
- Максимальное количество итераций декодирования4
(по умолчанию) | положительное целое числоМаксимальное количество итераций декодирования, заданное как положительное целое число.
Типы данных: double
Stop iterating when code converges
- Остановите декодирование на основе вычисленного синдрома или проверки четности кода компонентаon
(по умолчанию) | off
Выберите Stop iterating when code converges, чтобы завершить декодирование раньше, если вычисленный синдром или проверка четности кода компонента оценивается в нуль перед Максимальным количеством итераций.
Output number of iterations executed
- Выводит количество выполненных итерацийoff
(по умолчанию) | on
Выберите этот параметр, чтобы добавить Iter
выход порта и выход фактического количества выполненных итераций декодирования TPC.
Simulate using
- Тип выполняемой симуляцииCode generation
(по умолчанию) | Interpreted execution
Тип выполняемой симуляции, заданный как Code generation
или Interpreted execution
.
Code generation
- Симулируйте модель при помощи сгенерированного кода C. Первый раз, когда вы запускаете симуляцию, Simulink® генерирует код С для блока. Код С повторно используется для последующих симуляций, если модель не меняется. Эта опция требует дополнительного времени запуска, но скорость последующих симуляций быстрее Interpreted execution
.
Interpreted execution
-- Моделируйте модель с помощью MATLAB® интерпретатор. Эта опция требует меньше времени запуска, чем Code generation
метод, но скорость последующих симуляций медленнее. В этом режиме можно отлаживать исходный код блока.
Типы данных |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
В этой таблице перечислены поддерживаемые пары кода компонента для параметров строка (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. Декодер TPC достигает почти оптимального декодирования продукта кодов, используя декодирование Chase и алгоритм Pyndiah, чтобы выполнить итерационный мягкий вход, мягкий выход декодирование. Подробное описание см. в разделах [1] и [2]. Этот декодер реализует итерационное мягкое входное, мягкое выходное 2-D кодовое декодирование продукта, как описано в [2], с использованием двух линейных блочных кодов. Декодер ожидает коэффициентов правдоподобия мягкого логарифмического журнала (LLR), полученных от цифровой демодуляции, в качестве входного сигнала.
Декодер TPC принимает либо полноразмерные, либо укороченные коды.
Декодирование TPC полноразмерных сообщений
Кодированные TPC сообщения полноразмерного входа декодируются с использованием заданных 2-D TPC кодов пар. В строковом декодировании используется пара кода (N C, K C), а в столбцовом декодировании используется пара кода (N R, K R). Вход вектора должна быть N R × N C. Для выполнения 2-D декодирования TPC вектор-столбец входных LLR, состоящий из бит сообщения и четности, упорядочен в матрицу N R-by- N C.
Декодер TPC достигает почти оптимального декодирования продукта кодов, используя декодирование Chase и алгоритм Pyndiah, чтобы выполнить итерационный мягкий вход, мягкий выход декодирование. Декодирование Chase формирует набор возможных кодовых слов для каждой строки или столбца. Алгоритм Pyndiah вычисляет мягкую информацию, необходимую для следующего шага декодирования.
Итерационный мягкий вход, мягкий выходной декодер
Итерационное мягкое входное, мягкое выходное декодирование, как показано на блоке, выполняет два шага декодирования для каждой итерации.
Мягкие входы для декодирования R (m) = R + α (m) W (m).
Счетчик цикла итерации i с шагами от i = 1 до заданного количества итераций.
m = 2
i – 1
- индекс шага декодирования.
R - полученная матрица LLR.
R (m) является мягким входом для m -го шага декодирования.
W (m) является входной внешней информацией для m-го этапа декодирования.
α (m) = [0,0,2,0,3,0,5,0,7,0,9,1,1,...], где α является весовым коэффициентом, применяемым на основе индекса шага декодирования. Для более высоких шагов декодирования α = 1.
β (m) = [0,2,0,4,0,6,0,8,1,1,...], где β является коэффициентом надежности, применяемым на основе индекса шага декодирования. Для более высоких шагов декодирования β = 1.
D содержит декодированные биты сообщений. Выходы сообщения формируются из D путем отображения -1 на 0 и + 1 на 1, затем изменения формы блока сообщения в вектор-столбец.
Выходы сообщения формируются после итерации через заданное количество итераций или, если включено раннее завершение, после сходимости кода.
Раннее прекращение декодирования TPC
Если включено раннее завершение, проверка сходимости кода выполняется при жестком решении мягкого входа на каждом шаге декодирования строк и столбцов. Раннее завершение может быть инициировано после того, как сходится либо строковое декодирование, либо столбцовое декодирование.
Код сходится, если для всех строк или всех столбцов,
Синдром достигает нуля в кодах (кодах Hamming, кодах Extended Hamming, кодах BCH или кодах Extended BCH).
Проверка четности оценивается в нуле в проверках кода четности.
Указанное количество итераций вычисляется до значения итерации, которое в данный момент выполняется. Для примера, если проверка сходимости кода выполняется после строкового декодирования в третьей итерации (после 2,5 шагов декодирования), то количество возвращенных итераций равно 3.
Декодирование сокращенных сообщений TPC
Кодированные TPC укороченные входные сообщения декодируются с использованием заданных 2-D TPC кодовых пар. В строковом декодировании используется пара кода (N C - K C + S C, S C), а в столбцовом декодировании используется пара кода (N R - K R + S R, S R). Вход вектора должна быть (N R - K R + S R) × (N C- K C + S C). Для выполнения 2-D декодирования укороченных сообщений вектор-столбец входных LLR, составленный из укороченного сообщения и бит четности, упорядочен в (N R - K R + S R) -by- (N C - K C + S C) матрицу.
Декодер TPC обрабатывает полученные LLR укороченных сообщений, подобные кодам полной длины, за этими исключениями:
Укороченные битовые положения в принятом кодовом слове установлены на -1.
Алгоритм Chase не рассматривает укороченные битовые положения при выборе наименее надежных бит.
[1] Chase, D «. Класс алгоритмов для декодирования блочных кодов с информацией о измерениях в канале». Транзакции IEEE по теории информации, том 18, номер 1, январь 1972, стр. 170-182.
[2] Pyndiah, R. M. «Near-Optimum Decoding of Product Codes: Block Turbo Codes». Транзакции IEEE по коммуникациям. Том 46, № 8, август 1998 года, стр. 1003-1010.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.