УСТРОЙСТВО И СПОСОБ ФОРМИРОВАНИЯ КОДОВ В СИСТЕМЕ СВЯЗИ Российский патент 2005 года по МПК H03M13/00 H04L1/18 

Описание патента на изобретение RU2251794C2

Настоящее изобретение относится в целом к формированию кодов в системе передачи данных и, в частности, касается устройства и способа формирования комплементарных турбокодов с учетом характеристик турбокодов в системе пакетной связи или обычной системе связи, где используется схема с повторной передачей.

Обычно различают два типа систем с автоматическим запросом на повторение (АЗП), где используется инкрементная избыточность (ИИ): систему с гибридным автоматическим запросом на повторение (ГАЗП) типа II и систему с ГАЗП типа III. Система с ГАЗП типа II поддерживает при каждой передаче скорость R кода больше 1,0 и варьирует избыточность передачи в соответствии с состоянием канала. Здесь ситуация, когда скорость R кода больше 1,0, означает, что количество символов кодового слова меньше количества информационных символов. Система с ГАЗП типа II объединяет ранее полученную избыточность с избыточностью, принимаемой в данный момент, для создания нового кодового слова с низкой скоростью кода и повторяет этот процесс. Однако система с ГАЗП типа III разработана таким образом, что скорость R кода для кода, используемого при каждой передаче или повторной передаче, меньше 1,0. Это сделано с той целью, чтобы иметь возможность выполнять декодирование только с вновь полученными кодами, когда из-за ошибок, связанных с плохим состоянием канала, или ошибок обнаружения теряется множество пакетов во время передачи. Если все коды, принимаемые со скоростью кода R, могут быть декодированы независимо, то такие коды называют “самодекодируемыми кодами” (СДК).

В системе с ГАЗП типа II или системе с ГАЗП типа III, где используют турбокоды, для того чтобы обеспечить максимальную эффективность комбинирования кодов, применяют квазикомплементарные турбокоды (ККТК). На фиг.1 представлена блок-схема устройства для формирования кодов ККТК.

Обратимся к фиг.1, где кодер 301 формирует кодированные символы путем кодирования входного пакета кодера. Кодер 301 использует материнский код с R=1/5 или с любой другой скоростью кода. Материнский код определяется используемой системой. В данном примере в качестве материнского кода используется турбокод с R=1/5. Демультиплексор (DEMUX) 302 разбивает кодированные символы, полученные от кодера 301, на группы информационных символов Х (303), символов Y0 (313) четности, символов Y1 (323) четности, символов Y0’ (333) четности и символов Y1’ (343) четности и выдает пять символьных групп на соответствующие субблочные перемежители 304, 314, 324, 334 и 344 соответственно. Субблочные перемежители 304, 314, 324, 334 и 344 переставляют случайным образом последовательности, выдаваемые демультиплексором 302, используя субблочное перемежение, и выдает переставленные символы. Символы кодового слова, рандомизированные путем субблочного перемежения, подаются в соответствующие блоки.

Перемежающиеся кодированные символы Х (306) с выхода первого перемежителя 304 передаются непосредственно на вход блока 307 сцепления последовательностей (или символов). Перемежающиеся символы Y0 и Y1 четности из второго и третьего перемежителей 314 и 324 подаются на вход первого мультиплексора (MUX) 305, а перемежающиеся символы Y0’ и Y1’ четности из четвертого и пятого перемежителей 334 и 344 подаются на вход второго мультиплексора 315. Первый мультиплексор 305 мультиплексирует перемежающиеся символы Y0 и Y1 четности и подает выходной сигнал (316) в блок 307 сцепления последовательностей. Второй мультиплексор 315 мультиплексирует перемежающиеся символы Y0’ и Y1’ четности и подает выходной сигнал (326) в блок 307 сцепления последовательностей. Иными словами, кодированные символы, полученные от кодера 301, разбиваются на три подгруппы: перемежающихся символов кодового слова, выдаваемых перемежителем 304; символы Y0 и Y1 четности, перекомпонованные первым мультиплексором 305; и символы Y0’ и Y1’ четности, перекомпонованные вторым мультиплексором 315. Затем блок 307 сцепления последовательностей (или символов) формирует одну символьную последовательность [А:В:С] путем последовательного сцепления последовательности А субблочных перемежающихся информационных символов и последовательностей В и С мультиплексированных символов четности. Повторитель 308 сцепленных последовательностей (или символов) осуществляет повторение символов по символам, поступающим от блока 307 сцепления последовательностей согласно заранее установленному правилу. Блок 309 прокалывания символов (или генератор субкода Cij) формирует субкоды (то есть, ККТК) путем прокалывания символов, поступающих от повторителя 308 сцепленных последовательностей, согласно заранее установленному правилу. Работа блока 309 прокалывания символов подробно описывается ниже. Операция формирования субкода генератором субкодов 09 раскрыта в патентной заявке Кореи №2001-7357 "Apparatus and Method for Generating Codes in a Communication System", поданной заявителем ранее и включенной в описание в качестве ссылки.

Здесь предполагается, что передача субкода начинается в момент времени k, субкод, передаваемый в момент времени (k+h), выражается в виде Cij (k+h), а кодированные символы материнского кода с R=1/5 на фиг.1 определяются как Сm(0), Cm(1),..., Cm(N-1). Количество N кодированных символов определяется как N=L L_NFx5, поскольку скорость материнского кода составляет 1/5. Здесь L_INF обозначает размер перемежающегося субблока, или количество информационных символов.

Шаг 1: определение длины начального субкода

Для начальной передачи выбирается один do из первых субкодов Ci0, С10, С20 из числа имеющихся субкодов ККТК в соответствии с данной скоростью кода, после чего длина выбранного субкода С10 запоминается в качестве переменной L_SC. Скорость кода или длина L_SC субкода заранее устанавливается в системе в соответствии с условиями в канале, в том числе, состоянием канала передачи и скоростью передачи входных данных.

Данное описание для лучшего понимания настоящего изобретения выполнено в контексте трех кодов ККТК, показанных на фиг.3, хотя в принципе количество субкодов никак не ограничивается.

Шаг 2: выбор и передача субкода для начальной передачи

