Forbidden

You don't have permission to access /zzz_siteguard.php on this server.

АДРЕСНЫЙ ГЕНЕРАТОР И СПОСОБ ГЕНЕРИРОВАНИЯ АДРЕСА ДЛЯ ИСПОЛЬЗОВАНИЯ В ТУРБОПЕРЕМЕЖИТЕЛЕ/ОБРАЩЕННОМ ПЕРЕМЕЖИТЕЛЕ - Патент РФ 2186460
Главная страница  |  Описание сайта  |  Контакты
АДРЕСНЫЙ ГЕНЕРАТОР И СПОСОБ ГЕНЕРИРОВАНИЯ АДРЕСА ДЛЯ ИСПОЛЬЗОВАНИЯ В ТУРБОПЕРЕМЕЖИТЕЛЕ/ОБРАЩЕННОМ ПЕРЕМЕЖИТЕЛЕ
АДРЕСНЫЙ ГЕНЕРАТОР И СПОСОБ ГЕНЕРИРОВАНИЯ АДРЕСА ДЛЯ ИСПОЛЬЗОВАНИЯ В ТУРБОПЕРЕМЕЖИТЕЛЕ/ОБРАЩЕННОМ ПЕРЕМЕЖИТЕЛЕ

АДРЕСНЫЙ ГЕНЕРАТОР И СПОСОБ ГЕНЕРИРОВАНИЯ АДРЕСА ДЛЯ ИСПОЛЬЗОВАНИЯ В ТУРБОПЕРЕМЕЖИТЕЛЕ/ОБРАЩЕННОМ ПЕРЕМЕЖИТЕЛЕ

Патент Российской Федерации
Суть изобретения: Изобретение относится к турбоперемежителю /обращенному перемежителю в системе радиосвязи. В адресном генераторе первый счетчик подсчитывает множество тактовых импульсов, генерирует первый групповой счет, который индицирует один из групповых адресов блока перемежения на каждом тактовом импульсе, генерирует перенос после подсчета заданного числа тактовых импульсов, а второй счетчик принимает перекос из первого счетчика, подсчитывает его, генерирует позиционный счет, индицирующий один из позиционных адресов в каждой группе. Контроллер управляет первым и вторым счетчиками. Операционное устройство подвергает групповой счет и позиционный счет расчету по формуле рекурсии и генерирует результирующие разряды. Буфер запоминает пригодные адреса, образованные из реверсивных разрядов, принятых от блока реверсирования разрядов, и результирующие разряды, принятые от операционного устройства. Достигаемый технический результат - генерирование адреса в каждом заданном периоде для турбоперемежения/обращенного перемежения. 6 с. и 6 з.п.ф-лы, 7 ил., 9 табл.
Поиск по сайту

1. С помощью поисковых систем

   С помощью Google:    

2. Экспресс-поиск по номеру патента


введите номер патента (7 цифр)

3. По номеру патента и году публикации

2000000 ... 2099999   (1994-1997 гг.)

