устройство и способ генерации кодов в системе связи
Классы МПК: | H03M13/00 Кодирование, декодирование или преобразование кода для обнаружения ошибок или их исправления; основные предположения теории кодирования; границы кодирования; способы оценки вероятности ошибки; модели каналов связи; моделирование или проверка кодов G06F1/02 генераторы цифровых функций |
Автор(ы): | КИМ Мин-Гоо (KR), ХА Санг-Хиук (KR), ДЗАНГ Дзае-Сунг (KR) |
Патентообладатель(и): | САМСУНГ ЭЛЕКТРОНИКС КО., ЛТД (KR) |
Приоритеты: |
подача заявки:
2002-02-06 публикация патента:
10.05.2005 |
Изобретение относится к устройствам и способам генерации кодов в системе передачи данных, в частности к генерации двухмерных квазидополнительных турбокодов (КДТК) и адаптированных КДТК в системах пакетной передачи данных, поддерживающей повторную передачу. Техническим результатом является увеличение оптимальной пропускной способности канала. Технический результат достигается тем, что генерируют наборы субкодов КДТК с заданными скоростями кодирования, и данные субкоды переупорядочиваются в набор субкодов с другой скоростью кодирования для использования в следующей передаче субкода с заданной скоростью кодирования. 9 н. и 7 з.п. ф-лы, 13 ил., 5 табл.
Формула изобретения
1. Способ изменения порядка субкодов двумерных квазидополнительных турбокодов (КДТК), заключающийся в том, что генерируют наборы субкодов КДТК с заданными скоростями кодирования и изменяют порядок субкодов, которые должны передаваться после субкода с заданной скоростью кодирования, из набора субкодов с другой скоростью кодирования в соответствии с приоритетом субкодов.
2. Способ по п.1, отличающийся тем, что субкод является матрицей с элементами, которые представляют выкалывание и повторение.
3. Способ по п.1, отличающийся тем, что при операции изменения порядка генерируют новые наборы субкодов, причем матрица для каждого субкода в каждом новом наборе субкодов имеет столько столбцов, каков наименьший общий множитель числа столбцов каждого субкода в наборах субкодов, и определяют приоритет матриц субкодов в каждом новом наборе субкодов таким образом, чтобы матрица, сгенерированная с помощью объединения матриц двух новых наборов субкодов, имела характеристику КДТК, и изменяют порядок матриц в каждом новом субкоде согласно приоритету, причем характеристикой КДТК является то, что элементы матрицы имеют равномерное распределение повторения и выкалывания.
4. Способ передачи символов с использованием субкодов двумерных квазидополнительных турбокодов (КДТК), заключающийся в том, что генерируют наборы субкодов КДТК с заданными скоростями кодирования, изменяют порядок субкодов в наборах субкодов КДТК в соответствии с приоритетом субкодов и сохраняют субкоды в измененном порядке, выбирают КДТК со скоростью кодирования, определенной для передачи, и передают символы, используя субкод из набора субкодов выбранного КДТК.
5. Способ по п.4, отличающийся тем, что при операции изменения порядка генерируют новые наборы субкодов, причем матрица каждого субкода из нового набора субкодов имеет столько столбцов, каков наименьший общий множитель числа столбцов каждого из субкодов в наборах субкодов, определяют приоритет матриц субкодов в каждом новом наборе субкодов таким образом, чтобы матрица, сгенерированная с помощью объединения матриц двух новых наборов субкодов, имела характеристику КДТК, причем характеристикой КДТК является то, что элементы матрицы имеют равномерное распределение повторения и выкалывания, и изменяют порядок матриц в каждом новом субкоде в соответствии с приоритетом.
6. Способ генерации субкодов двумерных квазидополнительных турбокодов (КДТК), заключающийся в том, что генерируют субкоды КДТК с самой высокой скоростью кодирования среди КДТК со скоростями кодирования, которые находятся в целом кратном соотношении между их соответствующими скоростями кодирования, и устанавливают КДТК с самой высокой скоростью кодирования в качестве примитивного кода, определяют числа группирования субкодов, которые будут сгруппированы в примитивном коде для генерации каждого из остальных КДТК, в соответствии со скоростью кодирования и генерируют субкоды остальных КДТК с помощью группирования субкодов примитивного кода в соответствии с числами группирования и скоростью кодирования.
7. Способ по п.6, отличающийся тем, что дополнительно передают субкод, следующий за предварительно переданным субкодом в наборе субкодов КДТК, со скоростью кодирования, определенной для передачи.
8. Способ передачи символов с использованием субкодов двумерных квазидополнительных турбокодов (КДТК), заключающийся в том, что генерируют субкоды КДТК с самой высокой скоростью кодирования среди КДТК со скоростями кодирования, которые находятся в целом кратном соотношении между их соответствующими скоростями кодирования, и устанавливают КДТК с самой высокой скоростью кодирования в качестве примитивного кода, определяют числа группирования субкодов, которые должны быть сгруппированы в примитивном коде для генерации каждого из остальных КДТК, в соответствии со скоростью кодирования и генерируют субкод из остальных КДТК с помощью группирования стольких субкодов примитивного кода, каким является число группирования, соответствующее определенной скорости кодирования для передачи, начиная с субкода, следующего за предварительно переданным субкодом в примитивном коде, и передают символы, используя сгенерированный субкод.
9. Способ передачи символов с использованием субкодов двумерных квазидополнительных турбокодов (КДТК), заключающийся в том, что генерируют субкоды КДТК с самой высокой скоростью кодирования среди КДТК со скоростями кодирования, которые находятся в целом кратном соотношении между их соответствующими скоростями кодирования, и устанавливают КДТК с самой высокой скоростью кодирования в качестве примитивного кода, генерируют субкоды остальных КДТК с помощью группирования субкодов примитивного кода в соответствии со скоростью кодирования, при заданной скорости кодирования для передачи определяют порядковый номер субкода j_current, который должен использоваться в передаче, с помощью следующего уравнения: [((j_pre+l)*g_pre mod Sp)-1]+1=(j_current*g_current) mod Sp, где j_pre - порядковый номер субкода, используемого для предыдущей передачи, g_pre - число группирования, используемое для предыдущей передачи, g_current - определенное число группирования и Sp - размер набора примитивного кода, и передают символы, используя субкод, соответствующий определенному порядковому номеру среди субкодов КДТК в соответствии с определенной скоростью кодирования.
10. Способ генерации субкодов двумерных квазидополнительных турбокодов (КДТК), заключающийся в том, что группируют КДТК в соответствии со скоростями кодирования, причем каждая группа КДТК включает в себя КДТК со скоростями кодирования, которые находятся в целом кратном соотношении между их соответствующими скоростями кодирования, генерируют субкоды КДТК с самой высокой скоростью кодирования в каждой группе КДТК и устанавливают КДТК с самой высокой скоростью кодирования в качестве примитивного кода, определяют числа группирования субкодов, которые будут сгруппированы в примитивном коде, для того, чтобы сгенерировать каждый из остальных КДТК в каждой группе КДТК, и генерируют субкод с помощью группирования стольких субкодов примитивного кода, каково число группирования, соответствующее скорости кодирования.
11. Способ передачи символов с использованием субкодов двумерных квазидополнительных турбокодов (КДТК), заключающийся в том, что группируют КДТК в соответствии со скоростями кодирования, причем каждая группа КДТК включает в себя КДТК со скоростями кодирования, которые находятся в целом кратном соотношении между их соответствующими скоростями кодирования, генерируют субкоды КДТК с самой высокой скоростью кодирования в каждой группе КДТК и устанавливают КДТК с самой высокой скоростью кодирования в качестве примитивного кода, определяют число группирования субкодов, которые будут сгруппированы в примитивном коде, для генерации каждого из остальных КДТК в каждой группе КДТК, и генерируют субкод с помощью группирования стольких субкодов примитивного кода, каково число группирования, соответствующее определенной скорости кодирования для передачи, и передают символы, используя сгенерированный субкод.
12. Устройство для изменения порядка субкодов двумерных квазидополнительных турбокодов (КДТК), содержащее турбокодер для кодирования битового потока входной информации с заданной скоростью кодирования и вывода кодовых символов, контроллер для генерации наборов субкодов КДТК в соответствии с множеством заданных скоростей кодирования, изменения порядка субкодов в наборе субкодов и хранения субкодов в измененном порядке, выбора КДТК со скоростью кодирования, определенной для передачи, и генерации управляющих сигналов выкалывания и повторения для матрицы, следующей за матрицей, используемой для предыдущей передачи, среди субкодов в измененном порядке выбранного КДТК, и генератор КДТК для генерации субкода, который будет передан, с помощью выкалывания и повторения кодовых символов, принятых от турбокодера, в соответствии с управляющими сигналами выкалывания и повторения.
13. Устройство по п.12, отличающееся тем, что контроллер изменяет порядок матриц в каждом наборе субкодов таким образом, чтобы матрица, созданная с помощью объединения матриц двух различных наборов субкодов, имела характеристику КДТК, причем характеристикой КДТК является то, что элементы матрицы имеют равномерное распределение повторения и выкалывания.
14. Устройство для передачи символов с использованием субкодов двумерных квазидополнительных турбокодов (КДТК), содержащее турбокодер для кодирования потока битов входной информации с заданной скоростью кодирования и вывода кодовых символов, контроллер для хранения набора матриц, из которых генерируют субкоды КДТК с самой высокой скоростью кодирования среди КДТК со скоростями кодирования, которые находятся в целом кратном соотношении между их соответствующими скоростями кодирования, установки КДТК с самой высокой скоростью кодирования в качестве примитивного кода, генерации субкодов КДТК с помощью группирования субкодов примитивного кода, выбора субкода КДТК в соответствии с определенной скоростью кодирования при заданной скорости кодирования для передачи, и генерации сигналов управления выкалывания и повторения в соответствии с выбранным субкодом, и генератор КДТК для генерации субкода, который будет передан, с помощью выкалывания и повторения кодовых символов, принятых из турбокодера, в соответствии с управляющими сигналами выкалывания и повторения.
15. Устройство по п.14, отличающееся тем, что контроллер выбирает субкод согласно порядковому номеру субкода j_current субкода, который определяется как [((j_pre+l)*g_pre mod Sp)-1]+1=(j_current*g_current) mod Sp,
где j_pre - порядковый номер субкода, используемого в предыдущей передаче, g_pre - число группирования, используемое для предыдущей передачи, g_current - определенное число группирования и Sp - размер набора примитивного кода.
16. Устройство по п.15, отличающееся тем, что контроллер управляет множеством групп КДТК, причем в каждой группе КДТК имеются КДТК со скоростями кодирования, которые находятся в целом кратном соотношении между их соответствующими скоростями кодирования.
Описание изобретения к патенту
Настоящее изобретение относится в общем случае к генерации кода в системе передачи данных и, в частности, к устройству и способу генерации двухмерных квазидополнительных турбокодов (КДТК) и адаптивных КДТК, рассматривая характеристики турбокодов в системе пакетной передачи данных, использующей схему повторной передачи, или в общей системе связи, использующей схему повторной передачи.
Уровень техники
В общем случае система, использующая схему повторной передачи (например, гибридная схема автоматического запроса повторения АЗП, ARQ) выполняет объединение с мягким решением для улучшения пропускной способности при передаче. Методы объединения с мягким решением делятся на объединение разнесенных пакетов и объединение кодов пакетов. Эти две схемы объединения обычно называются объединением пакетов с мягким решением. Хотя схема объединения разнесенных пакетов имеет пропускную способность ниже оптимальной по сравнению со схемой объединения кодов пакетов, но она предпочтительна из-за более легкого осуществления при небольшой потере в пропускной способности.
Как указано выше, система пакетной передачи использует схему объединения кодов пакетов для улучшения пропускной способности при передаче. Передатчик передает код с различной скоростью кодирования при каждой передаче пакета. Если в принятом пакете обнаружена ошибка, то приемник запрашивает повторную передачу и выполняет объединение с мягким решением первоначального пакета и повторно переданного пакета. Повторно переданный пакет может иметь код, отличающийся от кода предыдущего пакета. Схема объединения кодов пакетов представляет собой процесс объединения N принятых пакетов со скоростью R кодирования в код с эффективной скоростью кодирования R/N до декодирования, чтобы таким образом достичь эффективности кодирования.
Что касается схемы объединения разнесенных пакетов, то передатчик передает тот же самый код со скоростью R кодирования при каждой передаче пакета. Если в принятом пакете обнаружена ошибка, то приемник запрашивает повторную передачу и выполняет объединение с мягким решением первоначального пакета и повторно переданного пакета. Повторно переданный пакет имеет код, идентичный коду предыдущего пакета. В этом смысле схема объединения разнесенных пакетов может рассматриваться как усреднение символа в канале со случайно изменяющимися параметрами. Схема объединения разнесенных пакетов уменьшает мощность шума с помощью усреднения выходных сигналов с мягким решением входных символов и достигает такого увеличения разнесения, какое предлагается каналом с многолучевым распространением, потому что тот же самый код неоднократно передается по каналу с замираниями. Однако схема объединения разнесенных пакетов не обеспечивает такую дополнительную эффективность кодирования, какая получается для структуры кода, которую предлагает схема объединения кодов пакетов.
Из-за простоты исполнения большинство систем пакетной передачи используют схему объединения разнесенных пакетов, которая в настоящее время развивается для использования с синхронными IS-2000 системами и асинхронными универсальными системами мобильной связи (УСМС, UMTS). Причиной является то, что существующие системы пакетной передачи, использующие сверточные коды и даже объединение кодов пакетов, не предлагают большую эффективность, когда используются сверточные коды со скоростью передачи кодовых данных. Если система с R=1/3 поддерживает повторную передачу, то нет большого различия в пропускной способности между схемой объединения кодов пакетов и схемой объединения разнесенных пакетов. Таким образом, выбирается схема объединения разнесенных пакетов, принимая во внимание меньшую сложность ее осуществления. Однако использование турбокодов, как кодов прямой коррекции ошибок (ПКО, FEC), требует другого механизма объединения пакетов, потому что турбокоды, разработанные как коды исправления ошибок, имеют рабочие характеристики, очень близкие к “ограничению Шеннона пропускной способности канала” и, очевидно, их пропускная способность изменяется при изменении скорости кодирования, в отличие от сверточных кодов. Поэтому можно прийти к заключению, что объединение кодов пакетов выполнимо для системы пакетной передачи, которая использует турбокоды в схеме с повторной передачей для достижения цели оптимальной пропускной способности.
В этом контексте для увеличения пропускной способности в системах, использующих объединение с мягким решением, были предложены КДТК. Для подробного ознакомления с КДТК см. патентную заявку Кореи номер Р2000-62151, поданную данным заявителем.
Квазидополнительные турбокоды (КДТК)
Далее будет дано описание системы, которая выбирает схему объединия кодов пакетов или схему объединения разнесенных пакетов при использовании обычных КДТК в зависимости от скорости передачи данных.
Например, в системе, использующей R=1/5 турбокоды, применяется объединение кодов пакетов, пока полная скорость кодирования для кодов, произведенных объединением с мягким решением повторно передаваемых пакетов, не достигнет 1/5. Для последующих повторно передаваемых пакетов выполняется объединение разнесенных пакетов и затем объединение кодов пакетов. Если первый пакет передается со скоростью передачи данных 1/3, то требуемые избыточные символы обеспечиваются при запросе на повторную передачу, чтобы сделать полную скорость кодирования 1/5. Таким образом, когда приемник принимает оба пакета, полная скорость кодирования становится равной 1/5. Каждый из последующих пакетов повторяется до передачи, и приемник выполняет объединение разнесенных пакетов и затем объединение кодов пакетов повторно переданных пакетов со скоростью передачи данных 1/5.
Фиг.1 - график, иллюстрирующий различие производительности между объединением кодов пакетов и объединением разнесенных пакетов в случае турбокодов. Как показано на фиг.1, турбокод с низкой скоростью передачи данных 1/6 показывает больший выигрыш в производительности, чем турбокод с высокой скоростью кодирования 1/3 при той же самой энергии Es символа, и достигает выигрыша в производительности 3 дБ при объединении кодов пакетов. Следовательно, генерация турбокодов с R=1/3 с помощью объединения кодов пакетов субкодов с R=1/6 создает выигрыш, который показывают турбокоды со скоростью кодирования ниже, чем 1/3, и одновременно выигрыш, который предлагает объединение различных кодов.
Более конкретно, для той же самой энергии Es кодового символа и той же самой скорости кодирования турбокоды обеспечивают производительность, близкую к “ограничению Шеннона пропускной способности канала”, в зависимости от скорости кодирования, только если итерационное декодирование полностью осуществлено, в отличие от сверточных кодов. Из предшествующего уровня техники известно, что турбокод с низкой скоростью кодирования предлагает большее увеличение производительности, чем турбокод с высокой скоростью кодирования при той же самой энергии Es кодового символа. Например, когда R=1/3 уменьшается до R=1/6, изменение производительности может быть оценено, анализируя изменение в “ограничении Шеннона пропускной способности канала”. Причиной для принятия той же самой энергии Es символа независимо от R=1/3 или 1/6 для кривых на фиг.1 является то, что та же самая энергия Es символа используется для каждой повторной передачи в гибридной системе с автоматическим запросом повторения (ГАЗП).
Если код с R=1/2 повторяется однажды и к двум данным кодам применяется “объединение разнесенных пакетов” в канале с аддитивным белым гауссовым шумом (АБГШ AWGN), то получается максимальный выигрыш 3 дБ с точки зрения отношения энергии символа к шуму (Es/No). Тот же самый результат происходит в случае кода с R=1/6. Таким образом, кривая производительности для турбокода с R=1/3 сдвигается влево параллельно на +3 дБ из-за выигрыша при объединении разнесенных пакетов и кривая производительности для турбокода с R=1/6 также сдвигается влево параллельно на +3 дБ, когда задается та же самая энергия символа. Здесь, кривые производительности получаются в зависимости от отношения “энергия к шуму” (Eb/No), которое измеряется для сравнения производительности кода в зависимости от скорости кодирования. Как следствие, различие между кривыми производительности турбокода эквивалентно различию производительности между объединением разнесенных пакетов и объединением кодов пакетов. Различие производительности в зависимости от скорости кодирования может быть оценено из “ограничения Шеннона пропускной способности канала”, и минимальное различие в производительности может быть получено при использовании минимального требуемого отношения сигнал-шум (ОСШ, SNR).
В системе, использующей турбокоды со скоростью кодирования R и очень большой размер блока кодирования L, минимальное отношение Eb/No, требуемое для обеспечения свободного от ошибок канала, выражается следующим образом:
Согласно вышеприведенному уравнению минимальные требования по Eb/No в канале с АБГШ при каждой скорости кодирования для турбокодов перечислены в таблице 1, расположенной ниже. В таблице 1 типичное отношение Eb/No показывает отношение Eb/No, которое требуется для коэффициента битовой ошибки (КБО) ниже 0,00001, когда размер L блока кодирования турбокодов равен 1024.
Таблица 1 | ||
Скорость кодирования | Требуемое отношение Eb/No (дБ) | Типичное отношение Eb/No (дБ) для КБО=10-5 |
3/4 | 0,86 | 3,310 |
2/3 | 0,57 | 2,625 |
1/2 | 0,00 | 1, 682 |
3/8 | -0,414 | 1,202 |
1/3 | -0,55 | 0, 975 |
1/4 | -0,82 | 0,756 |
1/5 | -0,975 | 0, 626 |
1/6 | -1,084 | 0,525 |
0 | -1,62 | Нет данных |
Как показано в таблице 1, требуемое отношение Eb/No равно 0,86, 0,57, 0,0, - 0,414, - 0,55, - 0,82, - 0,975 и - 1,084 дБ соответственно для скоростей кодирования 3/4, 2/3, 1/2, 3/8, 1/3, 1/4, 1/5 и 1/6. Существует разница по меньшей мере в 0,53 дБ в производительности между системой, использующей код с R=1/3 и системой, использующей код с R=1/6. Это минимальное различие в производительности, основанное на “ограничении Шеннона пропускной способности канала”. Рассматривая осуществление реального декодера и среды системы, различие становится большим. При моделировании наблюдалось различие в производительности приблизительно 1/12 дБ между системой, использующей объединение кодов пакетов для кодов с R=2/3, и системой, использующей объединение разнесенных пакетов для кодов с R=1/3.
Таблица 2 показывает различие в производительности между объединением кодов пакетов и объединением разнесенных пакетов после одной повторной передачи в системе со скоростью кодирования субкода 2/3. Как показано в таблице 2, минимальное различие в производительности - 1,12 дБ, и схема объединения кодов пакетов создает более высокий выигрыш в производительности в системе, использующей турбокод.
Таблица 2 | ||
Элементы | Объединение пакетов | Объединение кодов |
Родительская скорость кодирования Rm | 1/3 (X, Y0, Y'0) на фиг.2 | 1/3 (X, Y0, Y'0) на фиг.2 |
Размер блока (L) | 496 | 496 |
Максимальное число итераций | 8 | 8 |
Число передач | 2 | 2 |
Фактическая Тх скорость кодирования Re для каждой передачи | 2/3 (с помощью выкалывания) | 2/3(с помощью выкалывания) |
Выбор избыточности | Идентичный шаблон для всех передач | Различный шаблон для всех передач |
Объединение с мягким решением | Объединение разнесенных пакетов | Объединение кодов пакетов |
Выигрыш через повторную передачу | Выигрыш в повторении символа | Выигрыш в кодировании для низкой скорости кодирования |
Минимальное требуемое отношение Eb/No в таблице 1 | + 0,57(дБ) | R-2/3 + 0,57 (дБ) R-2/6-0,55 (дБ) |
Требуемое отношение Eb/No при 2-х повторных передачах | + 0,57-3,0 (дБ) | -0,55-3/0 (дБ) |
Относительный выигрыш в производительности | 0 | 1,12 (=0,57 + 0,55)дБ |
Моделируемый относительный выигрыш (КБО=10-5 ) | 0 | 2,5 (дБ) |
Как описано выше, схема объединения кодов пакетов предоставляет превосходную производительность в системе с повторной передачей, использующей турбокод. Поэтому настоящее изобретение предлагает способ генерации субкода для оптимального объединения кодов пакетов в системе с повторной передачей, использующей турбокод. Генерация субкодов для объединения кодов пакетов согласно заданному правилу создает вышеупомянутый выигрыш при объединении кодов и максимизацию производительности системы, которая требует, чтобы субкоды были того же самого размера для каждой повторной передачи.
Фиг.2 - структурная схема типичного устройства генерации субкодов с использованием турбокодов. Как показано на фиг.2, устройство генерации субкодов включает в себя турбокодер, генератор 204 субкода и контроллер 205.
Вначале, что касается турбокодера, первый составляющий кодер 201 (составляющий кодер 1) кодирует битовый поток входной информации и выводит первые кодовые символы, т.е. информационные символы X и первые символы четности Y 0 и Y1. Перемежитель 202 перемежает битовый поток входной информации согласно заданному правилу. Второй составляющий кодер 203 (составляющий кодер 2) кодирует данный перемеженный информационный битовый поток и выводит вторые кодовые символы, т.е. информационные символы X' и вторые символы четности Y0' и Y1'. Таким образом, выходными символами турбокодера являются первые и вторые кодовые символы. Так как информационные символы X', сгенерированные вторым составляющим кодером 203, в действительности не передаются, скорость кодирования турбокодера равна 1/5.
Генератор 204 субкода генерирует субкоды из первых и вторых кодовых символов, принятых от первого и второго составляющих кодеров 201 и 203, с помощью выкалывания и повторения под управлением контроллера 205. Контроллер 205 сохраняет матрицы выкалываний (и повторений), сгенерированные по алгоритмам, показанным на фиг.4, 5 и 6, и выводит сигналы выбора символа в соответствии с матрицами выкалываний в генератор 204 субкода. Затем генератор 204 субкода выбирает заданное число кодовых символов в пределах заданного диапазона выкалывания в ответ на сигналы выбора символа.
Используемые знаки, на которые сделана ссылка, X, Y0, Y1, Y'0 и Y'1, определяются следующим образом.
X: систематический кодовый символ или информационный символ
Y0: символ избыточности от верхнего составляющего кодера данного турбокодера
Y1: символ избыточности от верхнего составляющего кодера данного турбокодера
Y’0: символ избыточности от нижнего составляющего кодера данного турбокодера
Y'1: символ избыточности от нижнего составляющего кодера данного турбокодера
Фиг.4, 5 и 6 - последовательности операций, которые показывают процедуры генерации субкода (или матрицы выкалываний) согласно обычной технологии. Более конкретно, фиг.4 показывает процедуру генерации первого субкода Со в наборе субкодов, фиг.5 показывает процедуру генерации средних субкодов от C1 до Сs-2 в наборе субкодов, и фиг.6 показывает процедуру генерации последнего субкода C s-1 в наборе субкодов.
Здесь и далее ENC1 (упоминается как первые кодовые символы) указывает на информационные символы Х и первые символы четности Y0 и Y1, которые выводятся из первого составляющего кодера 201, и ENC2 (упоминается, как вторые кодовые символы) указывает на вторые символы четности Y'0 и Y'1, которые выводятся из второго составляющего кодера 203.
Переходя к фиг.4, максимальная скорость кодирования (Rmax), доступная передатчику, устанавливается при операции 401. Это значение главным образом задается в соответствии со скоростью передачи данных, используемой в системе. Минимальная скорость кодирования (Rmin) устанавливается таким образом, чтобы она была целым кратным от Rmax (=k/n). Здесь k - число входных символов и n - число выходных символов. Хотя Rmin может определяться произвольно, обычно она равна 1/6, 1/7 или ниже, поскольку эффективность кодирования насыщается при уменьшении скорости кодирования до значения, равного или меньшего R=4/7 для турбокодов. Кроме того, реальная скорость кодирования, т.е. родительская скорость кодирования (R) декодера в приемнике, определена. R устанавливается больше, чем Rmin.
В реальных осуществлениях систем Rmax и Rmin устанавливаются предварительно. В некотором смысле Rmax - скорость кодирования субкодов, которые будут сгенерированы, и Rmin - окончательная скорость кодирования после кодового объединения субкодов. В общем случае Rmin - скорость кодирования кодера в передатчике.
При операции 403 число субкодов (S) рассчитывается с помощью следующего уравнения, используя Rmax и Rmin. Здесь число субкодов или число матриц выкалываний - это минимальное целое число, превышающее отношение Rmax к Rmin.
где представляет минимальное целое число, равное или большее чем *.
При операции 405 переменная m устанавливается в начальное значение 1 и при операции 407 определяется С (=m× k). С - число столбцов каждой матрицы выкалываний, определяемое Rmax. Например, для Rmax=3/4 С может быть 3, 6, 9,... и устанавливается в минимально доступное значение для первого субкода, который будет передаваться. Здесь С устанавливается в 3 для Rmax=3/4.
При операции 407 число символов, которые будут выбраны из матрицы выкалываний, Ns рассчитывается с помощью умножения переменной m на длину кода, т.е. число кодовых символов n из Rmax=k/n. Ns - число выбранных символов или число выбранных позиций в каждой матрице выкалываний, и оно вычисляется с помощью C/Rmax.
При операции 409 (Ns-C) сравнивается с количеством составляющих кодеров турбокодера в передатчике. Настоящий турбокодер в общем случае обеспечивается двумя составляющими кодерами. Таким образом, предполагается, что используются два составляющих кодера. При операции 409 определяется, является ли (Ns-C) большим или равным 2, потому что турбокодер имеет два составляющих кодера, связанные параллельно с перемежителем, установленным, как показано на фиг.2, в отличие от обычных кодеров, использующих другие одиночные коды. Другими словами, по меньшей мере один символ четности от каждого составляющего кодера должен быть передан после того, как все информационные символы переданы, для того, чтобы сохранить характеристики, свойственные турбокодеру.
Если (Ns-C) меньше чем 2, то только один символ выбирается или из первого набора символов четности, или из второго набора символов четности. С точки зрения турбокодов любой случай может вызвать проблемы. В первом случае субкоды, сгенерированные без вторых символов четности, являются не турбокодами, а сверточными кодами с длиной ограничения К=4 от кодера, имеющего только первый составляющий кодер, и не предлагают никакого выигрыша от наличия перемежителя, который доступен в турбокодере. С другой стороны, во втором случае, передача только систематических символов без символов четности из первого составляющего кодера приводит к субкодам со скоростью кодирования 1. Это эквивалентно некодированной системе без повышения эффективности кодирования. Соответственно, разность (Ns-C) должна быть больше или равной 2 для того, чтобы обеспечить производительность турбокодера.
Если при операции 409 значение (Ns-С) больше или равно 2, то при операции 411 из матрицы выкалываний выбираются С систематических информационных символов, а остальные символы выбираются согласно заданному типу. Для типа 1 при операции 413 остальные символы выбираются из первых и вторых символов четности с помощью уравнения (3). Число выбранных первых символов четности больше или равно числу выбранных вторых символов четности. Например, если число остальных символов (Ns-C) равно 3, то первый и второй символы четности выбираются с помощью уравнения (3) и затем еще один символ выбирается из первых символов четности.
где [*] представляет максимальное целое число, меньшее или равное *.
Для типа 2 при операции 415 остальные символы выбираются из первых и вторых символов четности с помощью уравнения (4). Если а и b задаются как нормы распределения символа для первых символов четности и вторых символов четности, соответственно, столько символов, каково минимальное целое число, равное или большее, чем отношение а(Ns-C) к (a+b), выбирается из первых символов четности, и столько символов, каково максимальное целое число, равное или меньшее, чем отношение b(Ns-C) к (a+b), выбирается из вторых символов четности.
где a+b=1 и а и b указывают коэффициенты распределения символов для ENC1 и ENC2 соответственно.
Если условие, заданное при операции 409, не выполняется, т.е. (Ns-C) меньше, чем 2, то при операции 417 переменная m увеличивается на 1 и процедура возвращается к операции 407. Назначением операции 409 является определение того, могут ли субкоды, способные сохранять свойство турбокодов, быть сгенерированы в пределах настоящего диапазона выкалываний (при данном размере матрицы выкалываний). Если свойство турбокодов не может быть сохранено, то при операции 417 расширяется диапазон выкалываний.
Как описано выше, начальная матрица выкалываний создается таким образом, что выбираются все информационные символы и по меньшей мере один символ выбирается из каждого, первого и второго, наборов символов четности в турбокодере.
Сейчас будет дано описание способа генерации промежуточной матрицы выкалываний со ссылкой на фиг.5. С помощью повторения процедуры, показанной на фиг.5, генерируются матрицы выкалываний с C1 до Cs-2.
Ссылаясь на фиг.5, в зависимости от заданного типа выполняется операция 501 или 503. Для типа 1 при операции 501 Ns символов выбираются из первого и второго наборов символов четности с помощью уравнения (5). Ns является произведением m и n, определенным из Rmax (=k/n). Число выбранных первых символов четности больше или равно числу выбранных вторых символов четности. Здесь выбираются невыбранные символы из предыдущих матриц выкалываний.
Для типа 2, при операции 503 Ns символов выбираются из первого и второго наборов символов четности согласно заданным отношениям с помощью уравнения (6). Если а и b задаются как отношения распределения символа для первых символов четности и вторых символов четности соответственно, то столько символов, каково минимальное целое число, большее или равное, чем отношение a(Ns) к (а+b), выбирается из первых символов четности и столько символов, каково максимальное целое число, меньшее или равное отношению b(Ns) к (а+b), выбирается из вторых символов четности. Здесь выбираются невыбранные символы из предыдущих матриц выкалываний.
Способ генерации последней матрицы выкалываний Cs-1 будет описан ниже со ссылкой на фиг.6.
Ссылаясь на фиг.6, при операции 601 выбираются все оставшиеся невыбранные символы из предыдущих матриц выкалываний. Число выбранных символов определяется как Ns2. При операции 603 новое число Ns определяется с помощью (Ns-Ns2). Так как символы во всех позициях выбираются из матриц выкалываний в процессе операций, показанных на фиг.4, 5 и 6, новое число Ns является числом символов, которые должны быть повторно выбраны. При операции 605 определяется, является ли новое число Ns большим, чем 0. Если новое число Ns равно 0, то процедура заканчивается. Если оно больше, чем 0, то повторно выбирается столько символов из информационных символов, каково новое число Ns. Другими словами, эти выбранные символы передаются повторно.
Описанный выше способ генерации субкода согласно настоящему изобретению будет пояснен ниже с помощью конкретных числовых примеров.
Для Rmax=3/4 и R=1/5, Rmin=l/6 и S=6/(4/3)=4,5 5. Таким образом, создаются пять матриц выкалываний.
{С 0, C1, C2, С3, С 4}:Rmax=3/4.
Поскольку скорость кодирования субкодов равна 3/4 и число субкодов равно 5, после объединения кодов субкоды имеют скорость кодирования 3/20 ((1/S) × Rmax=(1/5)× (3/4)=3/20). Это подразумевает, что для 3 информационных битов приемник принимает 20 кодовых символов. Однако, так как 15 символов генерируются из S× n=5× 4=20 и S× k=5× 3=15, то 5 символов среди этих 15 символов передаются повторно. Повторяющиеся символы являются предпочтительно информационными символами. В вышеприведенном примере, если информационный символ Х повторяется однажды в каждом субкоде, то, когда все S субкодов приняты, декодер принимает турбокоды с R=1/5, в которых информационные символы появляются дважды для каждого из S субкодов.
Результирующие субкоды после процедур, показанных на фиг.4, 5 и 6, являются своего рода дополнительными кодами, но они не являются дополнительными кодами в строгом смысле этого термина, потому что существуют повторяющиеся символы, и каждый субкод имеет отличающуюся характеристику. Ввиду того, что данные субкоды производятся из турбокодов, они будут называться квазидополнительными турбокодами (КДТК).
Фиг.3 - график, показывающий сравнение между производительностью схем ГАЗП, использующих объединение кодов пакетов и производительностью схем ГАЗП, использующих объединение разнесенных пакетов, с точки зрения пропускной способности канала передачи данных для КДТК с R=2/3 и 3=4 согласно обычной технологии. Как показано на фиг.3, схема ГАЗП 301, использующая объединение кодов пакетов для КДТК, и схема ГАЗП 302, использующая объединение разнесенных пакетов для КДТК, показывают лучшую производительность, чем схема ГАЗП 303 без КДТК. Для той же самой пропускной способности данных в реальном времени (например, 0,25) около -4 дБ Es/No требуется для схемы ГАЗП 301, около -1,3 дБ для схемы 302 ГАЗП и около 1 дБ для схемы 303 ГАЗП. Следовательно, использование КДТК согласно настоящему изобретению гарантирует более высокую пропускную способность канала при меньшей энергии символа.
Вышеописанный способ генерации субкода будет пояснен ниже с помощью конкретных числовых примеров.
Для Rmax=3/4, R=1/5 и Rmin=1/6, S=6/(4/3)=4,5 5. Таким образом создается пять матриц выкалываний.
{СО, С1, С2, С3, С4}: Rmax=3/4.
Так как скорость кодирования субкодов равна 3/4 и количество субкодов равно 5, то после объединения кодов субкоды имеют скорость кодирования 3/20 ((1/S)× Rmax=(1/5)× (3/4)=3/20). Это подразумевает, что для 3 информационных битов приемник принимает 20 кодовых символов. Однако, так как 15 символов сгенерированы из S× n=5× 4=20 и S× k=5× 3=15, то 5 заданных символов среди этих 15 символов передаются повторно. Повторяющиеся символы являются предпочтительно информационными символами. В вышеприведенном примере, если информационный символ Х повторяется однажды в каждом субкоде, то декодер принимает турбокоды с R=1/5, в которых информационные символы появляются дважды в каждом из S субкодов.
Результирующие субкоды после процедур, показанных на фиг.4, 5 и 6, являются своего рода дополнительными кодами, хотя они не являются дополнительными кодами в строгом смысле этого термина, потому что существуют повторяющиеся символы, и каждый субкод имеет отличающуюся характеристику. Ввиду того, что данные субкоды производят от турбокодов, они будут называться КДТК.
В обычной технологии субкоды КДТК имеют заданную скорость кодирования. Для передачи блока из одного информационного слова используются субкоды КДТК с определенной скоростью кодирования. Другими словами, обычный КДТК является одномерным КДТК.
При изменении среды передачи канала или при изменении длины входного информационного слова должен передаваться субкод с другой скоростью кодирования. Однако не существует способа выбора и передачи КДТК с различной скоростью кодирования. В действительности, предпочтительно использовать субкод нового КДТК с высокой скоростью кодирования (низкой скоростью кодирования), отличающейся от предыдущих субкодов КДТК в хорошей среде передачи канала (в плохой среде передачи канала). Другими словами, имеется потребность в способе определения КДТК в зависимости от среды передачи канала или других факторов.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Поэтому задачей настоящего изобретения является создание устройства и способа использования множества КДТК с различными скоростями кодирования в системе связи, поддерживающей повторную передачу.
Другой задачей настоящего изобретения является создание устройства и способа для переупорядочения субкодов в наборе субкодов с различной скоростью кодирования, которые должны быть переданы после субкода с заданной скоростью кодирования для того, чтобы достичь оптимального объединения кодов в приемнике системы связи, поддерживающей повторную передачу при помощи множества КДТК.
Дополнительной задачей настоящего изобретения является создание устройства и способа генерации субкода с назначенной скоростью кодирования с помощью группирования субкодов КДТК с определенной скоростью кодирования столько раз, каково число группирования, определенное назначенной скоростью кодирования, и передачи сгенерированного субкода для достижения оптимального объединения кодов в приемнике системы связи, поддерживающей повторную передачу при помощи множества КДТК.
Предшествующие и другие задачи настоящего изобретения решаются с помощью создания устройства и способа генерации двухмерного КДТК. Согласно одному аспекту настоящего изобретения генерируют наборы субкодов КДТК, соответствующие множеству данных скоростей кодирования. Здесь каждый субкод является матрицей с элементами, которые представляют повторение и выкалывание. Затем генерируют новые наборы субкодов таким образом, чтобы матрица каждого субкода имела столько столбцов, каков наименьший общий множитель числа столбцов субкодов в наборах субкодов. Приоритет матриц субкодов определяется в каждом новом наборе субкодов таким образом, чтобы матрица, сгенерированная с помощью объединения матриц двух новых наборов субкодов, имела КДТК характеристику. Затем данные матрицы переупорядочиваются в каждом новом субкоде согласно приоритету.
Согласно другому аспекту настоящего изобретения КДТК с самой высокой скоростью кодирования среди КДТК со скоростями кодирования, находящимися в целом кратном соотношении, устанавливают как примитивный код в группе и генерируют субкоды примитивного кода. Число субкодов, которые будут сгруппированы в примитивном коде, определяют для генерации каждого из остальных КДТК. Субкод, который будет передан, генерируют с помощью группирования стольких субкодов примитивного кода, каково число группирования, соответствующее данной скорости кодирования, начиная с субкода, следующего за предварительно переданным субкодом в примитивном коде. Затем передается сгенерированный субкод.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеупомянутые и другие задачи, признаки и преимущества настоящего изобретения станут более очевидными из следующего подробного описания совместно с сопроводительными чертежами, в которых
фиг.1 - график, иллюстрирующий различие в производительности между объединением кодов пакетов и объединением разнесенных пакетов в системе пакетной передачи данных, использующей турбокоды;
фиг.2 - структурная схема типичного устройства генерации субкода;
фиг.3 - график, иллюстрирующий производительность схемы с повторной передачей без использования субкодов, производительность схемы с повторной передачей, реализующей объединение разнесенных пакетов с использованием субкодов, и схемы с повторной передачей, реализующей объединение кодов с использованием субкодов;
фиг.4 - последовательность операций, иллюстрирующая обычный способ генерации первого субкода в наборе субкодов квазидополнительных турбокодов;
фиг.5 - последовательность операций, иллюстрирующая обычный способ генерации промежуточных субкодов в наборе субкодов квазидополнительных турбокодов;
фиг.6 - последовательность операций, иллюстрирующая обычный способ генерации последнего субкода в наборе субкодов квазидополнительных турбокодов;
фиг.7 - последовательность операций, иллюстрирующая способ генерации двухмерного КДТК согласно первому варианту осуществления настоящего изобретения;
фиг.8 - последовательность операций, иллюстрирующая способ генерации адаптивного КДТК согласно второму варианту осуществления настоящего изобретения;
фиг.9 - диаграмма, иллюстрирующая выполнение генерации адаптивного КДТК согласно первому варианту осуществления настоящего изобретения;
фиг.10 - диаграмма, иллюстрирующая другой вариант выполнения генерации адаптивного КДТК согласно первому варианту осуществления настоящего изобретения;
фиг.11 - последовательность операций, иллюстрирующая передачу субкода с использованием адаптивного КДТК согласно второму варианту осуществления настоящего изобретения;
фиг.12 - последовательность операций, иллюстрирующая передачу субкода с использованием двухмерного КДТК согласно первому варианту осуществления настоящего изобретения;
фиг.13 - структурная схема устройства передачи для передачи двухмерного КДТК и адаптивного КДТК согласно настоящему изобретению.
ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Предпочтительные варианты осуществления настоящего изобретения будут описаны здесь и далее со ссылкой на сопроводительные чертежи. В последующем описании известные функции или конструкции подробно не описываются, так как они затенили бы изобретение ненужными подробностями.
Настоящее изобретение предлагает способ передачи КДТК с различными скоростями кодирования в соответствии с характеристиками турбокодов, среды передачи канала и скорости передачи входных данных. Предлагаются два вида КДТК: двухмерный КДТК и адаптивный КДТК. В прежней схеме субкод КДТК выбирают среди множества КДТК с различными скоростями кодирования в каждом промежутке времени передачи, а в последней схеме субкоды конкретного КДТК группируют до передачи в соответствии с заданной скоростью передачи данных.
Двухмерные КДТК
Рассмотрение будет выполнено для случая, когда система связи, использующая КДТК, изменяет скорость передачи данных в зависимости от среды передачи данных канала до того, как один КДТК полностью передан. Пусть 1k будет информационным словом или блоком данных, который будет передан. В случае КДТК информационное слово кодируется следующим образом:
где QCTC_ENC относится к КДТК кодированию, Cj(k) (j=0, 1, 2, 3,... , Si-1) является j-тым субкодом КДТК, сгенерированным из 1k, и S - размер набора КДТК, т.е. число субкодов, которые формируют КДТК, определяемое скоростью кодирования субкода и родительской скоростью кодирования.
Как можно заметить из вышеприведенного уравнения, существующая схема с одномерным КДТК передает символы, используя субкоды одного КДТК последовательно, пока 1k полностью не передан. Таким образом, субкоды передают в таком порядке C0(k), C1(k), C2 (k),... , Cs-1 и изменение скорости кодирования (строго говоря, скорости кодирования субкодов) между передачами рассматривалось без представления конкретного способа. Если система связи, использующая КДТК, должна использовать КДТК с новой скоростью кодирования из-за изменения среды передачи данных канала до того, как все субкоды КДТК переданы со скоростью передачи данных, то она должна быть способна генерировать множество КДТК с различными скоростями кодирования.
где QCTC_ENC относится к кодированию КДТК, Ci](k) (i=0, 1, 2, 3,... , NS-1, j=0, 1, 2, 3,... , Si-1) является j-тым субкодом i-того КДТК, сгенерированным из 1k, и Si является размером набора i-го КДТК, который определяется скоростью кодирования субкода и родительской скоростью кодирования.
Согласно уравнению (11), передатчик в двухмерной системе связи, использующей КДТК, выбирает один из NS КДТК адаптивно к изменениям в среде передачи данных, которые включают в себя изменение условий канала или изменение скорости передачи данных. Чтобы оптимизировать производительность, система должна определить оптимальный порядок передачи с помощью анализа отношений между NS КДТК. Так как приемник может объединять двухмерные КДТК произвольным способом в отличие от одномерных КДТК, если структура кода после объединения КДТК не удовлетворяет характеристикам, которые должны иметь турбокоды, то производительность может ухудшаться. Чтобы минимизировать эту проблему, двухмерные КДТК должны удовлетворять следующим условиям.
Условие 1: минимальное число субкодов КДТК должно быть объединено для генерации кода с родительской скоростью кодирования. Другими словами, матрица выкалываний для каждого субкода должна быть сформирована таким образом, чтобы минимальное число субкодов объединялось для достижения родительской скорости кодирования.
Условие 2: только если условие 1 выполняется, элементы матрицы выкалываний для результирующего кода от объединения КДТК должны иметь равные веса, если это возможно. Т.е. элементы матрицы выкалываний кода, сгенерированного с помощью объединения минимального числа субкодов, имеют равномерное распределение повторений и выкалываний.
Наиболее важным для выполнения условия 1 и условия 2 является формирование матрицы выкалываний для каждого КДТК и определение порядка передачи субкодов в каждом КДТК. Такие двухмерные КДТК, созданные с использованием оптимальных одномерных КДТК, должны иметь более высокую эффективность, чем случайно выбранные двухмерные КДТК. Кроме того, порядок передачи субкодов должен быть оптимизирован, потому что он является важным фактором, определяющим производительность двухмерного КДТК. Здесь и далее будет подробно описана генерация двухмерных КДТК, основанных на двух вышеуказанных принципах.
Используемый здесь термин “КДТК” определяется как набор субкодов, сгенерированных на основании заданной родительской скорости кодирования и заданной скорости кодирования субкода. Как указано прежде, матрицы выкалываний используются в том же самом смысле, как субкоды.
Фиг.7 - последовательность операций, иллюстрирующая способ генерации двухмерного КДТК согласно первому варианту осуществления настоящего изобретения. Ссылаясь на фиг.7, на этапе 701 генерируются наборы субкодов NS оптимальных одномерных КДТК с заданными скоростями кодирования. Матрицы выкалываний Si субкодов C ij (i=0, 1, 2,... , NS-1, j=0, 1, 2,... , Si -1) формируются согласно заданной родительской скорости кодирования и заданных скоростей кодирования Ri. Это выполняется таким же образом, как генерация обычного КДТК за исключением того, что множество КДТК Ci генерируется в соответствии с заданными скоростями кодирования. При операции 703 число столбцов в матрице выкалываний каждого элементарного кода КДТК, имеющего самый большой размер набора S среди NS КДТК, определяется как CWf (0 f NS-1).
При операции 705 новые матрицы выкалываний с CWf столбцами формируют с помощью повторения существующих матриц выкалываний КДТК. Если CWf не является целым кратным числа Cwi столбцов каждой матрицы выкалываний для КДТК Ci, то наименьшее общее кратное (НОК) CWf и CWi определяется как новое число CWf. Затем должны быть заново сформированы матрицы выкалываний с новым числом CWf.
При операции 707 матрицам выкалываний каждого набора субкодов назначают приоритеты передачи таким образом, что матрицы выкалываний, созданные с помощью объединения матриц выкалываний двух различных наборов субкодов, будут иметь КДТК характеристики. Например, приоритет передачи субкодов Cij в каждом наборе субкодов С0 и C1 должен быть определен таким образом, чтобы одинаковые веса, если возможно, давались элементам матрицы выкалываний нового кода, получаемого из комбинации субкодов в КДТК С0 и C1. Назначение одинаковых весов означает равномерное распределение элементов, представляющих выкалывания и повторения в матрице выкалываний кодового слова, сгенерированного с помощью объединения минимального числа субкодов. Основное условие, которое должно выполняться для генерации КДТК, состоит в том, что субкод Сi0 начальной передачи должен иметь информационный кодовый символ. Другими словами, информационные кодовые символы в первой строке субкода Ci0 должны передаваться первыми.
При операции 709 матрицы выкалываний переупорядочиваются в каждом наборе субкодов. Т.е. изменяется последовательность субкодов Cij в каждом наборе субкодов Сi . Затем, если выбран конкретный КДТК Ci, то субкоды Cij КДТК Ci передают в порядке возрастания j. Например, если передача КДТК происходит в порядке C1 , С3 и C1, то субкоды передают в порядке С10, С30 и С11. В этом контексте можно сказать, что фиг.7 иллюстрирует процесс переупорядочивания субкодов с другой скоростью кодирования, которые будут передаваться после субкода, переданного с определенной скоростью кодирования.
Вышеуказанный способ генерации двухмерного КДТК будет пояснен конкретными примерами далее в связи с фиг.7. Перед описанием принимают, что NS=4, скорости кодирования Ri КДТК Ci. задают как R0=1/2, R1=1/3, R2=1/4 и R3=1/8, и родительская скорость кодирования R=1/5.
Операция 701: генерация одномерного КДТК R0=1/2, C0:
Операция 703: CWf=2
Операция 705
R0 =1/2, C0:
Операция 707
R0=1/2, C0: порядок передачи сбрасывается с помощью размещения С00 в позиции С02, C01 - в позиции С00, и C02 - в позиции C01.
R1=1/3, C1: С10 заменяется на С11 в порядке передачи.
Как можно заметить из приведенного выше, субкоды С 00, C01 и С02 переупорядочиваются в C01, С02, С00, в наборе субкодов С0, а субкоды С10 и С11 меняют позиции в наборе субкодов C1 для выполнения условия 1 и условия 2. Здесь субкоды в каждом наборе субкодов передают в порядке возрастания порядковых номеров субкодов. Например, если передача КДТК происходит в порядке C1, С 3 и C1, то субкоды передают в порядке С 10, С30 и С11.
Таблица 3 показывает список показанных выше матриц выкалываний. Как можно заметить из таблицы 3, передачу субкодов выполняют последовательно в каждом наборе субкодов (КДТК). В то время как каждая матрица выкалываний для R1=1/3 и R2=1/4 должна иметь два столбца, показано, что она имеет только один столбец. Это - вопрос представления. Таким образом, предлагается та же самая производительность.
Подвижная станция и система считывают матрицу выкалываний в соответствии с заданной скоростью кодирования (или скоростью передачи данных) и генерируют субкод с помощью повторения и выкалывания кодовых символов, выводимых из турбокодера с родительской скоростью кодирования в соответствии с матрицей выкалываний. Альтернативно они получают матрицу выкалываний, используя заданный алгоритм, и генерируют субкод из матрицы выкалываний.
Адаптивный КДТК
Как описано выше, двухмерный КДТК с улучшенной производительностью достигается с помощью управления порядком передачи субкодов в каждом из независимых одномерных КДТК с заданными скоростями кодирования. Генерация независимых КДТК преимущественно облегчает их оптимизацию, но имеет отличительный недостаток, такой, что в случае, когда скорость кодирования R 1 конкретного КДТК Ci, является целым кратным от скорости кодирования Rk другого КДТК (k=0, 1, 2,... , NS-1), соотношение КДТК может избежать оптимизации, даже если существует пространство, достаточное для оптимизации.
Для R0 =1/2 и R2=1/4, КДТК С0 и С2 получаются отдельно в алгоритме КДТК. Чтобы полностью использовать характеристики КДТК, предпочтительно выполнять условие 1. Чтобы сделать это, два последовательных субкода Со группируют для передачи субкодов с R2=1/4, таким образом, как (С00+C01), (C01+02 ) или (С02+С00). Затем, если субкод с R 0=1/2 объединяют с такими субкодами, то может быть достигнута оптимальная производительность.
Одномерный КДТК с самой высокой скоростью кодирования среди одномерных КДТК со скоростями кодирования, находящимися в целом кратном соотношении, определяют как примитивный код Ср в группе (р - целое число между 0 и NS-1). Когда требуется субкод, имеющий скорость кодирования ниже, чем примитивный код Ср, субкод генерируют с помощью сцепления (конкатенации) или группирования субкодов примитивного кода Ср. Это называется адаптивной КДТК схемой.
Фиг.8 - последовательность операций, иллюстрирующая способ генерации адаптивного КДТК согласно другому варианту осуществления настоящего изобретения. Ссылаясь на фиг.8, при операции 801 КДТК со скоростями кодирования Ri делят на группы, причем каждая группа включает в себя КДТК со скоростями кодирования, которые находятся в целом кратном соотношении. При операции 803 КДТК с самой высокой скоростью кодирования выбирают из каждой группы КДТК в качестве примитивного кода Ср. Таким образом, множество примитивных кодов Ср может быть определено в соответствии с числом групп.
При операции 805 устанавливаются правила сцепления или группирования для генерации субкодов для каждого КДТК в каждой группе, использующей субкоды Cpj (j=0, 1, 2,..., Sp-1) каждого примитивного кода Ср. Правила могут включать в себя число субкодов, которые будут сцеплены или сгруппированы в каждом примитивном коде. Другими словами, назначенный субкод Cij со скоростью кодирования Ri генерируют с помощью сцепления или группирования субкодов примитивного кода Ср. Таблицу группирования субкодов можно сделать предварительно, рассматривая все возможные группирования субкодов. В этом случае предпочтительно группировать субкоды последовательно в примитивном коде С р.
Как только скорость кодирования (или КДТК, или субкода) задана, генерируют субкод КДТК со скоростью кодирования с помощью сцепления субкодов соответствующего примитивного кода Ср.
Если примитивный код группы grp (т.е. произвольной группы) - Ср, и его размер набора - Sp, то субкоды КДТК в группе grp могут быть выражены следующим образом:
где j обозначает индекс субкода и g - число субкодов, которые будут сгруппированы (т.е. число группирования). Если g=1, то субкоды примитивного кода Ср используют без группирования. Если g=2, то субкоды примитивного кода Ср группируют по два. Для скорости Rs=2/3 кодирования примитивного кода Ср, если g=1, то новый субкод имеет скорость кодирования r=2/3. Если g=2, r=1/3, потому что еще один набор кодовых символов генерируют по сравнению с g=1. Поэтому вышеприведенная матрица определяет скорости кодирования КДТК, которые могут быть получены с помощью группирования целого числа субкодов примитивного кода Ср, и субкодов каждого КДТК. Максимальное число субкодов, которые будут сгруппированы, не ограничено, так как это зависит от осуществления системы. Здесь, например, может быть сгруппировано до четырех субкодов.
Число строк в матрице указывает максимальное число группирования. Поскольку число строк увеличивается, скорость кодирования КДТК, которая может быть осуществлена группированием субкодов, уменьшается. Число столбцов в матрице определяется с помощью размера набора Sр примитивного кода Ср.
Например, если скорость кодирования примитивного кода Ср равна Rs=1/2, то первая строка при g=1 имеет субкоды примитивного кода Ср с Rs=1/2. Другими словами, элементы первой строки в матрице указывают субкоды примитивного кода С р. Вторая строка при g=2 включает в себя субкоды КДТК с Rs=1/4. Третья строка при g=3 имеет субкоды КДТК с Rs=1/6 и четвертая строка при g=4 - субкоды КДТК с Rs=1/8.
Следующее уравнение показывает соотношение между каждым КДТК и примитивным кодом Ср в той же самой группе. Группа КДТК с первоначальным кодом Ср при Rs=1/2 и Sp=3 следующая:
Поэтому для группы с примитивным кодом Ср с Rs=1/2 матрица, показанная в уравнении (12), выражается с помощью уравнения (14), приведенного ниже.
Тем же самым образом субкоды КДТК в другой группе КДТК могут упорядочиваться в матрице в соответствии с размером набора, а Sр его примитивного кода Ср и скорости кодирования КДТК.
Приведенная выше генерация адаптивного КДТК будет пояснена с помощью конкретных примеров в связи с фиг.8. Перед описанием принимаем, что NS=4, скорости кодирования R i КДТК Ci задают, как R0=1/2, R 1=1/3, R2=1/4 и R3=1/8, и родительская скорость кодирования R=1/5.
Операция 801: группирование кода
Группа 0={С0, С2, С3 }={R0, R2, R3) Скорость кодирования = {1/2, 1/4, 1/8}
Группа 1={C1}={R1 } Скорость кодирования = {1/3}
Операция 803: первоначальные коды Ср={С0, C1}
C 0(R0=1/2): первоначальный код в группе 0
C1 (R1=1/3): первоначальный код в группе 1
Операция 805
Субкоды Cij (i=0, 1, 2,... , NS-1, j=0, 1, 2,... , Si-1) КДТК Ci в каждой группе получают с использованием примитивных кодов С р.
Группа 0: КДТК с Rs=l/2
R 0=1/2: {C00, C01, С02}
R2=1/4: {(C00, C01), (C01, C02), (C02, C00 )} (доступно до трех случаев)
R3=1/8: {(C 00, C01, C02, C00), (C 01, C02, C00, C01 ), (C02, C00, C01, C02 )}
Группа 1: КДТК с R1=1/3
R1 =1/3: {C20, C21}
Когда передают субкод КДТК с R2=1/4, существует два пути определения, какой субкод является переданным субкодом.
(1) Неявная идентификация субкода
Если передатчик и приемник имеют информацию о порядке передачи субкодов, то передатчик не должен передавать информацию по выделенному каналу. Например, в случае группы 0, приемник сохраняет индекс предварительно принятого субкода для каждой скорости кодирования, т.е. R=1/2, 1/4 или 1/8 так, чтобы после получения нового субкода в той же самой группе приемник мог выяснять позицию нового субкода.
(2) Явная идентификация субкода
Передатчик уведомляет приемник о типе текущего субкода. Затем приемник объединяет принятые субкоды соответственно. В общем случае, если условия в канале не очень плохие, то достаточно неявной идентификации субкода. В настоящем изобретении выборочно используются два способа идентификации в зависимости от надежности канала сообщений в системе.
Фиг.9 - диаграмма, иллюстрирующая выполнение генерации адаптивного КДТК согласно второму варианту осуществления настоящего изобретения. На фиг.9 скорость кодирования родительского кода R=1/5, КДТК со скоростями кодирования 1/2, 1/4, 1/8 находятся в группе 0, а КДТК со скоростями кодирования 1/3 и 1/6 находятся в группе 1. Для группы 0 КДТК скорости 1/2 - примитивный код Ср, а для группы 1 КДТК скорости 1/3 - примитивный код Ср. КДТК со скоростями кодирования 1/2, 1/4, 1/8 и 1/3 генерируют с помощью примитивных кодов С р.
Для группы 0, если КДТК скорости 1/2 - С3 , субкоды скорости 1/4 и субкоды скорости 1/8 генерируют с помощью последовательного группирования субкодов С30 , С31 и С32 согласно числам группирования. Например, субкоды скорости 1/4 производят с помощью группирования двух субкодов, например (С30, С01), (С 32, С30) и (С31, С32), а субкоды скорости 1/8 - с помощью группирования четырех субкодов (С30, С31, С32, С30 ). Для группы 1, если КДТК скорости 1/3 - С2, то субкоды скорости 1/6 генерируют с помощью группирования двух субкодов, например (С20, C21).
Фиг.10 - диаграмма, иллюстрирующая другое осуществление генерации адаптивного КДТК согласно второму варианту осуществления настоящего изобретения. На фиг.10 скорость кодирования родительского кода R=1/5, КДТК со скоростями кодирования 1/2, 1/4 и 1/8 находятся в группе 0, а КДТК со скоростями кодирования 2/3, 1/3 и 1/6 находятся в группе 1. Для группы 0 КДТК скорости 1/2 - примитивный код Ср, а для группы 1 КДТК скорости 2/3 - примитивный код Ср. КДТК со скоростями кодирования 1/2, 1/4, 1/8, 2/3, 1/3 и 1/6 генерируют с помощью примитивных кодов Ср.
Для группы 0, если КДТК скорости 1/2 - С3, то субкоды скорости 1/4 и субкоды скорости 1/8 генерируют с помощью последовательного группирования субкодов С30, С31 и С32 в зависимости от чисел группирования. Например, субкоды скорости 1/4 производят с помощью группирования двух субкодов, например, (С30 , C01), (С32, С30) и (С 31, С32), а субкоды скорости 1/8 обеспечивают с помощью группирования четырех субкодов (С30, С 31, С32, С30). Для группы 1, если КДТК скорости 2/3 - C1, то субкоды скорости 1/3 и субкоды скорости 1/6 генерируют с помощью последовательного группирования субкодов С10, С11, C12 и C 13 согласно числам группирования. Конкретно, субкоды скорости 1/3 генерируют с помощью группирования двух субкодов примитивного кода Ср со скоростью кодирования 2/3, например, (С 10, С11), (C12, C12 ) или (С10, С11), а субкоды скорости 1/6 генерируют с помощью группирования четырех субкодов примитивного кода Ср со скоростью кодирования 2/3, например (С 10, С11, C12, C13). Структура кода, показанная на фиг.10, является более адаптивной к изменениям в условиях канала и скорости передачи данных.
Если система ГАЗП использует КДТК с различными скоростями кодирования в зависимости от среды передачи данных канала, то предпочтительнее ГАЗП II. Тогда требуются субкоды с более высокими скоростями кодирования, и таким образом в качестве примитивного кода будет использоваться КДТК с R=2/3. Очевидно, что примитивный код определяют в зависимости от максимальной скорости кодирования, требуемой системой, описание которой выходит за пределы объема настоящего изобретения, и адаптивный КДТК генерируют описанным выше образом. Например, для R=3/4 субкоды с R=3/4, R=2/3, R=1/3, R=1/6 и т.д. могут генерироваться тем же самым образом.
Таблица 4 показывает список матриц выкалываний субкодов, которые генерируют при помощи примитивных кодов С р с R=1/2 и R=1/3. Таблица 5 показывает список матриц выкалываний субкодов, которые генерируют при помощи примитивных кодов С р с R=1/2 и R=2/3.
Как можно заметить из таблицы 4 и таблицы 5, субкоды производятся с помощью группирования субкодов примитивных кодов Ср . Субкоды КДТК с данной скоростью кодирования генерируют с помощью последовательного группирования субкодов примитивного кода С р. В таблице 4 описывают две группы КДТК, которые имеют примитивные коды с R=1/2 и R=1/3. Матрицы выкалываний являются элементами матрицы субкодов, показанной в уравнении (12). Например, С1p0, C1p1 и С 1p2 в уравнении (12) соответствуют матрицам выкалываний для первых, вторых и третьих субкодов C00 , C01 и С02 при R0=1/2, соответственно. С2p1 и C2p2 соответствуют второму субкоду С11 (С02 С00) и третьему субкоду C12 (C01 C02) при R1=1/4, соответственно. Таблица 5 иллюстрирует субкоды двух групп с примитивными кодами с R=1/2 и R=2/3.
Подвижная станция и система включают в себя таблицы, такие как таблица 4 и таблица 5, из которых считываются матрицы выкалываний с данной скоростью кодирования (или скоростью передачи данных). Субкоды генерируют с помощью повторения и выкалывания символов, выводимых из турбокодера с родительской скоростью кодирования в соответствии с матрицами выкалываний. Альтернативно матрицы выкалываний получают с помощью заданного алгоритма, и субкоды генерируют на основании матриц выкалываний.
Фиг.13 - структурная схема устройства передачи, предназначенного для передачи двумерного КДТК и адаптивного КДТК согласно настоящему изобретению. Ссылаясь на фиг.13, кодер 1301 канала кодирует символы входной информации со скоростью кодирования родительского кода, например R=1/5, и выводит кодовые символы. Генератор 1302 КДТК генерирует субкод с помощью выкалывания и повторения кодовых символов под управлением контроллера 1303 выбора субкода.
Контроллер 1303 имеет память для хранения матриц выкалываний, которые показаны в таблицах с 3 по 5, с помощью которых генерируют субкоды. Контроллер 1303 управляет генератором 1302 КДТК по алгоритму, показанному на фиг.12, при генерации двухмерного КДТК, и по алгоритму, показанному на фиг.11, при генерации адаптивного КДТК.
Альтернативно контроллер 1303 может передавать сигнал индекса на генератор 1302 КДТК для выбора одной из матриц выкалываний, показанных в таблице с 3 по 5, с помощью выполнения алгоритмов, показанных на фиг.11 и фиг.12 во время передачи каждого субкода. В этом случае генератор 1302 КДТК считывает матрицу выкалываний в соответствии с индексом из таблиц с 3 по 5 и генерирует субкод с помощью выкалывания и повторения символов, выводимых из кодера 1301 канала, на основании матрицы выкалываний.
Здесь и далее будет даваться описание выбора (или передачи) субкода в контроллере 1303.
Фиг.11 - последовательность операций, иллюстрирующая передачу субкода с использованием одномерного адаптивного КДТК согласно второму варианту осуществления настоящего изобретения. Ссылаясь на фиг.11, после генерации нового блока кодера при операции 1100, при операции 1101 контроллер 1303 устанавливает все переменные (j_current, j_pre, g_current и g_pre) в начальные значения. При операции 1103 контроллер 1303 выбирает группу КДТК, которая включает в себя КДТК с заданной скоростью кодирования и определяет число группирования g, т.е. число субкодов, которые будут сгруппированы в примитивном коде Ср. Здесь скорость кодирования определяется в зависимости от состояния канала и скорости передачи входных данных в передатчике. Число группирования g - переменная, с помощью которой указывается КДТК, включенный в группу. После определения группы и числа группирования контроллер 1303 считывает переменную j_pre, сохраненную для КДТК C1 с данной скоростью кодирования и устанавливает переменную j_current в это считанное значение при операции 1105. Данное значение j_current указывает порядковый номер субкода в КДТК. Затем контроллер 1303 выбирает субкод КДТК, имеющий номер j_current, соответствующий переменной g_current в группе при операции 1107, и при операции 1109 передает кодированный символ, соответствующий выбранному субкоду. Для следующей передачи переменные g_current и j_current сохраняются как переменные g_pre и j_pre. Субкоды, соответствующие j_current (=0), т.е. первые субкоды КДТК, выражаются как
Затем субкод, соответствующий g_current (или g), выбирается среди первых субкодов.
После передачи субкода контроллер 1303 определяет, требуется ли другой субкод, т.е. был ли при операции 1113 принят запрос от приемника на повторную передачу. При запросе другого субкода при операции 1113 контроллер 1303 передает субкод с заданной скоростью кодирования. Иначе, контроллер 1303 возвращается на операцию 1100 для принятия нового кодированного блока.
Тем временем, контроллер 1303 выбирает группу (g_current) КДТК, которая включает в себя КДТК с заданной скоростью кодирования, которая определяется при операции 1115 в зависимости от среды передачи данных канала.
При операции 1117 контроллер 1303 определяет порядковый номер j_current субкода, который будет передан (элемент в матрице групп) согласно следующему уравнению 16 и возвращается на операцию 1107, в котором субкод, соответствующий переменной g_current, передается среди субкодов, соответствующих переменной j_current.
В приведенном выше уравнении, левая часть “[((j_pre+1)* g_pre mod Sp)-1]” означает субкод, которым заканчивается предыдущая группа, а правая часть “(j_current*g_current) mod Sp” означает субкод, с которого начинается следующая группа. Поэтому, в случае добавления 1 к “[((j_pre+1)*g_pre mod Sp)-1]”, это означает субкод, с которого начинается следующая группа, поэтому каждая часть уравнения имеет одинаковое значение. Таким образом может быть получено значение j_current.
В приведенном выше уравнении A mod В является операцией достижения частного от деления А на В. Т.е. если переменная g_pre указывает число группирования субкодов примитивного кода для генерации предыдущего субкода, т.е. идентификационный номер КДТК с предыдущим субкодом, и j_pre указывает порядковый номер предыдущего субкода, то порядковый номер текущего субкода, который будет передан, j_current, определяется с помощью уравнения (16). Среди субкодов в столбце, соответствующем переменной j_current, субкод выбирается в строке, соответствующей переменной g_current, которая определяется в зависимости от скорости кодирования. Причиной для использования “mod Sp” в уравнении (16) является то, что число столбцов в матрице групп меньше или равно S p. Так как число субкодов примитивного кода равно S p, “mod Sp” допускает рекурсивный выбор первого субкода Сp0 после передачи всех субкодов в каждой строке (см. фиг.9 и 10).
Работа последовательности операций на фиг.11 будет описана более подробно с помощью конкретных числовых примеров.
При условии, что скорость кодирования примитивного кода Rs=1/2, число строк в матрице групп g=4 (т.е. до КДТК с R=1/8 может быть сгенерировано), Sp=3, скорости кодирования меняются по порядку Rs=1/2, Rs =1/4, Rs=1/2, Rs=1/8, и затем g_рrе=0, j_current=0,g_current=0 и j_pre=0 (начальное значение), тогда
1. R=1/2: g_current=1 и j_current=0, поэтому g_pre=1 и j_pre=0. Выбранный субкод: С1р0
2. R=1/4: g_current=2 и j_current=2, поэтому g_pre=2 и j_pre=1. Выбранный субкод: C2p2
3. R=1/2: g_current=1 и j_current=0, поэтому g_pre=1 j_pre=0. Выбранный субкод: С1р0
4. R=1/8: g_current=4 и j_current=l, поэтому g_pre=4 и j_pre=1. Выбранный субкод: С 4p1
5. R=1/2: g_current=l и j_current=2, поэтому g_pre=1 и j_pre=2. Выбранный субкод: C1 p2
Субкод в пределах каждой группы выбирают в соответствии с уравнением (16), и группу выбирают в соответствии со скоростью кодирования, которая зависит от среды передачи данных канала и скорости входных данных. Как показано на фиг.9 и 10, начальную передачу субкода выполняют с j=0. В то время как матрицы выкалываний для субкодов каждого КДТК перечислены в таблицах памяти, например в таблицах с 3 по 5 в варианте осуществления настоящего изобретения, может быть дополнительно рассмотрен другой вариант осуществления, когда обеспечиваются субкоды примитивного кода для каждой группы, и назначенный субкод генерируют с помощью группирования субкодов примитивного кода с помощью уравнения (16). В последнем случае, если j_current рассчитывают по уравнению (16), контроллер может генерировать передаваемый субкод с помощью группирования g последовательных субкодов примитивного кода, начиная с субкода, соответствующего j_current.
Фиг.12 - последовательность операций, иллюстрирующая передачу субкода с использованием двухмерного КДТК согласно первому варианту осуществления настоящего изобретения. Ссылаясь на фиг.12, после генерации нового блока кодера при операции 1200, при операции 1201 контроллер 1303 устанавливает все переменные (j и j_saved) в начальные значения. При операции 1203 контроллер 1303 определяют КДТК Ci в соответствии с заданной скоростью кодирования. Здесь скорость кодирования определяют в соответствии с состоянием канала и скоростью передачи входных данных в передатчике. При операции 1205 контроллер 1303 считывает переменную j_saved, сохраненную для КДТК Ci, при операции 1207 выбирает j-ый субкод Cij среди субкодов КДТК, и при операции 1209 передает кодированный символ с помощью выбранного субкода.
После передачи субкода контроллер 1303 определяет, требуется ли другой субкод, т.е. был ли при операции 1211 принят запрос от приемника на повторную передачу. При запросе другого субкода при операции 1213 контроллер 1303 выбирает субкод со скоростью кодирования, определенной в соответствии со средой передачи данных канала. Иначе, контроллер 1303 возвращается на операцию 1200 для проверки, был ли принят новый блок кодера.
Тем временем при операции 1215 контроллер 1303 определяет, идентичен ли выбранный субкод предыдущему. Если они идентичны, то контроллер 1303 модифицирует переменную j с помощью уравнения (17) и возвращается на операцию 1207. Если они различны, то при операции 1219 контроллер 1303 увеличивает на 1 переменную j, представляющую предыдущий субкод, и сохраняет (j+1) как переменную j_saved и возвращается на операцию 1203.
где Si- размер набора КДТК Ci. Причиной для использования “mod Si” в уравнении (17) является возможность рекурсивного выбора первого субкода после передачи всех субкодов КДТК.
В соответствии с настоящим изобретением, которое описано выше, система связи с повторной передачей может выбирать различный КДТК адаптивно в соответствии с заданной скоростью передачи данных или скоростью кодирования. Другими словами, двухмерные КДТК и адаптивные КДТК используются для повторной передачи пакета, таким образом значительно увеличивая пропускную способность.
В то время как изобретение показано и описано со ссылкой на некоторые предпочтительные варианты его осуществления, специалистам в данной области техники будет понятно, что различные изменения в форме и деталях могут быть сделаны без отступления от сущности и объема изобретения, которое описано с помощью приложенной формулы изобретения.
Класс H03M13/00 Кодирование, декодирование или преобразование кода для обнаружения ошибок или их исправления; основные предположения теории кодирования; границы кодирования; способы оценки вероятности ошибки; модели каналов связи; моделирование или проверка кодов
Класс G06F1/02 генераторы цифровых функций