После того, как определена длина субкода, подлежащего передаче, среди кодовых символов материнского кода выбирают кодированные символы Cm(0), Cm(1),..., Cm(L_SC-1). Если L_SC превышает N, то Cm(0), Cm(1),..., Сm(L_SC-1) передают Р раз, а затем передают Cm(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 и скорость кода 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 частное и остаток деления (q+L_SC)/N соответственно, причем Р и q вычисляют как (q+L_SC) mod N. Затем переменную q запоминают для следующей передачи, чтобы использовать при определении позиции последнего символа, переданного перед этим субкода, относительно блока перемежающихся символов. После передачи сформированного субкода процедура возвращается к шагу 3.

Способ выбора субкода для ККТК подробно показан на примере в нижней части фиг.1. Обратимся к фиг.1, где в случае 1 изначально передается субкод с низкой скоростью 1/7, а в случае 2 изначально передается субкод с высокой скоростью 4/7. Как видно из этих случаев, кодовое слово, имеющее N символов, повторяется Р раз, а повторяющиеся символы кодового слова последовательно разбиваются на сегменты подходящего размера в соответствии с длиной (или скоростью кода) субкода при каждой передаче. При практической реализации не используется буфер для запоминания Р кодовых слов, а применяется единый кольцевой буфер для запоминания N символов кодового слова, что позволяет выполнять итеративную передачу путем обеспечения непрерывной связи. Вдобавок имеется буфер приема для запоминания принятых кодовых слов и сцепления запомненных кодовых слов до тех пор, пока не будет запомнено N гибких метрических показателей.

Как было описано выше, генератор субкодов Cij в соответствии с последним шагом разбивает кодированные символы с R=1/5, перекомпонованные в соответствии с определенным правилом на предыдущих шагах, на сегменты произвольной длины в соответствии со скоростью субкода Rs=R_SC.

Здесь на фиг.2 показаны способы сегментации согласно соответствующим скоростям субкодов для случая, когда стартовой точкой Fs для сегментации является ‘0’. Обратимся к фигурам 1 и 2, где в случае задания длины субкода, подлежащего сегментации, в соответствии со скоростью кода для соответствующего субкода генератор ККТК (фиг.1) сегментирует кодовые символы в количестве, соответствующем длине перекомпонованной последовательности кодовых слов с R=1/5. Возможны два разных способа сегментации. Первый способ состоит в использовании переменной стартовой точки Fs. То есть, изначально передаваемый субкод начинается с Fs=0, а стартовая точка Fs следующего субкода определяется как позиция (Ls+1)-го символа исходя из позиции Ls последнего символа предшествующего субкода. Другими словами, все субкоды сегментируются таким образом, что перекомпонованные кодовые слова с R=1/5 непрерывно сцепляются в повторяющейся последовательности. Этот процесс определяется как режим с последовательной стартовой точкой (РПСТ). Второй способ состоит в использовании фиксированной стартовой точки Fs. То есть, изначально передаваемый субкод начинается с Fs=0, a следующие субкоды начинаются с заранее определенной стартовой точки Fs. Следовательно, не все субкоды могут быть последовательно сцеплены в последовательность, где повторяются перекомпонованные кодовые слова с R=1/5, и сегментированы в виде, где символы кодового слова могут перекрываться в соответствии со скоростью субкода. Этот способ определен здесь как режим с фиксированной стартовой точкой (РФСТ).

При использовании ККТК оптимальной с точки зрения максимальной эффективности декодирования оказывается схема РПСТ, которая может обеспечить максимальную выигрыш от комбинирования кодов даже с учетом ИИ. Однако, если скорость кода для данного субкода близка к 1,0, существует вероятность того, что субкоды, отличные от начального субкода, престанут быть самодекодируемыми кодами, то есть, окажутся “несамодекадируемыми (НСДК)”, что нежелательно. Как было установлено выше, здесь предполагается, что в режиме РПСТ имеются как ГАЗП типа II, так и ГАЗП типа III. Если скорость кода для всех передаваемых субкодов меньше 1,0, то используют ГАЗП типа III, а, если скорость кода для части субкодов больше 1,0, то используют ГАЗП типа II.

То, что в предложенной системе используется запрос ГАЗП типа III, где скорость кода для всех субкодов меньше 1,0, означает, что приемник выполняет декодирование путем последовательного комбинирования кодов для всех принимаемых субкодов. Кроме того, в режиме РПСТ между передатчиком и приемником не производится обмен версией избыточности (ВИ). Причиной этого является то, что в режиме РПСТ нет необходимости обмена версией избыточности ВИ между передатчиком и приемником.

Однако, когда некоторые субкоды пропадают при очень плохих условиях в канале, может возникнуть явление ожидания недостающих субкодов с целью обеспечения непрерывного комбинирования кодов. Таким образом, в этом случае потребуются самодекодируемые коды (СДК), способные обеспечить независимое декодирование соответствующих субкодов, как в случае запроса ГАЗП типа III, где обеспечена ВИ. Это означает, что независимая ВИ передается при каждой субкодовой передаче. В этом контексте предлагается схема РФСТ. В данном случае вместе с индикатором ВИ используют общепринятый 2-разрядный субкодовый пакетный идентификатор (СКПИ), что позволяет независимо передавать 4 вида ВИ или стартовых точек (Fs) при каждой субкодовой передаче. Между тем схема РФСТ не может рассматриваться в качестве оптимальной с точки зрения обеспечения максимальной эффективности декодирования, поскольку в ней возникает перекрытие символов. Кроме того, режим РФСТ не может обеспечить максимальную выгоду от комбинирования кодов даже с учетом ИИ.

Таким образом, в последующем описании настоящего изобретения сначала будет проанализировано различие между схемами РПСТ и РФСТ, а затем будут рассмотрены преимущества и недостатки этих схем. Далее будет доказано, что схема РПСТ превосходит схему РФСТ. Соответственно, в настоящем изобретении предлагается способ, позволяющий обеспечить в схеме РФСТ ту же эффективность, что и в схеме РПСТ. В частности, в настоящем изобретении показывается, что в схеме РФСТ существует проблема снижения эффективности из-за перекрытия символов и прокалывания символов, и как решение этой проблемы предлагаются адаптивные схемы выбора СКПИ.

Таким образом, задачей настоящего изобретения является создание устройства и способа для минимизации перекрытия символов и прокалывания символов в субкодах при формировании ККТК в режиме РПСТ или РФСТ.

Другой задачей настоящего изобретения является создание устройства и способа выбора СКПИ для минимизации перекрытия символов и прокалывания символов для субкодов, когда стартовая точка указывается с использованием СКПИ, при формировании ККТК в режим РПСТ или РФСТ.

Согласно первому аспекту настоящего изобретения предлагается способ для передачи субкода, определенного скоростью субкода, которая идентична либо отличается от скорости кода турбокодера в соответствии с условиями в канале, из кода ККТК, формируемого турбокодером, принимающим поток информации и работающим с данной скоростью кода. Способ включает сегментирование длины N ККТК на заранее установленное количество отрезков, определение идентификаторов СКПИ (идентификаторов субкодовых пакетов) в соответствии с сегментированными отрезками, и задание одного из СКПИ, выделенных для начальной передачи субкода; вычисление количества оставшихся символов, представляемого как N-Fs, где N - длина ККТК, a Fs - позиция стартового символа субкода ККТК; определение позиции последнего символа Ls субкода путем сравнения количества оставшихся символов с длиной субкода; и последовательную передачу символов субкода с позиции стартового символа Fs до позиции последнего символа Ls.

Предпочтительно в качестве позиции стартового символа для субкода повторной передачи выбирать СКПИ, ближайший к позиции последнего символа Ls среди всех СКПИ за исключением заданного СКПИ, чтобы ответить на запрос на повторную передачу для передаваемого субкода. Согласно второму аспекту настоящего изобретения предлагается способ для передачи субкода, определенного скоростью субкода, которая идентична или отличается от скорости кода турбокодера в соответствии с условиями в канале, из ККТК, формируемого турбокодером, принимающим поток информации и работающим с данной скоростью кода. Способ включает вычисление количества оставшихся символов, представляемого как N-Fs, где N - длина кодового слова ККТК, а Fs - позиция стартового символа субкода ККТК; определение позиции последнего символа Ls субкода путем сравнения количества оставшихся символов с длиной субкода; и последовательную передачу символов субкода с позиции стартового символа Fs до позиции последнего символа Ls.

Вышеуказанные и другие задачи, признаки и преимущества настоящего изобретения станут более очевидными из последующего подробного описания вместе с сопроводительными чертежами, на которых:

фиг.1 - блок-схема устройства формирования квазикомплементарного турбокода (ККТК), к которому применимо настоящее изобретение;

фиг.2 - иллюстрация операции формирования субкодов с использованием турбокодера со скоростью материнского кода R=1/5 с помощью устройства формирования ККТК по фиг.1;

фиг.3 - иллюстрация операции формирования субкодов в режиме с фиксированной стартовой точкой (РФСТ) с помощью устройства формирования ККТК по фиг.1;

фиг.4 - иллюстрация операции формирования субкодов в режиме РФСТ с помощью устройства формирования ККТК по фиг.1;

фиг.5 - подробная аппаратная структура устройства формирования ККТК по фиг.1 для формирования субкодов с R=2/3 с использование турбокодера со скоростью материнского кода R=1/5;

фиг.6 - схема, объясняющая явление перекрытия символов, возникающее, когда устройство формирования ККТК по фиг.1 создает субкоды в режиме РФСТ;

фиг.7 - характеристики декодирования в приемнике, когда устройство формирования ККТК по фиг.1 работает в режиме РПСТ и режиме РФСТ;

фиг.8 - иллюстрация работы приемника во время декодирования субкодов, формируемых устройством формирования ККТК по фиг.1, из точки формирования адреса;

фиг.9 - иллюстрация работы приемника во время декодирования субкодов, формируемых устройством формирования ККТК по фиг.1;

фиг.10 - процедура выбора СКПИ согласно первому варианту настоящего изобретения;

фиг.11 - процедура для формирования субкодов в режиме РФСТ согласно второму варианту настоящего изобретения;

фиг.12 - процедура выбора СКПИ согласно второму варианту настоящего изобретения;

фиг.13 - процедура для формирования субкодов в режиме РФСТ согласно третьему варианту настоящего изобретения;

фиг.14 - процедура выбора СКПИ согласно третьему варианту настоящего изобретения;

фиг.15 - процедура для формирования субкодов в режиме с последовательной стартовой точкой (РПСТ) согласно варианту настоящего изобретения;

фиг.16 - процедура выбора СКПИ согласно четвертому варианту настоящего изобретения (модификация второго варианта); и

фиг.17 - процедура выбора СКПИ согласно пятому варианту настоящего изобретения (модификация третьего варианта).

Далее со ссылками на сопроводительные чертежи описываются предпочтительные варианты настоящего изобретения. В последующем описании известные функции и структуры подробно не описываются, чтобы не затемнять сущность изобретения ненужными деталями.

В последующем описании данное изобретение будет применено для устройства формирования ККТК (или субкода), показанного на фиг.1; при этом изобретение обеспечивает способ для передачи субкодовых слов, определяемых скоростью субкода, которая идентична или отличается от скорости кода турбокодера, в соответствии с условиями в канале из кодовых слов ККТК, формируемых с использованием турбокодера, принимающего поток информации и имеющего данную скорость кода. Устройство формирования субкода, в котором используется настоящее изобретение, может формировать субкодовые слова в режиме РПСТ или РФСТ, как было описано ранее. Здесь рассмотрены два варианта настоящего изобретения: формирование субкодов в режиме РПСТ (фиг.15) и формирование субкодов в режиме РФСТ, чтобы решить проблему, связанную с режимом РПСТ (смотри фиг. с 10 по 14 и фиг.16 и 17). Согласно настоящему изобретению возможно несколько вариантов операции выбора СКПИ и формирования субкодов в режиме РФСТ: первый вариант (фиг.10), второй вариант (фиг.11 и 12), третий вариант (фиг.13 и 14), четвертый вариант (фиг.16) и пятый вариант (фиг.17).

А. Анализ ККТК с фиксированной стартовой точкой

Режим с фиксированной стартовой точкой (РФСТ)

Рассмотрим проблему, возникающую при формировании кодов ККТК в режиме РФСТ. РФСТ представляет собой схему передачи для определения 4 имеющихся шаблонов с одинаковой длиной субпакета путем фиксации начальной позиции кодового символа для соответствующих субкодов в 2-разрядном сообщении, передающем данные о версии избыточности, вызова идентификатора СКПИ с последующим предоставлением 4 имеющихся субкодов в качестве самодекодируемых кодов (СДК). Если субкоды имеют разную длину субпакетов либо скорость кода, то тогда возможны дополнительные шаблоны избыточности с 2 битами в СКПИ.

Конечно, количество битов СКПИ не ограничено. Здесь для примера предполагается, что количество битов СКПИ равно 2. Данная схема, которая предлагается изначально независимо от кодов ККТК, сконструирована для равномерного распределения кодированных символов с R=1/5 с использованием случайного перемежителя, обеспечения четырех стартовых точек и последующего определения позиций соответствующих стартовых точек согласно идентификатору СКПИ. Здесь скорость кода для субкодов может принимать произвольное значение, как показано на фиг.3.

Обратимся к фиг.3, где турбокодер 401 осуществляет турбокодирование входной информации с длиной L (L=4a) при скорости кода R=1/5 и выдает кодовое слово длиной N (N=5L=20a). Случайный перемежитель 402 выполняет случайное перемежение для кодового слова (или кодированных символов), поступающего из турбокодера 401. Блок 403 образования субкода формирует субкоды на основе четырех стартовых точек, определенных заранее из кодового слова после его перемежения в случайном перемежителе 402. Как показано на фиг.3, стартовые точки определяются как позиции, получаемые путем деления кодового слова длиной N на четыре равных отрезка.

На фиг.4 показана блок-схема устройства для формирования субкодов с R=2/3 в схеме РФСТ со скоростью материнского кода R=1/5. Обратимся к фиг.4, где турбокодер 401 осуществляет турбокодирование входной информации с длиной L (L=4a) при скорости кода R=1/5 и выдает кодовое слово длиной N (N=5L=20a). Случайный перемежитель 402 выполняет случайное перемежение для кодового слова (или кодированных символов), поступающего из турбокодера 401. Блок 403 образования субкода формирует субкоды на основе четырех стартовых точек, определенных заранее из кодового слова после его перемежения в случайном перемежителе 402. Как показано на фиг.4 стартовые точки определяются как позиции, получаемые путем деления кодового слова длиной N на четыре равные части, а каждый субкод представляет собой кодовое слово с R=2/3, имеющее 6а кодированных символов.

На фиг.5 показано устройство для формирования субкодов с R=2/3, имеющее турбокодер со скоростью материнского кода R=1/5. Обратимся к фиг.5, где ссылочные позиции с 501 по 503 соответствуют турбокодеру. Первая составляющая часть кодера (ENC1) 502 кодирует биты Х входной информации длиной L (=4а) и выдает символы Y0 (L бит) и Y0’ (L бит) четности. Перемежитель (Т1) 501 выполняет перемежение битов входной информации в соответствии с заранее установленным правилом. Вторая составляющая часть кодера (ENC2) 503 кодирует символы после их перемежения в перемежителе 501 и выдает символы Y1 (L бит) и Y1’ (L бит) четности. Селектор 504 символов (или блок прокалывания символов) выполняет прокалывание битов Х входной информации (L бит) и символов Y0 и Y1, Y0’ и Y1’ четности в соответствии с заранее установленным правилом и выдает субкоды со скоростью R=2/3 кода.

Декодирование в режиме РФСТ

При декодировании в режиме РФСТ возникают следующие проблемы. Во-первых, как показано на фиг.3, когда скорость кода для субкодов превышает 0,8, в SC00 часть кодированных символов пропадает (то есть, они оказывается неиспользуемыми). Во-вторых, как показано на фиг.4, в субкодах SC00, SC01 и SC10 появляются перекрывающиеся кодовые символы, когда скорость кода для субкодов меньше 0,8. Эта соотношение показано на фиг.6. Как видно из фиг.3, если скорость кода для субкодов меньше 0,8, появляется множество перекрывающихся символов между субкодом SC01 и субкодом SC10.

Например, если максимальная скорость субкода Rs составляет 0,8 (=4/5), то пропадающие символы, связанные с первой проблемой, не появляются. То есть, во всех случаях пропадающие символы отсутствуют. В альтернативном случае, если максимальная скорость субкода Rs очень мала, то между субкодами появляется множество перекрывающихся кодированных символов, а это означает, что декодер перед декодированием выполняет гибкое комбинирование символов. Средняя энергия Еs кодированных символов должна быть постоянной, чтобы гарантировать эффективность работы турбодекодера (свойство равномерности), а если Es неравномерна, то потребуется периодический шаблон регулярной формы (свойство периодичности). Однако увеличение количества перекрывающихся символов затрудняет поддержание свойства атрибутов перекрывающихся символов, что приводит к снижению эффективности декодирования. Другими словами, режим РПСТ обеспечивает большую однородность, чем режим РФСТ с точки зрения средней энергии Es.

На фиг.7 показано различие между режимом РПСТ (случай А) и режимом РФСТ (случай В), используемыми в приемнике. На фиг.7 количество повторений кодового слова или последовательности равно 2. В случае А указанное распределение энергии (Es) демонстрируют последовательные стартовые точки. То есть, если приемник выполняет гибкое комбинирование символов, средняя энергия Es удваивается. В альтернативном варианте одна часть утраивается, а другая часть удваивается. Однако в случае В фиксированные стартовые точки не показывают указанное распределение энергии, а вместо этого из фигуры видно, что различие между значениями энергии символов может доходить до 9 дБ. Неравномерное распределение энергии символов, комбинируемых в приемнике, оказывает прямое влияние на эффективность декодирования и приводит к ухудшению усредненных показателей эффективности. Однако в режиме РПСТ приращение энергии Es, соответствующее коэффициенту повторения последовательности, равномерно распределено по всем кодированным символам, и только оставшиеся повторенные символы имеют энергию, превышающую Es на +3 дБ, причем эта энергия также равномерно распределена в кодовом слове. То есть, режим РПСТ гарантирует оптимальную эффективность путем повторения той же последовательности. Это обстоятельство описывается со ссылками на фиг.8.

Обратимся к фиг.8, где в приемнике используется N буферов (или один NxQ-разрядный буфер). Эти буферы могут быть реализованы с помощью циклического буфера. В альтернативном варианте можно рассчитать объем памяти для буферов таким образом, чтобы генератор буферных адресов с фиксированным размером мог создавать циклические адреса. Как показано на фиг.8, для субкода С00 приемник запоминает N символов, начиная со стартового адреса ADDRO, и с этой позиции запоминает 6144 (=21504-15360) символов в буфере. Поскольку на этом шаге запоминаются символы после первых N символов, приемник выполняет гибкое комбинирование запоминаемых в данный момент символов с ранее запомненными символами вышеустановленным образом, а затем запоминает эти гибко скомбинированные символы. Здесь адрес окончания гибкого комбинирования определен как “ADDR А”. Далее при приеме тем же путем субкода С10 приемник запоминает принятые символы в буфере, наращивая адреса на 10752 символов от “ADDR А”. Поскольку на этом шаге производится запоминание символов после первых N символов, приемник выполняет гибкое комбинирование запоминаемых в данный момент символов с ранее запомненными символами вышеустановленным образом, а затем запоминает эти гибко скомбинированные символы. Здесь адрес окончания гибкого комбинирования определен как “ADDR В”. Далее при приеме тем же образом субкода С20 приемник запоминает принятые символы в буфере, наращивая адреса на 5376 символов от “ADDR В”. Затем при приеме тем же путем субкода С21 приемник запоминает принятые символы в буфере, наращивая адреса на 5376 символов от “ADDR С”. Здесь адрес окончания гибкого комбинирования определен как “ADDR D”. Наконец, приемник создает гибкие метрические показатели для всех N символов кодового слова путем непрерывного выполнения гибкого комбинирования на субкодах, передаваемых с помощью одного кодирующего пакета вышеуказанным образом. Также этот способ можно рассматривать как способ реализации схемы формирования субкодов для ККТК в передатчике. Обобщая вышеизложенное, можно сказать, что данный способ идентичен способу реализации шага 1 определения длины начального субкода, шага 2 выбора и передачи субкода для начальной передачи, шага 3 определения стартовой позиции субкода для следующей передачи и длины субкода и шага 4 выбора и передачи субкода для следующей передачи. Таким образом, приемник может выполнять гибкое комбинирование, адекватно отображая субкоды в кодовые слова с R=1/5 в соответствии с информацией о типе субкода, передаваемой передатчиком, при реализации способа циклической буферизации. Поскольку принимаемые символы, запоминаемые в циклическом буфере, регулярно накапливаются, последовательные стартовые точки имеют равномерно просуммированную Еs, как было описано в связи с фиг.7.

На фиг.9 представлена блок-схема выполнения процесса декодирования в режиме РПСТ согласно настоящему изобретению. Как показано на этой фигуре, здесь предполагается, что на данный момент передатчик передал субкоды С00, С10, С20 и С21. В частности, С00 представляет переданный субкод, имеющий 21504 символа в кодовом слове, С10 представляет переданный субкод, имеющий 10752 символов в кодовом слове, а С20 и С21 представляют переданные субкоды, имеющие каждый 5376 символов в кодовом слове. Следовательно, на данный момент приемник принял всего четыре субкода, и все эти субкоды были переданы в виде субкодов, имеющих разные скорости субкодов, с использованием кодирующего пакета (здесь для примера было использовано 3072 бита), который представляет собой один информационный блок. Таким образом, приемник создает гибкие метрические показатели для N кодовых слов путем гибкого комбинирования субкодов выше установленным образом. Приемник выполняет гибкое комбинирование путем перекомпоновки четырех субкодов таким образом, чтобы позиции 15360 (=3072×5) символов кодового слова с R=1/5 были идентичны позициям символов кодового слова соответствующих субкодов. Поскольку длина, составляющая 21504 для субкода С00 больше N, приемник компонует 15360 символов, а затем последовательно переставляет остальные 6144 (=21504-15360) символов кодового слова с начала согласно способу повторения последовательностей и выполняет гибкое комбинирование символов на перекомпонованных символах кодового слова. Аналогично, поскольку субкод С10 был передан после субкода С00, приемник также запоминает С10 вслед за окончанием С00, а затем выполняет гибкое комбинирование на этих символах. Аналогично, поскольку субкоды С20 и С21 были переданы после субкода С10, приемник запоминает субкод С20 и субкод С21 после конца субкода С10, а затем выполняет гибкое комбинирование символов на запомненных субкодах.

В. Варианты

Передача в режиме РПСТ

На фиг.15 показан алгоритм передачи для режима РПСТ согласно варианту настоящего изобретения. На фиг.15 LSc представляет размер субпакетов, N представляет количество символов кодового слова, закодированных турбокодером со скоростью кода R, Fs представляет стартовую позицию символа (или стартовую точку) каждого субпакета, a Ls представляет позицию последнего символа (или последнюю точку). Кроме того, NRES представляет переменную, вычисляемую по заданной формуле. В последующем алгоритме ‘[x]’ представляет максимальное целое число, меньшее заданного значения ‘x’. Вдобавок, NCR представляет частоту повторения всего кодового слова, содержащего N символов.

Обратимся к фиг.15, где на шаге 1501 генератор субкода устанавливает стартовую точку Fs в ноль (0) для нового пакета кодера. Если имеется ранее переданный субкод, то генератор субкода использует в качестве Fs величину Ls, определенную из ранее переданного субпакета. Затем на шаге 1503 генератор субкода вычисляет количество nres оставшихся символов путем вычитания определенной стартовой точки Fs из количества N символов кодового слова. На шаге 1505 генератор субкода определяет, больше или равно вычисленное значение NRES оставшихся символов длины Lsc передаваемого в данный момент субкода (или субпакета). Если количество NRES оставшихся символов больше или равно длины Lsc субкода, то генератор субкода на шаге 1507 обновляет последнюю точку Ls субкода, присваивая ей значение ‘Fs+Lsc-1’. После этого на шаге 1509 генератор субкода последовательно передает кодированные символы с определенной стартовой точки Fs до определенной последней точки Ls. Однако, если количество NRES оставшихся символов меньше длины Lsc субкода, то генератор субкода определяет последнюю точку Ls субкода на последующих шагах 1511 и 1513 в соответствии с показанными ниже уравнениями (2) и (3).

После шага 1507 или шага 1513 генератор субкода на шаге 1509 последовательно передает символы со стартовой точки Fs до точки (N-1)-го символа. Далее генератор субкода повторяет все N символов NCR раз для передачи. Наконец, генератор субкода передает символы с позиции 0-го символа до позиции Ls-го символа, а затем выполняется переход к шагу 1515. После передачи символов, соответствующих данному субкоду, генератор субкода на шаге 1515 обновляет стартовую точку Fs, присваивая ей значение ‘(Ls+1)mod N’. На шаге 1517 генератор субкода определяет, есть ли запрос на следующий субпакет (или повторную передачу). Если имеется запрос на передачу следующего субпакета, то генератор субкода возвращается к шагу 1503 и повторяет вышеописанные шаги. В противном случае, генератор субкода возвращается к шагу 1501.

Как было установлено выше, недостаток режима РФСТ заключается в том, что появляется множество перекрывающихся символов, и эти перекрывающиеся символы снижают эффективность работы декодера. Соответственно имеется потребность в способе минимизации количества перекрывающихся символов.

Первый способ передачи в режиме РФСТ

В режиме РФСТ идентификаторы СКПИ должны передаваться либо последовательно, либо в заранее установленном порядке.

Это необходимо для улучшения способности обнаружения ошибок в преамбуле и уменьшения частоты ложных тревог (ЧЛТ). Иными словами, идентификаторы СКПИ должны передаваться последовательно. Если они передаются нерегулярно, то нет возможности обнаружить ошибку в идентификаторах СКПИ без использования контроля на основе циклического избыточного кода (ЦИК). Ниже приведены два примера. В случае 2 нет возможности обнаружить ошибку в идентификаторах СКПИ, так как это зависит от обнаружения ошибок во всей переданной преамбуле, включая идентификаторы СКПИ. Следовательно, если предположить, что система, использующая прямой дополнительный канал управления пакетными данными (ПДКУПД), передает идентификаторы СКПИ, не применяя ЦИК, то идентификаторы СКПИ должны присваиваться либо последовательно, либо в заранее установленном порядке.

Случай 1) Последовательные идентификаторы СКПИ:

