Способ адаптивного канального кодирования и устройство для его осуществления

Реферат

 

Изобретение относится к способам и устройствам адаптивного канального кодирования для систем связи. Предложен канальный кодер, имеющий сверточные кодеры, подключенные параллельно или последовательно. Канальный кодер содержит первый кодер для кодирования входных информационных битов, перемежитель, имеющий запоминающее устройство и генератор индексов, для изменения порядка информационных битов согласно заданному способу, второй кодер для кодирования выходного сигнала перемежителя, первое и второе устройства завершения для завершения блоков данных входных и выходных информационных битов первого и второго кодеров, генератор остаточных битов для запоминания остаточных битов, используемых в завершении блока данных, и контроллер, и переключатель для управления изложенной выше процедурой. Технический результат, достигаемый при реализации заявленной группы изобретений, состоит в обеспечении разных скоростей кодирования и снижения сложности декодера. 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)1] при операции 615, то определяют, что перемежение при операции 619 не удается, и процедуру прекращают.

В первом диагональном перемежении, исходя из того, что последовательность данных М = 6 и N = 5, запомненная в old_adr[k], составляет {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29}, то выходная последовательность первого диагонального перемежителя, запомненная в new_addr[k] выходного буфера, составляет {25 21 17 13 9 0 26 22 18 12 5 1 27 23 19 10 6 2 28 24 15 11 7 3 29 20 16 12 8 4}.

Входные данные и выходной сигнал первого диагонального перемежителя табулируют в матрицах MxN следующим образом (см. в табл. 1).

Но указанное выше диагональное перемежение действительно только в том случае, когда GCD М и N равен 1. Если GCD (М, N) 1, например, М = 6 и N = 6, то первое диагональное перемежение невозможно, и те же данные переписывают в порядке, представленном в табл. 2.

Второе и третье диагональные перемежения содержат процесс перестановки последовательности входных информационных битов в матрице М х N и обеспечение возможности перемежения входных данных независимо от GCD (М, N)=1, или 1.

Фиг.9 иллюстрирует операцию второго диагонального перемежения. Обратимся к фиг. 9, второе диагональное перемежение переупорядочивает входные биты в матрице М х N и относится к обоим случаям, когда GCD (М, N) 1, и когда GCD (М, N)=1. Во втором диагональном перемежении при вводе информационных битов dk информационные входные биты запоминают в адресах old_addr[k] и определяют размер k блока данных при операции 631. Параметр столбцов и строк (МхN) для диагонального перемежения определяют при операции 633. При операции 635 адресами второго диагонального перемежения оперируют следующим образом: для (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) 1 перемежают следующим образом (см.табл.4).

При третьем диагональном перемежении контроллер диагонального перемежения 517 можно выполнить следующим образом: для (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) 1 и р = 6, то первое перемежение с циклическим смещением не является действительным, поскольку переписываются те же данные.

Исходя из того, что SIZE = 30 для входной последовательности, запомненной в последовательном адресе old_addr[k] первоначальной памяти, Р = 11, и STEP = 0, соответствующий перемеженный выходной сигнал, являющийся результатом первого перемежения с циклическим смещением фиг.10, будет представлен как следующая ниже матрица MxN (см. табл.6).

Схема второго перемежения с циклическим смещением обеспечивает перемежение в случае GCD (SIZE, p) 1 согласно изображению на фиг.11. Второе перемежение с циклическим смещением представляет собой процедуру переупорядочения данных, при которой входная последовательность рассматривается как матрица d x SIZE/d, причем строки подвергают первому перемежению с циклическим смещением, а столбцы подвергают блочному перемежению.

Фиг.11 представляет собой блок-схему последовательности второго перемежения с циклическим смещением, которое является применимым независимо от GCD (SIZE, p) = 1 или 1. В операции второго перемежения с циклическим смещением входные информационные биты запоминают в последовательном адресе old_addr[k] памяти и при операции 721 определяют размер. Здесь SIZE является параметром, указывающим размер входных данных. Параметры Р и STEP для перемежения с циклическим смещением определяют при операции 723. При операции 725 адреса второго перемежения с циклическим смещением получают с помощью уравнения (5): 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, р) 1.

После запоминания входной последовательности в адресах распределенной памяти данные последовательно считывают по столбцам и строкам посредством перемежителя с циклическим смещением. Либо входную последовательность последовательно запоминают в памяти по столбцам и строкам и затем считывают из адресов бит за битом.

Обращенное перемежение можно выполнить в порядке, обратном порядку перемежения входных данных.

Фиг. 12 представляет график, иллюстрирующий рабочие показатели перемежителя с циклическим смещением, подключенного параллельно турбокодеру согласно второму примеру осуществления данного изобретения. На графике дано сравнение широко используемых блочных и произвольных перемежителей с перемежителем с циклическим смещением с точки зрения ЧОБ (частоты ошибок по битам) согласно следующим условиям: компонентный код К = 3, входной 104-битовый блок данных, восемь итерационных декодирований, двухпозиционная фазовая модуляция ДПФМН и дополнительный белый гауссов шум (ДБГШ). Как указывается в фиг. 12, отношение Eb/No перемежителя с циклическим смещением составляет 3 дБ, у блочного перемежителя - 3,4 дБ; при ЧОБ 10-5. Поэтому можно заключить, что перемежитель с циклическим смещением по своим характеристикам превосходит блочный перемежитель примерно на 0,4 дБ.

Фиг.13 представляет собой блок-схему турбокодера согласно примерам осуществления данного изобретения.

