Способ адаптивного канального кодирования и устройство для его осуществления
Изобретение относится к способам и устройствам адаптивного канального кодирования для систем связи. Предложен канальный кодер, имеющий сверточные кодеры, подключенные параллельно или последовательно. Канальный кодер содержит первый кодер для кодирования входных информационных битов, перемежитель, имеющий запоминающее устройство и генератор индексов, для изменения порядка информационных битов согласно заданному способу, второй кодер для кодирования выходного сигнала перемежителя, первое и второе устройства завершения для завершения блоков данных входных и выходных информационных битов первого и второго кодеров, генератор остаточных битов для запоминания остаточных битов, используемых в завершении блока данных, и контроллер, и переключатель для управления изложенной выше процедурой. Технический результат, достигаемый при реализации заявленной группы изобретений, состоит в обеспечении разных скоростей кодирования и снижения сложности декодера. 10 с. и 32 з.п. ф-лы, 13 ил., 9 табл.
Изобретение относится к способам и устройствам адаптивного канального кодирования для систем связи, в частности к способам и устройствам адаптивного кодирования для использования в передаче речи и данных.
Турбокодер, имеющий параллельную или последовательную структуру, формирует символы четности из блока данных входных N-информационных битов с помощью двух простых компонентных (или составляющих) кодеров. Указанный кодер использует рекурсивный систематический сверточный (РСС) код в качестве компонентного (или составляющего) кода. Фиг. 1 представляет блок-схему обычного параллельного турбокодера, раскрываемого в патенте US 5 446 747. В турбокодере согласно фиг.1 перемежитель 12 расположен между первым и вторым компонентными кодерами 11 и 13. Перемежитель 12 имеет размер, эквивалентный длине N блока данных входных информационных битов, и видоизменяет последовательность информационных битов, принимаемых во втором компонентном кодере 13, для снижения корреляции между битами. Фиг. 2 представляет блок-схему обычного последовательного турбокодера, также имеющего перемежитель 12, подключенный между первым и вторым компонентными кодерами 11 и 13. Указанные выше турбокодеры формируют турбокод для использования в космической связи. Несмотря на то, что длина К кодового ограничения в компонентных кодерах 11 и 13 короче длины обычного сверточного кода (т.е. К=9), перемежитель 12 использует очень большую память, что дает очень длительную задержку во время декодирования. Фиг. 3 представляет блок-схему турбодекодера для декодирования выходного сигнала параллельного турбокодера, изображаемого на фиг.1 и также раскрываемого в патенте US 5 446 747. Фиг.4 изображает блок-схему турбодекодера для декодирования выходного сигнала последовательного турбокодера фиг.2, предложенного Бенедетто в статье журнала IEEE Электронике Леттерс, том 32, 13, июнь 1996 г. Параллельный турбодекодер фиг. 3 значительно повышает рабочие характеристики с точки зрения частоты появления ошибок по битам (ЧОБ) путем неоднократного декодирования входных данных в блоках данных с помощью алгоритма итерационного декодирования. Перемежитель 323 повышает возможность исправления ошибок путем распределения ошибочных комбинаций пакетных ошибок, которые не были исправлены первым декодером 319, до исправления ошибочных комбинаций пакетных ошибок во втором декодере 327. Итерационным декодированием называют неоднократное декодирование символов, которые были кодированы по определенной процедуре, с помощью получаемой в результате внешней информации, и это дает возможность добиться превосходных характеристик декодирования. Алгоритмами итерационного декодирования являются ВПА (Выходной программно-реализованный алгоритм Витерби: см. Материалы Конференции IEEE до транспортной технике, стр. 941-944, май 1993), и МАВ (Алгоритм максимальной апостериорной вероятности: см.: Записки IEEE по теории информации, стр. 429-445, том 42, 2, март 1996). ВПА является модификацией алгоритма Витерби, который дает выходной сигнал программируемого решения и может сводить к минимуму частоту ошибок кодового слова. С другой стороны, МАВ может сводить к минимуму частоту ошибок в символах. В декодере согласно фиг. 3 выходные сигналы Y1k и Y2k устройства восстановления выкинутой точки 313 являются соответственно Yk и нулем; если символ четности Yk принимают от первого компонентного кодера 11 фиг.1; и они являются нулем и yk соответственно, если символ четности Yk принимают из второго компонентного кодера 13 фиг.1. Zk+1 является символом программируемого решения, используемым в качестве внешней информации в алгоритме итерационного кодирования и во входном сигнале для декодирования на следующем этапе. Окончательный заданный символ получают тогда, когда Zk+1 подвергают аппаратному решению. Рабочие показатели турбокодера зависят от размера перемежителя, структуры перемежителя и числа итерационных декодирований. Согласно фиг. 1 турбокодер содержит перемежитель 12. Перемежитель 12 обусловливает выполнение кодирования/декодирования в блоках данных. Таким образом, сложность турбокода пропорциональна произведению размера блока данных памяти, необходимого для первого и второго итерационных декодеров 319 и 327, изображаемых в фиг.3, и числа состояний компонентных кодов для первого и второго компонентных кодеров 11 и 13. Турбокод не может применяться в передаче речи и данных по причине использования очень больших блоков данных. Увеличение числа состояний компонентных кодов для турбокодера в целях улучшения рабочих показателей приводит к усложнению первого и второго компонентных кодеров 11 и 13. При пакетной ошибке в декодере согласно фиг.3 выходной сигнал первого итерационного декодера 319 имеет корреляцию, которая препятствует надежному декодированию во втором итерационном декодере 327 на следующем этапе декодирования. Поэтому в целом блоке происходят ошибки, и их нельзя исправить на следующем этапе итерационного декодирования. В этом контексте становятся все более необходимыми перемежитель и обращенный перемежитель, которые могут распределять пакетные ошибки в одном блоке данных кода, подлежащем итерационному декодированию без корреляции. Благодаря преимуществу низкой корреляции произвольный перемежитель повышает рабочие показатели турбокода. Но при небольшом размере блока данных произвольный перемежитель имеет ограничения по своей эффективности в отношении распределения пакетных ошибок без корреляции, и для него требуется справочная таблица. Поэтому передача речи или передача с низкой скоростью передачи требуют небольшой размер блока данных и небольшое число состояний компонентного кода, чтобы свести к минимуму время задержки. Для передачи речи или передачи с низкой скоростью передачи также требуется структурированный перемежитель. Вкратце, обычный турбокод нецелесообразен для передачи речи или данных из-за неприемлемости длины ограничения компонентных кодов и по причине крупного перемежителя. Тем не менее, все большее число разработок направляется на реализацию кодера и декодера для систем связи с учетом преимуществ обычного турбокода. Поэтому существует необходимость создания турбокодера с рабочими показателями, равными или более высокими, чем у обычного кодера в обычной системе связи. Также существует необходимость создания перемежителя с хорошими рабочими показателями, с небольшим числом состояний компонентного кода и с минимальным временем задержки. Хотя рабочие показатели перемежителя 12 фиг.1 или 2 для использования в турбокодере в общем пропорциональны размеру перемежителя, размер блока данных турбокода является ограниченным. В этом случае предпочтительно использовать перемежитель, который доводит до максимума минимальное хэммингово расстояние турбокода с точки зрения блочного кода. Для небольших блоков данных можно применить структурированный перемежитель. Поэтому задача данного изобретения заключается в создании способа и устройства турбокодирования, которые могут кодировать речь и данные с низкой скоростью передачи в системе связи. Другой задачей данного изобретения является создание способа и устройства параллельного или последовательного турбокодирования, в которых диагональный перемежитель используют для перемежения входных данных независимо от размера блока данных в системе связи. Еще одна задача данного изобретения заключается в создании способа и устройства параллельного или последовательного турбокодирования, в которых перемежитель с циклическим смещением используют для перемежения входных данных независимо от размера блока данных в системе связи. Еще одна задача данного изобретения заключается в создании способа и устройства для передачи остаточных битов и битов четности, сформированных из остаточных битов на канале, в устройстве для кодирования сигналов речи и данных в турбокод. Еще одна задача данного изобретения заключается в создании способа и устройства для регулирования скорости передачи данных путем выкидывания точки в данных и информации четности в устройстве для кодирования в турбокод сигналов речи и данных. Для решения указанных выше задач предложен турбокодер. Турбокодер содержит множество компонентных кодеров для кодирования входных информационных битов и диагональный перемежитель, подключенный к входному порту одного из компонентных кодеров и имеющий таблицу для запоминания информации о столбцах и строках, соответствующей изменяемому размеру блока данных, для определения информации о столбцах и строках, соответствующей размеру блока данных входных информационных битов, и для диагонального перемежения информационных битов. Согласно еще одному аспекту данного изобретения предложен турбокодер. Турбокодер содержит множество компонентных кодеров для кодирования входных информационных битов и перемежитель с циклическим смещением, подключенный к входному порту одного из компонентных кодеров и имеющий таблицу для запоминания информации о скачках и переходах, соответствующей изменяемому размеру блока данных, для определения информации о скачках и переходах, соответствующей размеру блока данных входных информационных битов, и для выполнения перемежения с циклическим смещением информационных битов. Согласно еще одному аспекту данного изобретения предложен турбокодер. Турбокодер содержит множество компонентных кодеров для кодирования входных информационных битов, перемежитель, подключенный к входному порту одного из компонентных кодеров, для перемежения информационных битов согласно размеру блока данных и генераторы остаточных битов по количеству компонентных кодеров для блокировки информационных битов от их введения в компонентные кодеры в целях завершения блока данных, анализирования значений запоминающих устройств в компонентных кодерах и формирования остаточных битов для завершения блока входных данных. Согласно еще одному аспекту данного изобретения предложен турбокодер. В турбокодере некоторое множество компонентных кодеров кодирует входные информационные биты. Перемежитель подключают к входному порту одного из компонентных кодеров для перемежения информационных битов согласно размеру блока данных. Такое же число генераторов остаточных битов, что и число компонентных кодеров, блокирует информационные биты от введения в компонентные кодеры для завершения блока данных, анализирует значения запоминающих устройств в компонентных кодерах и генерирует остаточные биты для завершения блока входных данных. Первое средство выкидывания точки выкидывает точку во входных информационных битах на заданной скорости. Второе средство выкидывания точки выкидывает точку в выходных сигналах компонентных кодеров на заданной скорости для регулирования скорости передачи кодированных данных. Упомянутые задачи и преимущества данного изобретения становятся более очевидными при подробном описании предпочтительных примеров осуществления со ссылкой на прилагаемые чертежи, на которых: фиг.1 - блок-схема обычного параллельно подключенного рекурсивного систематического кодера; фиг. 2 - блок-схема обычного последовательно подключенного рекурсивного систематического кодера; фиг.3 - блок-схема обычного параллельно подключенного рекурсивного систематического декодера; фиг. 4 - блок-схема обычного последовательно подключенного рекурсивного систематического декодера; фиг. 5 - блок-схема подключенного рекурсивного систематического кодера согласно первому примеру осуществления данного изобретения; фиг. 6 - блок-схема подключенного рекурсивного систематического кодера согласно второму примеру осуществления данного изобретения; фиг. 7 - блок-схема диагонального перемежителя в турбокодере согласно первому примеру осуществления данного изобретения; фиг. 8 - блок-схема последовательности действий первого диагонального перемежения в диагональном перемежителе Фиг.7; фиг. 9 - блок-схема перемежителя с циклическим смещением в турбокодере согласно второму примеру осуществления данного изобретения;фиг. 10 - блок-схема последовательности действии первого перемежения с циклическим смещением в перемежителе с циклическим смещением фиг.9;
фиг. 11 - блок-схема последовательности действий второго перемежения с циклическим смещением в перемежителе Фиг.7;
фиг. 12 - график характеристик турбокодера, работающего на основе произвольного и блочного перемежения, относительно характеристик турбокодера, работающего на основе перемежения с циклическим смещением согласно второму примеру осуществления данного изобретения; и
фиг. 13 - блок-схема турбокодера согласно примерам осуществления данного изобретения, описывающая генерирование остаточных битов и откидывание точки в них. Для ясности описания примеры осуществления данного изобретения описаны со ссылкой на параллельно подключенный рекурсивный турбокодер; прочие конфигурации рассмотрены как последовательный рекурсивный турбокодер. Фиг.5 и 6 являются блок-схемами турбокодеров согласно примерам осуществления данного изобретения. Кодеры 410 и 420 являются компонентными кодерами для кодирования входного информационного бита dk в символ четности yk и аналогичны компонентным кодерам фиг.1 и 2. Диагональный перемежитель 432 и перемежитель 434 с циклическим смещением являются признаком данного изобретения и называются "перемежителем 430", если не указывается конкретный перемежитель. Обратимся к фиг.5 и 6, информационные биты dk одновременно подают в первый компонентный кодер 410 и перемежитель 430. Перемежитель 430 изменяет порядок, в котором располагаются информационные биты, и предпочтительно доводит до максимума минимальное хэммингово расстояние кодированной выходной последовательности (Xk, Yk), соответствующей информационным битам dk. Блок данных, вводимый в канальный кодер, является изменяющимся по длине, поскольку бит контроля циклическим избыточным кодом (КЦИК) и другие управляющие биты суммируют с данными. Для принудительного фиксирования длины блока данных необходимо добавлять фиктивные биты в зависимости от разницы между размером блока данных и размером перемежителя. Но поскольку эти фиктивные биты не имеют отношения к улучшению рабочих показателей системы, поэтому желательно сокращение их числа. Таким образом перемежитель 430 обеспечивает хорошие рабочие показатели и надежную работу независимо от изменений параметров, относящихся к размеру блока данных. Фиг. 7 представляет блок-схему диагонального перемежителя 432 и перемежителя 434 с циклическим смещением, изображенных на фиг.5 и 6 соответственно. Диагональный перемежитель 432 и перемежитель 434 с циклическим смещением, и тот и другой, анализируют свои соответствующие изменяемые размеры блока данных при приеме информационных битов и выполняют оптимальное перемежение на входных информационных битах посредством относящихся к перемежителю параметров, принимаемых из контроллера системы, согласно результатам анализа размера блока данных. Диагональный перемежитель 432 и перемежитель 434 с циклическим смещением объединены в одно устройство в описании примеров осуществления данного изобретения, но турбокодер может конкретно, и отдельно, применять либо диагональное перемежение, либо перемежение с циклическим смещением. Далее диагональный перемежитель 432 и перемежитель 434 с циклическим смещением упоминаются как "перемежитель 430". Обратимся к фиг.1, регистр 511 запоминает сигнал размера блока данных и сигнал типа перемежителя, принимаемый от контроллера системы (не изображен). Таблица диагонального перемежения 513 запоминает номера М и N столбцов и строк в матрице, обеспечивающей оптимальные характеристики диагонального перемежения в отношении размера блока данных во время диагонального перемежения. То есть она запоминает измеренные значения MxN, которые обеспечивают оптимальное диагональное перемежение информационных битов с изменяющимся размером блока данных. Таблица диагонального перемежения 513 выводит значение MxN, соответствующее сигналу размера блока данных, принимаемому из регистра 511. Контроллер 517 диагонального перемежения принимает значение MxN из таблицы 513 диагонального перемежения и формирует адрес считывания для перемежения информационных битов согласно заданному способу перемежения. Таблица перемежения 515 с циклическим смещением запоминает параметры скачков Р и параметры переходов STEP, обеспечивающие оптимальные характеристики перемежения с циклическим смещением относительно размера блока данных информационных битов в случае перемежения с циклическим смещением. Параметры скачков Р и параметры переходов STEP определяют эмпирически. Таблица перемежения 513 с циклическим смещением выводит параметры Р и STEP, соответствующие сигналу размера блока данных, принимаемому из регистра 511. Контроллер 519 перемежения с циклическим смещением принимает параметры Р и STEP из таблицы 515 перемежения с циклическим смещением и формирует адрес считывания для перемежения информационных битов согласно заданному способу перемежения с циклическим смещением. Мультиплексор 521 принимает адреса считывания от контроллера 517 диагонального перемежения и контроллера 519 перемежения с циклическим смещением и выбирает один из них в соответствии с сигналом типа перемежителя, принятым из регистра 511. Запоминающее устройство 523 принимает информационные биты последовательно и выводит информационные биты, запомненные в адресах считывания, принятых из мультиплексора 521, в перемеженном порядке. Запоминающее устройство 523 выполнено с достаточно большой емкостью, чтобы вмещать информационные биты с максимальным изменяющимся размером блока данных. Структура, имеющая только диагональный перемежитель 432 на фиг.7, содержит следующее: регистр 511, таблицу диагонального перемежения 513, контроллер диагонального перемещения 517 и запоминающее устройство 523. С другой стороны, структура, имеющая только перемежитель 434 с циклическим смещением на фиг, 7, содержит следующее: регистр 511, таблицу 515 перемежения с циклическим смещением, контроллер перемежения 519 с циклическим смещением и запоминающее устройство 523. Для обеих структур не требуется мультиплексор 521 и сигнал типа перемежителя, если применяется только один тип перемежения. Таблица диагонального перемежения 513 и таблица перемежения 515 с циклическим смещением могут состоять из запоминающего устройства, подобного ПЗУ или ЗУПВ, или логических устройств в сочетании. Контроллер диагонального перемежения 517 и контроллер перемежения с циклическим смещением 519 могут быть реализованы с помощью логических устройств в сочетании или с помощью процессора цифрового сигнала. Фиг.8 и 9 изображают блок-схемы последовательности типичных диагональных перемежений; фиг.10 и 11 представляют блок-схемы последовательности типичных перемежений с циклическим смещением. Перемежитель, описываемый ниже в качестве примера, имеет входной буфер. Обратимся к структуре перемежителя 430, изображаемого на фиг.7, далее описываются операции диагонального перемежения с первой по третью. Фиг. 8 представляет собой блок-схему последовательности операции первого диагонального перемежения. На фиг.8 первое диагональное перемежение содержит процесс переупорядочения входной последовательности битов в матрице MxN. Для первого диагонального перемежения, при приеме информационных битов k информационные биты запоминают в адресах old_addr[k] для последовательного запоминания информационных битов в запоминающем устройстве 523 (фиг.7) и определяют размер k блока данных, при операции 611. Затем при операции 613 определяют параметры столбцов и строк MxN блока данных для диагонального перемежения. То есть для выполнения диагонального перемежения значение MxN назначают из таблицы диагонального перемежения на основе размера k данных входного блока данных. Множество значений MxN можно запоминать в справочной таблице для последующего отбора согласно размеру k входного блока данных. Либо оптимальное значение MxN можно вычислить согласно размеру k входного блока данных. При операции 615 определяют, равен ли 1 наибольший общий делитель (GCD) М и N. Если GCD М и N равен 1, то адресами первого диагонального перемежения оперируют следующим образом, при операции 617:
для (k=0; k < М х N-1; k + +)
new addr[k]=(М -1-(k mod N)) х N +(k mod N)...(1)
После назначения адресов в выходном буфере в виде уравнения (1) входные информационные биты, запомненные во входном буфере, перемежают и запоминают в выходном буфере. Если GCD М и N не равен 1, то есть [GCD(M, N)




для (j =0; j < М; j + +)
для (i =0; i < N; i + +)
new addr [i + j + N]=i +(m -1-(i + j) mod M) х N...,(2)
при этом i и j дают приращение местоположению блока данных. После назначения адресов входного буфера по уравнению (2) информационные биты, запомненные во входном буфере, перемежают и запоминают в выходном буфере. Второй диагонально перемеженный выходной сигнал, соответствующий входной последовательности при М =6, N =5, и GCD (М, N)=1, изображен в табл. 3. При этом входную последовательность при М = 6, N = 6, и GCD (М, N)

для (j =0; j < m; j + +)
для (i =0; i < N; i + +)
new addr [i + j + N]=i +((i + j) mod M) х N,...(3)
Входную последовательность запоминают в адресах распределенной памяти и затем последовательно считывают по столбцам и строкам с помощью диагонального перемежителя 432. Либо входную последовательность запоминают в памяти по столбцам и строкам и считывают из адреса бит за битом с помощью диагонального перемежителя 432. Обращенное перемежение выполняют в порядке, обратном порядку перемежения входных данных. Фиг. 10 представляет собой блок-схему последовательности перемежения с циклическим смещением выполняемого перемежителем 434 с циклическим смещением. Операция первого перемежения с циклическим смещением представляет собой процедуру переупорядочивания данных в заданном интервале, согласно которой входная последовательность рассматривается как цикл. Операция первого перемежения с циклическим смещением может перемежать входную последовательность независимо от ее длины. Обратимся к фиг.10, входные информационные биты dk запоминают в адресах old addr[k] входного буфера, а размер блока данных определяют при операции 711. Параметры Р и STEP определяют при операции 713. Здесь Р является параметром интервала скачка, определяющим рабочие показатели перемежителя с циклическим смещением, и поэтому его выводят эмпирически для достижения оптимального эффекта. Помимо этого, STEP является параметром для смещения данных из местоположения, на которое переход сделан скачком с помощью Р, слева направо, или справа налево, и которое имеет значение целого числа. Затем при операции 715 определяют, является ли GCD, относящийся к Р или SIZE, единицей. Если GCD (Р, SIZE)=1, то при операции 717 вычисляют адреса первого перемежения с циклическим смещением:
для (i =0; i <SIZE; i + +)
new addr [i]=(p х i + STEP) mod SIZE..., (4)
где i является параметром, представляющим размер блока входных данных, или размер, являющийся меньшим, чем размер блока входных данных в пределах от нуля до SIZE, то есть число адресов, при этом SIZE является размером блока данных, р - натуральное число, удовлетворяющее условию GCD (SIZE, р) = 1, и STEP является целым числом и указывающим исходную точку. Например, первый, перемеженный с циклическим смещением, выходной сигнал, запомненный в new_addr[k] буфера, соответствующий входной последовательности при SIZE = 30, запомненной в new_addr[k] входного буфера, то есть {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29}, является следующим: {0 11 22 3 14 25 6 17 28 9 20 1 12 23 4 15 26 7 18 29 10 21 2 13 24 5 16 27 8 19}, если Р = 11 и STEP = 0. Входную последовательность и первую, перемеженную с циклическим смещением, выходную последовательность упорядочивают согласно табл. 5. Но, если GCD (SIZE, p)



d = GCD (P, SIZE)
для (k - j = 0; j < d; j + +)
для addr [k] = ((P х i + STEP + j) mod SIZE...,(5)
где i и k находятся в пределах между 0 и SIZE, j - параметр адреса в пределах от 0 до d, P - параметр скачка для выполнения перемежения с циклическим смещением и STEP - параметр, определяющий исходную точку путем смещения данных, размещенных в совокупности местоположений, с помощью Р слева направо или справа налево. Исходя из уравнения (5), (Р х i + STEP) представляет операцию перемежения с циклическим смещением и j указывает операцию блочного перемежения. SIZE является размером входных данных, р является натуральным числом, и STEP является целым числом. Если SIZE = 30 и p = 11, то второй перемеженный, с циклическим смещением, выходной сигнал представляют в матрице М х N (см.табл.7 и 8), которая аналогична табл. 6, но при CGD (SIZE, р)

Формула изобретения
new addr [k] = (M - 1 - (k mod N) x N + (k mod N),
где M и N - значения столбцов и строк;
М х N - размер блока данных;
k - размер входного блока данных;
new addr [ ] - новый адрес диагонально перемеженных информационных битов. 3. Способ диагонального перемежения по п. 1, отличающийся тем, что диагональное перемежение выполняют на основе
для (j = 0; j <M; j + +)
для (i = 0; i <N; i + +)
new addr [i + j + N] = i +(М - 1 - 1(i + j) mod M) x N,
где М и N - значения столбцов и строк,
М х N - размер блока данных,
i и j - приращение местоположения блока данных;
mod - операция взятия модуля;
new addr [ ] - новый адрес диагонально перемеженных информационных битов. 4. Способ диагонального перемежения по п. 1, отличающийся тем, что диагональное перемежение выполняют на основе
для (j = 0; j <M; j + +)
для (i = 0; i <N; i + +)
new addr [i + j + N] = i + ((i + j) mod M) x N,
где М и N - значения столбцов и строк; М х N - размер блока данных;
i и j - приращение местоположения блока данных;
new addr [ ] - новый адрес диагонально перемеженных информационных битов. 5. Способ перемежения с циклическим смещением, отличающийся тем, что принимают изменяющуюся входную информацию, определяют размер изменяющейся входной информации, выводят параметры скачка и перехода, соответствующие размеру изменяющейся входной информации, формируют адрес считывания для перемежения изменяющейся входной информации в соответствии с параметрами скачка и перехода и выполняют перемежение с циклическим смещением для считывания на информационных битах изменяющейся входной информации в соответствии с адресом считывания. 6. Способ перемежения с циклическим смещением по п. 5, отличающийся тем, что перемежение с циклическим смещением выполняют на основе
для (i = 0; i <SIZE; i + +)
new addr [i] = (р x i + STEP) mod SIZE,
где SIZE - размер подлежащих перемежению данных;
р - параметр скачка для перемежения с циклическим смешением;
STEP - параметр перехода, имеющий целое число, для смещения данных из положения после скачка;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
i - приращение местоположения блока данных. 7. Способ перемежения с циклическим смещением по п. 5, отличающийся тем, что перемежение с циклическим смещением выполняют на основе
d = GCD (P, SIZE)
для (k - j = 0; j <d; j + +)
для (i = 0; i <SIZE/d; i + +, k + +)
new addr [k] = ((P x i + STEP) + j) mod SIZE,
где SIZE - размер подлежащих перемежению данных;
р - параметр скачка для перемежения с циклическим смещением;
STEP - параметр перехода, имеющий целое число, для смещения данных из положения после скачка;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
GCD - наибольший общий знаменатель;
i, j - приращение местоположения блока данных;
k - размер входного блока данных. 8. Турбокодер, содержащий множество компонентных кодеров для кодирования битов изменяющейся входной информации и перемежитель, предназначенный для перемежения битов изменяющейся входной информации, подключенный к входному порту одного из множества компонентных кодеров, отличающийся тем, что перемежитель выполнен в виде диагонального перемежителя и содержит регистр, предназначенный для записи размера изменяющейся входной информации, таблицу диагонального перемежения для запоминания значений столбцов и строк, соответствующих размеру изменяющейся входной информации, контроллер диагонального перемежения для генерирования адреса считывания изменяющейся входной информации и запоминающий блок, на вход которого поступает изменяющаяся входная информация и с выхода которого считанная входная информация поступает на входной порт соответствующего компонентного кодера. 9. Турбокодер по п. 8, отличающийся тем, что диагональное перемежение осуществляется на основе
для (k = 0; k <M x N - 1; k + +)
new addr [k] = (M - 1 - (k mod N)) x N + (k mod N),
где М и N - информация о столбцах и строках;
k - размер входного блока данных;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
М х N - размер блока данных. 10. Турбокодер по п. 8, отличающийся тем, что адрес считывания для диагонального перемежения генерируется на основе
для (j = 0; j <M; j + +)
для (i = 0; i <N; i + +)
new addr [i + j + N] = i + (M - 1 (i + j) mod M) x N,
где М и N - информация о столбцах и строках;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
i и j - приращение местоположения блока данных. 11. Турбокодер по п. 8, отличающийся тем, что адрес считывания для диагонального перемежения генерируется на основе
для (j = 0; j <M; j + +)
для (i = 0; i <N; i + +)
new addr [i + j + N] = i + ((i + j) mod M) x N,
где М и N - информация о столбцах и строках;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
i и j - приращение местоположения блока данных. 12. Турбокодер, содержащий множество компонентных кодеров для кодирования изменяющейся входной информации и перемежитель, предназначенный для перемежения изменяющейся входной информации, подключенный ко входному порту одного из множества компонентных кодеров, отличающийся тем, что перемежитель выполнен в виде перемежителя с циклическим смещением и содержит регистр, предназначенный для записи размера изменяющейся входной информации, таблицу перемежения с циклическим смещением, предназначенную для запоминания значений столбцов и строк, а также интервалов скачков и параметра перехода, соответствующих размеру изменяющейся входной информации, контроллер перемежения с циклическим смещением для генерирования адреса считывания изменяющейся входной информации и запоминающий блок, на вход которого поступает входная информация и с выхода которого считанная входная информация поступает на входной порт соответствующего компонентного кодера. 13. Турбокодер по п. 12, отличающийся тем, что адрес считывания перемежения с циклическим смещением генерируется на основе
для (i = 0; i <SIZE; i + +)
new addr [i] = (р x i + STEP) mod SIZE,
где SIZE - размер перемежаемых данных;
р - параметр скачка для перемежения с циклическим смещением;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
STEP - параметр перехода, являющийся целым числом, для смещения данных из положения скачка;
i - приращение местоположения блока данных. 14. Турбокодер по п. 12, отличающийся тем, что адрес считывания перемежения с циклическим смещением формируется на основе
d = GCD (P, SIZE)
для (k - j = 0; j <d; j + +)
для (i = 0; i <SIZE/d; i + +, k + +)
new addr [k] = ((P x i + STEP) + j) mod SIZE,
где SIZE - размер перемежаемых данных блока данных;
р - параметр скачка для перемежения с циклическим смещением;
i и j - приращение местоположения блока данных;
k - размер блока данных;
new addr [ ] - новый адрес для диагонально перемеженных информационных битов;
STEP - параметр перехода, являющийся целым числом, для смещения данных из положения скачка. 15. Турбокодер, содержащий первый компонентный кодер для кодирования входных информационных битов, перемежитель, предназначенный для перемежения входных информационных битов, и второй компонентный кодер для кодирования выходного сигнала перемежителя, отличающийся тем, что содержит первое средство для исключения бита, предназначенное для изменения скорости передачи выходного сигнала первого и второго компонентных кодеров, а также первый и второй генераторы остаточных битов с переключателями, причем каждый генератор остаточных битов предназначен для генерирования сигнала завершения блока данных входных информационных битов согласно выходным сигналам запоминающих устройств каждого компонентного кодера и подачи сигнала завершения блока данных к соответствующему переключателю, подключенному к входному порту соответствующего компонентного кодера. 16. Турбокодер по п. 15, отличающийся тем, что перемежитель выполнен в виде диагонального перемежителя. 17. Турбокодер по п. 15, отличающийся тем, что перемежитель выполнен в виде перемежителя с циклическим смещением. 18. Способ канального кодирования для использования в канальном кодере, содержащем первый и второй компонентные кодеры, отличающийся тем, что выводят размер изменяющейся входной информации блока данных, генерируют первую четность изменяющейся входной информации посредством первого компонентного кодера, определяют размер изменяющейся входной информации, выводят значения столбцов и строк, соответствующие размеру изменяющейся входной информации блока данных, генерируют адрес считывания для перемежения изменяющейся входной информации согласно значениям столбцов и строк, диагонально перемежают для считывания информационные биты изменяющейся входной информации согласно значениям столбцов и строк и генерируют вторую четность перемеженной входной информации посредством второго компонентного кодера. 19. Способ канального кодирования по п. 18, отличающийся тем, что диагональное перемежение выполняют на основе
для (k = 0; k <M x N - 1; k + +)
new addr [k] = (М - 1 - (k mod N) x N + (k mod N),
где М и N - значения столбцов и строк;
М х N - размер блока данных;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
k - размер входного блока данных. 20. Способ канального кодирования по п. 18, отличающийся тем, что диагональное кодирование выполняют на основе
для (j = 0; j <M; j + +)
для (i = 0; i <N; i + +)
new addr [i + j + N] = i + (М - 1 - (i + j) mod M) x N,
где М и N - значения столбцов и строк;
М х N - размер блока данных;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
i и j - приращение местоположения блока данных. 21. Способ канального кодирования по п. 18, отличающийся тем, что диагональное перемежение выполняют на основе
для (j = 0; j <M; j + +)
для (i = 0; i <N; i + +)
new addr [i + j + N] = i + ((i + j) mod M) x N,
где М и N - значения столбцов и строк;
М х N - размер блока данных;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
i и j - приращение местоположения блока данных. 22. Способ канального кодирования для использования в канальном кодере, имеющем первый и второй компонентные кодеры, отличающийся тем, что выводят изменяющуюся входную информацию, генерируют первую четность изменяющейся входной информации с помощью первого компонентного кодера, определяют размер изменяющейся входной информации, выводят параметры скачка и перехода, соответствующие размеру изменяющейся входной информации блока данных, генерируют адрес считывания для перемежения изменяющейся входной информации согласно параметрам скачка и перехода, осуществляют перемежение с циклическим смещением для считывания информационных битов изменяющейся входной информации в соответствии с адресом считывания и генерируют вторую четность перемеженной входной информации посредством второго компонентного кодера. 23. Способ канального кодирования по п. 22, отличающийся тем, что адрес считывания для перемежения с циклическим смещением генерируют на основе
для (i = 0; i <SIZE; i + +)
new addr [i] = (р x i + STEP) mod SIZE,
где i - порядок входных информационных битов;
р - параметр скачка для перемежения с циклическим смещением;
STEP - начальное положение, включающее нуль;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
SIZE - размер цикла. 24. Способ канального кодирования по п. 23, отличающийся тем, что размер цикла равен размеру изменяющейся входной информации. 25. Способ канального кодирования по п. 22, отличающийся тем, что адрес считывания для перемежения с циклическим смещением генерируют на основе
d = GCD (P, SIZE)
для (k - j = 0; j <d; j + +)
для (i = 0; i <SIZE/d; i + +, k + +)
new addr [k] = ((P x i + STEP) + j) mod SIZE,
где SIZE - размер цикла;
р - параметр скачка для перемежения с циклическим смещением;
STEP - начальное положение, включающее нуль;
GCD - наибольший общий знаменатель;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
i и j - индексы. 26. Способ канального кодирования для использования в канальном кодере, имеющем первый и второй компонентные кодеры, отличающийся тем, что выводят изменяющуюся входную информацию, генерируют первую четность изменяющейся входной информации с помощью первого компонентного кодера, перемежают изменяющуюся входную информацию, генерируют вторую четность перемеженной входной информации с помощью второго компонентного кодера. 27. Способ канального кодирования по п. 26, отличающийся тем, что перемежение является перемежением с циклическим смещением. 28. Способ канальной информации по п. 27, отличающийся тем, что перемежение с циклическим смещением выполняют согласно параметру скачка, соответствующему размеру изменяющейся входной информации и порядку, в котором размещают входные информационные биты. 29. Способ канального кодирования по п. 28, отличающийся тем, что перемежение с циклическим смещением выполняют с помощью остатка, полученного делением произведения параметра скачка и информации о порядке изменяющихся входных информационных битов на размер цикла. 30. Способ канального кодирования по п. 29, отличающийся тем, что перемежение с циклическим смещением выполняют на основе
для (i = 0; i <SIZE; i + +)
new addr [i] = (p x i + STEP) mod SIZE,
где i - порядок входных информационных битов;
р - параметр скачка для перемежения с циклическим смещением;
STEP - начальное положение, включающее нуль;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
SIZE - размер цикла. 31. Способ канального кодирования по п. 30, отличающийся тем, что размер цикла равен размеру изменяющейся входной информации. 32. Способ канального кодирования по п. 29, отличающийся тем, что перемежение с циклическим смещением выполняют на основе
d = GCD (P, SIZE),
для (k - j = 0; i <d; j + +)
для (i = 0; i <SIZE/d; i + +, k + +)
new addr [k] = ((P x i + STEP) + j) mod SIZE,
где SIZE - размер перемежаемой входной информации;
р - параметр скачка для перемежения с циклическим смещением;
STEP - начальное положение, включающее нуль;
GCD - наибольший общий знаменатель;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
i и j - приращение местоположения блока данных;
k - размер входного блока данных. 33. Устройство канального кодирования, отличающееся тем, что содержит первый компонентный кодер для кодирования изменяющейся входной информации и генерирования первой четности, таблицу диагонального перемежения для вывода значений столбцов и строк, соответствующих размеру изменяющейся входной информации блока данных, контроллер диагонального перемежения для генерирования адреса считывания изменяющейся входной информации, запоминающий блок, на вход которого поступает изменяющаяся входная информация и с выхода которого считанная входная информация поступает на входной порт соответствующего компонентного кодера, и второй компонентный кодер для кодирования перемеженной информации и генерирования второй четности. 34. Устройство канального кодирования по п. 33, отличающееся тем, что диагональное перемежение выполняют на основе
для (k = 0; k <M x N - 1; k + +)
new addr [k] = (М - 1-(k mod N)) x N + (k mod N),
где М и N - значения столбцов и строк;
М х N - размер блока данных;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
k - размер входного блока данных. 35. Устройство канального кодирования по п. 33, отличающееся тем, что диагональное перемежение выполняют на основе
для (j = 0; j <M; j + +)
для (i = 0; i <N; i + +)
new addr [i + j + N] = i + (M - 1 (i + j) mod M) x N,
где М и N - значения столбцов и строк;
М х N - размер блока данных;
GCD - наибольший общий знаменатель;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
i и j - приращение местоположения блока данных. 36. Устройство канального кодирования по п. 33, отличающееся тем, что диагональное перемежение выполняют на основе
для (j = 0; j <M; j + +)
для (i = 0; i <N; i + +)
new addr [i + j + N] = i + ((i + j) mod M) x N,
где М и N - значения столбцов и строк;
М х N - размер блока данных;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
i и j - приращение местоположения блока данных. 37. Устройство канального кодирования, отличающееся тем, что содержит первый компонентный кодер для кодирования изменяющейся входной информации и генерирования первой четности, таблицу перемежения с циклическим смещением, предназначенную для запоминания значений столбцов и строк, а также интервалов скачков и параметра перехода, соответствующих размеру изменяющейся входной информации блока данных, контроллер перемежения с циклическим смещением для генерирования адреса считывания изменяющейся входной информации, запоминающий блок, на вход которого поступает входная информация и с выхода которого считанная входная информация поступает на входной порт соответствующего компонентного кодера, и второй компонентный кодер для кодирования перемеженной информации и генерирования второй четности. 38. Устройство канального кодирования по п. 37, отличающееся тем, что перемежение с циклическим смещением выполняют согласно параметру скачка, соответствующему размеру входной информации, и порядку, в котором расположены биты изменяющейся входной информации. 39. Устройство канального кодирования по п. 37, отличающееся тем, что перемежение с циклическим смещением выполняют с помощью остатка, полученного делением произведения параметра скачка и информации о порядке битов изменяющейся входной информации на размер цикла. 40. Устройство канального кодирования по п. 39, отличающееся тем, что перемежение с циклическим смещением выполняют на основе
для (i = 0; i <SIZE; i + +)
new addr [i] = (Р x i + STEP) mod SIZE,
где i - порядок входных информационных битов;
р - параметр скачка для перемежения с циклическим смещением;
STEP - начальное положение, включающее нуль;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
SIZE - размер цикла. 41. Устройство канального кодирования по п. 40, отличающееся тем, что размер цикла равен размеру изменяющейся входной информации. 42. Устройство канального кодирования по п. 39, отличающееся тем, что перемежение с циклическим смещением выполняют на основе
d = GCD (P, SIZE),
для (k - j = 0; j <d; j + +)
для (i = 0; i <SIZE/d; i + +, k + +)
new addr [k] = ((P x i + STEP) + j) mod SIZE,
где SIZE - размер цикла;
р - параметр скачка для перемежения с циклическим смещением;
STEP - начальное положение, включающее нуль;
GCD - наибольший общий знаменатель;
new addr [ ] - новый адрес диагонально перемеженных информационных битов;
i и j - приращение местоположения блока данных;
k - размер входного блока данных. Приоритет по пунктам:
30.07.1997 по пп. 1, 2, 8, 9, 15-19, 22, 26, 27, 33, 34 и 37;
10.11.1997 по пп. 3-7, 10-14, 20, 21, 23-25, 28-32, 35, 36, 38-42.
РИСУНКИ
Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5, Рисунок 6, Рисунок 7, Рисунок 8, Рисунок 9, Рисунок 10, Рисунок 11, Рисунок 12, Рисунок 13, Рисунок 14, Рисунок 15, Рисунок 16, Рисунок 17, Рисунок 18, Рисунок 19