0→1→2→3→0→1→2→3→0→...

Случай 2) Случайные идентификаторы СКПИ:

0→3→1→2→1→0→3→2→1...

При разработке системы для Случая 1 и Случая 2 особое внимание следует уделить обнаружению ошибок, а не проблеме перекрытия символов.

На фиг.10 показана процедура выбора СКПИ согласно первому варианту настоящего изобретения. На фиг.10 величина Р представляет количество битов, выделенных для СКПИ, а М представляет максимальное целое число, выражаемое с помощью Р битов. То есть, если Р=2, то тогда М=4. Далее N представляет количество кодированных символов, закодированных с помощью материнского кода. Например, когда скорость кода R=1/5, a длина входных данных L=100, то количество кодированных символов, закодированных с помощью материнского кода, составит N=L/R=500. Вдобавок Lsc представляет размер субпакетов, Fs представляет позицию стартового символа (или стартовую точку) каждого субпакета, a Ls представляет позицию последнего символа (или последнюю точку) каждого субпакета. NRES представляет переменную, вычисляемую по заданной формуле. В последующем алгоритме [x]’ представляет максимальное целое число, меньшее значения ‘x’. NCR представляет частоту повторения всего кодового слова, содержащего N символов. Эта процедура выполняется генератором субкода в устройстве формирования ККТК по фиг.1.

