Устройство и способ генерирования кодов в системе связи
Реферат
Изобретение относится к системам генерирования квазикомплементарных турбокодов (ККТК) в системах передачи данных. Техническим результатом является создание способа генерирования подкодов для выполнения оптимального кодового комбинирования. Технический результат достигается тем что, осуществляют генерирование последовательности информационных символов и множества последовательностей символов четности, причем по меньшей мере одна последовательность символов четности генерируется из каждого из составных кодеров, и по меньшей мере одна последовательность символов четности соответствует по меньшей мере одной другой последовательности символов четности; перемежение по отдельности последовательности информационных символов и последовательностей символов четности для получения последовательно объединенной последовательности символов; генерирование новой последовательности символов четности путем мультиплексирования перемеженных символов соответствующих последовательностей символов четности; последовательное объединение перемеженной последовательности информационных символов и новой последовательности символов четности; и генерирование подкода ККТК с заданной кодовой скоростью путем рекурсивного выбора заранее заданного числа символов из последовательно объединенной символьной последовательности на заданной начальной позиции согласно заданной кодовой скорости. 4 з.п. ф-лы, 3 ил.
Настоящее изобретение относится в целом к генерированию кодов в системах передачи данных, в частности к устройству и способу генерирования комплементарных турбокодов, учитывая характеристики турбокодов в системе пакетной связи или обычной системе связи, которая использует схему ретрансляции. В общем случае система, использующая схему повторения (например, HARQ - гибридный автоматический запрос повторения, ГАЗП), выполняет мягкое комбинирование, чтобы улучшить пропускную способность передачи. Методы мягкого комбинирования разделяются на пакетное комбинирование с разнесением и пакетное кодовое комбинирование. Эти две схемы комбинирования обычно именуются мягким пакетным комбинированием. Хотя схема пакетного комбинирования с разнесением по характеристикам является субоптимальной по отношению к схеме пакетного кодового комбинирования, она благоприятна из-за легкого воплощения, когда потери качества низки. Система пакетной передачи использует схему пакетного кодового комбинирования для улучшения пропускной способности передачи. Передатчик передает код с различной кодовой скоростью при каждой пакетной передаче. Если из принятого пакета обнаруживается ошибка, приемник запрашивает повторную передачу и выполняет мягкое комбинирование исходного пакета и повторно переданного пакета. Повторно переданный пакет может иметь код, отличающийся от предыдущего пакета. Схема пакетного кодового комбинирования представляет собой процесс комбинирования N пакетов, принятых на кодовой скорости R, с кодом, имеющим эффективную кодовую скорость R/N, перед декодированием, чтобы тем самым получить выигрыш кодирования. Что же касается, с другой стороны, схемы пакетного комбинирования с разнесением, то передатчик передает тот же самый код с кодовой скоростью R в каждой пакетной передаче. Если из принятого пакета обнаруживается ошибка, приемник запрашивает повторную передачу и выполняет мягкое комбинирование между исходным пакетом и повторно переданным пакетом. Повторно переданный пакет имеет код, идентичный с предыдущим пакетом. В этом смысле схема пакетного комбинирования с разнесением может рассматриваться как усреднение энергии принятых символов в случайном канале. Схема пакетного комбинирования с разнесением снижает мощность шума путем усреднения мягких выходов принятых входных символов и достигает такого же выигрыша разнесения, как предлагаемое многолучевым каналом, потому что один и тот же код повторно передается в канале с замираниями. Однако схема пакетного комбинирования с разнесением не обеспечивает такого дополнительного выигрыша кодирования, который получается согласно кодовой структуре в схеме пакетного кодового комбинирования. Между тем, ниже будет описан турбокодер, генерирующий турбокод. В случае турбокодера с R=1/5 этот турбокодер генерирует информационные символы X, первые символы Y0, Y0' четности и вторые символы Y1, Y1' четности путем кодирования информационных символов. Турбокодер содержит два частичных кодера и один перемежитель. Первые символы Y0 и Y0' четности представляют собой выходы из первого частного кодера за счет кодирования входных информационных символов, а вторые символы Y1 и Y1' четности являются выходами из второго частного кодера за счет кодирования информационных символов, перемеженных в перемежителе. Подробнее, Y0 представляет собой строку из первых символов четности, генерированных из первого частного кодера, а Y0' представляет собой строку из вторых символов четности, генерированных из первого частного кодера. Вследствие простоты воплощения большинство систем пакетной связи используют схему пакетного комбинирования с разнесением, которая изучается для применения в синхронной системе IS-2000 и асинхронной системе UMTS. Причина этого в том, что существующие системы пакетной связи используют сверточные коды, а даже пакетное кодовое комбинирование не дает большого выигрыша, когда используются сверточные коды с низкой скоростью передачи данных. Если система с R=1/3 поддерживает повторную передачу, нет большой разницы между схемой пакетного кодового комбинирования и схемой пакетного комбинирования с разнесением. Таким образом, схема пакетного комбинирования с разнесением выбирается с учетом сложности воплощения. Однако использование турбокодов в качестве кодов прямого исправления ошибок (ПИО) (FEC) требует отличного механизма пакетного комбинирования, потому что турбокоды сконструированы в качестве исправляющих ошибки кодов, имеющих качественные характеристики, весьма близкие к "шенноновскому пределу пропускной способности канала", и их характеристики меняются очевидным образом в зависимости от скоростей кодирования в отличие от сверточных кодов. Поэтому можно заключить, что пакетное кодовое комбинирование желательно для систем пакетной связи, использующих турбокоды в схеме повторной передачи для достижения цели оптимизации характеристик. Цель настоящего изобретения - обеспечить устройство и способ генерирования подкодов, которые позволяют выполнять оптимальное кодовое комбинирование в системе с повторной передачей, использующей турбокоды. Другая цель настоящего изобретения - обеспечить устройство и способ генерирования комплементарных кодов с помощью турбокодов в системе связи. Еще одна цель настоящего изобретения - обеспечить устройство и способ генерирования подкодов, подлежащих генерированию после канального перемежения в системе с повторной передачей, использующей канальное перемежение. Вышеупомянутые и другие цели настоящего изобретения достигаются посредством обеспечения устройства генерирования ККТК (квазикомплементарного турбокода) (QCTC). В этом устройстве генерирования ККТК турбокодер имеет множество частных кодеров и по меньшей мере один перемежитель и генерирует последовательность информационных символов и множество последовательностей символов четности согласно заданной скорости передачи кода посредством кодирования последовательности информационных символов. Частные кодеры генерируют множество последовательностей символов четности, причем каждый из частных генераторов генерирует по меньшей мере одну последовательность символов четности, и по меньшей мере одна последовательность символов четности из одного частного кодера соответствует по меньшей мере одной последовательности символов четности из другого частного кодера. Канальный перемежитель перемежает последовательность информационных символов и последовательности символов четности, попеременно располагая символы из соответствующих последовательностей символов четности, и связывает перемеженную последовательность информационных символов и размещенные последовательности символов четности. Генератор ККТК генерирует подкоды ККТК путем повторения последовательно связанной символьной последовательности и выбранного числа символов из повторенной символьной последовательности согласно скорости передачи кода и выбранной информации. Вышеуказанные и другие цели, признаки и преимущества настоящего изобретения станут более ясными из нижеследующего подробного описания, рассматриваемого совместно с сопровождающими чертежами, на которых: фиг.1 является условной блок-схемой устройства генерирования ККТК (квазикомплементарного турбокода) согласно настоящему изобретению; фиг.2 представляет собой блок-схему варианта выполнения устройства генерирования ККТК согласно настоящему изобретению; фиг.3 представляет собой блок-схему другого варианта выполнения устройства генерирования ККТК согласно настоящему изобретению. Предпочтительные варианты выполнения настоящего изобретения будут описаны ниже со ссылками на сопровождающие чертежи. В нижеследующем описании общеизвестные функции или конструкции не описываются подробно, поскольку они загромождали бы изобретение ненужными деталями. Настоящее изобретение обеспечивает способ генерирования ККТК для системы, использующей канальное перемежение, и способ генерирования ККТК заранее заданным образом безотносительно к переменной длине кода в системе, требующей ККТК с различными кодовыми скоростями. ККТК определяется как комплементарный код, генерированный с помощью турбокода. ККТК не является совершенным комплементарным кодом, как следует из термина "квази", потому что подкод включает в себя повторенные символы и имеет отличающуюся от другого подкода характеристику, такую как способность исправлять ошибки. Фиг.1 представляет собой условную блок-схему устройства генерирования ККТК согласно настоящему изобретению. Это устройство генерирования ККТК, показанное на фиг.1, характеризуется выполнением повторения последовательности символов и прореживанием после канального перемежения при генерировании подкодов. На фиг.1 кодер 101 генерирует кодовые символы путем кодирования входного пакета кодера. В качестве кодера 101 можно использовать сверточный кодер или турбокодер. Кодер 101 имеет кодовую скорость, к примеру, 1/5. При введении 3072 информационных битов кодер 101 выдает 15360 кодовых символов. Канальный перемежитель 102 перемежает кодовые символы согласно заранее заданному правилу. Если кодер 101 является турбокодером, перемежитель 102 раздельно перемежает информационные символы Х и символы Y0, Y1, Y0' и Y1' четности. Генератор 103 ККТК генерирует подкоды посредством прореживания и повторения перемеженных символов. Канальный перемежитель 102 и генератор 103 ККТК выполняют процесс генерирования ККТК. Если число перемеженных кодовых символов составляет 15360, а скорость передачи данных (или кодовая скорость) подкодов задана как 307,2 кбит/с, генератор 103 ККТК генерирует первый подкод с 21504 символами путем взятия 15360 перемеженных кодовых символов и повторения части первой половины перемеженных кодовых символов. Если скорость передачи данных равна 614,4 кбит/с, генератор 103 ККТК генерирует первый подкод путем взятия первых 10752 кодовых символов из первой половины перемеженных кодовых символов. Если скорость передачи данных составляет 1228,8 кбит/с, генератор 103 ККТК генерирует первый подкод путем взятия 5376 кодовых символов из перемеженных кодовых символов. Для генерирования ККТК (или подкодов) канальный перемежитель 102 должен обладать конкретными характеристиками, потому что пять символов X, Y0, Y1, Y0' и Y1' распределяются при канальном перемежении, а распределенные кодовые символы не пригодны для ввода в генератор 103 ККТК и потому что перемешанными символами X, 0, Y1, Y0' и Y1' нелегко генерировать подкоды, удовлетворяющие характеристикам ККТК. В этом смысле настоящее изобретение обеспечивает способ генерирования ККТК заранее заданным образом безотносительно к кодовой скорости каждого подкода. Фиг.2 представляет собой блок-схему устройства генерирования ККТК согласно варианту выполнения настоящего изобретения. На фиг.2 кодер 201 генерирует кодовые символы путем кодирования входных информационных символов (например, входного пакета кодера). Кодер 201 использует исходный код с R=1/5 или с любой иной кодовой скоростью. Исходный код определяется используемой системой. В данном случае в виде примера используется турбокод с R=1/5 в качестве исходного кода. Тогда кодер 201 генерирует информационные символы X, первые символы Y0 и Y0' четности и вторые символы Y1 и Y1' четности путем кодирования входных информационных символов. Первые символы Y0 и Y0' четности выдаются из первого частного кодера, а вторые символы Y1 и Y1' четности - из второго частного кодера. Первый и второй частные кодеры (не показаны) содержатся в кодере 201. Первичные символы Y0 и Y1 из первого и второго частных кодеров имеют более высокий приоритет передачи, чем вторичные символы Y0' и Y1' четности. Демультиплексор (DEMUX) 202 группирует кодовые символы, принятые от кодера 201, в информационные символы Х 203, символы Y0 213 четности, символы Y1 223 четности, символы Y0' 233 и символы Y1' 243 четности и выводит эти пять групп символов на соответствующие перемежители 204, 214, 224, 234 и 244. Перемежители 204, 214, 224, 234 и 244 случайным образом изменяют порядок последовательностей входных кодовых символов. Пригодны разные способы перемежения, если удовлетворяется следующее условие. (Условие) Перемеженные кодовые символы частично прореживаются таким образом, что комбинация прореженных кодовых символов перед перемежением имеет одинаковое расстояние прореживания. Причина удовлетворения вышеуказанного условия состоит в том, что, когда группы кодовых символов X, Y0, Y1, Y0' и Y1' прореживаются на одно и то же число позиций кодовых символов, расстояние между прореженными кодовыми символьными позициями в кодовых символах перед перемежением должно быть равным, чтобы достичь оптимальной характеристики турбокода. Иными словами, когда прореживание применяется к турбокодам, равномерность является существенным фактором, который определяет характеристики турбокодов. В соответствии с настоящим изобретением к кодовым символам X, Y0, Y1, Y0' и Y1' применяется независимое перемежение подблоков. Равномерное прореживание в выходном сигнале каждого перемежителя поддерживает равное расстояние между прореженными кодовыми символами на выходе кодера. Поэтому можно заключить, что канальное перемежение должно быть выбрано так, чтобы прореживание в перемеженных кодовых символах могло поддерживать равномерное распределение прореживания на выходе канального кодера. Такие способы канального перемежения включают в себя перемежение с обратным порядком битов (ОПБ) (BRO) и перемежение с частичным обратным порядком битов (ЧОПБ) (PBRO). Перемежение ОПБ практически применимо, только если число входных информационных символов в кодер и число каждого набора кодовых символов X, Y0, Y1, Y0' и Y1' являются степенями 2, т.е. 2m, где m является параметром, чтобы сделать блоковый размер перемежителя подблоков таким же, как блоковый размер N=2m*J. Перемежение ЧОПБ разрабатывалось, чтобы удовлетворять вышеуказанному условию даже тогда, когда число информационных символов и число каждого набора кодовых выходных символов X, Y0, Y1, Y0' и Y1' не являются степенями 2 для преодоления ограничения перемежения ОПБ. Подробное описание этого канального перемежения подблоков здесь не приводится, следует лишь отметить, что в настоящем изобретении можно воплотить любой способ канального перемежения, если удовлетворяется вышеприведенное условие. Перемеженные кодовые символы Х 206 (показанные для удобства в виде блока), выходящие из первого перемежителя 204, подаются непосредственно на вход объединителя 207 символов. Перемеженные кодовые символы Y0 и Y1 из второго и третьего перемежителей 214 и 224 вводятся в первый мультиплексор (MUX) 205, а перемеженные кодовые символы Y1 и Y1' из четвертого и пятого перемежителей 234 и 244 - во второй мультиплексор 215. То есть первый мультиплексор 205 принимает первичные символы четности, а второй мультиплексор 215 принимает вторичные символы четности. Первый мультиплексор 205 мультиплексирует перемеженные символы Y0 и Y1 216 четности и подает свой выходной сигнал на объединитель 207 символов. Второй мультиплексор 215 мультиплексирует перемеженные символы Y0 и Y1' 226 четности и подает свой выходной сигнал на объединитель 207 символов. То есть мультиплексоры 205 и 215 мультиплексируют последовательности символов четности по уровню приоритета. С помощью мультиплексоров 205 и 215 выходы перемежителя переупорядочиваются, а затем разделяются на три подгруппы 206, 216 и 226. Вышеописанный процесс, который является существенным для генерирования ККТК согласно настоящему изобретению, будет описан подробнее. Как показано на фиг.2, информационные символы Х образуют независимую подгруппу без прохождения через мультиплексирование после перемежения подблоков. Пусть перемеженные подблоками символы будут обозначаться как Sbi_X, что можно записать в виде где Sbi_X(1) указывает первый кодовый символ, выводимый из первого перемежителя 204. Sbi_X называется последовательностью А. Далее, выходы перемеженных кодовых символов Y0 и Y1 из второго и третьего перемежителей 214 и 224 группируются в одну подгруппу. Если кодовые символы Y0 представляют собой Sbi_Y0, то Sbi_Y0 можно выразить в виде где Sbi_Y0(1) указывает первый кодовый символ, выводимый из второго перемежителя 214. Если кодовые символы Y1 представляют собой Sbi_Y1, то Sbi_Y1 можно выразить в виде где Sbi Y1(1) и Sbi_Y1(2) указывают соответственно первый и второй кодовые символы, выводимые из третьего перемежителя 224. После мультиплексирования кодовые символы Y0 и Y1 запишутся Эти мультиплексированные символы называются последовательностью В. Причина мультиплексирования перемеженных кодовых символов Sbi_Y0 и Sbi_Y1 состоит в том, что, когда М следующих друг за другом символов прореживаются в последовательности В безотносительно к первой половине или второй половине последовательности В, число прореженных символов в Sbi_Y0 равно числу прореженных символов в Sbi_Y1, только если М является четным числом. Если М нечетно, разность между числом прореженных символов в Sbi_Y0 и в Sbi_Y1 равна лишь 1. Мультиплексирование же всегда удовлетворяет ту характеристику ККТК, что число прореженных символов Yo четности равно числу прореженных символов Y1 четности. Подобным же образом перемеженные кодовые символы Y0' и Y1', выводимые из четвертого и пятого перемежителей 234 и 244, группируются в одну подгруппу. Если кодовые символы Y0' и Y1' представляют собой соответственно Sbi_Y0' и Sbi_Y1', то Sbi_Y0' и Sbi_Y1' можно выразить в виде и Тогда выход второго мультиплексора 215 запишется в виде Эти мультиплексированные символы называются последовательностью С. Причина мультиплексирования перемеженных кодовых символов Sbi_Y0' и Sbi_Y1' состоит в том, что, когда М следующих друг за другом символов прореживаются в последовательности С безотносительно к первой половине или второй половине последовательности С, число прореженных символов в Sbi_Y0' равно числу прореженных символов в Sbi_Y1', только если М является четным числом. Если М нечетно, разность между числом прореженных символов в Sbi_Y0' и в Sbi_Y1' равна лишь 1. Мультиплексирование же всегда удовлетворяет ту характеристику ККТК, что число прореженных символов Y0' четности равно числу прореженных символов Y1' четности. Объединитель 207 символов последовательно связывает последовательности А, В и С первых, вторых и третьих подгрупп и генерирует последовательность [А:В:С] символов: Как видно из этой формулы, в последовательности [А:В:С] информационные символы располагаются первыми, за ними следуют чередующиеся символы 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 кодовых символов. Ниже будет дано описание генерирования ККТК с различными кодовыми скоростями (или скоростями передачи данных), к примеру, первый ККТК C0j на 307,2 кбит/с, второй ККТК С1j на 614,4 кбит/с и третий ККТК С2j на 1288,8 кбит/с, из кодовых символов. Как описано ранее, 15360 кодовых символов классифицируются на пять групп, перемежаются, а затем вновь размещаются как последовательность символов по уравнению (8). Затем эти 15360 кодовых символов подвергаются повторению согласно заранее заданному правилу и прореживаются (или сокращаются) согласно заранее заданной кодовой скорости подкода. Таким образом генерируется назначенный подкод. Для скорости передачи данных 307,2 кбит/с, если подкоды первого ККТК C0j имеют длину 21504 бита, первый подкод С00 генерируется выбором первых 21504 символов из перемеженной и повторенной последовательности символов. Второй подкод C01 генерируется выбором 21504 символов из повторенной последовательности символов, начиная с символа, следующего за первым подкодом С00. Третий подкод С02 генерируется выбором следующих 21504 символов. Аналогично, для скорости передачи данных 614,4 кбит/с, если подкоды второго ККТК Cij имеют длину 10752 бита, первый подкод С10 генерируется выбором первых 10752 символов из повторенной последовательности символов. Иначе говоря, первый подкод С10 генерируется сокращением всех остальных символов, следующих за первыми 10752 символами в повторенной последовательности символов. Это сокращение выполняется в прореживателе 209 символов, как описано выше. Второй подкод 11 генерируется выбором 10752 символов из повторенной последовательности символов, начиная с символа, следующего за первым подкодом С10. Третий подкод C12 генерируется выбором 10752 символов, следующих за вторым подкодом С11. Аналогично, для скорости передачи данных 1228,8 кбит/с, если подкоды третьего ККТК С2j имеют длину 5376 битов, первый подкод С20 генерируется выбором первых 5376 символов из повторенной последовательности символов. Второй подкод C21 генерируется выбором 5376 символов из повторенной последовательности символов, начиная с символа, следующего за первым подкодом C20. Третий подкод С22 генерируется выбором следующих 5376 символов. При этом генерируются подкоды ККТК на 1288,8 кбит/с. Система сохраняет информацию о позиции последнего символа в предыдущем переданном подкоде для каждого ККТК. Когда определяется скорость передачи данных (или кодовая скорость) для повторной передачи, система выбирает ККТК, соответствующий этой скорости передачи данных, и генерирует подкод путем выбора заранее заданного числа символов, следующих за сохраненным последним символом для выбранного ККТК согласно скорости передачи данных. Если выбранные символы превышают один блок перемеженных символов, остальные символы выбираются из следующего блока. В этом случае подкоды генерируются повторением блока перемеженных символов. Чтобы сделать это, необходима область запоминания для сохранения повторенных блоков. Альтернативно, перемеженные символы могут сохраняться в кольцевой буферной памяти, и подкод генерируется рекурсивным выбором символов. То есть если перемеженные символы выбираются все, то заранее заданное число символов выбирается из перемеженных символов, начиная с первого символа. Тогда повторитель 208 последовательностей символов может быть опущен, поскольку кольцевая буферная память функционирует как повторитель 208 последовательностей символов. Вышеприведенный вариант выполнения по настоящему изобретению описывает двухмерные ККТК. В схеме двухмерных ККТК квазикомплементарный турбокод, соответствующий каждой кодовой скорости, генерируется независимо, и подкоды этого ККТК передаются друг за другом. Однако двухмерные ККТК не оптимальны по причинам, описанным ниже. Как показано на фиг.2, предполагается, что первый подкод С00 первого ККТК C0j используется для начальной передачи, первый подкод С10 второго ККТК C1j используется для следующей передачи, а первый подкод С20 третьего ККТК C2j используется для третьей передачи. Затем приемник декодирует данные, комбинируя эти три подкода (С00, С10, C20). В этом случае, однако, комбинирование кодов не восстанавливает первоначальный код с кодовой скоростью 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), Сm(1),..., Cm(N-1). Число N кодовых символов определяется как L_INFx5, т.к. скорость исходного кода равна 1/5. Здесь L_INF обозначает размер перемежителя подблоков или число информационных символов. Этап 1: определяется длина начального подкода. Для начальной передачи выбирается один Ci0 из первых подкодов С00, С10, С20 доступных ККТК согласно данной кодовой скорости и длина выбранного подкода Сio сохраняется как переменная L_SC. Кодовая скорость или длина L_SC подкода задается в системе заранее согласно канальной среде, включая условия канальной передачи и входную скорость передачи данных. Описание делается в контексте трех ККТК, показанных на фиг.3, для лучшего понимания настоящего изобретения, но число подкодов не ограничено. Этап 2: выбирается и передается подкод для начальной передачи. После того как определена длина подлежащего передаче подкода, среди символов исходного кода выбираются Сm(0), Сm(1),..., Cm(L_SC). Если L_SC превышает N, то Cm (0), Cm(1),..., Cm(N) передаются Р раз, а затем передаются Cm(0), Cm(1),..., Cm(q-1). Здесь Р и q представляют собой частное и остаток от L_SC/N соответственно и Р и q вычисляются как L_SC mod N. Затем переменная q сохраняется для следующей передачи для использования в определении позиции последнего символа предыдущего переданного подкода по отношению к блоку перемеженных символов. Этап 3: определяются начальная позиция подкода следующей передачи и длина подкода. Для следующей передачи кодовая скорость R_SC нового подкода, подлежащего передаче, определяется согласно канальной среде, а длина L_SC подкода определяется согласно найденной кодовой скорости. Длина L_SC и кодовая скорость R_SC находятся в соотношении Система более высокого уровня передает длину подкода L_SC и кодовую скорость 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 мягких метрик для комбинирования кодов. Хотя изобретение показано и описано со ссылкой на его конкретные предпочтительные варианты выполнения, следует понимать, что в нем можно сделать различные изменения в форме и деталях без отхода от сущности и объема изобретения, как оно определено нижеследующей формулой изобретения.Формула изобретения
1. Способ генерирования ККТК (квазикомплементарного турбо кода), содержащий следующие этапы: генерирование последовательности информационных символов и множества последовательностей символов четности, причем множество последовательностей символов четности генерируется из составных кодеров, по меньшей мере, одна последовательность символов четности генерируется из каждого из составных кодеров и, по меньшей, мере, одна последовательность символов четности из одного составного кодера соответствует, по меньшей мере, одной последовательности символов четности из другого составного кодера; перемежение по отдельности последовательностей информационных символов и последовательностей символов четности для получения последовательно объединенной последовательности символов; генерирование новой последовательности символов четности путем мультиплексирования перемеженных символов соответствующих последовательностей символов четности; последовательное объединение перемеженной последова