Устройство и способ генерирования и декодирования кодов в системе связи
Реферат
Предложено устройство, генерирующее квазикомплементарные турбокоды в системе связи. Устройство включает в себя турбокодер, перемежитель для перемежения символов, выдаваемых из турбокодера, согласно заданной скорости и кодовый генератор для генерирования квазикомплементарных турбокодов посредством прореживания и повторения перемеженных символов из перемежителя. Далее устройство декодирует квазикомплементарные турбокоды в системе связи. Декодирующее устройство включает в себя декодер кода для генерирования кодовых символов согласно кодовой скорости, переданных через депрореживание подкодов квазикомплементарных турбокодов, переданных от передатчика, и мягкого комбинирования подкодов, деперемежитель для деперемежения символов, выданных из декодера кода, и турбодекодер для декодирования выхода деперемежителя. Техническим результатом является создание устройства и способа декодирования комплементарных турбокодов, учитывая характеристики турбокодов в системе связи. 4 н. и 22 з.п.ф-лы, 7 ил.
Настоящее изобретение относится в целом к устройству генерирования кодов в системе передачи данных, в частности к устройству и способу генерирования комплементарных турбокодов, учитывая характеристики турбокодов в системе пакетной связи с автоматическим запросом повторения (АЗП) (ARQ) или в обычной системе связи, поддерживающей схему АЗП.
В общем случае система, поддерживающая гибридную схему АЗП (здесь и далее именуемую "система ГАЗП" (HARQ)), использует метод мягкого комбинирования, чтобы улучшить свою пропускную способность, а методы мягкого комбинирования разделяются на метод пакетного комбинирования с разнесением и метод пакетного кодового комбинирования. Эти два метода комбинирования обычно именуются "мягким пакетным комбинированием". По сравнению с методом пакетного кодового комбинирования метод пакетного комбинирования с разнесением является субоптимальным в терминах характеристик, но часто использовался из-за простоты своего воплощения, когда потери качества не являются существенным фактором в конструкции системы.
Метод пакетного кодового комбинирования используется в системе пакетной связи, чтобы увеличить ее пропускную способность. Метод пакетного кодового комбинирования передает меняющиеся коды, имеющие кодовую скорость R для каждого передаваемого пакета. При обнаружении приемником ошибки в принятом пакете после декодирования приемник сохраняет сбойный пакет, а не отбрасывает его, а затем мягко комбинирует сохраненный пакет с пакетом, повторно переданным передатчиком. Здесь для повторно переданного пакета могут использоваться отличающиеся коды. То есть, при приеме N пакетов, имеющих кодовую скорость R, метод комбинирования пакетных кодов преобразует кодовую скорость в эффективную кодовую скорость R/N с помощью пакетов перед декодированием, тем самым повышая эффективность кодирования.
С другой стороны, метод пакетного комбинирования с разнесением передает те же самые коды, имеющие кодовую скорость R для каждого переданного пакета. При обнаружении в приемнике ошибки в принятом пакете после декодирования приемник сохраняет сбойный пакет, а не отбрасывает его, а затем мягко комбинирует сохраненный пакет с пакетом, повторно переданным от передатчика. Во всех случаях одни и те же коды используются для повторно передаваемого пакета. Поэтому метод пакетного комбинирования с разнесением может считаться процессом усреднения энергии символов в случайном канале и использует только эффект снижения мощности помех, достигаемый усреднением мягкого выхода принятых символов, и эффективность разнесения, обеспечиваемую в канале с разнесением путем передачи множества символов в канале с замираниями. В противоположность этому, метод пакетного кодового комбинирования имеет дополнительную эффективность кодирования на основании кодовой структуры в дополнение к эффективности разнесения.
Между тем, ниже будет описан турбокодер, генерирующий турбокод. В случае турбокодера с R=1/5 этот турбокодер генерирует информационные символы X, первые символы Y0, Y0' четности и вторые символы Y1, Y1' четности путем кодирования информационных символов. Турбокодер состоит из двух частичных кодеров и одного перемежителя. Первые символы Y0 и Y0' четности представляют собой выходы из первого частного кодера за счет кодирования входных информационных символов, а вторые символы Y1 и Y1' четности являются выходами из второго частного кодера за счет кодирования информационных символов, перемеженных в перемежителе. Подробнее, Yo представляет собой строку из первых символов четности, генерированных из первого частного кодера, а Y0' представляет собой строку из вторых символов четности, генерированных из первого частного кодера.
В настоящее время вследствие простоты воплощения большинство систем пакетной связи используют схему пакетного комбинирования с разнесением и, в частности, синхронная система IS-2000 и асинхронная система UMTS применяют метод пакетного комбинирования с разнесением по тем же причинам. Однако большинство существующих систем пакетной связи используют сверточные коды, а когда используются сверточные коды с низкой кодовой скоростью R, эти системы не могут обеспечить высокой эффективности разнесения, даже хотя они используют метод пакетного комбинирования с разнесением. То есть, в случае, когда система, использующая сверточный код с R=1/3, поддерживает схему АЗП, разница между схемой пакетного кодового комбинирования и схемой пакетного комбинирования с разнесением незначительна, а потому система использует метод пакетного комбинирования с разнесением. Однако при использовании турбокодов в качестве кодов прямого исправления ошибок (ПИО) (FEC) требуется отличающийся метод. Это потому, что турбокоды сконструированы, чтобы иметь качественные характеристики, приближающиеся к шенноновскому пределу пропускной способности канала, и их характеристики меняются очевидным образом в зависимости от скоростей кодирования в отличие от сверточных кодов. Поэтому желательно использовать метод пакетного кодового комбинирования в системах пакетной связи, которые используют турбокоды, чтобы улучшить характеристики системы.
Поэтому целью настоящего изобретения является обеспечить устройство и способ генерирования и декодирования комплементарных турбокодов, учитывая характеристики турбокодов в системе связи.
Еще одной целью настоящего изобретения является обеспечить устройство и способ декодирования квазикомплементарных турбокодов в системе связи.
Чтобы достичь вышеуказанных и других целей, настоящее изобретение обеспечивает устройство для декодирования квазикомплементарных турбокодов в системе связи. Декодирующее устройство включает в себя кодовый декодер для генерирования кодовых символов согласно кодовой скорости переданных через депрореживатель подкодов переданных из передатчика квазикомплементарных турбокодов, и мягкого комбинирования этих подкодов, деперемежитель для деперемежения символов, выдаваемых из кодового декодера, и турбодекодер для декодирования выхода деперемежителя.
Вышеуказанные и другие цели, отличительные признаки и преимущества настоящего изобретения станут более ясными из нижеследующего подробного описания, рассматриваемого совместно с сопровождающими чертежами, на которых:
Фиг.1 иллюстрирует структуру устройства генерирования ККТК согласно варианту выполнения настоящего изобретения.
Фиг.2 иллюстрирует процедуру генерирования квазикомплементарных турбокодов согласно варианту выполнения настоящего изобретения.
Фиг.3 иллюстрирует способ выбора подкодов квазикомплементарного кода согласно варианту выполнения настоящего изобретения.
Фиг.4 иллюстрирует структуру приемника для приема данных, переданных передатчиком фиг.1, согласно варианту выполнения настоящего изобретения.
Фиг.5 представляет собой функциональную блок-схему процедуры обработки принятых сигналов в приемнике согласно варианту выполнения настоящего изобретения.
Фиг.6 иллюстрирует процедуру обработки принятых данных в приемнике согласно варианту выполнения настоящего изобретения.
Фиг.7 иллюстрирует процедуру разделения принятых данных, сохранения разделенных данных и декодирования этих данных согласно варианту выполнения настоящего изобретения.
Предпочтительный вариант выполнения настоящего изобретения будет описан ниже со ссылками на сопровождающие чертежи. В нижеследующем описании общеизвестные функции или конструкции не описаны подробно, поскольку они загромождали бы изобретение ненужными деталями.
Настоящее изобретение обеспечивает способ использования квазикомплементарных турбокодов (ККТК) независимо от изменений кодовой длины в системе, которая поддерживает канальное перемежение, используя квазикомплементарные турбокоды, или в системе, которая требует квазикомплементарных кодов с различными кодовыми скоростями. ККТК определяется как комплементарный код, генерированный с помощью турбокода. ККТК не является совершенным комплементарным кодом, как следует из термина "квази", потому что подкод включает в себя повторенные символы и имеет отличающуюся от другого подкода характеристику, такую как способность исправлять ошибки.
Фиг.1 иллюстрирует структуру устройства генерирования ККТК согласно варианту выполнения настоящего изобретения, в котором повторение символов и прореживание, используемые в устройстве генерирования квазикомплементарных турбокодов (ККТК), выполняются после канального перемежения.
На фиг.1 кодер 101 кодирует входной пакет кодера в кодированные символы. Здесь в качестве кодера 101 можно использовать сверточный кодер или турбокодер. В используемом здесь примере предполагается, что кодовая скорость кодера 101 составляет R=1/5. Поэтому кодер 101 принимает 3072 информационных бита и выдает 15360 кодированных символов. Канальный перемежитель 102 перемежает кодированные символы, выдаваемые из кодера 101, согласно заранее заданному правилу. Здесь, если кодер 101 является турбокодером, перемежитель 102 перемежает по отдельности символ Х кодового слова и символы Y0, Y1, Y0' и Y1' четности на основании свойства турбокодера. Генератор 103 ККТК (или блок прореживания/повторения ККТК) генерирует квазикомплементарные турбокоды посредством прореживания и повторения перемеженных символов, предоставленных из канального перемежителя 102. Как показано выше, канальный перемежитель 102 и генератор 103 ККТК выполняют процесс генерирования ККТК.
Как проиллюстрировано, если число перемеженных кодовых символов составляет 15360, а скорость передачи данных (или кодовая скорость) подкодов задана как 307,2 кбит/с, генератор 103 ККТК генерирует первый подкод с 21504 символами путем взятия 15360 перемеженных кодовых символов и повторения части первой половины перемеженных кодовых символов. Если скорость передачи данных равна 614,4 кбит/с, генератор 103 ККТК генерирует первый подкод путем взятия первых 10752 кодовых символов из первой половины перемеженных кодовых символов. А если скорость передачи данных составляет 1228,8 кбит/с или 2457,6 кбит/с, генератор 103 ККТК генерирует первый подкод путем взятия 5376 кодовых символов из перемеженных кодовых символов.
Здесь канальный перемежитель 102 должен быть сконструирован специальным образом, чтобы генерировать квазикомплементарные турбокоды (или подкоды). Это потому, что 5 символов, т.е. символ Х кодового слова и символы Y0, Y1, Y0' и Y1' четности, выдаваемые из канального кодера 101, распределяются после того, как подвергнутся канальному перемежению. Трудно воплотить систему для использования распределенных символов в качестве входов в блок прореживания и повторения для генерирования квазикомплементарных турбокодов, и перемешанными символами X, Y0, Y1, Y0' и Y1' нелегко генерировать подкоды, удовлетворяющие характеристикам ККТК. Чтобы разрешить эту проблему, настоящее изобретение обеспечивает способ генерирования квазикомплементарных турбокодов посредством особого метода безотносительно к кодовой скорости каждого подкода.
Фиг.2 иллюстрирует процедуру генерирования квазикомплементарных турбокодов согласно варианту выполнения настоящего изобретения. На фиг.2 кодер 201 кодирует входной пакет кодера в символы. Кодер 201 использует исходные коды с различными кодовыми скоростями. Исходные коды определяются использующей их системой. В данном случае как пример используются турбокоды с R=1/5 в качестве исходных кодов. Тогда кодер 201 генерирует информационные символы X, первые символы Y0 и Y0' четности и вторые символы Y1 и Y1' четности путем кодирования входных информационных символов. Первые символы Y0 и Y0' четности выдаются из первого частного кодера, а вторые символы Y1 и Y1' четности - из второго частного кодера. Первый и второй частные кодеры (не показаны) содержатся в кодере 201. Первичные символы Y0 и Y1 четности из первого и второго частных кодеров имеют более высокий приоритет передачи, чем вторичные символы Y0' и Y1' четности.
Демультиплексор (DEMUX) 202 демультиплексирует 5 символов, включая символ Х кодового слова и символы Y0, Y1, Y0' и Y1' четности, выданные от канального кодера 201, в 5 групп. То есть, символы Х кодового слова и символы Y0, символы Y1, символы Y0' и символы Y1' четности последовательно демультиплексируются и затем подаются на перемежители 204, 214, 224, 234 и 244 подблоков соответственно. Перемежители 204, 214, 224, 234 и 244 подблоков случайным образом изменяют порядок последовательностей, выдаваемых из демультиплексора 202, путем перемежения подблоков. Пригодны разные способы перемежения подблоков, если удовлетворяется следующее условие.
(Условие) Перемеженные кодовые символы частично прореживаются таким образом, что комбинация прореженных кодовых символов перед перемежением имеет одинаковое расстояние прореживания.
Причина удовлетворения вышеуказанного условия состоит в том, что когда заранее заданное число символов прореживается из соответствующих наборов символов X, Y0, Y0', Y1 и Y1' кодового слова, расстояние между прореженными кодовыми символами в символах кодовых слов перед перемежением подблоков должно быть равным, чтобы достичь оптимальной характеристики турбокода. Иными словами, когда прореживание применяется к турбокодам, равномерность является существенным фактором, который определяет характеристики турбокодов. В соответствии с настоящим изобретением к кодовым символам X, Y0, Y0', Y1 и Y1' применяется независимое перемежение подблоков. Равномерное прореживание в выходном сигнале каждого перемежителя поддерживает равное расстояние между прореженными кодовыми символами на выходе кодера. Поэтому можно заключить, что канальное перемежение должно быть выбрано так, чтобы прореживание в перемеженных кодовых символах могло поддерживать равномерное распределение прореживания на выходе канального кодера.
Такие способы канального перемежения включают в себя перемежение с обратным порядком битов (ОПБ) (BRO) и перемежение с частичным обратным порядком битов (ЧОПБ) (PBRO). Перемежение ОПБ практически применимо, только если число входных информационных битов в кодер и число символов в наборах символов X, Y0, Y0', Y1 и Y1' кодового слова, генерируемых из исходного кода, являются степенями 2, т.е. 2m, где m является параметром, чтобы сделать блоковый размер перемежителя подблоков таким же, как блоковый размер N=2m J. Перемежение ЧОПБ разрабатывалось, чтобы удовлетворять вышеуказанному условию даже тогда, когда число символов в соответствующих наборах символов X, Y0, Y0', Y1 и Y1' кодового слова не являются степенями 2 для преодоления ограничения перемежения ОПБ. Подробное описание этого канального перемежения подблоков здесь не приводится, следует лишь отметить, что в настоящем изобретении можно воплотить любой способ канального перемежения, если удовлетворяется вышеприведенное условие.
Символы кодового слова, рандомизированные с помощью перемежения подблоков, подаются на соответствующие блоки. Здесь перемеженные наборы информационных символов Х 206, выходящие из первого перемежителя 204, подаются непосредственно на вход объединителя 207 символов (или комбинатора символов). Перемеженные символы Y0 и Y1 четности соответственно из второго и третьего перемежителей 214 и 224 вводятся в первый мультиплексор (MUX) 205, а перемеженные символы Y0' и Y1' четности соответственно из четвертого и пятого перемежителей 234 и 244 подаются во второй мультиплексор 215. Первый мультиплексор 205 мультиплексирует перемеженные символы Y0 и Y1 четности и подает свой выходной сигнал на объединитель 207 символов. Второй мультиплексор 215 мультиплексирует перемеженные символы Y0' и Y1' четности и подает свой выходной сигнал на объединитель 207 символов. Перемеженные символы кодового слова, выдаваемые из перемежителей, переупорядочиваются, а затем разделяются на три подгруппы 206, 216 и 226.
Вышеописанный процесс, который является существенным для генерирования ККТК согласно настоящему изобретению, будет описан подробнее. Как показано на фиг.2, информационные символы Х образуют независимую подгруппу без прохождения через мультиплексирование после перемежения подблоков. Пусть перемеженные подблоками символы будут обозначаться как Sbi_X, что можно записать в виде
Sbi_X(l), Sbi_X(2), Sbi_X(3), Sbi_X(4)... (1)
где Sbi X(1) указывает первый символ, выводимый из первого перемежителя 204. Sbi_X называется последовательностью А.
Далее выходы перемеженных кодовых символов Y0 и Y1 из второго и третьего перемежителей 214 и 224 группируются в одну подгруппу. Если кодовые символы Y0 представляют собой Sbi_Y0, то Sbi_Y0 можно выразить в виде
Sbi_Y0(l), Sbi_Y0(2), Sbi_Y0(3), Sbi_Y0(4)... (2)
где Sbi_Y0(l) указывает первый кодовый символ, выводимый из второго перемежителя 214. Если кодовые символы Y1 представляют собой Sbi_Y1, то Sbi_Y1 можно выразить в виде
Sbi_Y1(l), Sbi_Y1(2), Sbi_Y1(3), Sbi_Y1(4)... (3)
где Sbi_Y1(l) и Sbi_Y1(2) указывают соответственно первый и второй кодовые символы, выводимые из третьего перемежителя 224. После мультиплексирования кодовых символов Y0 и Y1 в первом мультиплексоре 205 выход первого мультиплексора 205 будет
Sbi_Y0(1), Sbi_Y1(1), Sbi_Y0(2), Sbi_Y1(2), Sbi_Y0(3), Sbi_Y1(3)... (4)
Эти мультиплексированные символы называются последовательностью В.
Причина мультиплексирования перемеженных кодовых символов Sbi_Y0 и Sbi_Y1 состоит в том, что, когда М следующих друг за другом символов прореживаются в последовательности В безотносительно к первой половине или второй половине последовательности В, число прореженных символов в Sbi_Y0 равно числу прореженных символов в Sbi_Y1, только если М является четным числом. Если М нечетно, разность между числом прореженных символов в Sbi_Y0 и в Sbi_Y1 равна лишь 1. Мультиплексирование же всегда удовлетворяет ту характеристику ККТК, что число прореженных символов Y0 четности равно числу прореженных символов Y1 четности.
Подобным же образом перемеженные кодовые символы Y0' и Y1', выводимые из четвертого и пятого перемежителей 234 и 244, группируются в одну подгруппу. Если кодовые символы Y0' и Y1' представляют собой соответственно Sbi__Y0' и Sbi_Y1', то Sbi_Y0' и Sbi_Y1' можно выразить в виде
Sbi_Y0'(1), Sbi_Y0'(2), Sbi_Y0'(3), Sbi_Y0'(4)... (5)
и
Sbi_Y1'(1), Sbi_Y1'(2), Sbi_Y1'(3), Sbi_Y1'(4)... (6)
Тогда выход второго мультиплексора 215 запишется в виде
Sbi_Y0'(1), Sbi_Y1'(l), Sbi_Y0'(2), Sbi_Y1'(2), Sbi_Y0'(3), Sbi_Y1' (3)... (7)
Эти мультиплексированные символы называются последовательностью С.
Причина мультиплексирования перемеженных кодовых символов Sbi_Y0' и Sbi_Y1' состоит в том, что когда М следующих друг за другом символов прореживаются в последовательности С безотносительно к первой половине или второй половине последовательности С, число прореженных символов в Sbi_Y0' равно числу прореженных символов в Sbi_Y1', только если М является четным числом. Если М нечетно, разность между числом прореженных символов в Sbi_Y0' ив Sbi_Y1' равна лишь 1. Мультиплексирование же всегда удовлетворяет ту характеристику ККТК, что число прореженных символов Y0' четности равно числу прореженных символов Y1' четности.
Объединитель 207 символов последовательно связывает последовательности А, В и С первых, вторых и третьих подгрупп и генерирует последовательность [А:В:С] символов:
[A:B:C]=[Sbi_X(1), Sbi_X(2), Sbi_X(3),...] [Sbi_Y0(1), Sbi_Y1(1), Sbi_Y0(2), Sbi_Y1(2),...] [Sbi_Y0'(1), Sbi_Y1'(1), Sbi_Y0'(2), Sbi_Y1'(2),...]... (8)
Как видно из этой формулы, в последовательности [А:В:С] информационные символы располагаются первыми, за ними следуют чередующиеся символы Y0 и Y1 четности, а за ними чередующиеся символы Y0' и Y1' четности. Это размещение символов имеет очень существенное значение при генерировании ККТК, что будет описано ниже.
Прореживание должно выполняться для того чтобы генерировать подкод с кодовой скоростью из турбокода (8). Прореживание определяется "ККТК". ККТК должно иметь следующие характеристики.
(1) Информационные символы предшествуют всем прочим символам при передаче. Эта характеристика становится особенно важной, когда кодовая скорость подкодов близка к 1.
(2) Комбинация прореживания формируется так, что число символов четности, выводимых из каждого частного кодера (первого частного кодера и второго частного кодера), равны либо их разность минимальна.
(3) Число прореженных символов в символах Y0 и Y0' четности определяется так, чтобы кодовая скорость первого частного кодера была всегда меньше 1. То есть, характеристика турбокодов обеспечивается, когда существует по меньшей мере один символ Y0 или Y0' четности.
(4) Расстояние между прореженными символами в ККТК, полученного в результате прореживания, одинаковое.
(5) Турбокод, полученный комбинированием подкодов ККТК, предполагает характеристики квазикомплементарного кода.
ККТК с кодовой скоростью подкодов, который генерируется прореживанием или сокращением стольких символов, сколько нужно, с одного конца последовательности [А:В:С] символов, удовлетворяет вышеприведенным пяти характеристикам. Иными словами, назначенный подкод из ККТК генерируется повторением и сокращением стольких символов, сколько нужно, в последовательности [А:В:С] символов в повторителе 208 последовательностей символов и прореживателе 209 символов. Повторитель 208 последовательностей символов повторяет заранее заданным образом последовательность символов, принятую от объединителя символов. Способ повторения определяется согласно кодовой скорости подкода. Прореживатель 209 символов прореживает или сокращает заранее заданное число символов, начиная с последнего символа в последовательности символов, принятой от повторителя 208 последовательности символов, чтобы тем самым создать подкод ККТК. Число прореженных символов зависит от кодовой скорости подкода. Поэтому для повторителя 208 последовательностей символов и прореживателя 209 символов должна предусматриваться кодовая скорость подкода, чтобы выполнить повторение последовательности и прореживание символов. Альтернативно, контроллер более высокого уровня (не показан) может вычислять число повторенных символов и число прореженных символов согласно исходной кодовой скорости и скорости подкода и подавать эту информацию на повторитель 208 последовательностей символов и прореживатель 209 символов.
Иными словами, прореживатель 209 символов выбирает заранее заданное число символов, отсчитанных от заданной позиции символа в последовательности символов, принятой от повторителя 208 последовательностей символов, тем самым генерируя подкод ККТК. Заданная позиция символа относится к символу, следующему за последним символом, выбранным для предыдущей передачи. Поэтому прореживатель 209 символов может быть назван "селектором символов".
Перемежители 203, 213, 223, 233 и 243, мультиплексоры 205 и 215 и объединитель 207 символов на фиг.2 соответствуют канальному перемежителю 102 на фиг.1, а повторитель 208 последовательностей символов и прореживатель 209 символов оба соответствуют генератору 103 ККТК.
На фиг.1, в предположении исходной кодовой скорости R=1/5 и 3072 входных информационных битов, канальный кодер 101 выдает 15360 кодовых символов. Ниже будет дано описание генерирования ККТК с различными кодовыми скоростями (или скоростями передачи данных), к примеру, первый ККТК С0j на 307,2 кбит/с, второй ККТК C1j на 614,4 кбит/с и третий ККТК C2j на 1288,8 кбит/с, из кодовых символов.
Как описано ранее, 15360 кодовых символов классифицируются на пять групп, перемежаются, а затем вновь размещаются как последовательность символов по уравнению (8). Затем эти 15360 кодовых символов подвергаются повторению согласно заранее заданному правилу и прореживаются (или сокращаются) согласно заранее заданной кодовой скорости подкода. Таким образом генерируется назначенный подкод.
Для скорости передачи данных 307,2 кбит/с, если подкоды первого ККТК C0j имеют длину 21504 бита, первый под код С00 генерируется выбором первых 21504 символов из перемеженной и повторенной последовательности символов. Второй подкод C01 генерируется выбором 21504 символов из повторенной последовательности символов, начиная с символа, следующего за первым подкодом С00. Третий подкод С02 генерируется выбором следующих 21504 символов.
Аналогично для скорости передачи данных 614,4 кбит/с, если подкоды второго ККТК C1j имеют длину 10752 бита, первый подкод С10 генерируется выбором первых 10752 символов из повторенной последовательности символов. Иначе говоря, первый подкод С10 генерируется сокращением всех остальных символов, следующих за первыми 10752 символами в повторенной последовательности символов. Это сокращение выполняется в прореживателе 209 символов, как описано выше. Второй подкод 11 генерируется выбором 10752 символов из повторенной последовательности символов, начиная с символа, следующего за первым подкодом С10. Третий подкод C12 генерируется выбором 10752 символов.
Аналогично для скорости передачи данных 1228,8 кбит/с, если подкоды третьего ККТК С2j имеют длину 5376 битов, первый подкод С20 генерируется выбором первых 5376 символов из перемеженной последовательности символов. Второй подкод C21 генерируется выбором 5376 символов из перемеженной последовательности символов, начиная с символа, следующего за первым подкодом С20. Третий подкод С22 генерируется выбором следующих 5376 символов. При этом генерируются подкоды ККТК на 1288,8 кбит/с.
Система сохраняет информацию о позиции последнего символа в предыдущем переданном подкоде для каждого ККТК. Когда определяется скорость передачи данных (или кодовая скорость) для повторной передачи, система выбирает ККТК, соответствующий этой скорости передачи данных, и генерирует подкод путем выбора заранее заданного числа символов, следующих за сохраненным последним символом для выбранного ККТК согласно скорости передачи данных. Если выбранные символы превышают один блок перемеженных символов, остальные символы выбираются из следующего блока. В этом способе подкоды генерируются повторением блока перемеженных символов. Чтобы сделать это, необходима область запоминания для сохранения повторенных блоков.
Альтернативно перемеженные символы могут сохраняться в кольцевой буферной памяти, и подкод генерируется рекурсивным выбором символов. То есть, если перемеженные символы выбираются все, то заранее заданное число символов выбирается из перемеженных символов, начиная с первого символа. Тогда повторитель 208 последовательностей символов может быть опущен, поскольку кольцевая буферная память функционирует как повторитель 208 последовательностей символов.
Вышеприведенный вариант выполнения по настоящему изобретению описывает двумерные ККТК. В схеме двумерных ККТК квазикомплементарный турбокод, соответствующий каждой кодовой скорости, генерируется независимо, и подкоды этого ККТК передаются друг за другом. Однако двумерные ККТК не оптимальны по причинам, описанным ниже.
Как показано на фиг.2, предполагается, что первый подкод С00 первого ККТК C0j используется для начальной передачи, первый подкод С10 второго ККТК C1j используется для следующей передачи, а первый подкод С20 третьего ККТК C2j используется для третьей передачи. Затем приемник декодирует данные, комбинируя эти три подкода (С00, С10, С20). В этом случае, однако, комбинирование кодов не восстанавливает первоначальный код с кодовой скоростью 1/5, только повышая символьную энергию информационных символов и тем самым не оптимизируя характеристики декодирования. Это приводит к той проблеме с передачей порядка под кодов, т.е. выбором подкодов. Для преодоления этой проблемы предлагаются адаптивные ККТК. В схеме адаптивных ККТК число кодовых символов, подлежащих выбору, определяется согласно кодовой скорости подкода, а подкод генерируется выбором определенного числа символов, начиная с символа, следующего за последним символом, использованным для предыдущей передачи.
Фиг.3 представляет собой блок-схему другого варианта выполнения устройства генерирования ККТК. Конструкция, показанная на фиг.3, является той же самой, что и показанная на фиг.2, за исключением повторителя последовательностей символов и прореживателя символов, работающих иным образом. Поэтому последующее описание делается в основном для повторителя 308 последовательностей символов и прореживателя 309 символов.
Повторитель 308 последовательностей символов повторяет заранее заданным образом последовательность символов, принятую от объединителя 307 символов. Это повторение можно выполнять согласно заданному параметру в повторителе 308 последовательностей символов или под управлением контроллера более высокого уровня (не показан), либо по запросу от объединителя 307 символов. Вышеописанные процессы воплощаются тем же самым образом, что и описанные со ссылкой на фиг.2. Далее прореживатель 309 символов прореживает символы, принятые от повторителя 308 последовательностей символов, согласно правилу, отличному от правила, приложенного к фиг.2, для генерирования подкода. Это правило прореживания следующее.
Предполагается, что передача начинается в момент времени k, переданный за время (k+h) подкод выражается как Cij(k+h), a кодовыми символами исходного кода с R=1/5 являются m(0), Cm(l),..., Cm(N-l). Число N кодовых символов определяется как L_INFx5, т.к. скорость исходного кода равна 1/5. Здесь L_INF обозначает размер перемежителя подблоков или число информационных символов.
Шаг 1: определяется длина начального подкода.
Для начальной передачи выбирается один Сi0 из первых под кодов С00, С10, С20 доступных ККТК согласно данной кодовой скорости, и длина выбранного подкода Сi0 сохраняется как переменная L_SC. Кодовая скорость или длина L_SC подкода задается в системе заранее согласно канальной среде, включая условия канальной передачи и входную скорость передачи данных. Описание делается в контексте трех ККТК, показанных на фиг.3, для лучшего понимания настоящего изобретения, но следует иметь в виду, что число подкодов не ограничено этим числом.
Шаг 2: выбирается и передается подкод для начальной передачи.
После того, как определена длина подлежащего передаче подкода, среди символов исходного кода выбираются Сm(0), Сm(1),..., Cm(L_SC-l). Если L_SC превышает N, то Сm(0), Сm(1),..., Cm(N) передаются Р раз, а затем передаются Сm(0), Сm(1),..., Cm(q-l). Здесь Р и q представляют собой частное и остаток от L SC/N соответственно и Р и q вычисляются как L_SC mod N. Затем переменная q сохраняется для следующей передачи для использования в определении позиции последнего символа предыдущего переданного подкода по отношению к блоку перемеженных символов.
Шаг 3: определяются начальная позиция подкода следующей передачи и длина подкода.
Для следующей передачи кодовая скорость R_SC нового подкода, подлежащего передаче, определяется согласно канальной среде, а длина L_SC подкода определяется согласно найденной кодовой скорости. Длина L_SC и кодовая скорость R_SC находятся в соотношении
L_SC=L_INF (1/R_SC) (9)
Система более высокого уровня передает длину подкода и кодовую скорость R_SC подкода на прореживатель 309 символов для каждой передачи.
Шаг 4: выбирается и передается подкод для следующей передачи.
После того, как определена длина L_SC подлежащего передаче подкода, среди символов исходного кода выбираются Cm(q), Cm(q+1),..., Cm (q+L_SC-1). Иначе говоря, из символов исходного кода выбирается столько символов, какова длина подкода, начиная с символа, следующего за последним символом, выбранным для предыдущей передачи. Если q+L_SC превышает N, строка, состоящая из N кодовых символов, начиная с Cm(q), выбирается рекурсивно и передается Р раз, а затем остальные q' кодовых символов передаются последовательно. Здесь Р и q' представляют собой частное и остаток от (L_SC)/N соответственно, а q' вычисляется как (q+L_SC) mod N. Далее значение следующей символьной позиции для позиции последнего выбранного символа для следующей передачи сохраняется для q. Переменная q является следующей символьной позицией для позиции последнего символа среди символов, составлявших последний переданный подкод. После того, как генерированный подкод передан, процедура возвращается на шаг 3.
Передача адаптивных ККТК будет яснее для случаев, показанных на фиг.3. На фиг.3 низкоскоростной подкод с кодовой скоростью 1/7 передается сначала в Случае 1, а высокоскоростной подкод с кодовой скоростью 4/7 передается сначала в Случае 2. Как видно из этих Случаев, N(=15360) следующих друг за другом символов исходного кода повторяются, и столько кодовых символов, каков размер, соответствующий длине подлежащего передаче подкода (или кодовая скорость этого подкода) выбираются последовательно из символов повторенного исходного кода при каждой передаче.
В реальном воплощении для хранения повторенных (Р-1) раз исходных кодов не используется буфер, а применяется единственный кольцевой буфер, чтобы сохранять N кодовых символов и рекурсивно выбирать кодовые символы, тем самым генерируя подкод назначенной длины. То есть, использование кольцевой буферной памяти избавляет от необходимости повторения последовательности. Любой приемный буфер пригоден для приемника, если он может сохранять N мягких метрик для комбинирования кодов.
Далее будет описан способ приема данных, переданных посредством вышеописанного метода передачи, и способ реализации соответствующих функциональных блоков фиг.3.
Фиг.4 иллюстрирует структуру приемника для приема данных, переданных передатчиком по фиг.1. На фиг.4 сигналы 401, 402 и 403 данных, переданные передатчиком на своих связанных скоростях передачи данных, представляют собой подкоды Cij KKTK. Принятые сигналы 401, 402 и 403 данных подаются на процессор 411 KKTK (депрореживание/комбинирование KKTK). Процессор 411 KKTK выполняет депрореживание на принятых сигналах, чтобы преобразовать принятые сигналы в турбокоды с их исходной кодовой скоростью R из турбокодов на основании характеристик KKTK, а также выполняет мягкое комбинирование на принятых подкодах. "Депрореживание" представляет собой процесс для введения символов стирания в позиции прореженных символов. Для мягкого комбинирования принятых подкодов можно использовать комбинирование Chase. Как у