Обратимся к фиг.10, где на шаге 1001 генератор субкода инициализирует СКПИ, устанавливая его в ноль (0) для нового пакета (ПК) кодера. Далее генератор субкода инициализирует стартовую точку Fs и последнюю точку Ls субкода. СКПИ и стартовая точка Fs связаны соотношениями:

SPID=1:{N/M)

SPID=2:{2N/M)

SPID=3:{3N/M)

.

.

.

SPID=(M-1): (M-1)(N/M)

На шаге 1003 генератор субкода вычисляет количество NRES оставшихся символов путем вычитания определенной стартовой точки Fs из количества N символов кодового слова. На шаге 1005 генератор субкода определяет, больше или равно вычисленное количество NRES оставшихся символов длины Lsc передаваемого в данный момент субкода (или субпакета). Если количество NRES оставшихся символов больше или равно длины Lsc субкода, то генератор субкода на шаге 1007 обновляет последнюю точку Ls субкода, присваивая ей значение ‘Fs+Lsc-1’. После этого на шаге 1009 генератор субкода последовательно передает кодированные символы со стартовой точки Fs до определенной последней точки Ls, а затем переходит к шагу 1015. В противном случае, если количество NRES оставшихся символов меньше длины Lsc субкода, то генератор субкода определяет последнюю точку Ls субкода на последующих шагах 1011 и 1013 в соответствии с показанными ниже уравнениями (2) и (3).

После шага 1007 или шага 1013 генератор субкода на шаге 1009 последовательно передает символы со стартовой точки Fs до точки (N-1)-го символа. Далее генератор субкода повторяет все N символов NCR раз перед передачей. Наконец, генератор субкода передает символы с позиции 0-го символа до позиции Ls-го символа, а затем выполняется переход к шагу 1015. После передачи символов, соответствующих данному субкоду, генератор субкода на шаге 1015 выбирает следующий идентификатор из определенных идентификаторов СКПИ в качестве стартовой точки Fs для следующего субпакета. На шаге 1017 генератор субкода определяет, есть ли запрос на следующий субпакет (или повторную передачу). Здесь “наличие запроса на следующий пакет” означает, что имеется запрос на повторную передачу текущего пакета кодера (ПК), передаваемого передатчиком, из-за того, что пакет кодера не принят. Таким образом, данный СКПИ не должен быть сброшен, а должен быть увязан со следующим СКПИ. Следовательно, если имеется запрос на передачу следующего субпакета, то генератор субкода возвращается к шагу 1703 и повторяет вышеописанные шаги. В противном случае, если нет запроса на передачу следующего субпакета, это означает, что СКПИ должен быть сброшен. В этом случае, поскольку передаваемый в данный момент ПК успешно принимается, и следовательно, есть запрос на передачу нового ПК, генератор субкода возвращается к шагу 1701.

Второй вариант передачи в режиме РФСТ