Обратимся к фиг. 13, первый, компонентный кодер 410 кодирует входные информационные биты, например, при К = 3. Перемежитель 430 перемежает информационные биты по заданному способу, чтобы тем самым видоизменить порядок информационных битов. Перемежитель 430 можно осуществить согласно фиг.7. В этом случае он сможет выполнять одно из первого по третье диагональных перемежений и с первого по третье перемежения с циклическим смещением. Второй компонентный кодер 420 кодирует выходной сигнал перемежителя 430, например, при К = 3.

Первый генератор остаточных битов 450 содержит первый переключатель 455, подключенный к входному порту первого компонентного кодера 410, логический элемент ИСКЛЮЧАЮЩЕЕ ИЛИ 451 для выполнения операции ИСКЛЮЧАЮЩЕЕ ИЛИ на выходных сигналах запоминающих устройств 412 и 413 первого компонентного кодера 410 и генератор битов 453 для генерирования сигнала завершения блока данных согласно выходному сигналу логического элемента ИСКЛЮЧАЮЩЕЕ ИЛИ 451 и для подачи сигнала к первому переключателю 455. В первом генераторе остаточных битов 450 первый переключатель 455 подключают к первому компонентному кодеру 410 при завершении блока данных и при этом формируют сигнал завершения блока данных. Второй генератор остаточных битов 460 включает в себя второй переключатель 465, подключенный к входному порту второго компонентного кодера 420, логический элемент ИСКЛЮЧАЮЩЕЕ ИЛИ 461 для выполнения операции ИСКЛЮЧАЮЩЕЕ ИЛИ на выходных сигналах запоминающих устройств 422 и 423 второго компонентного кодера 420 и генератор битов 463 в соответствии с выходным сигналом логического элемента ИСКЛЮЧАЮЩЕЕ ИЛИ 461, формирующий сигнал завершения блока данных и подачи сигнала ко второму переключателю 465. Во втором генераторе остаточных битов 360 второй переключатель 465 подключают ко второму компонентному кодеру 420 при завершении блока данных и формируют сигнал завершения блока данных.

Первое средство выкидывания точки 470 выкидывает точку в информационных битах. Второе средство выкидывания точки 480 выкидывает точку в кодированных данных, принимаемых от первого и второго компонентных кодеров 410 и 420. Первое и второе средства выкидывания точки 470 и 480 регулируют скорость передачи данных. Мультиплексор 491 объединяет выходные сигналы генераторов битов 453 и 463. Третий переключатель 493 переключает остаточные биты, принимаемые от мультиплексора 491, в канал передачи при завершении блока данных.

Первый и второй генераторы остаточных битов 450 и 460 формируют остаточные биты для завершения операций первого и второго компонентных кодеров 410 и 420 соответственно. Первое и второе средства выкидывания точки 470 и 480 регулируют скорость передачи до приемлемого уровня.

Обратимся к фиг.13, турбокод имеет остаточные биты для завершения действия компонентных кодеров 410 и 420. Здесь, поскольку компонентные коды турбокода являются систематическими, то запоминающие устройства 412 и 413, и 422 и 423 компонентных кодеров 410 и 420 не вводят в действие даже при вводе последовательных нулей, как в несистематическом сверточном коде. Чтобы установить на нули значения в запоминающем устройстве, которое является ближайшим ко входу, первый и второй компонентные кодеры 410 и 420 вводят сумму обратноподанных значений в запоминающие устройства с помощью генераторов остаточных битов. Поэтому для турбокодера требуется такое число остаточных битов, которое равно числу запоминающих устройств каждого компонентного кодера. Первый и второй переключатели 455 и 465 переключают при генерировании остаточных битов. Затем биты четности, генерированные из остаточных битов, подают из первого и второго компонентных кодеров 410 и 420 ко второму средству выкидывания точки 480, а остаточные биты, генерированные из генераторов остаточных битов, переключают третьим переключателем 493, чтобы вывести их как информационные биты Xk.

Желательно установить скорость передачи в степень 2, чтобы уменьшить аппаратурную усложненность. Но скорость передачи, равная 384 кб/сек, не может быть степенью 2, использующей турбокод со скоростью кода, равной 1/2. В этом случае в турбокоде 1/2 выкидывают точку, и он превращается в код 3/8. Конкретно, в случае скорости 144 кб/сек турбокод 1/2 подвергают выкидыванию точки и превращают его в код 9/16. Примеры матриц выкидывания точки для формирования кода 9/16 изображены в табл. 9, 10.

В табл. 9 и 10 информационными битами являются dk, которые подают к первому средству выкидывания точки 470, и PCC1 являются битами четности, которые подают из первого компонентного кодера 410 во второе средство выкидывания точки 480. Табл. 9 в качестве примера изображает выкидывание точки в битах четности, выводимых из компонентных кодеров 410 и 420. В этом случае имеется несколько следующих друг за другом нулей, соответствующих битам четности. То есть, когда в битах четности выкинуты точки для регулирования скорости передачи, последовательно появляются нули, которые указаны подчеркиванием в табл. 9. Но поскольку в каждом из компонентных кодеров 410 и 420 имеется два запоминающих устройства, то, если не будет последовательной передачи двух или более битов четности, могут быть генерированы серьезные ошибки. Поэтому в информационных битах выкидываются точки, согласно табл.10 данного изобретения. Табл. 10 изображает матрицу 9/16 выкидывания точки; данная матрица отличается от матрицы табл. 9 тем, что последовательно передают два или более бита четности. При этом рабочие показатели турбокода улучшаются при возрастании числа итерационных декодирований.

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