2100000 ... 2199999   (1997-2003 гг.)
Номер патента: 2186460
Класс(ы) патента: H03M13/27
Номер заявки: 2000130216/09
Дата подачи заявки: 03.04.2000
Дата публикации: 27.07.2002
Заявитель(и): САМСУНГ ЭЛЕКТРОНИКС КО., ЛТД. (KR)
Автор(ы): КИМ Мин-Гоо (KR); КИМ Беонг-Дзо (KR); ЛИ Янг-Хван (KR)
Патентообладатель(и): САМСУНГ ЭЛЕКТРОНИКС КО., ЛТД. (KR)
Описание изобретения: Область техники, к которой относится изобретение
Настоящее изобретение относится в целом к турбоперемежителю/обращенному перемежителю в системе радиосвязи и в частности, к адресному генератору и способу генерирования адреса для использования в турбоперемежителе/обращенном перемежителе.
Уровень техники
Турбокодер (т. е. кодер, использующий турбокоды) может использоваться в качестве кодера для системы радиосвязи, такой как спутниковая система, ЦСКУ (цифровая сеть с комплексными услугами), цифровая система сотовой связи, Ш-МДКР (широкополосная система множественного доступа с кодовым разделением каналов) и международная система мобильной связи-2000 IMT-2000 (МДКР-2000). Турбокодер включает в себя перемежитель, который рандомизирует информацию, вводимую в турбокодер. Перемежитель является существенным фактором в характеристике турбокодера, потому что он улучшает разнесение кодовых слов.
Фиг. 1 представляет собой блок-схему турбокодера с турбоперемежителем, к которому применимо настоящее изобретение. Подробности см. в патенте США 5446747, опубликованном 19 августа 1995 года.
На фиг. 1 турбокодер содержит первый основной кодер 10 для кодирования входных кадровых данных dk в Y1k, перемежитель 30 для перемежения входных кадровых данных dk и второй основной кодер 20 для кодирования выходного сигнала перемежителя 30 в Y2k. Для входных данных dk на фиг.1 показаны выходы турбо кодера Хk без кодирования, Y1k после кодирования и Y2k после перемежения и кодирования. Первый и второй основной кодеры 10 и 20 могут быть РСС (рекурсивными систематическими сверточными) кодерами, которые общеизвестны в уровне техники. Основные кодеры могут изменяться по конструкции в зависимости от их скорости передачи кода.
Перемежитель 30, имея длину перемежения, равную длине кадра данных, изменяет порядок в последовательности битов входных данных и выводит биты данных с измененным порядком на второй основной кодер 20, снижая тем самым корреляцию между битами данных.
Перемежитель 30 включает в себя адресный генератор 32, счетчик 34 и память 36 перемежителя. Память 36 перемежителя запоминает входные кадровые данные dk согласно адресам записи, принятым от счетчика 34, и выдает данные согласно адресам считывания, принятым от адресного генератора 32. Адресный генератор 32 генерирует адрес считывания, который используется для переупорядочивания битов данных, и подает этот адрес считывания в память 36 перемежителя. Адрес считывания генерируется согласно длине кадра входных данных и символьному тактовому сигналу. Счетчик 34 принимает символьные тактовые импульсы и выдает подсчитанное значение символьных тактовых импульсов в качестве адреса записи в память 36 перемежителя. Перемежитель 30 выводит данные, запомненные в памяти 36 перемежителя, на второй основной кодер 20.
В качестве внутреннего перемежителя для турбокодера могут использоваться различные перемежители, такие как ПШ (псевдошумовой) случайный перемежитель, случайный перемежитель, блоковый перемежитель, нелинейный перемежитель или S-случайный перемежитель. Эти перемежители, однако, используют алгоритмы, разработанные в академической среде для целей улучшения характеристик, а не алгоритмы, разработанные из практических задач. Эти перемежители часто не осуществимы из-за сложности их воплощения в аппаратуре.
В описании IMT-2000 и в описании IS-95C турбокодер линейной конгруэнтной последовательности (ЛКП), составленный, как показано на фиг.1, в последнее время принят в качестве турбокодера. Конкретно, предусмотрено, что турбокоды должны использоваться для дополнительного канала, который является каналом передачи по эфирному интерфейсу IMT-2000 и IS-95C, и для канала данных в УСМС (универсальная система мобильной связи), разработанным ЕИСЭ (Европейским институтом стандартов электросвязи).
Фиг. 2 является блок-схемой адресного генератора 32, показанного на фиг. 1.
На фиг. 2 нижние 5 битов или младшие двоичные разряды (МДР) выходного сигнала входного счетчика 110 подаются в просмотровую таблицу 130 для запоминания значений начальных чисел (С-значений) каждой группы и блок 140 реверсирования разрядов. 5 нижних битов индицируют одну из 25 групп перемежающихся блоков, которая определяется согласно размеру перемежителя. Блок 140 реверсирования разрядов реверсирует младшие 5 разрядов и прикладывает реверсированные разряды к наивысшей позиции или старшим двоичным разрядам (СДР) генератора 160 выбора адреса. Просмотровая таблица 130 подает n-разрядное С-значение, основанное на введенных младших 5 разрядах, в устройство 150 перемножения и сложения по модулю.
В то же время старшие 5 разрядов или СДР, выданные из внутреннего счетчика 110, подаются в первый сумматор 120. Здесь старшие n разрядов индицируют один из 2n адресов в каждой группе и используются в качестве переменной для изменения порядка битов данных в группе. Первый сумматор 110 добавляет 1 к принятым старшим n разрядам и подает сумму на устройство 150 перемножения и сложения по модулю. Устройство 150 перемножения и сложения по модулю подвергает входные n разрядов и начальное n-разрядное значение С каждой группы перемножению и сложению по модулю, а затем подает результат на генератор 160 выбора адреса. Сложение по модулю относится к остальным младшим n разрядам суммы, получающейся из перемножения выхода сумматора 120 на выход просмотровой таблицы 130. Генератор 160 выбора адреса формирует адрес, в котором выходом блока 140 реверсирования разрядов для турбоперемежения являются старшие 5 разрядов, СДР, а выходом устройства 150 перемножения и сложения по модулю являются младшие n разрядов МДР. Если формируемый адрес больше или равен размеру адреса турбоперемежителя, генератор 160 выбора адреса отбрасывает этот адрес. Т.е. генератор 160 выбора адреса выводит адрес только если он меньше, чем размер адреса турбоперемежителя. Выведенный адрес подается в качестве адреса для памяти перемежителя, показанной на фиг.1.
Поскольку многие из адресов, выводимых из адресного генератора, показанного на фиг.2, перфорируются (выбраковываются), адреса генерируются прерывисто. В результате аппаратурная сложность возрастает при создании реальной системы.
Прерывистое генерирование адресов делает невозможной регулярную адресацию, что подразумевает невозможность поддерживать постоянным тактирование турбодекодера в реальном аппаратном воплощении, потому что синхронизация турбодекодера базируется на символьном тактовом сигнале или адресующем тактовом сигнале перемежителя.
Сущность изобретения
Таким образом, задача настоящего изобретения заключается в создании адресного генератора и способа генерирования адреса в системе радиосвязи, которые генерируют адрес в каждом заданном периоде для турбоперемежения/обращенного перемежения.
Другая задача настоящего изобретения заключается в создании адресного генератора и способа генерирования адреса в системе радиосвязи, которые поддерживают постоянным тактирование турбодекодера.
Еще одна задача настоящего изобретения заключается в создании адресного генератора и способа генерирования адреса в системе радиосвязи, которые устраняют аппаратурную сложность при осуществлении турбодекодера.
Эти и иные задачи решаются путем создания адресного генератора и способа генерирования адреса. Согласно одному аспекту настоящего изобретения адресный генератор генерирует пригодные адреса, которых меньше, чем 2k+n, и которые поделены на 2k групп, каждая из которых имеет 2n позиционных адресов без перфорирования (выбраковывания) адресов из непригодных групп и непригодных адресов из групп, в которых пригодные адреса имеются частично. В адресном генераторе первый счетчик подсчитывает тактовые импульсы, генерирует первое значение группового счета, состоящее из k разрядов и индицирующее одну из 2k групп на каждом тактовом импульсе, и генерирует перенос после подсчета 2k тактовых импульсов.
Второй счетчик принимает перенос от первого счетчика, подсчитывает переносы и генерирует первое значение позиционного счета, состоящее из n разрядов и индицирующее один из 2n позиционных адресов. Контроллер запоминает вторые значения группового счета, представляющие непригодные группы, третьи значения группового счета, представляющие группы как с пригодными, так и с непригодными позиционными адресами, и вторые значения позиционного счета, представляющие непригодные позиционные адреса. Если первое значение группового счета является одним из вторых значений группового счета или же первое значение группового счета является одним из третьих значений группового счета и первое значение позиционного счета является одним из вторых значений позиционного счета, контроллер управляет первым и вторым счетчикам и так, чтобы они не выводили первое значение группового счета и первое значение позиционного счета.
Блок реверсирования разрядов принимает k разрядов от первого счетчика и реверсирует эти k разрядов (изменяет порядок их следования на обратный). Операционное устройство принимает первое значение группового счета и первое значение позиционного счета, осуществляет над принятыми значениями счета операцию С•(j+1) mod 2n (С - значение начального числа, соответствующее первому значению группового счета, а j - первое значение позиционного счета) и генерирует результат i. Буфер запоминает пригодные адреса, образованные из реверсированных разрядов, принятых от блока реверсирования разрядов, и разряды i, принятые от операционного устройства.
Краткое описание чертежей
Вышеуказанные и другие задачи, признаки и преимущества настоящего изобретения станут понятны из нижеследующего подробного описания при рассмотрении его с сопровождающими чертежами, на которых:
Фиг.1 представляет собой блок-схему типичного турбоперемежителя, к которому применимо настоящее изобретение;
Фиг. 2 представляет собой блок-схему обычного адресного генератора для турбоперемежения;
Фиг. 3 представляет собой блок-схему адресного генератора для турбоперемежения согласно предпочтительному примеру выполнения настоящего изобретения;
Фиг.4 представляет собой подробную блок-схему входного счетчика по фиг.3 согласно предпочтительному примеру выполнения настоящего изобретения;
Фиг. 5 является блок-схемой алгоритма, иллюстрирующего вариант способа генерирования адреса согласно предпочтительному примеру выполнения настоящего изобретения;
Фиг. 6 является блок-схемой алгоритма другого варианта способа генерирования адреса согласно предпочтительному примеру выполнения настоящего изобретения;
Фиг.7 иллюстрирует пример операций счета во входном счетчике, показанном на фиг. 4, согласно предпочтительному примеру выполнения настоящего изобретения.
Подробное описание предпочтительных примеров выполнения
Ниже со ссылками на сопровождающие чертежи будут описаны предпочтительные примеры выполнения настоящего изобретения. В нижеследующем описании общеизвестные функции или конструкции не описываются подробно, поскольку они затемняли бы изобретение ненужными подробностями.
Изобретатель настоящего изобретения обнаружил, что непригодные адреса генерируются в соответствии с определенным правилом. Как установлено выше, непригодные адреса представляют собой адреса, большие или равные размеру турбоперемежителя (или длине входного кадра), и, таким образом, должны быть отброшены. Правило будет описано дальше. В предпочтительном примере выполнения настоящего изобретения исходные значения, из которых генерируются непригодные адреса, заранее пропускаются, используя регулярность среди непригодных адресов. В результате пригодные адреса для турбоперемежителя/обращенного перемежителя генерируются непрерывно для каждого заданного периода, так что трудность, связанная с прерывистым генерированием, преодолевается.
В соответствии с предпочтительным примером выполнения настоящего изобретения адресный генератор для турбоперемежителя построен, как показано на фиг. 3, для генерирования только пригодных адресов в течение каждого заданного периода. Поскольку турбообращенное перемежение является обратной операцией к турбоперемежению, настоящее изобретение применимо как к турбообращенному перемежителю, так и к турбоперемежителю. Очевидно, поэтому, хотя предпочтительный пример выполнения настоящего изобретения описывается в контексте турбоперемежителя, оно может быть применено и к турбообращенному перемежителю. В дополнение, нижеследующее описание проводится с помощью примера в предположении, что число перемежающихся групп равно 25(=32), но это может быть любое число 2k, как будет позже описано ниже.
Фиг. 3 является блок-схемой адресного генератора согласно предпочтительному примеру выполнения настоящего изобретения.
На фиг. 3 адресный генератор предпочтительного примера выполнения включает в себя контроллер 200, входной счетчик (ВХ_СЧЕТЧИК) 210 и блоки 120-150 генерирования адреса для рандомизации входных адресов и генерирования адресов турбоперемежения из рандомизированных адресов. Сумматор 120, просмотровая таблица 130, блок 140 реверсирования разрядов и устройство 150 перемножения и сложения по модулю являются типичными компонентами, как это рассмотрено в общепринятом адресном генераторе, показанном на фиг.2. Другие компоненты - контроллер 200 и счетчик 210 - характерны для предпочтительного примера выполнения настоящего изобретения.
Контроллер 200 преобразует заданное значение размера турбоперемежителя (длину входного кадра) Nturbo в соответствующее двоичное число и путем анализа этого двоичного числа определяет, какие адреса следует отбросить среди адресов, которые могут быть сгенерированы. Здесь для отбрасывания выбираются адреса, больше или равные Nturbo. Входной счетчик 210 под управлением контроллера 200 непрерывно выдает адресные разряды для использования при генерировании остальных адресов.
Конкретно, контроллеру 200 необходимо анализировать старшие 5 разрядов - СДР (первый порог) адреса конечного двоичного числа, представляющего число перемежающихся блоковых групп, для определения, какие адреса имеют старшие 5 разрядов больше, чем первый порог, и отбросить их. Однако, когда адрес конечного двоичного числа выводится из адресного буфера 220, уже слишком поздно гарантировать, что выходной адрес является пригодным. Поэтому в предпочтительном примере выполнения настоящего изобретения контроллер анализирует младшие 5 разрядов - МДР, подлежащие выведению из входного счетчика 210, потому что эти пять МДР, будучи реверсированы в блоке 140 реверсирования разрядов, становятся пятью СДР конечного выходного адреса. Таким образом, контроллер может исключить непригодные адреса до того, как они будут созданы. Входной счетчик 210 под управлением контроллера 200 лишь выводит исходные разряды, которые будут генерировать пригодные адреса.
Когда входной счетчик 210 собирается генерировать исходные разряды (5 МДР), которые будут генерировать выходной адрес с пятью СДР, равными первому порогу, контроллер 200 управляет входным счетчиком 210 на основании оставшихся исходных разрядов, а именно n СДР, подлежащих выведению из входного счетчика 210. В отношении конечного выходного адреса, когда он имеет старшие 5 разрядов, равными первому порогу, он будет отброшен, если полный адрес (равный старшим 5 разрядам и младшим n разрядам) больше или равен Nturbo. С другой стороны, если полный конечный выходной адрес (равный старшим 5 разрядам и младшим n разрядам) меньше, чем Nturbo, этот полный адрес может быть использован. Поэтому определение того, какие адреса выборочно генерировать или отбрасывать, зависит от младших n разрядов (второй порог) двоичного числа. По отношению ко входному счетчику 210 это означает, что контроллер должен управлять входным счетчиком 210 так, чтобы он вырабатывал только старшие n, т. е. СДР, исходные разряды, которые завершат генерирование младших n, т.е. МДР, выходных разрядов, которые меньше второго порога.
Входной счетчик 210 под управлением контроллера 200 не выдает никаких значений счета или исходных разрядов, которые будут генерировать выходные адреса больше или равные Nturbo, как установлено выше. По сравнению со счетчиком 110 прототипа, который выдает значения счета [0...2n+5-1], включая и значения счета, которые будут генерировать адреса больше или равные Nturbo, и тем самым подлежащие отбрасыванию, входной счетчик 210 выдает значения счета [0. . . Nturbo-1], которые будут генерировать только адреса меньше, чем Nturbo. Способ, которым контроллер 200 определяет, какие адреса подлежат отбрасыванию, и операция счета входного счетчика 210 будет пояснена в нижеследующем описании со ссылками на таблицы.
На фиг. 3 рандомизирующий блок, включающий в себя сумматор 120, просмотровую таблицу 130, блок 140 реверсирования разрядов и устройство 150 перемножения и сложения по модулю, рандимизирует входную адресную последовательность, подсчитываемую (или выводимую) входным счетчиком 210. В нижеследующем описании исходные разряды, выводимые входным счетчиком 210, будут называться входным адресом, тогда как конечные разряды, поступающие в выходной адресный буфер 220, будут называться выходным адресом. Сумматор 120 прибавляет конкретное значение "1" к старшим n разрядам входного адреса. Предположим, что принятое значение старших n разрядов, j=0, 1, 2,..., сумматор 120 выводит j+1=1, 2, 3,.... Просмотровая таблица 130 хранит множество начальных чисел (или С-значений), соответствующих конкретным группам, и выдает n-разрядное значение начального числа, соответствующее группе, представленной младшими пятью разрядами входного адреса.
Устройство 150 перемножения и сложения по модулю подвергает выходы сумматора 120 и просмотровой таблицы 130 перемножению и модульному сложению и выдает результат в качестве младших n разрядов, т.е. МДР, выходного адреса для турбоперемежения. Выходной сигнал перемножения и модульного сложения представляет собой сумму выходных сигналов сумматора 120 и просмотровой таблицы 130 с отброшенными младшими n разрядами. Если n-разрядное значение начального числа, соответствующее младшим пяти разрядам входного адреса, представляет собой С, а старшие n разрядов входного адреса есть j, то устройство 150 перемножения и модульного сложения выдает i (=С•(1+1) mod 2n) согласно формуле реверсирования ЛКП. Блок 140 реверсирования разрядов реверсирует (меняет порядок на обратный) младшие 5 разрядов, принятые из входного счетчика 210, и выдает реверсированные разряды в качестве старших пяти разрядов выходного адреса. Выходы блока 140 реверсирования разрядов и устройства 150 перемножения и модульного сложения образуют соответственно старшие 5 разрядов и младшие n разрядов выходного адреса. Затем выходной адрес запоминается в буфере 220 и подается в качестве адреса считывания в память 36 перемежителя на фиг.1.
Когда адресный генератор, показанный на фиг.3, применяется для турбоперемежителя, (5+n)-разрядный выходной адрес подается в качестве адреса считывания в память 36 перемежителя на выходной стороне турбоперемежителя. Если же адресный генератор применяется для турбообращенного перемежителя, (5+n)-разрядный выходной адрес подается в качестве адреса записи в память обращенного перемежителя.
Фиг. 4 является подробной блок-схемой входного счетчика 210, показанного на фиг.3.
На фиг.4 входной счетчик 210 содержит групповой счетчик (ГР_СЧЕТЧИК) 212 для подсчета младших пяти разрядов [4:0] входного адреса и индексный счетчик (ИНД_ СЧЕТЧИК) 214 для подсчета старших n разрядов [n-1:0] входного адреса. Счетчики 212 и 214 подсчитывают множество символьных тактовых импульсов, как показано на фиг. 1, и генерируют соответственно 5-разрядное и n-разрядное значение на каждом тактовом импульсе. Младшие 5 разрядов, выводимые из группового счетчика 212, индицируют одну из 25 групп в перемежающемся блоке, определяемом размером перемежителя, и подаются в просмотровую таблицу 130 и блок 140 реверсирования разрядов. Старшие n разрядов, выводимые из индексного счетчика 214, индицируют один из 2n адресов для каждой группы. Здесь каждый адрес используется в качестве переменной для изменения порядка битов данных в соответствующей группе. Перенос, генерируемый в процессе счета в групповом счетчике 212, подается в индексный счетчик 214 и в контроллер 200. По получении переноса контроллер проверяет значение, подсчитанное индексным счетчиком 214, и выборочно наращивает значение, подсчитанное групповым счетчиком 212. Т. е. групповой счетчик 212 под управлением контроллера 200 перескакивает соответствующее значение и подсчитывает следующее значение в конкретный момент времени, причем последовательно считает, начиная от [00000] . Начальное значение группового счетчика 212 составляет [00000] и начальное значение индексного счетчика составляет [00...00].
Групповой счетчик 212 является счетчиком младших разрядов для подсчета младших пяти разрядов входного адреса, младшие 5 разрядов которого определяют старшие 5 разрядов выходного адреса, а индексный счетчик 214 является счетчиком старших разрядов для подсчета старших n разрядов входного адреса, старшие n разрядов которого определяют младшие n разрядов выходного адреса. Согласно предпочтительному примеру выполнения настоящего изобретения входной счетчик 210 генерирует (n+5)-разрядный входной адрес, из которого выходной адрес генерируется согласно размеру турбоперемежителя, при этом никогда не генерируется входной адрес, на основании которого результирующий выходной адрес должен быть отброшен.
При 25 (=32) групп, выданных согласно размеру перемежителя, и 2n позиционных адресов в каждой группе адресный генератор, показанный на фиг.3 и 4, генерирует пригодные адреса, которые меньше, чем 25+n.
Адресный генератор по настоящему изобретению применим также к общему случаю, когда перемежающийся блок имеет 2 групп, а каждая группа включает в себя 2n адресов. В этом случае генерируются пригодные адреса, которые меньше 2k+n. Адресный генератор характеризуется тем, что он генерирует пригодные адреса без необходимости перфорирования (выбраковывания) адреса из непригодной группы или адреса из группы, в которой непригодны некоторые позиционные адреса.
Для этой цели групповой счетчик 212 в адресном генераторе подсчитывает множество тактовых импульсов. На каждом тактовом импульсе групповой счетчик 212 генерирует первое значение группового счета, которое состоит из k разрядов и индицирует одну из 2k групп, а затем генерирует значение переноса после подсчета k тактовых импульсов. Индексный счетчик 214 подсчитывает множество тактовых импульсов и генерирует первое значение позиционного счета, которое состоит из n разрядов и индицирует один из 2n адресов в группе на каждом тактовом импульсе. Контроллер 200 запоминает вторые значения группового счета, индицирующие непригодные группы, третьи значения группового счета, индицирующие группы, которые имеют как пригодные, так и непригодные позиционные адреса, и вторые значения позиционного счета, индицирующие непригодные позиционные адреса. Если первым значением группового счета является одно из вторых значений группового счета или же, если первым значением группового счета является одно из третьих значений группового счета и первым значением позиционного счета является одно из вторых значений позиционного счета, контроллер 200 управляет групповым счетчиком 212 и индексным счетчиком 214 так, чтобы первое значение группового счета и первое значение позиционного счета не выводились. Блок 140 реверсирования разрядов реверсирует разряды первого значения группового счета, состоящие из k разрядов. Реверсированные k разрядов запоминаются в выходном буфере 220 и используются как старшие k разрядов, СДР, выходного адреса.
Операционный блок, включающий в себя сумматор 120, просмотровую таблицу 130 и устройство 150 перемножения и модульного сложения, принимает первое значение группового счета, создает значение начального числа С, соответствующее первому значению группового счета, а затем генерирует результат i с помощью формулы реверсирования ЛКП C•(j+l) mod 2n (j является первым значением позиционного счета). Этот результат i запоминается в буфере 220 и используется в качестве младших n разрядов, МДР, выходного адреса для турбоперемежения/обращенного перемежения.
Анализ показывает, что последовательность отброшенных адресов следует правилу. Используя это правило, контроллер 200 управляет входным счетчиком 210 так, чтобы он не подсчитывал никакие значения, из которых могли бы генерироваться адреса, подлежащие отбрасыванию, тем самым преодолевая разрывность генерирования выходных адресов. Нижеследующее описание приводится в контексте турбоперемежителя ЛКП, применяемого в IS-95C, т.е. в контексте существующего турбокодека 1х, который поддерживает две скорости RS1 и RS2 передачи данных.
В табл. 1 Nturbo (=L) представляет собой размер реального турбо перемежителя (размер входных кадровых данных), а n является числом разрядов каждого позиционного адреса в каждой группе, как определено согласно Nturbo, т.е. значение для изменения порядка битов данных в каждой группе. К примеру, если Nturbo составляет 378, число адресов равно 512 (=29) согласно описанию IS-95C. Это значит, что каждый полный выходной адрес имеет 9 разрядов. Таким образом, число адресов в каждой группе равно 24, потому что согласно стандарту IS-95C в перемежающемся блоке заданы 25 (=32) групп. Значит, в каждом групповом адресе есть 5 разрядов и 4 разряда в каждом позиционном адресе в группе. М есть период ЛКП, 2n. Nturbo(2) или L(2) представляет собой значение размера турбоперемежителя, выраженное двоичным числом. Первый порог указывает старшие 5 разрядов в L(2). Второй порог представляет собой порог, указывающий младшие n разрядов в L(2) (тем самым исключая старшие 5 разрядов), выраженные десятичным числом. Любой полный адрес с групповым адресом, большим чем первый порог, является непригодным адресом. Любой полный адрес с групповым адресом, равным первому порогу, и с позиционным адресом большим или равным второму порогу, является непригодным адресом.
В табл. 1 L(2) имеет одни и те же старшие 5 разрядов или первый порог "10111" при RS1 и "10001" при RS2 независимо от Nturbo. При RS1 выходной адрес со старшими пятью разрядами больше, чем "10111", подлежит отбрасыванию. При RS2 выходной адрес со старшими пятью разрядами больше, чем "10001", подлежит отбрасыванию. Поэтому прерывистое генерирование выходных адресов можно предотвратить путем управления входным счетчиком 210, чтобы он не выводил входной адрес, младшие 5 разрядов которого будут генерировать старшие 5 разрядов выходного адреса, который должен быть отброшен. Поскольку старшие 5 разрядов, 5 СДР выходного адреса представляют собой реверсированные разряды младших 5 разрядов, 5 МДР, подсчитанных (или выданных) входным счетчиком 210, осуществляется управление входным счетчиком 210 так, чтобы он генерировал только входные адреса, в которых младшие 5 разрядов после их реверсирования не превышают порог старших 5 разрядов. Этот порог старших 5 разрядов, который является первым порогом = "10111" при RS1 и первым порогом = "10001" при RS2, реверсируется в "11101" и "10001". Следовательно, контроллер 200 управляет входным счетчиком 210 так, чтобы он не выводил входной адрес, младшие 5 разрядов которого после реверсирования больше, чем первый порог, для того, чтобы непрерывно генерировались пригодные выходные адреса.
Определение адресов, подлежащих отбрасыванию
Табл. 2 и 3 дают перечень значений счета группового счетчика 212, соответствующие адресам, подлежащим отбрасыванию среди выходных адресов, определенных согласно размеру турбо перемежителя при RS1 и RS2 соответственно.
В табл. 2 выходные адреса могут быть разделены на три вида (только два из которых показаны в табл. 2) согласно значениям их старших 5 разрядов при RS1. Выходные адреса: генерируются, если их 5 СДР (ВЫХ_АДРЕС [n+k-1:n] или ВЫХ_ АДРЕС [8: 5]) находятся в диапазоне от 00000 (=0) до 10111 (=22); отбрасываются, если они находятся в диапазоне от 11000 (=24) до 11111 (=31); и отбрасываются или генерируются согласно их младшим n разрядам, если они равны 10111 (= 23= первому порогу). 5 СДР или ВЫХ_АДРЕС[8:4] выходного адреса соответствуют 5 МДР или ГР_СЧЕТЧИК[4:0] = ГР_СЧЕТЧИК[k-1: 0] входного адреса.
Как следует из табл. 2, набор входных адресов, которые будут порождать непригодные выходные адреса, показан в уравнении (1) ниже. Точнее, десятичный эквивалент исходных разрядов входного адреса (или ГР_СЧЕТЧИК) для части групповых адресов из непригодных выходных адресов расположены в нарастающем порядке как арифметическая прогрессия с начальным значением 3 и арифметической разностью 4.
Отбрасываемые ГР_СЧЕТЧИК[4:0]= {3, 7, 11, 15, 19, 23, 27, 31} (1)
Если входной счетчик 210 не выдает никакие значения счета или входные адреса, при тех ГР_ СЧЕТЧИК, которые удовлетворяют уравнению (1), каждый выходной адрес будет меньше, чем Nturbo. Для того, чтобы это происходило, входной счетчик 210 сконструирован так, чтобы не генерировать никакие показатели или входные адреса, соответствующие непригодным адресам. Поскольку вышеуказанная последовательность образует арифметическую прогрессию с арифметической разностью 4, реальные входные адреса ВХ_СЧЕТЧИК[N+4:0] генерируются регулярно. Т.е. групповой счетчик 212 выдает в точности следующие десятичные эквиваленты:
ГР_ RS1 = {0, 1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 14, 16, 17, 18, 20, 21, 22, 24, 25, 26, 28, 29, 30}... (2)
Только групповые адреса, соответствующие значениям счета, которые включены в группу, показанную в уравнении (2), используются в качестве части групповых адресов в выходных адресах для турбоперемежителя ЛКП. Здесь используется одна и та же последовательность ВХ_СЧЕТЧИК для генерирования пригодных выходных адресов при RS1 вне зависимости от размеров турбоперемежителя. Т.е. групповой счетчик 212 просто генерирует двоичные эквиваленты десятичных, показанных в уравнении (2), при RS1 независимо от n.
Однако, если старшие 5 разрядов выходного адреса равны 10111 (=23) (ВЫХ_ АДРЕС[8:4]=(10111)), т.е. если младшие 5 разрядов входного адреса представляют собой ГР СЧЕТЧИК[4:0] =(11101), выходные адреса можно отбрасывать выборочно. Параметрами, используемыми для определения того, какие адреса нужно отбросить, являются ИНД_СЧЕТЧИК[N-1:0] и С.
В табл. 3 выходные адреса также подразделяются на три вида согласно значениям их старших 5 разрядов при RS2. Выходные адреса ВЫХ_АДРЕС[n+k-1:0] генерируются, если части групповых адресов ВЫХ_АДРЕС(n+k-1:n] выходных адресов находятся в диапазоне от 00000 (0) до 10000 (16); отбрасываются, если они находятся в диапазоне от 10010 (18) до 11111 (31); и отбрасывался или генерируются согласно их младшим n разрядам, если они равны 10001 (17).
Как следует из табл. 3, младшие 5 разрядов входных адресов, которые будут порождать непригодные выходные адреса, расположены в нарастающем порядке как арифметическая прогрессия с начальным значением 3 арифметической разностью 2.
Отбрасываемые ГР_СЧЕТЧИК[4:0] = {3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31} (3)
Если входной счетчик 210 не выдает никакие значения счета при тех ГР_ СЧЕТЧИК, которые удовлетворяют уравнению (3), каждый выходной адрес будет меньше, чем Nturbo. Это предполагает, что входной счетчик 210 сконструирован так, чтобы не генерировать адреса, относящиеся к непригодным выходным адресам. Поскольку вьшеукаэанная последовательность образует арифметическую прогрессию с арифметической разностью 2, реальные входные адреса ВХ_СЧЕТЧИК[n+4:0) генерируются регулярно, т.е групповой счетчик 212 выдает в точности двоичные эквиваленты десятичных значений, показанных в уравнении (4).
ГР_ RS2 = {0, 1, 2, 4, 6, 8, 10, 12, 14, 16, 17, 18, 20, 22, 24, 26, 28, 30}... (4)
Только адреса, соответствующие значениям счета, которые включены в группу, показанную в уравнении (4), используются в качестве выходных адресов для турбоперемежителя ЛКП. Здесь одна и та же последовательность ГР_СЧЕТЧИК используется для генерирования пригодных выходных адресов при RS2 вне зависимости от размера турбоперемежителя. Т.е. групповой счетчик 212 просто генерирует двоичные эквиваленты десятичных значений, показанных в уравнении (4) при RS2 независимо от n.
Однако, если старшие 5 разрядов выходного адреса равны 10001 (17) (ВЫХ_ АДРЕС[8: 4]-(10001)), т.е. младшие 5 разрядов входного адреса равны ГР_СЧЕТЧИК[4:0]=(10001), выходной адрес может быть выборочно отброшен. Параметрами, используемыми для определения того, нужно ли отбрасывать адрес, являются ИНД__СЧЕТЧИК[n-1:0] и С.
Выходные адреса можно генерировать на каждом символьном интервале путем конструирования группового счетчика 212 для выдачи его разрядов, т.е. младших 5 разрядов входного адреса, удовлетворяющих уравнению (2) или уравнению (4), как установлено выше. В случаях, когда ВЫХ_АДРЕС[8:4}=(10111), т.е. ГР_ СЧЕТЧИК[4: 0] =29 при RS1, и ВЫХ_АДРЕС[8:4]=(10001), т.е. ГР_СЧЕТЧИК[4:0]=17 при RS2, должна выполняться дополнительная процедура.
Табл. 4 и 5 показывают соотношение между n и С среди параметров турбоперемежителя ЛКЛ в IS-95C. В этих таблицах подчеркнутые позиции представляют группы, имеющие отброшенные адреса, а выделенные жирным шрифтом части представляют группы, имеющие отброшенные и генерируемые адреса. В отношении подчеркнутых групп входной счетчик 210 не выполняет никакие операции счета. С другой стороны, входной счетчик 210 подсчитывает значения для групп, выделенных жирным шрифтом. Вследствие этого все перемеженные адреса могут генерироваться без перфорирования (выбраковки) на выходном выводе турбоперемежителя ЛКП путем управления входным счетчиком 210 с учетом двух видов групп.
Табл. 4 показывает соотношение между n и С при RS1. Как отмечено в таблицах, входной счетчик 210 не работает в отношении групп с табличными индексами 3, 7, 11, 15, 19, 23, 27 и 31.
Табл. 5 показывает соотношение между n и С при RS2. Как отмечено в таблицах, входной счетчик 210 не работает в отношении групп с табличными индексами 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29 и 31.
Определение адресов, подлежащих выборочному отбрасыванию
Теперь будет дано описание выборочного отбрасывания или генерирования адресов, имеющих старшие 5 разрядов равными старшим 5 разрядам размера турбоперемежителя, выраженного двоичным числом. Адреса, которые принадлежат к группе 29 в табл. 4 или группе 17 в табл. 5, выборочно генерируются или отбрасываются путем управления индексным счетчиком 214.
В табл. 6 и 7 вопрос о том, генерировать или отбрасывать адреса со старшими 5 разрядами, равными старшим 5 разрядам размера турбоперемежителя, определяется согласно второму порогу, т.е. младшим n разрядам размера турбоперемежителя. Осуществляют управление индексным счетчиком 214 так, чтобы он не генерировал никакие входные адреса со старшими n разрядами, соответствующими младшим n разрядам выходного адреса, которые больше второго порога или равны ему. Например, если второй порог равен 10, как показано в табл. 6, то выходные адреса с младшим n разрядами больше или равными 10 (ВЫХ_ АДРЕС[n-1: 0] =(10, 11, 12, 13, 14, 15}) предполагаются подлежащими отбрасыванию. Поэтому входной счетчик 210 не должен генерировать входные адреса со старшими n разрядами, соответствующими этим определенным младшим n разрядам выходных адресов. Старшие n разрядов входного адреса, из которых генерируются определенные младшие n разрядов, могут быть получены путем реверсивного выполнения операции ЛКП, поскольку младшие п разрядов генерируются после операции ЛКП в сумматоре 120 и устройстве 150 перемножения и модульного сложения. Например, исходными старшими n разрядами входных адресов, соответствующих выходным адресам с младшими n разрядами из {10, 11, 12, 13, 14, 15} , являются {3, 4, 8, 9, 13, 14}. Поэтому осуществляется управление индексным счетчиком 214 так, чтобы он не подсчитывал ИНД_СЧЕТЧИК[n-1]={ 3, 4, 8, 9, 13, 14}, соответствующие определенным младшим n разрядам {10, 11, 12, 13, 14, 15}.
Табл. 6 дает список адресов со старшими 5 разрядами, равными 10111, и младшими n разрядами, которые больше или равны второму порогу и, следовательно, должны отбрасываться при RS1. К примеру, если Nturbo составляет 378, первый порог равен 10111 (=29), а второй порог равен 1010 (=10), как показано в табл. 1, адреса с комбинацией 10111 в качестве старших 5 разрядов отбрасываются, если они имеют младшие n разрядов {10, 11, 12, 13, 14, 15}, которые больше или равны n старшим разрядам {3, 4, 8, 9, 13, 14}, соответствующим {10, 11, 12, 13, 14, 15} через операцию реверсивного ЛКП под управлением контроллера 200. Поскольку не генерируются никакие входные адреса, которые порождают непригодные выходные адреса, входной счетчик 210 подсчитывает входные адреса для непрерывного генерирования только пригодных адресов.
Табл. 7 дает список адресов со старшими 5 разрядами, равными 10001, и младшими n разрядами, которые не меньше второго порога и, следовательно, подлежат отбрасыванию при RS2. К примеру, если Nturbo составляет 570, первый порог равен 10001(=17), а второй порог равен 11010 (=26), как показано в табл. 1, адреса с комбинацией 10001 в качестве старших 5 разрядов отбрасываются, если они имеют младшие n разрядов {26, 27, 28, 29, 30, 31}, которые больше или равны второму порогу. Поэтому индексный счетчик 214 не генерирует никакие входные адреса со старшими n разрядами {4, 9, 14, 19, 24, 29}, соответствующими { 26, 27, 28, 29, 30, 31} через операцию реверсивного ЛКП под управлением контроллера 200. Поскольку не генерируются никакие входные адреса, которые порождают непригодные выходные адреса, входной счетчик 210 подсчитывает входные адреса для непрерывного генерирования только пригодных адресов.
Табл. 8 дает список адресов при условиях RS1, ГР_СЧЕТЧИК[4:0] =29, n=4, С= 3 и второй порог = 10. В Таблице 8 ВЫХ_АДРЕС[8:4]=10111 (=23) является реверсированным значением от ГР_ СЧЕТЧИК[4:0]=11101 (=29). Следовательно, адреса со старшими 5 разрядами 10111, если они удовлетворяют условию ИНД_ СЧЕТЧИК[3; 0]∈{3, 4, 8, 9, 13, 14}, отбрасываются, как показано в Таблице 6. В том случае, когда ИНД_СЧЕТЧИК [ 3:0]∈(3, 4, 8, 9, 13, 14}, ГР_СЧЕТЧИК наращивается на 1, индицируя следующую группу. Поэтому значение ВХ_СЧЕТЧИК[n+4: 0] переносится в группу 30 без вывода индекса, соответствующего группе 29.
Табл. 9 дает список адресов при условиях RS1, ГР_СЧЕТЧИК[4:0]=29, n=5, С= 1 и второй порог = 26. В табл. 9 ВЫХ_АДРЕС[8:4]=10111 (=23) является реверсированным значением от ГР_СЧЕТЧИК[4:0]=11101 (=29). Следовательно, адреса со старшими 5 разрядами 10111, если они удовлетворяют условию ИНД_ СЧЕТЧИК[3: 0] ∈{25, 26, 27, 28, 29, 30}, отбрасываются, как показано в табл. 6. В том случае, когда ИНД СЧЕТЧИК[3:0] ∈{3, 4, 8, 9, 13, 14}, ГР__СЧЕТЧИК наращивается на 1, индицируя следующую группу. Поэтому значение ВХ_СЧЕТЧИК[n+4: 0] переносится в группу 30 без вывода индекса, соответствующего группе 29.
Процедура генерирования адресов
Фиг. 5 и 6 являются блок-схемами алгоритмов, иллюстрирующими первый и второй вариант осуществления способа генерирования адреса при RS1 и RS2 соответственно, согласно настоящему изобретению. Эта процедура управляется контроллером 200. В начальном состоянии групповой счетчик 212 и индексный счетчик 214 сброшены.
На фиг. 5 контроллер 200 сначала при операции 402 определяет, соответствует ли значение группового счетчика 212 (ВХ_СЧЕТЧИК) последовательности ГР_ RS1 {0, 1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 14, 16, 17, 18, 20, 21, 22, 24, 25, 26, 28, 29, 30}, показанной в уравнении (2). Если значение счета группового счетчика 212 соответствует "00000(0)", т.е. последовательности ГР_ RS1 при операции 402, контроллер 200 выдает адрес перемежения путем реверсирования разрядов и рандомизацией значения счета "00000(0)" в групповом счетчике 212 и значения счета "000...000 (0)" в индексном счетчике (ИНД_ СЧЕТЧИК) 214 при операциях 404 и 406. Поскольку значение счета "00000 (0)" в групповом счетчике 212 меньше, чем 32, и не равно 31, групповой счетчик 212 выдает увеличенное значение счета "00001(1)" при операции 410 после прохождения операций 408 и 414.
Работа при операциях 402, 404, 406, 408, 414 и 410, которая была выполнена на значении счета "00000(0)", выполняется аналогичным образом на увеличенном значении "00001(1)". Далее, работа при операциях 402, 404, 406, 408, 414 и 410 выполняется точно так же на следующем значении счета "00010(2)" тем же самым образом.
Если значение счета в групповом счетчике 212 равно "00011(3)", будет выполняться следующая операция. Если при операции 402 определено, что значение счета в групповом счетчике 212 не соответствует последовательности ГР_ RS1 {0, 1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 14, 16, 17, 18, 20, 21, 22, 24, 25, 26, 28, 29, 30}, показанной в уравнении (2), т.е. соответствует ряду {3, 7, 11, 15, 19, 23, 27, 31}, показанному в уравнении (1), контроллер 200 переходит непосредственно к операции 408 без прохождения операций 404 и 406 (т. е. перескакивая их). Иными словами, когда групповой счетчик 212 подсчитывает одно из значений ряда {3, 7, 11, 15, 19, 23, 27, 31}, показанного в уравнении (1), контроллер 200 не выдает соответствующее значение счета в качестве адреса перемежения. Равным образом, если значение счета в групповом счетчике 212 равно { 7, 11, 15, 19, 23, 27, 31}, показанному в уравнении (1), будет выполняться та же самая операция, как и в случае значения счета в групповом счетчике 212.
Как описано выше, в процессе увеличения значения счета в групповом счетчике 212 при операции 410, при операции 402 определяется, соответствует ли это значение счета последовательности ГP_RS1, показанной в уравнении (2). Если это так, выполняется операция 406 для выдачи адреса перемежения. Если это не так, операция 406 не выполняется, чтобы не выдавать адрес перемежения. Такая операция выполняется на всех пригодных значениях счета (0-31) в групповом счетчике 212. Такая операция выполняется в состоянии, когда значение счета в индексном счетчике 214 зафиксировано на конкретном значении. Например, начальное значение счета в индексном счетчике 214 зафиксировано на "000...000 (0)", и в процессе увеличения значения счета в групповом счетчике 212 в этом начальном состоянии значения счета, соответствующие последовательности ГP_ RS1, показанной в уравнении (2), выводятся в качестве адресов перемежения.
Между тем, когда все счетные значения в групповом счетчике 212 подсчитаны, групповой счетчик 212 генерирует перенос. Факт того, генерируется ли перенос групповым счетчиком 212, т.е. превосходит ли значение счета величину 32 в групповом счетчике 212, определяется контроллером 200 при операции 408. Если при операции 408 определяется, что перенос генерируется групповым счетчиком 212, контроллер 200 сбрасывает групповой счетчик 212, и индексный счетчик 214 подсчитывает увеличенное значение счета при операции 412. Операции 402, 404, 406, 408, 414 и 410 выполняются, повторяясь, и на увеличенном значении счета в индексном счетчике 214. Соответственно, в процессе увеличения значений счета в групповом счетчике 212 для увеличенного значения счета в индексном счетчике 214 значения счета, соответствующие последовательности ГP_ RS1, показанной в уравнении (2), выводятся в качестве адресов перемежения.
При выполнении такой работы по генерированию адресов, если при операции 404 определяется, что значение счета в групповом счетчике 212 равно 29, а значение счета в индексном счетчике 214 представляет собой любое из удаленных значений (например, {3, 4, 8, 9, 13, 14}), показанных в Таблице 6, процедура перескакивает операцию 406 и переходит непосредственно к операции 408, чтобы не генерировать входной адрес, соответствующий адресу, подлежащему удалению. Т.е., когда групповой счетчик 212 подсчитывает 29 в состоянии, при котором значение счета в индексном счетчике 214 является одним из удаленных значений, операция 406 перескакивается, чтобы не выводить соответствующее значение счета в качестве адреса перемежения.
Вышерассмотренная работа выполняется, повторяясь до тех пор, пока при операции 414 не определится, что значение счета в групповом счетчике 212 равно 31 (11111) и значения счета в индексном счетчике 214 равны все единицам (111...111).
На фиг.6 контроллер 200 сначала при операции 502 определяет, соответствует ли значение группового счетчика 212 (ВХ_СЧЕТЧИК) последовательности ГP_ RS2 {0, 1, 2, 4, 6, 8, 10, 12, 14, 16, 17, 18, 20, 22, 24, 26, 28, 29, 30}, показанной в уравнении (4). Если значение счета группового счетчика 212 соответствует "00000(0)", т.е. последовательности ГP_RS2 при операции 502, контроллер 200 выдает адрес перемежения путем реверсирования разрядов и рандомизацией значения счета "00000 (0)" в групповом счетчике 212 и значения счета "000...000 (0) " в индексном счетчике (ИНД_СЧЕТЧИК) 214 при операциях 504 и 506. Поскольку значение счета "00000 (0)" в групповом счетчике 212 меньше, чем 32, и не равно 31, групповой счетчик 212 выдает увеличенное значение счета "00001(1)" при операции 510 после прохождения операций 508 и 514.
Работа при операциях 502, 504, 506, 508, 514 и 510, которая была выполнена на значении счета "00000(0)", выполняется аналогичным образом на увеличенном значении "00001(1)". Далее, работа при операциях 502, 504, 506, 508, 514 и 510 выполняется точно так же на следующем значении счета "00010(2)" тем же самым образом.
Если значение счета в групповом счетчике 212 равно "00011(3)", будет выполняться следующая операция. Если при операции 502 определено, что значение счета в групповом счетчике 212 не соответствует последовательности ГР_ RS2 {0, 1, 2, 4, 6, 8, 10, 12, 14, 16, 17, 18, 20, 22, 24, 26, 28, 29, 30}, показанной в уравнении (4), т.е. соответствует ряду {3, 5, 7, 9, 11, 13, 15, 19, 21, 23, 25, 27, 29, 31}, показанному в уравнении (3), контроллер 200 переходит непосредственно к операции 508 без прохождения операций 504 и 506 (т. е. перескакивая их). Иными словами, когда групповой счетчик 212 подсчитывает одно из значений ряда {3, 5, 7, 9, 11, 13, 15, 19, 21, 23, 25, 27, 29, 31} , показанного в уравнении (3), контроллер 200 не выдает соответствующее значение счета в качестве адреса перемежения. Равным образом, если значение счета в групповом счетчике 212 равно {3, 5, 7, 9, 11, 13, 15, 19, 21, 23, 25, 27, 29, 31}, показанному в уравнении (3), будет выполняться та же самая операция, как и в случае значения счета в групповом счетчике 212.
Как описано выше, в процессе увеличения значения счета в групповом счетчике 212 при операции 510, при операции 502 определяется, соответствует ли это значение счета последовательности ГP_RS2, показанной в уравнении (4). Если это так, выполняется операция 506 для выдачи адреса перемежения. Если это не так, операция 506 не выполняется, чтобы не выдавать адрес перемежения. Такая операция выполняется на всех пригодных значениях счета (0-31) в групповом счетчике 212. Такая операция выполняется в состоянии, когда значение счета в индексном счетчике 214 зафиксировано на конкретном значении. Например, начальное значение счета в индексном счетчике 214 зафиксировано на "000...000 (0)", и в процессе увеличения значения счета в групповом счетчике 212 в этом начальном состоянии значения счета, соответствующие последовательности ГP_ RS2, показанной в уравнении (4), выводятся в качестве адресов перемежения.
Между тем, когда все счетные значения в групповом счетчике 212 подсчитаны, групповой счетчик 212 генерирует перенос. Факт того, генерируется ли перенос групповым счетчиком 212, т.е. превосходит ли значение счета величину 32 в групповом счетчике 212, определяется контроллером 200 при операции 408. Если при операции 508 определяется, что перенос генерируется групповым счетчиком 212, контроллер 200 сбрасывает групповой счетчик 212, и индексный счетчик 214 подсчитывает увеличенное значение счета при операции 512. Операции 502, 504, 506, 508, 514 и 510 выполняются, повторяясь, и на увеличенном значении счета в индексном счетчике 214. Соответственно, в процессе увеличения значений счета в групповом счетчике 212 для увеличенного значения счета в индексном счетчике 214 значения счета, соответствующие последовательности ГР_ RS2, показанной в уравнении (4), выводятся в качестве адресов перемежения.
При выполнении такой работы по генерированию адресов, если при операции 504 определяется, что значение счета в групповом счетчике 212 равно 17, а значение счета в индексном счетчике 214 представляет собой любое из удаленных значений (например, {4, 9, 14, 19, 24, 29}), показанных в Таблице 1, процедура перескакивает операцию 506 и переходит непосредственно к операции 508, чтобы не генерировать входной адрес, соответствующий адресу, подлежащему удалению. Т.е., когда групповой счетчик 212 подсчитывает 17 в состоянии, в котором значение счета в индексном счетчике 214 является одним из удаленных значений, операция 506 перескакивается, чтобы не выводить соответствующее значение счета в качестве адреса перемежения.
Вышерассмотренная работа выполняется, повторяясь, до тех пор, пока при операции 514 не определится, что значение счета в групповом счетчике 212 равно 31 (11111) и значения счета в индексном счетчике 214 равны все единицам (111...111).
Фиг. 7 иллюстрирует пример операции счета во входном счетчике 210, показанном на фиг.4. Здесь входной счетчик 210 выполняет операцию подсчета [8:0] при том условии, что скорость передачи данных составляет RS1, турбоперемежитель имеет размер 378, согласно размеру турбоперемежителя в блоке перемежения даны 25 групп согласно размеру турбоперемежителя, каждая группа имеет 24 адресов, М(2n) равно 16, а второй порог составляет 10.
На фиг.7 обозначения ГР_СЧЕТ и ИНД-СЧЕТ означают значения счета соответственно группового счетчика 212 и индексного счетчика 214. Групповой счетчик 212 является 5-разрядным двоичным счетчиком, который считает от 0 до 31 (= 0000-1111) и генерирует значение группового счета. Индексный счетчик 214 является 4-разрядным двоичным счетчиком, который считает от 0 до 15 (= 0000-1111) и генерирует значение позиционного счета. Счетчики 212 и 214 генерируют адреса меньше, чем размер перемежителя, в качестве пригодных адресов под управлением контроллера 200. Если групповой счетчик 212 подсчитывает значения, индицирующие одну из отброшенных групп {3, 7, 11, 15, 19, 23, 27, 31}, контроллер 200 управляет групповым счетчиком 212 так, чтобы он считал значения, индицирующие следующую группу, без выведения значения счета. Т. е. контроллер 200 управляет групповым счетчиком 212 так, чтобы он генерировал значения группового счета без значений счета из отброшенных групп в виде следующих рядов: G0(00000)-->G1(00001)-->G2(00010)-->G4(00100)-->G5(00101)-->G6(00110)-->. ..--> G16(10000)-->G17(10001)-->...-->G30(11110).
Между тем контроллер 200 в качестве пригодных адресов выборочно генерирует адреса в группе, равной размеру перемежителя. Если групповой счетчик 212 подсчитывает группу 29, равную размеру перемежителя, а индексный счетчик 214 генерирует значение счета, содержащееся в {3, 4, 8, 9, 13, 14}, что означает, что выходной адрес является отброшенным адресом, контроллер 200 управляет индексным счетчиком 214 так, чтобы он генерировал следующее значение счета без выведения текущего значения счета. Т.е., когда значение счета в групповом счетчике 212 равно 29, контроллер 200 управляет индексным счетчиком 214 так, чтобы он генерировал только значения счета за исключением {3, 4, 8, 9, 13, 14}.
Как определить отброшенные группы и позиции, было описано с отображением отброшенных групп в уравнении (2) и Таблице 4, а отброшенные позиции показаны в Таблицах 6 и 8.
Как описано выше, настоящее изобретение гарантирует, что не будут генерироваться никакие входные адреса, соответствующие непригодным выходным адресам, благодаря чему адреса турбоперемежения/обращенного перемежения генерируются на каждом заданном интервале с помощью некоторого правила, которое содержится среди отброшенных адресов. Поэтому тактирование поддерживается постоянным для турбодекодера, а аппаратурная сложность при осуществлении турбодекодера значительно снижена.
Хотя изобретение показано и описано со ссылками на некоторые его предпочтительные примеры выполнения, специалисту в данной области техники будет понятно, что можно сделать различные изменения в виде и деталях изобретения без отхода от сущности и объема изобретения, которые определены формулой изобретения.
Формула изобретения: 1. Адресный генератор для генерирования пригодных адресов, которых меньше, чем 2k+n полных адресов, разделенных на 2k групп, каждая из которых имеет 2n позиционных адресов, без генерирования непригодных полных адресов, содержащий первый счетчик для подсчета множества тактовых импульсов, для генерирования группового счета, состоящего из k разрядов, индицирующих одну из 2k групп на каждом тактовом импульсе, и для генерирования переноса после подсчета 2k тактовых импульсов; второй счетчик для приема переноса от первого счетчика, для подсчета переносов и для генерирования позиционного счета, состоящего из n разрядов, индицирующих один из 2n позиционных адресов; контроллер для запоминания непригодных значений группового счета, представляющих непригодные группы, частично непригодных значений группового счета, представляющих группы, имеющие как пригодные, так и непригодные позиционные адреса, и непригодных значений позиционного счета, представляющих непригодные позиционные адреса, и для управления первым и вторым счетчиками так, чтобы они не выводили групповой счет и позиционный счет, если групповой счет является одним из непригодных значений группового счета или групповой счет является одним из частично непригодных значений группового счета и позиционный счет является одним из непригодных значений позиционного счета; блок реверсирования разрядов для приема и реверсирования k разрядов из первого счетчика; операционное устройство для приема группового счета и позиционного счета, для определения значения начального числа, соответствующего принятому групповому счету, для определения результирующих разрядов на основании уравнения: (значение начального числа) • (позиционный счет + 1) mod 2n; и буфер для запоминания пригодных адресов, образованных из реверсированных разрядов, принятых от блока реверсирования разрядов, и из результирующих разрядов, принятых от операционного устройства.
2. Способ генерирования пригодных адресов, которых меньше, чем 2k+n полных адресов, разделенных на 2k групп, каждая из которых имеет 2n позиционных адресов, без генерирования непригодных полных адресов, заключающийся в том, что подсчитывают множество тактовых импульсов; генерируют групповой счет на каждом тактовом импульсе, причем групповой счет состоит из k разрядов, индицирующих одну из 2k групп; генерируют перенос после того, как групповой счет подсчитает 2k тактовых импульсов; принимают перенос, подсчитывают переносы и генерируют позиционный счет на каждом тактовом импульсе, причем позиционный счет состоит из n разрядов, индицирующих один из 2n адресов; управляют групповым счетом и позиционным счетом так, чтобы не выводить их, если групповой счет является одним из непригодных значений группового счета, представляющих непригодные группы, или если групповой счет является одним из частично непригодных значений группового счета, представляющих группы, имеющие как пригодные, так и непригодные позиционные адреса, и позиционный счет является одним из непригодных значений позиционного счета, представляющих непригодные позиционные адреса; определяют значение начального числа, соответствующее групповому счету; определяют результирующие разряды на основе уравнения: результирующие разряды = (значение начального числа)•(позиционный счет + 1) mod 2n; реверсируют k разрядов из первого счетчика и генерируют пригодных адрес, образованный из реверсированных разрядов и результирующих разрядов.
3. Адресный генератор для генерирования пригодных адресов, которых меньше, чем 2k+n полных адресов, разделенных на 2k групп, каждая из которых имеет 2n позиционных адресов, без генерирования непригодных полных адресов, содержащий (k+n)-разрядный двоичный счетчик, включающий в себя: k-разрядный двоичный счетчик для подсчета множества тактовых импульсов, для генерирования группового счета, состоящего из k разрядов, причем групповой счет индицирует одну из 2k групп на каждом тактовом импульсе, и для генерирования переноса после подсчета 2k тактовых импульсов, и n-разрядный двоичный счетчик для приема переноса из k-разрядного двоичного счетчика и для генерирования позиционного счета j из n разрядов, индицирующего один из 2n адресов в группе; контроллер для запоминания непригодных значений группового счета, представляющих непригодные группы, частично непригодных значений группового счета, представляющих группы, имеющие как пригодные, так и непригодные позиционные адреса, и непригодных значений позиционного счета, представляющих непригодные позиционные адреса, и для управления (k+n)-разрядным двоичным счетчиком так, чтобы он не выводил групповой счет и позиционный счет, если групповой счет является одним из непригодных значений группового счета, или если групповой счет является одним из частично непригодных значений группового счета и позиционный счет является одним из непригодных значений позиционного счета; блок реверсирования разрядов для приема и реверсирования k разрядов из k-разрядного двоичного счетчика и операционное устройство для приема группового счета и позиционного счета, для определения значения начального числа, соответствующего принятому групповому счету, для генерирования результирующих разрядов на основании уравнения: результирующие разряды = (значение начального числа)•(позиционный счет + 1) mod 2n; при этом пригодные адреса образуются из реверсированных разрядов из блока реверсирования разрядов и из результирующих разрядов из операционного устройства.
4. Способ генерирования пригодных адресов, которых меньше, чем 2k+n полных адресов, разделенных на 2k групп, каждая из которых имеет 2n позиционных адресов, с помощью адресного генератора, имеющего (k+n)-разрядный двоичный счетчик для получения группового счета, состоящего из k разрядов, индицирующих одну из 2k групп, и позиционного счета, состоящего из n разрядов, индицирующих один из 2n адресов в каждой группе, блок реверсирования разрядов для реверсирования k разрядов группового счета и операционное устройство для приема группового счета и позиционного счета, определения значения начального числа и генерирования результирующих разрядов с помощью уравнения: (значение начального числа)•(позиционный счет + 1) mod 2n, заключающийся в том что генерируют групповой счет на каждом тактовом импульсе; генерируют перенос после того, как групповой счет подсчитает 2k тактовых импульсов; принимают перенос и генерируют позиционный счет на каждом тактовом импульсе и управляют групповым счетом и позиционным счетом так, чтобы не выводить их, если групповой счет является одним из непригодных значений группового счета, представляющих непригодные группы, или групповой счет является одним из частично непригодных значений группового счета, представляющих группы, имеющие как пригодные, так и непригодные позиционные адреса, и позиционный счет является одним из непригодных значений позиционного счета, представляющих непригодные позиционные адреса; при этом пригодные адреса образуют из реверсированных разрядов из блока реверсирования разрядов и из результирующих разрядов из операционного устройства.
5. Адресный генератор для генерирования адреса считывания/записи для памяти турбоперемежителя/обращенного перемежителя, содержащий первый счетчик для подсчета первой последовательности, представляющей одну из групп в блоке перемежения, определенной согласно заданному размеру перемежителя, и для выведения первого счета с каждым тактовым импульсом; второй счетчик для подсчета второй последовательности, представляющей один из позиционных адресов в каждой группе, и для выведения второго счета с каждым тактовым импульсом; контроллер для выражения размера перемежителя/обращенного перемежителя в виде двоичного числа для установки старших разрядов этого двоичного числа в качестве первого порога, который соответствует последней пригодной группе, для установки остальных разрядов двоичного числа в качестве второго порога, соответствующего первому непригодному позиционному адресу в последней пригодной группе, для управления первым счетчиком так, чтобы он не выводил первый счет, если этот первый счет после реверсирования больше, чем первый порог, и для управления вторым счетчиком так, чтобы он не выводил второй счет, если и второй счет после преобразования посредством операции ЛКП (линейной конгруэнтной последовательности) больше или равен второму порогу, и первый счет после реверсирования равен первому порогу; блок реверсирования разрядов для реверсирования первого счета и для выведения реверсированных разрядов в качестве старших разрядов для адреса считывания/записи и операционное устройство для выполнения операции ЛКП на первом и втором счете и для выведения обработанных разрядов в качестве младших разрядов адреса считывания/записи.
6. Адресный генератор по п. 5, отличающийся тем, что контроллер управляет первым счетчиком так, чтобы он выводил следующую группу в блоке перемежения, если значение первого счета после реверсирования является значением, превышающим первый порог.
7. Адресный генератор по п. 5, отличающийся тем, что контроллер управляет вторым счетчиком так, чтобы он выводил следующий позиционный адрес, если и первый счет является реверсированным значением первого порога, и второй счет после преобразования посредством операции ЛКП больше или равен второму порогу.
8. Адресный генератор по п. 7, отличающийся тем, что контроллер определяет, является ли второй счет после преобразования посредством операции ЛКП большим или равным второму порогу, путем сравнения этого второго счета со значениями счета, полученными путем выполнения упомянутой операции ЛКП в реверсированном виде на первом и втором порогах, и больше ли позиционные адреса, чем второй порог.
9. Адресный генератор по п. 5, отличающийся тем, что первый счетчик подсчитывает первый счет для представления одной из 32 групп блока перемежения.
10. Способ генерирования адресов в адресном генераторе, вырабатывающем для памяти турбоперемежителя/обращенного перемежителя выходной адрес считывания/записи, который состоит из старших и младших разрядов, причем старшие разряды являются выходами блока реверсирования разрядов, а младшие разряды являются выходами операционного устройства, которое выполняет формулу реверсирования ЛКП (линейной конгруэнтной последовательности), заключающийся в том, что выражают заданный размер перемежителя в виде двоичного числа; устанавливают старшие разряды этого двоичного числа на первый порог; устанавливают младшие разряды этого двоичного числа на второй порог; подсчитывают первый счет, представляющий одну из адресных групп в блоке перемежения, которую определяют согласно размеру перемежителя; выводят первый счет; подсчитывают второй счет, представляющий один из позиционных адресов в каждой группе; выводят второй счет; управляют первым счетом так, чтобы не выводить его, если этот первый счет после преобразования посредством блока реверсирования разрядов больше, чем первый порог; сравнивают результаты выполнения формулы реверсирования ЛКП на первом и втором счете со вторым порогом, если первый счет после преобразования посредством блока реверсирования разрядов равен первому порогу; управляют вторым счетом так, чтобы не выводить его, если результат выполнения формулы ЛКП на первом и втором счете равен второму порогу; подают выведенный первый счет в блок реверсирования разрядов и операционное устройство; подают выведенный второй счет в операционное устройство и генерируют выходной адрес считывания/записи.
11. Способ по п. 10, отличающийся тем, что дополнительно управляют первым счетом для индикации следующей группы в блоке перемежения, если первый счет является реверсированным значением значения большего, чем первый порог.
12. Способ по п. 10, отличающийся тем, что дополнительно управляют вторым счетом для индикации следующей позиции битов данных, если и результат выполнения формулы реверсирования ЛКП на первом и втором счете больше или равен второму порогу, и первый счет после реверсирования равен первому порогу.