Если в сообщении, передающем СКПИ, используется ЦИК (то есть, ЦИК используется в канале ПДКУПД), то обеспечивается функция обнаружения ошибок. Следовательно, в этом случае порядок следования идентификаторов СКПИ в режиме РФСТ не обязательно будет последовательным. В альтернативном варианте, если в сообщении, передающем СКПИ, функция обнаружения ошибок не обязательна, то порядок идентификаторов СКПИ в режиме РФСТ может не быть последовательным. В этом случае предпочтительно, выбирать субкод для последующей передачи в соответствии с нижеследующим правилом, чтобы уменьшить количество перекрывающихся символов с целью оптимизации характеристик декодирования. Это объясняется тем, что, если скорость субкода меньше 0,8 (при максимальной скорости субкода, равной 0,8), из-за СКПИ, который делит кодированные символы с R=1/5 на четыре равные части, неизбежно возникает перекрывание символов. Следовательно, после передачи одного субкода оптимальный способ обеспечивает минимизацию количества проколотых символов, то есть, тех символов, которые удаляют вместо того, чтобы их передавать при передаче двух субкодов. Соответственно, имеется потребность в способе минимизации количества перекрывающихся символов. То есть, значение стартовой точки Fs следующего субпакета устанавливают меньшим или равным значению последней точки Ls предыдущего субпакета из числа СКПИ, ближайших к последней точке Ls предыдущего субпакета (или субкода). Когда стартовая точка Fs выбрана таким образом, выполняется передача субпакетов, как показано на фиг.11. Как видно из этой фигуры, после передачи субпакета SC1 генератор субкода выбирает из числа идентификаторов (СКПИ=00, СКПИ=01, СКПИ=10) ближайший СКПИ=11, меньший или равный значению последней точки субпакета SC1, а затем передает следующий субпакет SC2, начиная со стартовой точки.

На фиг.12 показана процедура выбора СКПИ согласно второму варианту настоящего изобретения. На фиг.12 Р представляет количество битов, выделенных для СКПИ, а М представляет максимальное целое число, выражаемое с помощью Р битов. То есть, если Р=2, то тогда М=4. Далее N представляет количество кодированных символов, закодированных с помощью материнского кода. Например, когда скорость кода R=1/5, а длина входных данных L=100, то количество кодированных символов, закодированных с помощью материнского кода, составит N=L/R=500. Вдобавок Lsc представляет размер субпакетов, Fs представляет позицию стартового символа (или стартовую точку) каждого субпакета, a Ls представляет позицию последнего символа (или последнюю точку) каждого субпакета. NRES представляет переменную, вычисляемую по заданной формуле. В последующем алгоритме ‘[x]’ представляет максимальное целое число, меньшее значения ‘x’. NCR представляет частоту повторения всего кодового слова, содержащего N символов. Между тем позиция последнего символа Ls может быть определена по-другому в соответствии с используемым алгоритмом. Например, можно также использовать способ определения количества символов в соответствии с данной скоростью субкода, выполнить последовательное повторение путем сравнения определенного количества символов с N и определить позицию последнего символа Ls на основе количества оставшихся символов, как это делается в вышеописанном способе последовательной передачи.

Обратимся к фиг.12, где на шаге 1201 генератор субкода инициализирует СКПИ, устанавливая его в ноль (0) для нового пакета (ПК) кодера. Далее генератор субкода инициализирует стартовую точку Fs и последнюю точку Ls субкода. СКПИ и стартовая точка Fs связаны соотношениями:

SPID=1:(N/M)

SPID=2:(2N/M)

SPID=3:(3N/M)

.

.

.

SPID=(М-1):(М-1)(N/М)

На шаге 1203 генератор субкода вычисляет количество NRES оставшихся символов путем вычитания определенной стартовой точки Fs из количества N символов кодового слова. На шаге 1205 генератор субкода определяет, больше или равно вычисленное значение NRES оставшихся символов длины Lsc передаваемого в данный момент субкода (или субпакета). Если количество NRES оставшихся символов больше или равно длины Lsc субкода, то генератор субкода на шаге 1207 обновляет последнюю точку Ls субкода, присваивая ей значение ‘Fs+Lsc-1’. После этого на шаге 1209 генератор субкода последовательно передает кодированные символы со стартовой точки Fs до определенной последней точки Ls, а затем переходит к шагу 1215. В противном случае, если количество NRES оставшихся символов меньше длины Lsc субкода, то генератор субкода определяет последнюю точку Ls субкода на последующих шагах 1211 и 1213 в соответствии с показанными ниже уравнениями (2) и (3).

После шага 1207 или шага 1213 генератор субкода на шаге 1209 последовательно передает символы со стартовой точки Fs до точки (N-1)-го символа. Далее генератор субкода повторяет все N символов NCR раз перед передачей. Наконец, генератор субкода передает символы с позиции 0-го символа до позиции Ls-го символа, а затем выполняется переход к шагу 1215. После передачи символов, соответствующих данному субкоду, генератор субкода на шаге 1215 выбирает стартовую точку Fs из определенных идентификаторов СКПИ. Здесь генератор субкода выбирает в качестве значения стартовой точки Fs следующего субпакета значение, меньшее или равное значению последней точки Ls предыдущего субпакета из числа СКПИ, ближайших к последней точке Ls предыдущего субпакета (или субкода). На шаге 1217 генератор субкода определяет, есть ли запрос на следующий субпакет (или повторную передачу). Здесь “наличие запроса на следующий пакет” означает, что имеется запрос на повторную передачу текущего пакета кодера (ПК), передаваемого передатчиком, из-за того, что пакет кодера на принят. Таким образом, данный СКПИ не должен быть сброшен, а должен быть увязан со следующим СКПИ. Следовательно, если имеется запрос на передачу следующего субпакета, то генератор субкода возвращается к шагу 1203 и повторяет вышеописанные шаги. В противном случае, если нет запроса на передачу следующего субпакета, это означает, что СКПИ действительно должен быть сброшен. В этом случае, поскольку передаваемый в данный момент ПК успешно принимается, и следовательно, есть запрос на передачу нового ПК, генератор субкода возвращается к шагу 1201.

Третий вариант передачи в режиме РФСТ

Изобретение обеспечивает еще один способ выбора стартовой точки следующего субкода в виде СКПИ, ближайшего к Ls предыдущего субкода, после передачи одного субкода. То есть, в качестве Fs устанавливается ближайший из идентификаторов СКПИ, больших или равных значению последней точки Ls предыдущего субпакета. Для этого способа необходимо прокалывание символов, но при этом способ ограничивает максимальное количество перекрывающихся символов до N/8 (=(N/4)/2). Аналогично ограничено также и количество прокалываемых символов до величины N/8 (=(N/4)/2). Конечно, потребуется скоординировать положительный эффект, вызываемый уменьшением количества перекрывающихся символов, и потери, вызываемые увеличением количества прокалываемых символов. То есть, для следующего субпакета (или субкода) генератор субкода выбирает ближайший СКПИ (или Fs) от стартовой точки Ls предыдущего субпакета (или субкода). Когда стартовая точка Fs выбрана таким образом, выполняется передача субпакетов, как показано на фиг.13. Как видно из этой фигуры, после передачи субпакета SC1 генератор субкода выбирает ближайший СКПИ=00 на основе значения Ls последней точки субпакета SC1, а затем передает следующий субпакет SC2, начиная со стартовой точки. В этом случае между субпакетом SC1 и субпакетом SC2 существуют проколотые символы.

На фиг.14 показана процедура выбора СКПИ согласно третьему варианту настоящего изобретения. На фиг.14 величина Р представляет количество битов, выделенных для СКПИ, а М представляет максимальное целое число, выражаемое с помощью Р битов. То есть, если Р=2, то тогда М=4. Далее N представляет количество кодированных символов, закодированных с помощью материнского кода. Например, когда скорость кода R=1/5, a длина входных данных L=100, то количество кодированных символов, закодированных с помощью материнского кода, составит N=L/R=500. Вдобавок Lsc представляет размер субпакетов, Fs представляет позицию стартового символа (или стартовую точку) каждого субпакета, a Ls представляет позицию последнего символа (или последнюю точку) каждого субпакета. NRES представляет переменную, вычисляемую по заданной формуле. В последующем алгоритме ‘[x]’ представляет максимальное целое число, меньшее значения ‘x’. NCR представляет частоту повторения всего кодового слова, содержащего N символов. Между тем позиция последнего символа Ls может быть определена по-другому в соответствии с используемым алгоритмом.

Обратимся к фиг.14, где на шаге 1401 генератор субкода инициализирует СКПИ, устанавливая его в ноль (0) для нового пакета (ПК) кодера. Далее генератор субкода инициализирует стартовую точку Fs и последнюю точку Ls субкода. СКПИ и стартовая точка Fs связаны соотношениями

SPID=1:(NIM)

SPID=2:(2N/M)

SPID=3:(3N/M)

.

.

.

SPID=(M-1):(M-1)(N/M)

На шаге 1403 генератор субкода вычисляет количество NRES оставшихся символов путем вычитания определенной стартовой точки Fs из количества N символов кодового слова. На шаге 1405 генератор субкода определяет, больше или равно вычисленное значение NRES оставшихся символов длины Lsc передаваемого в данный момент субкода (или субпакета). Если количество NRES оставшихся символов больше или равно длины Lsc субкода, то генератор субкода на шаге 1407 обновляет последнюю точку Ls субкода, присваивая ей значение ‘Fs+Lsc-1’. После этого на шаге 1409 генератор субкода последовательно передает кодированные символы со стартовой точки Fs до определенной последней точки Ls, а затем переходит к шагу 1415. В противном случае, если количество nres оставшихся символов меньше длины Lsc субкода, то генератор субкода определяет последнюю точку Ls субкода на последующих шагах 1411 и 1413 в соответствии уравнениями (2) и (3).

После шага 1407 или шага 1413 генератор субкода на шаге 1409 последовательно передает символы со стартовой точки Fs до точки (N-1)-го символа. Далее генератор субкода повторяет все N символов NCR раз перед передачей. Наконец, генератор субкода передает символы с позиции 0-го символа до позиции Ls-го символа, а затем выполняется переход к шагу 1415. После передачи символов, соответствующих данному субкоду, генератор субкода на шаге 1415 выбирает стартовую точку Fs из определенных идентификаторов СКПИ. Здесь генератор субкода выбирает в качестве стартовой точки Fs следующего субпакета точку, соответствующую СКПИ (или Fs), равному или ближайшему к последней точке Ls предыдущего субпакета (субкода). На шаге 1417 генератор субкода определяет, есть ли запрос на следующий субпакет (или повторную передачу). Здесь “наличие запроса на следующий пакет” означает, что имеется запрос на повторную передачу текущего пакета кодера (ПК), передаваемого передатчиком, из-за того, что пакет кодера не принят. Таким образом, данный СКПИ не должен быть сброшен, а должен быть увязан со следующим СКПИ. Следовательно, если имеется запрос на передачу следующего субпакета, то генератор субкода возвращается к шагу 1403 и повторяет вышеописанные шаги. В противном случае, если нет запроса на передачу следующего субпакета, это означает, что СКПИ должен быть сброшен. В этом случае, поскольку передаваемый в данный момент ПК успешно принимается, и следовательно, есть запрос на передачу нового ПК, генератор субкода возвращается к шагу 1401.

Изобретение обеспечивает еще один способ, используемый тогда, когда для начальной передачи во втором и третьем вариантах применяется заданный СКПИ. В этом случае способы, предложенные во втором и третьем вариантах, используются одинаково, но во время повторной передачи нельзя применять СКПИ, заданный для начальной передачи. Например, когда в качестве СКПИ для начальной передачи предварительно выбран СКПИ=0, для повторной передачи можно использовать идентификаторы СКПИ, равные 1, 2, 3,..., (М-1) (N/M). Таким образом, генератор субкода выбирает СКПИ, используемые для повторной передачи, в соответствии с алгоритмом выбора по второму и третьему вариантам. На фигурах 16 и 17 показаны модификации второго и третьего вариантов для случая, когда для начальной передачи используют СКПИ=0. Здесь СКПИ=0 для начальной передачи используется в качестве примера. Если это необходимо, можно использовать другие значения СКПИ для начальной передачи.

Четвертый вариант передачи в режиме РФСТ

На фиг.16 показана процедура выбора СКПИ согласно четвертому варианту настоящего изобретения. В частности, на фиг.16 показана модификация процедуры выбора СКПИ согласно второму варианту. На фиг.16 величина Р представляет количество битов, выделенных для СКПИ, а М представляет максимальное целое число, выражаемое с помощью Р битов. То есть, если Р=2, то тогда М=4. Далее N представляет количество кодированных символов, закодированных с помощью материнского кода. Например, когда скорость кода R=1/5, а длина входных данных L=100, то количество кодированных символов, закодированных с помощью материнского кода, составит N=L/R=500. Вдобавок Lsc представляет размер субпакетов, Fs представляет позицию стартового символа (или стартовую точку) каждого субпакета, a Ls представляет позицию последнего символа (или последнюю точку) каждого субпакета. NRES представляет переменную, вычисляемую по заданной формуле. В последующем алгоритме ‘[x]’ представляет максимальное целое число, меньшее значения ‘x’. NCR представляет частоту повторения всего кодового слова, содержащего N символов. Между тем позиция последнего символа Ls может быть определена по-другому в соответствии с используемым алгоритмом. Например, можно также использовать способ определения количества символов в соответствии с данной скоростью субкода, выполнить последовательное повторение путем сравнения определенного количества символов с N и определить позицию последнего символа Ls на основе количества оставшихся символов, как это делается в вышеописанном способе последовательной передачи.

Обратимся к фиг.16, где на шаге 1601 генератор субкода инициализирует СКПИ, устанавливая его в ноль (0) для нового пакета (ПК) кодера. Далее генератор субкода инициализирует стартовую точку Fs и последнюю точку Ls субкода. СКПИ и стартовая точка Fs связаны соотношениями:

SPID=1:{N/M}

SPID=2:(2N/M)

SPID=3:(3N/M)

.

.

.

SPID=(M-1):(M-1)(N/M)

На шаге 1603 генератор субкода вычисляет количество NRES оставшихся символов путем вычитания определенной стартовой точки Fs из количества N символов кодового слова. На шаге 1605 генератор субкода определяет, больше или равно вычисленное значение NRES оставшихся символов длины Lsc передаваемого в данный момент субкода (или субпакета). Если количество NRES оставшихся символов больше или равно длины Lsc субкода, то генератор субкода на шаге 1607 обновляет последнюю точку Ls субкода, присваивая ей значение ‘Fs+Lsc-1’. После этого на шаге 1609 генератор субкода последовательно передает кодированные символы со стартовой точки Fs до определенной последней точки Ls, а затем переходит к шагу 1615. В противном случае, если количество NRES оставшихся символов меньше длины Lsc субкода, то генератор субкода определяет последнюю точку Ls субкода на последующих шагах 1611 и 1613 в соответствии уравнениями (2) и (3).

После шага 1607 или шага 1613 генератор субкода на шаге 1609 последовательно передает символы со стартовой точки Fs до точки (N-1)-го символа. Далее генератор субкода повторяет все N символов NCR раз перед передачей. Наконец, генератор субкода передает символы с позиции 0-го символа до позиции Ls-го символа, а затем выполняется переход к шагу 1615. После передачи символов, соответствующих данному субкоду, генератор субкода на шаге 1615 выбирает стартовую точку Fs из определенных идентификаторов СКПИ. Здесь генератор субкода выбирает в качестве стартовой точки Fs следующего субпакета ненулевое значение из числа значений, меньших или равных значению последней точки Ls предыдущего субпакета из числа СКПИ, ближайших к последней точке Ls предыдущего субпакета (или субкода). То есть, генератор субкода исключает из повторной передачи СКПИ, выделенный для начальной передачи. На шаге 1617 генератор субкода определяет, есть ли запрос на следующий субпакет (или повторную передачу). Здесь “наличие запроса на следующий пакет” означает, что имеется запрос на повторную передачу текущего пакета кодера (ПК), передаваемого передатчиком из-за того, что пакет кодера не принят. Таким образом, данный СКПИ не должен быть сброшен, а должен быть увязан со следующим СКПИ. Следовательно, если имеется запрос на передачу следующего субпакета, то генератор субкода возвращается к шагу 1603 и повторяет вышеописанные шаги. В противном случае, если нет запроса на передачу следующего субпакета, это означает, что СКПИ должен быть действительно сброшен. В этом случае, поскольку передаваемый в данный момент ПК успешно принимается, и следовательно, есть запрос на передачу нового ПК, генератор субкода возвращается к шагу 1601.

Пятый вариант передачи в режиме РФСТ

На фиг.17 показана процедура выбора СКПИ согласно пятому варианту настоящего изобретения. В частности, на фиг.17 представлена модификация процедуры выбора СКПИ согласно третьему варианту. На фиг.17 величина Р представляет количество битов, выделенных для СКПИ, а М представляет максимальное целое число, выражаемое с помощью Р битов. То есть, если Р=2, то тогда М=4. Далее N представляет количество кодированных символов, закодированных с помощью материнского кода. Например, когда скорость кода R=1/5, а длина входных данных L=100, то количество кодированных символов, закодированных с помощью материнского кода, составит N=L/R=500. Вдобавок Lsc представляет размер субпакетов, Fs представляет позицию стартового символа (или стартовую точку) каждого субпакета, a Ls представляет позицию последнего символа (или последнюю точку) каждого субпакета. NRES представляет переменную, вычисляемую по заданной формуле. В последующем алгоритме ‘[x]’ представляет максимальное целое число, меньшее значения ‘x’. NCR представляет частоту повторения всего кодового слова, содержащего N символов. Между тем, позиция последнего символа Ls может быть определена по-другому в соответствии с используемым алгоритмом. Например, можно также использовать способ определения количества символов в соответствии с данной скоростью субкода, выполнить последовательное повторение путем сравнения определенного количества символов с N и определить позицию последнего символа Ls на основе количества оставшихся символов, как это делается в вышеописанном способе последовательной передачи.

Обратимся к фиг.17, где на шаге 1701 генератор субкода инициализирует СКПИ, устанавливая его в ноль (0) для нового пакета (ПК) кодера. Далее генератор субкода инициализирует стартовую точку Fs и последнюю точку Ls субкода. СКПИ и стартовая точка Fs связаны соотношениями:

SPID=1:(N/M)

SPID=2:(2N/M)

SPID=3:(3N/M)

.

.

.

SPID=(M-1):(M-1)(N/M)

На шаге 1703 генератор субкода вычисляет количество NRES оставшихся символов путем вычитания определенной стартовой точки Fs из количества N символов кодового слова. На шаге 1705 генератор субкода определяет, больше или равно вычисленное значение NRES оставшихся символов длины Lsc передаваемого в данный момент субкода (или субпакета). Если количество nres оставшихся символов больше или равно длины Lsc субкода, то генератор субкода на шаге 1707 обновляет последнюю точку, Ls субкода, присваивая ей значение ‘Fs+Lsc-1’. После этого на шаге 1709 генератор субкода последовательно передает кодированные символы со стартовой точки Fs до определенной последней точки Ls, а затем переходит к шагу 1715. В противном случае, если количество nres оставшихся символов меньше длины Lsc субкода, то генератор субкода определяет последнюю точку Ls субкода на последующих шагах 1711 и 1713 в соответствии уравнениями (2) и (3).

После шага 1707 или шага 1713 генератор субкода на шаге 1709 последовательно передает символы со стартовой точки Fs до позиции (N-1)-ro символа. Далее генератор субкода повторяет все N символов NCR раз перед передачей. Наконец, генератор субкода передает символы с позиции 0-го символа до позиции Ls-го символа, а затем выполняется переход к шагу 1715. После передачи символов, соответствующих данному субкоду, генератор субкода на шаге 1715 выбирает стартовую точку Fs из определенных идентификаторов СКПИ. Здесь генератор субкода выбирает в качестве стартовой точки Fs следующего субпакета ненулевую точку из числа точек, соответствующих СКПИ (или Fs), равному или ближайшему к последней точке Ls предыдущего субпакета (или субкода). То есть, генератор субкода исключает из повторной передачи СКПИ, выделенный для начальной передачи. На шаге 1717 генератор субкода определяет, есть ли запрос на следующий субпакет (или повторную передачу). Здесь “наличие запроса на следующий пакет” означает, что имеется запрос на повторную передачу текущего пакета кодера (ПК), передаваемого передатчиком, из-за того, что пакет кодера не принят. Таким образом, данный СКПИ не должен быть сброшен, а должен быть увязан со следующим СКПИ. Следовательно, если имеется запрос на передачу следующего субпакета, то генератор субкода возвращается к шагу 1703 и повторяет вышеописанные шаги. В противном случае, если нет запроса на передачу следующего субпакета, это означает, что СКПИ должен быть сброшен. В этом случае, поскольку передаваемый в данный момент ПК успешно принимается, и следовательно, есть запрос на передачу нового ПК, генератор субкода возвращается к шагу 1701.

Как было описано выше, настоящее изобретение минимизирует перекрытие символов и прокалывание символов между субкодами при формировании кодов ККТК в режиме РПСТ или режиме РФСТ, повышая тем самым пропускную способность системы.

Хотя данное изобретение было продемонстрировано и описано со ссылками на конкретный предпочтительный вариант его осуществления, специалистам в данной области техники очевидно, что в него могут быть внесены различные изменения по форме и в деталях, не выходящие за рамки существа и объема изобретения, определенных формулой изобретения.

Похожие патенты RU2251794C2

название год авторы номер документа
УСТРОЙСТВО И СПОСОБ ОБРАТНОЙ ПЕРЕДАЧИ ДЛЯ ПОВЫШЕНИЯ ПРОПУСКНОЙ СПОСОБНОСТИ ПЕРЕДАЧИ В СИСТЕМЕ ПЕРЕДАЧИ ДАННЫХ 2002
  • Ким Мин-Гоо
  • Ха Санг-Хиук
RU2251813C2
ПЕРЕДАЧА ПАКЕТНЫХ ДАННЫХ В СИСТЕМЕ МОБИЛЬНОЙ СВЯЗИ 2001
  • Ким Мин-Гоо
  • Ха Санг-Хиук
RU2237977C2
УСТРОЙСТВО И СПОСОБ ГЕНЕРИРОВАНИЯ И ДЕКОДИРОВАНИЯ КОДОВ В СИСТЕМЕ СВЯЗИ 2002
  • Ким Мин-Гоо
  • Дзанг Дзае-Сунг
  • Ха Санг-Хиук
RU2236756C2
УСТРОЙСТВО И СПОСОБ ГЕНЕРАЦИИ КОДОВ В СИСТЕМЕ СВЯЗИ 2001
  • Ким Мин-Коо
  • Дзанг Дзае-Сунг
RU2239292C2
СПОСОБ ПЕРЕДАЧИ/ПРИЕМА ДАННЫХ В СИСТЕМЕ ПЕРЕДАЧИ ДАННЫХ С ГИБРИДНЫМ ЗАПРОСОМ АВТОМАТИЧЕСКОГО ПОВТОРЕНИЯ 2001
  • Ким Мин-Коо
  • Парк Донг-Сик
  • Коо Чанг-Хой
  • Ким Дае-Гиун
RU2236091C2
УСТРОЙСТВО И СПОСОБ ГИБРИДНОГО ЗАПРОСА АВТОМАТИЧЕСКОГО ПОВТОРЕНИЯ ДЛЯ СИСТЕМЫ МОБИЛЬНОЙ СВЯЗИ 2001
  • Ким Мин-Гоо
RU2235437C2
УСТРОЙСТВО ДЛЯ ГЕНЕРИРОВАНИЯ КОДОВ В СИСТЕМЕ СВЯЗИ 2003
  • Ким Мин-Гоо
  • Дзанг Дзае-Сунг
RU2332789C2
УСТРОЙСТВО И СПОСОБ ГЕНЕРАЦИИ КОДОВ В СИСТЕМЕ СВЯЗИ 2002
  • Ким Мин-Гоо
  • Ха Санг-Хиук
  • Дзанг Дзае-Сунг
RU2251793C2
УСТРОЙСТВО И СПОСОБ ГЕНЕРИРОВАНИЯ КОДОВ В СИСТЕМЕ СВЯЗИ 2002
  • Ким Мин-Гоо
  • Дзанг Дзае-Сунг
RU2233541C2
УСТРОЙСТВО И СПОСОБ ОПРЕДЕЛЕНИЯ МЕТОДА МОДУЛЯЦИИ В СИСТЕМЕ СВЯЗИ 2002
  • Ким Мин-Гоо
  • Ха Санг-Хиук
RU2253185C2

Иллюстрации к изобретению RU 2 251 794 C2

Реферат патента 2005 года УСТРОЙСТВО И СПОСОБ ФОРМИРОВАНИЯ КОДОВ В СИСТЕМЕ СВЯЗИ

Изобретение относится к системам передачи данных, и в частности, к устройствам и способам формирования комплементарных турбокодов с учетом характеристик турбокодов. Техническим результатом является минимизация перекрытия символов и прокалывания символов в субкодах при формировании квазикомплементарных турбокодов (ККТК). Технический результат достигается тем, что способ включает сегментацию длины N кода ККТК на заранее установленное количество отрезков, определение идентификаторов субкодовых пакетов (СКПИ), соответствующих сегментированным отрезкам, задание одного из СКПИ, выделенных для начальной передачи субкода, вычисление количества оставшихся символов в виде N-Fs, где N - длина ККТК, a Fs - позиция стартового символа субкода ККТК, определение позиций последнего символа Ls субкода путем отсчета от первой позиции символа оставшихся символов в количестве, равном количеству субкодов, которые должны быть переданы, и последовательную передачу символов субкода с позиции стартового символа Fs до позиции последнего символа Ls. 5 н. и 18 з.п. ф-лы, 17 ил.

Формула изобретения RU 2 251 794 C2

1. Способ передачи субкода, определенного скоростью субкода, идентичной или отличающейся от скорости кода турбокодера, в соответствии с условиями в канале из квазикомплементарного турбокода (ККТК), формируемого турбокодером, принимающим информационный поток и работающим с упомянутой скоростью кода, причем способ включает:

сегментацию длины N кода ККТК на заранее установленное количество отрезков, определение субкодовых пакетных идентификаторов (СКПИ), соответствующих сегментированным отрезкам, и задание одного из СКПИ, выделенного для начальной передачи субкода;

вычисление количества оставшихся символов, представленного как N-Fs, где N - длина ККТК, a Fs - позиция стартового символа субкода ККТК, который должен быть передан;

определение позиции последнего символа Ls субкода путем отсчета от первой позиции символа оставшихся символов в количестве, равном количеству субкодов, которые должны быть переданы; и

последовательную передачу символов субкода с позиции стартового символа Fs до позиции последнего символа Ls.

2. Способ по п.1, отличающийся тем, что далее включает выбор, в качестве позиции стартового символа субкода повторной передачи, идентификатора СКПИ, ближайшего к позиции последнего символа Ls из числа идентификаторов СКПИ за исключением заданного СКПИ, чтобы ответить на запрос на повторную передачу для переданного субкода.3. Способ по п.2, отличающийся тем, что ближайшим СКПИ является СКПИ, находящийся на позиции, ближайшей к позиции последнего символа Ls, из числа идентификаторов СКПИ, меньших или равных позиции последнего символа Ls из числа идентификаторов СКПИ.4. Способ по п.1, отличающийся тем, что далее включает выбор, в качестве позиции стартового символа субкода повторной передачи, идентификатора СКПИ, ближайшего к позиции последнего символа Ls, из числа идентификаторов СКПИ, чтобы ответить на запрос на повторную передачу для переданного субкода.5. Способ по п.4, отличающийся тем, что ближайшим идентификатором СКПИ является СКПИ, находящийся на позиции, ближайшей к позиции последнего символа Ls из числа идентификаторов СКПИ, меньших или равных позиции последнего символа Ls из числа идентификаторов СКПИ.6. Способ по п.1, отличающийся тем, что, если количество оставшихся символов больше или равно длины субкода, позицию последнего символа Ls обновляют, представляя ее в виде Fs+Lsc-1, где Lsc - длина субкода.7. Способ по п.1, отличающийся тем, что, если количество оставшихся символов меньше длины субкода, то позицию последнего символа Ls определяют как позицию, представленную в виде (Lsc-NRES) - NXNCR-1, где Lsc указывает длину субкода, NRES указывает количество оставшихся символов, N указывает длину ККТК, a NCR указывает частоту повторения, определенную для формирования кодового слова длиной N.8. Способ передачи субкода, определенного скоростью субкода, идентичной или отличающейся от скорости кода турбокодера, в соответствии с условиями в канале из квазикомплементарного турбокода (ККТК), формируемого турбокодером, принимающим информационный поток и работающим с упомянутой скоростью кода, причем способ включает:

вычисление количества оставшихся символов, представленного как N-Fs, где N - длина кодового слова ККТК, a Fs - позиция стартового символа субкода ККТК, который должен быть передан;

определение позиции последнего символа Ls субкода путем отсчета от первой позиции символа оставшихся символов в количестве, равном количеству субкодов, которые должны быть переданы; и

последовательную передачу символов субкода с позиции стартового символа Fs до позиции последнего символа Ls.

9. Способ по п.8, отличающийся тем, что включает выбор позиции стартового символа субкода повторной передачи, как (Ls+1)mod N, где Ls - позиция последнего символа, а N - длина ККТК, чтобы ответить на запрос на повторную передачу для переданного субкода.10. Способ по п.8, отличающийся тем, что, если количество оставшихся символов больше или равно длины субкода, позицию последнего символа Ls обновляют, представляя ее как Fx+Lsc-1, где Lsc - длина субкода.11. Способ по п.8, отличающийся тем, что, если количество оставшихся символов меньше длины субкода, то позицию последнего символа Ls определяют как позицию, представленную в виде (Lsc-NRES) - NxNCR-1, где Lsc указывает длину субкода, NRES указывает количество оставшихся символов, N указывает длину ККТК, a NCR указывает частоту повторения, определенную для формирования кодового слова длиной N.12. Устройство для передачи субкода в системе связи, содержащее

турбокодер;

перемежитель для перемежения потока символов из турбокодера; и

генератор субкода для формирования квазикомплементарного турбокода (ККТК) путем приема потока символов после их перемежения в перемежителе и передачи субкода, определенного субкодом, одинаковым или отличающимся от скорости кода турбокодера из ККТК;

причем генератор субкода включает

сегментацию длины N кода ККТК на заранее установленное количество отрезков, определение субкодовых пакетных идентификаторов (СКПИ), соответствующих сегментированным отрезкам, и задание одного из СКПИ, выделенного для начальной передачи субкода;

вычисление количества оставшихся символов, представленного как N-Fs, где N – длина ККТК, a Fs - позиция стартового символа субкода ККТК, который должен быть передан;

определение позиции последнего символа Ls субкода путем отсчета от первой позиции символа оставшихся символов в количестве, равном количеству субкодов, которые должны быть переданы; и

последовательную передачу символов субкода с позиции стартового символа Fs до позиции последнего символа Ls.

13. Устройство по п.12, отличающееся тем, что генератор субкода выбирает в качестве позиции стартового символа субкода повторной передачи, идентификатор СКПИ, ближайшего к позиции последнего символа Ls из числа идентификаторов СКПИ за исключением заданного СКПИ, чтобы ответить на запрос на повторную передачу для переданного субкода.14. Устройство по п.13, отличающееся тем, что ближайшим СКПИ является СКПИ, находящийся на позиции, ближайшей к позиции последнего символа Ls из числа идентификаторов СКПИ, меньших или равных позиции последнего символа Ls из числа идентификаторов СКПИ.15. Устройство по п.12, отличающееся тем, что генератор субкода выбирает в качестве позиции стартового символа субкода повторной передачи, идентификатор СКПИ, ближайший к позиции последнего символа Ls из числа идентификаторов СКПИ, чтобы ответить на запрос на повторную передачу для переданного субкода.16. Устройство по п.15, отличающееся тем, что ближайшим СКПИ является СКПИ, находящийся на позиции, ближайшей к позиции последнего символа Ls из числа идентификаторов СКПИ, меньших или равных позиции последнего символа Ls из числа идентификаторов СКПИ.17. Устройство по п.12, отличающееся тем, что, если количество оставшихся символов больше или равно длины субкода, генератор субкода обновляет позицию последнего символа Ls на позицию, представленную в виде Fs+Lsc-1, где Fs - позиция стартового символа, a Lsc - длина субкода.18. Устройство по п.12, отличающееся тем, что, если количество оставшихся символов меньше длины субкода, генератор субкода выбирает в качестве позиции последнего символа Ls позицию, представленную в виде (Lsc-NRES)-NxNCR-1, где Lsc указывает длину субкода, NRES указывает количество оставшихся символов, N указывает длину ККТК, a NCR указывает частоту повторения, определенную для формирования кодового слова длиной N.19. Устройство для передачи субкода в системе связи, содержащее:

турбокодер;

перемежитель для перемежения потока символов из турбокодера; и

генератор субкода для формирования квазикомплементарного турбокода (ККТК) путем приема потока символов после их перемежения в перемежителе и передачи субкода, определенного субкодом, одинаковым или отличающимся от скорости кода турбокодера из ККТК;

причем генератор субкода включает:

вычисление количества оставшихся символов, представленного как N-Fs, где N - длина ККТК, а Fs - позиция стартового символа субкода ККТК, который должен быть передан;

определение позиции последнего символа Ls субкода путем отсчета от первой позиции символа оставшихся символов в количестве, равном количеству субкодов, которые должны быть переданы; и

последовательную передачу символов субкода с позиции стартового символа Fs до позиции последнего символа Ls.

20. Устройство по п.19, отличающееся тем, что генератор субкода выбирает позицию стартового символа субкода повторной передачи, представленную как (Ls+1)mod N, где Ls - позиция последнего символа, а N - длина ККТК, чтобы ответить на запрос на повторную передачу для переданного субкода.21. Устройство по п.19, отличающееся тем, что, если количество оставшихся символов больше или равно длины субкода, то генератор субкода обновляет позицию последнего символа Ls на позицию, представленную в виде Fs+Lsc-1, где Fs - позиция стартового символа, a Lsc - длина субкода.22. Устройство по п.19, отличающееся тем, что, если количество оставшихся символов меньше длины субкода, то генератор субкода выбирает в качестве позиции последнего символа Ls позицию, представленную в виде (Lsc-NRES)-NxNCR-1, где Lsc указывает длину субкода, NRES указывает количество оставшихся символов, N указывает длину ККТК, a NCR указывает частоту повторения, определенную для формирования кодового слова длиной N.23. Способ повторной передачи субкода, определенного скоростью субкода, идентичной или отличающейся от скорости кода турбокодера, в соответствии с условиями в канале из квазикомплементарного турбокода (ККТК), формируемого турбокодером, принимающим информационный поток и работающим с упомянутой скоростью кода, причем способ включает:

сегментацию длины N кода ККТК на заранее установленное количество отрезков, определение субкодовых пакетных идентификаторов (СКПИ), соответствующих сегментированным отрезкам, и задание одного из СКПИ, выделенного для начальной передачи субкода;

определение количества символов субкода, которое должно быть передано;

отбор Fs (позиции стартового символа субкода), минимизирующей количество повторных символов, путем сравнения каждой Fs, соответствующей сегментированным отрезкам, с ранее переданными символами; и

передачу количества символов субкода, которые должны быть переданы на отобранной Fs.

Документы, цитированные в отчете о поиске Патент 2005 года RU2251794C2

D.Divsalar et al
"Iterative Turbo Decoder Analysis Based on Density Evolution", IEEE Journal on Selected Areas in Communications, Vol.19 №5 May 2001.US 5983384 A1, 09.11.1999
ПЕРЕДАЧА СИГНАЛОВ С ПЕРЕМЕННОЙ СКОРОСТЬЮ В СИСТЕМЕ СВЯЗИ С РАСШИРЕННЫМ СПЕКТРОМ С ИСПОЛЬЗОВАНИЕМ ГРУППОВОГО КОДИРОВАНИЯ 1994
  • Ифрейм Зехави
RU2142201C1
СПОСОБ ОРТОГОНАЛЬНОЙ РАЗНЕСЕННОЙ ПЕРЕДАЧИ-ПРИЕМА СИГНАЛА В СОТОВОЙ СИСТЕМЕ РАДИОСВЯЗИ С КОДОВЫМ РАЗДЕЛЕНИЕМ КАНАЛОВ 1998
  • Гармонов А.В.
  • Карпитский Ю.Е.
RU2145152C1

RU 2 251 794 C2

Авторы

Ким Мин-Гоо

Ха Санг-Хиук

Чой Хо-Киу

Даты

2005-05-10Публикация

2002-05-08Подача