RU2435298C2 - Турбо-перемежитель для высоких скоростей передачи данных - Google Patents

Турбо-перемежитель для высоких скоростей передачи данных Download PDF

Info

Publication number
RU2435298C2
RU2435298C2 RU2009120617/09A RU2009120617A RU2435298C2 RU 2435298 C2 RU2435298 C2 RU 2435298C2 RU 2009120617/09 A RU2009120617/09 A RU 2009120617/09A RU 2009120617 A RU2009120617 A RU 2009120617A RU 2435298 C2 RU2435298 C2 RU 2435298C2
Authority
RU
Russia
Prior art keywords
code block
size
conflict
turbo interleaver
interleaver
Prior art date
Application number
RU2009120617/09A
Other languages
English (en)
Other versions
RU2009120617A (ru
Inventor
Юнбинь ВЭЙ (US)
Юнбинь ВЭЙ
Цзин СУНЬ (US)
Цзин Сунь
Дурга Прасад МАЛЛАДИ (US)
Дурга Прасад МАЛЛАДИ
Original Assignee
Квэлкомм Инкорпорейтед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Publication of RU2009120617A publication Critical patent/RU2009120617A/ru
Application granted granted Critical
Publication of RU2435298C2 publication Critical patent/RU2435298C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2771Internal interleaver for turbo codes
    • H03M13/2775Contention or collision free turbo code internal interleaver
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Abstract

Изобретение относится к связи и, более конкретно, к способам кодирования и декодирования. Передатчик может кодировать кодовый блок битов данных с помощью турбо-кодера. Приемник может выполнять декодирование для кодового блока с помощью турбо-декодера, имеющего множество декодеров с программным входом и программным выходом (SISO). Бесконфликтный турбо-перемежитель может быть использован, если размер кодового блока больше, чем пороговый размер. Обычный турбо-перемежитель может быть использован, если размер кодового блока равен или меньше, чем пороговый размер. Бесконфликтный турбо-перемежитель переупорядочивает биты данных в кодовом блоке таким образом, что информация из множества SISO-декодеров после перемежения или обратного перемежения может быть записана параллельно в множество модулей памяти в каждом цикле записи без возникновения конфликта доступа к памяти. Обычный турбо-перемежитель может переупорядочивать биты данных в кодовом блоке любым способом безотносительно к бесконфликтному доступу к памяти. Технический результат - обеспечение поддержания высокой производительности декодирования. 4 н. и 26 з.п. ф-лы, 12 ил.

Description

Настоящая заявка испрашивает приоритет предварительной заявки США № 60/863962, озаглавленной “Способ и устройство, предназначенные для бесконфликтного турбо-перемежителя”, поданную 1 ноября 2006 г., права на которую переданы заявителю настоящего изобретения, и включенной в настоящее описание посредством ссылки.
Уровень техники
Область техники, к которой относится изобретение
Настоящее раскрытие, в общем, относится к связи и, более конкретно, к способам кодирования и декодирования.
Уровень техники
Беспроводные системы связи широко развернуты, чтобы предоставлять разное содержимое связи, такое как речь, видео, пакетные данные, обмен сообщениями, широковещательная передача и т.д. Эти беспроводные системы могут быть системами множественного доступа, которые могут поддерживать множество пользователей с помощью совместного использования имеющихся системных ресурсов. Примеры таких систем множественного доступа включают в себя системы множественного доступа с кодовым разделением (CDMA), системы множественного доступа с разделением времени (TDMA), системы множественного доступа с частотным разделением (FDMA), системы с ортогональным FDMA (OFDMA) и системы FDMA с одной несущей.
Более новые беспроводные системы связи могут поддерживать широкую полосу частот и/или работу с множеством числом входов и выходов (MIMO), для того чтобы достичь высокой пропускной способности данных. Аппаратура пользователя (UE) с широкой полосой частот и функциональными возможностями MIMO должна поддерживать очень высокую максимальную скорость передачи данных. Например, максимальная скорость передачи данных для UE в системе с 20 MHz с конфигурацией MIMO 4х4 может быть до 200+ мегабит/секунду (Mbps). Производительность декодирования UE, которая обычно является узким местом приемника, обрабатывающего в UE, должна быть спроектирована соответствующим образом, для того чтобы поддерживать такую высокую максимальную скорость передачи данных.
Сущность изобретения
Способы поддержки высокой производительности декодирования описаны в настоящей заявке. Передатчик (например, базовая станция) может кодировать кодовый блок битов данных с помощью турбо-кодера, имеющего множество составляющих кодеров и перемежитель кода. Приемник (например, UE) может выполнять декодирование для кодового блока с помощью турбо-декодера, имеющего, по меньшей мере, один декодер с мягким входом и мягким выходом (SISO), по меньшей мере, один перемежитель кода и, по меньшей мере, один модуль обратного перемежения кода. Приемник может использовать множество SISO-декодеров, работающих параллельно относительно разных сегментов кодового блока, чтобы достичь высокой производительности декодирования. Множество SISO-декодеров могут работать совместно с множеством перемежителей кода, множеством модулей обратного перемежения и множеством модулей памяти.
Биты данных в кодовом блоке могут быть перемежены (т.е. переупорядочены или перетасованы) на основе турбо-перемежителя. Турбо-перемежитель является отображением или функцией, которая задает, как должны быть переупорядочены биты данных в кодовом блоке. Перемежитель кода в турбо-кодере работает на основе турбо-перемежителя. Аналогично один или множество перемежителей кода в турбо-декодере работают на основе турбо-перемежителя, и один или множество модулей обратного перемежения кода в турбо-декодере работают на основе инверсии турбо-перемежителя.
В некотором аспекте “бесконфликтный” турбо-перемежитель может быть использован, если размер кодового блока больше, чем пороговый размер, и “обычный” турбо-перемежитель может быть использован, если размер кодового блока равен или меньше, чем пороговый размер. Бесконфликтный турбо-перемежитель является отображением или функцией, которая переупорядочивает биты данных в кодовом блоке, таким образом, что информация из множества SISO-декодеров после перемежения или обратного перемежения может быть записана параллельно во множество модулей памяти в каждом цикле записи без возникновения конфликта доступа к памяти этих модулей памяти. Обычный турбо-перемежитель является отображением или функцией, которая может переупорядочивать биты данных в кодовом блоке любым способом безотносительно к бесконфликтному доступу к памяти в турбо-декодере. Большие размеры кодовых блоков могут быть использованы для больших полезных нагрузок данных, требующих высокой производительности декодирования, в то время как небольшие размеры кодовых блоков могут быть использованы для небольших полезных нагрузок данных. Множество SISO-декодеров может быть использовано для больших размеров кодовых блоков (например, размеров, больших, чем пороговый размер), и может быть извлечена выгода из использования бесконфликтного турбо-перемежителя.
Передатчик может выполнять турбо-кодирование для кодового блока на основе множества составных кодеров и бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер. Передатчик может выполнять турбо-кодирование для кодового блока на основании множества составных кодеров и обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер.
Приемник может выполнять турбо-декодирование для кодового блока на основе множества SISO-декодеров и бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер. Приемник может выполнять турбо-декодирование для кодового блока на основе, по меньшей мере, одного SISO-декодера и обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер.
Различные аспекты и признаки раскрытия описаны более подробно ниже.
Краткое описание чертежей
Фиг.1 изображает блок-схему базовой станции и UE.
Фиг.2 изображает блок-схему процессора передачи (TX) данных.
Фиг.3 изображает блок-схему турбо-кодера.
Фиг.4 изображает блок-схему процессора приема (RX) данных.
Фиг.5 изображает блок-схему турбо-декодера.
Фиг.6 изображает блок-схему турбо-декодера с одним SISO-декодером.
Фиг.7 изображает блок-схему турбо-декодера с множеством SISO-декодеров.
Фиг.8 изображает график размера кодового блока относительно данных полезной нагрузки.
Фиг.9 изображает работу перемежителя относительно простого числа со смешиванием (DRP).
Фиг.10 изображает блок-схему конфигурируемого турбо-декодера.
Фиг.11 изображает схему процесса обработки данных.
Фиг.12 изображает схему устройства обработки данных.
Осуществление изобретения
Способы, описанные в настоящей заявке, могут быть использованы для различных систем связи, таких как CDMA, TDMA, FDMA, OFDMA, SC-FDMA и других систем. Понятия “система” и ”сеть” часто использованы взаимозаменяемо. Система CDMA может осуществлять способ радиосвязи, такой как универсальный наземный радиодоступ (UTRA), cdma2000 и т.д. UTRA включает в себя широкополосный CDMA и низкую скорость элементарных посылок (LCR). cdma2000 охватывает стандарты IS-2000, IS-95 и IS-856. Система TDMA может осуществлять способ радиосвязи, такой как глобальная система мобильной связи (GSM). Система OFDMA может осуществлять способ радиосвязи, такой как расширенная UTRA (Е-UTRA), сверх мобильная широкополосная передача (UMB), IEEE 802.11 (WiFi), IEEE 802.16 (WiMAX), IEEE 802.20, Flash-OFDM® и т. д. UTRA, Е-UTRA и GSM являются частью универсальной мобильной телекоммуникационной системы (UMTS). Долгосрочное развитие (LTE) 3GPP является развивающейся версией UMTS, которая использует Е-UTRA, который использует OFDMA в нисходящей линии связи и SC-FDMA в восходящей линии связи. UTRA, Е-UTRA, GSM, UMTS и LTE описаны в документах из организации под названием “Проект партнерства 3-го поколения (3GPP)”. cdma2000 и UMB описаны в документах из организации под названием “Проект партнерства 2-го поколения (2GPP)”. Эти способы также могут быть использованы для беспроводных локальных сетей (WLAN), которые могут осуществлять любой способ радиосвязи в семействе IEEE 802.11 стандартов, Hiperlan и т.д. Эти различные способы радиосвязи и стандарты известны в данной области техники. Для пояснения определенные аспекты способов описаны ниже для LTE, и терминология LTE использована в некоторой части описания ниже.
Способы могут быть использованы для UE, а также базовой станции. UE также может быть упомянута как подвижная станция, терминал, терминал доступа и абонентское устройство, станция и т.д. UE может быть сотовым телефоном, персональным цифровым ассистентом (PDA), беспроводным устройством связи, беспроводным модемом, карманным устройством, переносным портативным компьютером, беспроводным телефоном и т.д. UE может взаимодействовать с одной или более базовыми станциями через передачи в нисходящей линии связи и восходящей линии связи. Базовая станция также может быть упомянута как узел В, расширенный узел В (eNB), точка доступа и т.д.
Способы могут быть использованы для передачи в системе с одним входом и одним выходом, одним входом и множеством выходов, множеством входов и одним выходом и/или множеством входов и множеством выходов (MIMO). Один вход относится к одной антенне передачи, а множество входов относятся к множеству антенн передачи для передачи данных. Один выход относится к одной антенне приема, а множество выходов относится к множеству антенн приема для приема данных.
Фиг.1 изображает блок-схему конструкции базовой станции 110 и UE 150 в беспроводной системе 100 связи. Базовая станция оборудована множеством (Т) антенн с 134а по 134t, которые могут быть использованы для передачи и приема данных. UE 150 оборудована множеством (R) антенн с 152а по 152r, которые могут быть использованы для передачи и приема данных. Каждая антенна может быть физической антенной или антенной решеткой.
В базовой станции 110 процессор 120 данных передачи (ТХ) может принимать данные трафика из источника 112 данных, обрабатывать (например, форматировать, кодировать, перемежать и выполнять отображение символов) данные трафика на основании транспортного формата и предоставлять символы данных. Как использовано в настоящей заявке, символ данных является символом для данных, пилот-символ является символом для пилот-данных, и символ обычно является комплексной величиной. Символы данных и пилот-символы могут быть символами модуляции из схемы модуляции, такой как PSK и QAM. Пилот-данные являются данными, известными априори как передатчику, так и приемнику. Транспортный формат может указывать размер кодового блока, схему модуляции и кодирования и т.д. Транспортный формат также может быть упомянут как скорость, формат пакета и т.д.
Процессор 130 MIMO ТХ может мультиплексировать символы данных с пилот-символами и может выполнять прямое отображение MIMO, предварительное кодирование/формирование луча и т.д. Символ может быть послан из одной антенны для прямого отображения MIMO или из множества антенн для предварительного кодирования/формирования диаграммы направленности. Процессор 130 может выдавать Т выходных потоков символов в Т передатчиков (TMTR) с 132а по 132t. Каждый передатчик 132 может обрабатывать свой выходной поток символов (например, для OFDM, SC-FDM, CDMA и т.д.), чтобы получить выходной поток элементарных посылок. Каждый передатчик 132 дополнительно может приводить в определенное состояние (например, преобразовывать в аналоговый вид, фильтровать, усиливать и преобразовывать с повышением частоты) свой выходной поток элементарных посылок и генерировать сигнал нисходящей линии связи. Т сигналов нисходящей линии связи из передатчиков с 132а по 132t могут быть переданы из Т антенн с 134а по 134t, соответственно.
В UE 150 R антенн с 152а по 152r могут принимать сигналы нисходящей линии связи, и каждая антенна 152 может подавать принятый сигнал в соответствующий приемник (RCVR) 154. Каждый приемник 154 может обрабатывать (например, фильтровать, усиливать, преобразовывать с понижением частоты и преобразовывать в цифровой вид) свой принятый сигнал, чтобы получить выборки, и может дополнительно обрабатывать выборки (например, OFDM, SC-FDMA, CDMA и т.д.), чтобы получить символы данных. Приемники с 154а по 154r могут подавать принятые символы данных в детектор 160 MIMO и подавать принятые пилот-символы в процессор 194 канала. Процессор 194 канала может оценивать отклик канала нисходящей линии связи на основании принятых пилот-символов и подавать оценки канала в детектор 160 MIMO. Детектор 160 MIMO может выполнять детектирование MIMO относительно принятых символов данных с оценками канала и выдавать оценки символов данных. Процессор 170 данных приема (RX) может дополнительно обрабатывать (выполнять обратное преобразование символов, выполнять обратное перемежение и декодировать) оценки символов данных и подавать декодированные данные в приемник 172 данных. В общем обработка с помощью детектора 160 MIMO и процессора 172 данных RX является комплементарной к обработке с помощью процессора 130 MIMO TX и процессора 120 данных TX в базовой станции 110.
UE 150 может оценивать состояния канала и посылать информацию обратной связи в базовую станцию 110. Информация обратной связи может содержать ранг MIMO, указывающий число потоков данных или уровней, которые посылаются параллельно, указатели качества канала (CQI) и/или другую информацию. Информация обратной связи и данные трафика из источника 180 данных могут быть обработаны с помощью процессора 182 данных ТХ, мультиплексированы с пилот-символами и обработаны с помощью процессора 184 MIMO ТХ и дополнительно обработаны с помощью передатчиков с 154а по 154r, чтобы сгенерировать R сигналов восходящей линии связи, которые могут быть переданы через антенны с 152а по 152r.
В базовой станции 110 сигналы восходящей линии связи могут быть приняты с помощью Т антенн с 134а по 134t и дополнительно обработаны с помощью процессора 138 данных RX, чтобы восстановить информацию обратной связи и данные трафика, посланные с помощью UE 150. Контроллер/процессор 140 могут управлять передачей данных в UE 150 на основании информации обратной связи. Процессор 144 канала может оценивать отклик канала восходящей линии связи на основании принятых пилот-символов и выдавать оценки канала, которые могут быть использованы для обработки и детектирования MIMO.
Контроллеры/процессоры 140 и 190 могут управлять работой в базовой станции 110 и UE 150 соответственно. Памяти 142 и 192 могут запоминать данные и программные коды для базовой станции 110 и UE 150 соответственно.
Фиг.2 изображает блок-схему конструкции процессора 120 данных ТХ, которая также может быть использована для процессора 182 данных ТХ на фиг.1. В процессоре 120 данных ТХ модуль 210 разделения может принимать данные, чтобы передать и разделить данные на кодовые блоки выбранного размера кодового блока. Кодовый блок также может быть упомянут как блок данных, транспортный блок, пакет и т.д. Каждый кодовый блок может быть закодирован и декодирован отдельно. Генератор 220 контроля избыточным циклическим кодом (CRC) может генерировать значение CRC для каждого кодового блока и присоединять значение CRC к кодовому блоку. Значение CRC может быть использовано приемником, чтобы определять, декодирован ли кодовый блок правильно или с ошибками. Турбо-кодер 230 может кодировать каждый кодовый блок на основании выбранной скорости кода и выдавать закодированный блок. Модуль согласования скорости и перемежитель 240 канала может выбирать подмножество битов кода из турбо-кодера 230 для закодированного блока, перемежать выбранные биты кода и выдавать перемеженный блок. Согласование скорости и перемежение может обеспечивать время, частоту и/или пространственное разнесение для битов кода. Модуль 250 отображения символов может отображать перемеженные биты на символы данных на основании выбранной схемы модуляции. Выбранный размер кодового блока, скорость кода и схема модуляции могут быть определены на основании транспортного формата, который может быть выбран на основании состояний канала, функциональных возможностей UE, доступности системных ресурсов и т.д.
Фиг.3 изображает блок-схему конструкции турбо-кодера 230 на фиг.2. Турбо-кодер 230 осуществляет параллельный конкатенированный сверточный код (РССС) и включает в себя два составляющих кодера 310а и 310b, перемежитель 320 кода и модуль 330 прокалывания и мультиплексирования (Mux). Турбо-кодер 230 кодирует N битов данных и выдает соответствующий блок из S битов кода, где N и S могут быть любыми подходящими значениями.
В турбо-кодере 230 перемежитель 320 кода может перемежать или переупорядочивать биты данных (обозначенные как x) в кодовом блоке на основе выбранного турбо-перемежителя, который может быть бесконфликтным турбо-перемежителем или обычным турбо-перемежителем, как описано ниже. Составляющий кодер 310а может кодировать биты данных на основании первого составляющего кода и выдавать первые биты контроля четности (обозначенные как y). Подобным образом составляющий кодер 310b может кодировать перемеженные биты данных из перемежителя 320 кода на основании второго составляющего кода и выдавать вторые биты контроля четности (обозначенные как z). Составляющие кодеры 310а и 310b могут осуществлять два рекурсивных систематических составляющих кода, которые могут быть сверточными кодами. Модуль 330 может принимать биты данных и биты контроля четности из составляющих кодеров 310а и 310b и может прокалывать или удалять достаточное число бит на основании выбранной скорости кода, чтобы получить желаемое число бит. Модуль 330 может мультиплексировать не удаленные биты данных и биты контроля четности и выдавать закодированные биты для закодированного блока. Закодированные биты могут включать в себя биты данных (которые также упоминают как систематические биты), за которыми следуют первые биты контроля четности, а затем следуют вторые биты контроля четности.
Фиг.4 изображает блок-схему конструкции процессора 170 данных RX, которая также может быть использована для процессора 138 данных RX на фиг.1. В процессоре 170 данных RX модуль 410 вычисления коэффициента логарифмической вероятности (LLR) может принимать оценки символов данных из детектора 160 MIMO и вычислять LLR битов кода для каждой оценки символа данных. Символ данных может быть получен с помощью отображения В битов кода на комплексную величину в совокупности сигнала. B LLR могут быть вычислены для В битов кода символа данных на основании соответствующей оценки символа данных. LLR для каждого бита кода может указывать вероятность того, что бит кода является нулем ('0') или единицей ('1'), учитывая оценку символа данных для этого бита кода. Модуль обратного перемежения канала и модуль 420 обратного согласования скорости 420 могут выполнять обратное перемежение и обратное согласование скорости относительно LLR из модуля 410 способом, комплементарным к перемежению и согласованию скорости, выполняемым с помощью модуля 240 на фиг.2, и выдавать входные LLR. Турбо-декодер 430 может декодировать каждый блок входных LLR из модуля 420 обратного перемежения канала и выдавать декодированный блок. Модуль 440 контроля CRC может контролировать каждый декодированный блок и выдавать статус декодирования для блока. Модуль 450 сборки может собирать декодированные блок и выдавать декодированные данные.
Фиг.5 изображает блок-схему конструкции турбо-декодера 430а, которая может быть использована для турбо-декодера 430 на фиг.4. В турбо-декодере 430а демультиплексор (Demux) 510 может принимать входные LLR для кодового блока и демультиплексировать входные LLR в LLR X для битов данных x, LLR Y для первых битов контроля четности y и LLR Z для вторых битов контроля четности z. SISO-декодер 520а может принимать LLR X битов данных и LLR Y первых битов контроля четности из демультиплексора 510 и LLR X2 битов данных с обратным перемежением из модуля 540 обратного перемежения кода. SISO-декодер 520а может получать новые LLR X1 для битов данных на основании первого составляющего кода. Перемежитель 530 кода может перемежать LLR X1 битов данных на основе выбранного турбо-перемежителя (который используют для перемежителя 320 кода на фиг.3) и выдавать LLR X~1 перемеженных битов данных. SISO-декодер 520b может принимать LLR X битов данных и LLR Z вторых битов контроля четности из демультиплексора 510 и LLR X~1 перемеженных битов данных из перемежителя 530. Декодер 520b может получать новые LLR X~2 для битов данных на основании второго составляющего кода. Модуль 540 обратного перемежения кода может выполнять обратное перемежение LLR X~2 битов данных на основе инверсии выбранного турбо-перемежителя и выдавать LLR X2 битов данных с обратным перемежением.
SISO-декодеры 520а и 520b могут быть максимальными апостериорными (МАР) декодерами, которые могут осуществлять алгоритм МАР BCJR или производную меньшей сложности. SISO-декодеры 520а и 520b также могут осуществлять алгоритм Витерби с программным выходом (SOV) или некоторый другой алгоритм декодирования, известный в данной области техники.
Декодирование с помощью SISO-декодеров 520а и 520b может быть повторено множество раз, например, 6, 8, 10 и более раз. Результаты декодирования могут быть более надежными после каждой итерации. После того как все итерации декодирования завершены, детектор 560 может принять окончательные LLR битов данных из SISO-декодера 520а, выполнить аппаратное решение относительно каждого LLR и выдать декодированные биты.
Декодеры 520а и 520b могут управляться последовательно, причем внешнюю информацию из одного SISO-декодера подают в качестве входной информации в другой SISO-декодер. Вследствие последовательной работы двух SISO-декодеров один физический SISO-декодер может быть использован для того, чтобы осуществлять оба SISO-декодера 520а и 520b.
Фиг.6 изображает блок-схему турбо-декодера 430b, которая является одной конструкцией турбо-декодера 430а на фиг.5. В турбо-декодере 430b демультиплексор 610 может принимать входные LLR для кодового блока и демультиплексировать входные LLR в LLR U для первого составляющего кода и LLR V для второго составляющего кода. LLR U могут включать в себя LLR X битов данных и LLR Y первых битов контроля четности. LLR V могут включать в себя LLR X битов данных и LLR Z вторых битов контроля четности.
Для первого составляющего кода SISO-декодер 620 может принимать LLR U из демультиплексора 610 и LLR X2 из модуля 650 памяти и получать новые LLR X1. Перемежитель 630 кода может перемежать LLR X1 на основе выбранного турбо-перемежителя и выдавать перемеженные LLR X~1 в модуль 650 памяти. Для второго составляющего кода SISO-декодер 620 может принимать LLR V из демультиплексора 610 и LLR X~1 из модуля 650 памяти и получать новые LLR X~2. Модуль 640 обратного перемежения кода может выполнять обратное перемежение LLR X~2 на основе инверсии выбранного турбо-перемежителя и выдавать LLR X2 с обратным перемежением в модуль 650 памяти. Модуль 650 памяти может осуществлять (i) перемежитель 630 кода с помощью запоминания LLR X1 из SISO-декодера 620 в перемеженной последовательности и (ii) модуль 640 обратного перемежения кода с помощью запоминания LLR X2 из SISO-декодера 620 в последовательности с обратным перемежением. Перемежение и обратное перемежение кода могут быть выполнены с помощью генерации соответствующих адресов для модуля 650 памяти. Детектор 660 может принимать окончательные LLR битов данных после того, как завершены все итерации декодирования, и может выдавать декодированные биты.
UE 150 может иметь широкий диапазон частот и/или функциональные возможности MIMO и должна поддерживать очень высокую максимальную скорость передачи данных, например 200+ Мбит/с. Функциональные возможности декодирования UE 150 может быть узким местом. Турбо-декодер высокой пропускной способности с параллельными SISO-декодерами может быть использован для того, чтобы поддерживать высокую максимальную скорость передачи данных.
Турбо-кодер может кодировать кодовый блок из N битов данных и генерировать закодированный блок из S битов кода, где S зависит от скорости кода R или R = N/S. Турбо-декодер с параллельными SISO-декодерами может разделять всю решетку из N переходов для N битов данных кодового блока на М сегментов. Каждый сегмент может охватывать одно окно решетки из К переходов, таким образом, что M = N/K. Каждый сегмент может быть обработан с помощью отдельного SISO-декодера. М SISO-декодеров могут выполнять декодирование для М сегментов параллельно.
Фиг.7 изображает блок-схему конструкции турбо-декодера 430с, которая может быть использована для турбо-декодера 430 на фиг.4. Турбо-декодер 430с включает в себя демультиплексор 710 и М декодеров 712а по 712m параллельных сегментов. Каждый декодер 712 сегмента включает в себя SISO-декодер 720 перемежитель 730 кода, модуль 740 обратного перемежения кода и модуль 750 памяти.
В турбо-декодере 430с демультиплексор 710 может принимать и демультиплексировать входные LLR для кодового блока в LLR Um и Vm для каждого сегмента m, где m {1,…,M}. LLR Um могут включать в себя LLR Xm битов данных и LLR Ym первых битов контроля четности для первого составляющего кода для сегмента m. LLR Vm могут включать в себя LLR Xm битов данных и LLR Zm первых битов контроля четности для второго составляющего кода для сегмента m. Демультиплексор 710 может подавать каждый входной LLR в один декодер 712 сегмента.
В декодере 712 сегмента для сегмента m SISO-декодер 720 может выполнять декодирование для первого или второго составляющего кода в любой данный момент. Для первого составляющего кода SISO-декодер 720 может принимать LLR Um из демультиплексора 710 и LLR Xm2 из модуля 750 памяти и получать новые LLR Xm1. Перемежитель 730 кода может перемежать LLR Xm1 и подавать перемеженные X~m1 в модуль 750 памяти. Для второго составляющего кода SISO-декодер 620 может принимать LLR Vm из демультиплексора 710 и LLR X~m1 из модуля 750 памяти и получать новые LLR X~m2. Модуль 740 обратного перемежения кода может выполнять обратное перемежение LLR X~m2 и подавать LLR Xm2 с обратным перемежением в модуль 750 памяти. Модуль 750 памяти может осуществлять как перемежитель 730 кода, так и модуль 740 обратного перемежения.
Для декодирования первого составляющего кода входные LLR (или входные АРР) находятся в натуральной последовательности. Для сегмента m входные LLR соответствуют битам данных Km, Km+1,…,K(m+1)-1 в кодовом блоке. Для декодирования второго составляющего кода входные LLR не находятся в натуральной последовательности. Для сегмента m входные LLR соответствуют битам данных π(Km), π(Km+1),…, π(K(m+1)-1) в кодовом блоке, где π(x) обозначает функцию отображения для выбранного турбо-перемежителя, которая отображает бит данных в позиции x в позицию π(x).
Перемежители 730а по 730m кода могут работать на основе выбранного турбо-перемежителя. Модули 740а по 740m обратного перемежения кода могут работать на основе инверсии выбранного турбо-перемежителя. Для первого составляющего кода модули 750а по 750m памяти могут подавать входные LLR в SISO-декодеры 720а по 720m соответственно и могут запоминать выходные данные перемежителей 730а по 730m кода соответственно. Для второго составляющего кода модули 750а по 750m памяти могут подавать входные LLR в SISO-декодеры 720а по 720m соответственно и могут запоминать выходные данные модулей 740а по 740m обратного перемежения кода соответственно. После того как все итерации декодирования завершены, детектор 760 может принимать окончательные LLR битов данных из модулей 750а по 750m памяти и выдавать декодированные биты.
Как изображено на фиг.5 по фиг.7, важным признаком турбо-декодирования является обмен “внешней” информацией между декодированием двух составляющих кодов. Выходные LLR из декодирования первого составляющего кода подают как входные LLR для декодирования второго составляющего кода и наоборот. Выходные LLR из декодирования одного составляющего кода находятся в отличной от входных LLR последовательности для декодирования другого составляющего кода. Следовательно, выходные LLR перемежают или выполняют обратное перемежение, соответствующим образом, до запоминания в модуле (модулях) памяти.
Каждый модуль 750 памяти может запоминать LLR для одного SISO-декодера 720 для одного сегмента. Каждый модуль 750 памяти может запоминать LLR в натуральной последовательности для первого составляющего кода, затем запоминать LLR в перемеженной последовательности для второго составляющего кода, затем запоминать LLR в натуральной последовательности для первого составляющего кода и т.д.
Каждый SISO-декодер 720 выдает выходные LLR, которые могут быть перемежены или в которых может быть выполнено обратное перемежение, а затем поданы в М модулей 750а по 750m памяти. Каждый выходной LLR после перемежения или обратного перемежения может быть подан в любой из М модулей 750 памяти.
М декодеров 720а по 720m могут непрерывно выдавать выходные LLR, которые могут быть перемежены или в которых может быть выполнено обратное перемежение, а затем поданы в М модулей 750а по 750m памяти. Если выходные LLR из множества SISO-декодеров отображаются в один и тот же модуль памяти в данном цикле записи как результат перемежения или обратного перемежения, тогда может случаться конфликт памяти, и может быть вставлено время задержки, чтобы разрешить конфликт памяти. Время задержки может уменьшить пропускную способность турбо-декодера.
Бесконфликтный турбо-перемежитель может быть использован, чтобы избежать конфликта памяти во время параллельного декодирования с помощью множества SISO-декодеров. Бесконфликтный турбо-перемежитель переупорядочивает биты данных в кодовом блоке таким образом, что информация из множества SISO-декодеров после перемежения или обратного перемежения может быть записана параллельно во множество модулей памяти в каждом цикле записи без возникновения конфликта доступа к памяти. Бесконфликтный турбо-перемежитель математически может быть определен следующим образом:
Figure 00000001
для 0<m, n<M, m=n и 0<k<K,
где
Figure 00000002
обозначает операцию отбрасывания дробной части, которая выдает наибольшее целое, равное или меньшее x,
π(x) обозначает функцию перемежения кода, и
π-1(x) обозначает функцию обратного перемежения кода.
Уравнение (1) указывает, что k-е биты данных в любых двух сегментах m и n должны быть перемежены в разные сегменты. Это условие гарантирует, что M выходных LLR из SISO-декодеров 720а по 720m для каждого цикла записи после перемежения отображают в М разных модулей 750а по 750m памяти, где отображение зависит от функции перемежения кода π(x).
Уравнение (2) указывает, что в k-х битах данных в любых двух сегментах m и n должно быть выполнено обратное перемежение в разные сегменты. Это условие гарантирует, что M выходных LLR из SISO-декодеров 720а по 720m для каждого цикла записи после обратного перемежения отображают в М разных модулей 750а по 750m памяти, где отображение зависит от функции обратного перемежения кода π(x).
Условия в Уравнениях (1) и (2) могут быть выполнены на основе разных конструкций перемежителя, как описано ниже. Бесконфликтный турбо-перемежитель может быть определен для конкретных значений N, M и K. Затем бесконфликтный турбо-перемежитель может предоставлять бесконфликтный доступ к памяти для этих конкретных значений N, M и K и может предоставлять или не предоставлять бесконфликтный доступ к памяти для других значений N, M и K.
Система может поддерживать множество размеров кодовых блоков, которые могут быть выбраны на основании различных факторов, таких как ожидаемый диапазон полезной нагрузки данных, чтобы эффективно передавать, кодировать и т.д. Подходящий размер кодового блока может быть выбран для использования на основании количества данных для передачи.
Фиг.8 изображает график размера кодового блока относительно полезной нагрузки данных в соответствии с одной конструкцией. В этой конструкции наибольший размер кодового блока равен 8192. Для полезной нагрузки данных, равной или меньшей 8192, один кодовый блок может быть использован для всей полезной нагрузки данных. Для полезной нагрузки данных, находящейся в диапазоне от 8193 до 16384, могут быть использованы два кодовых блока, и полезная нагрузка данных может быть разделена поровну между двумя кодовыми блоками. В общем для полезной нагрузки данных, находящейся в диапазоне от 8192NB + 1 до 8192(NB + 1), могут быть использованы NB + 1 кодовых блоков, и полезная нагрузка данных может быть разделена поровну между NB + 1 кодовыми блоками. Как изображено на фиг.8, если полезная нагрузка данных является достаточно большой, размер кодового блока равен 4096 или более.
Турбо-декодер высокой пропускной способности с параллельными SISO-декодерами (например, как изображено на фиг.7) может быть использован для больших полезных нагрузок данных, которые могут быть переданы с широкой полосой частот и/или MIMO. Для небольших полезных нагрузок данных может быть достаточным турбо-декодер с одним SISO-декодером (например, как изображено на фиг.6). Таким образом, бесконфликтное турбо-перемежение может быть необходимо только для больших полезных нагрузок данных, например, определенного большого размера полезной нагрузки и выше.
В некотором аспекте турбо-перемежение может быть выполнено следующим образом:
использование обычного турбо-перемежителя для небольших размеров кодовых блоков, которые равны или меньше, чем пороговый размер, и
использование бесконфликтных турбо-перемежителей для больших размеров кодовых блоков, которые больше чем пороговый размер.
Для конструкции, изображенной на фиг.8, пороговый размер может быть равен 4096. В общем пороговый размер может быть выбран на основании точки, в которой требуется турбо-декодер высокой пропускной способности, чтобы отвечать требованиям пропускной способности декодирования.
Обычный турбо-перемежитель может быть использован для небольших размеров кодовых блоков до порогового размера. В одной конструкции обычный турбо-перемежитель может быть турбо-перемежителем, определенным в версии 6 3GPP и описанным в TS 25.212 3GPP, под заголовком “Multiplexing and channel coding (FDD)”, декабрь 2006 г., который открыто доступен. Турбо-перемежитель версии 6 3GPP может размещать размеры кодовых блоков до 5114 и хорошо определен и проверен. Для обычного турбо-перемежителя также могут быть использованы другие турбо-перемежители.
Как изображено в Уравнениях (1) и (2), конструкция бесконфликтного турбо-перемежителя зависит от размера кодового блока N, числа сегментов М и размера сегмента К. Между N и соответствующей комбинацией М и К может быть взаимно однозначное отображение. Для каждого большого размера кодового блока N может быть определена подходящая функция π(x) турбо-перемежителя для этого размера кодового блока N (при данных М и К), чтобы достичь хорошей производительности декодирования. Производительность декодирования с помощью функции π(x) турбо-перемежителя может быть проверена посредством компьютерного моделирования, лабораторных измерений, полевых испытаний и т.д. и, возможно, для каждой полезной нагрузки данных, использующей этот размер кодового блока N. Могут быть оценены разные конструкции турбо-перемежителя (например, с разными значениями параметров). Производительность декодирования может быть проверена для каждой конструкции турбо-перемежителя, для того чтобы найти конструкцию турбо-перемежителя, которая может обеспечить хорошую (или наилучшую возможную) производительность декодирования. Таким образом, процесс конструирования турбо-перемежителя может быть сложным и утомительным, особенно для большого числа размеров кодовых блоков. С помощью использования бесконфликтного турбо-перемежителя только для больших размеров кодовых блоков вместо всех размеров кодовых блоков, сложность конструирования турбо-перемежителя, а также сложность осуществления может быть значительно уменьшена.
В другом аспекте может быть поддержано ограниченное множество больших размеров кодовых блоков с помощью бесконфликтных турбо-перемежителей вместо всех возможных размеров. В одной конструкции поддерживаемые размеры кодовых блоков могут быть выражены как:
Ni = Nth + L*i, для i = 1, 2, …,
Figure 00000003
Figure 00000004
Уравнение (3),
где Nth - пороговый размер,
L - размер шага или приращение между последовательными большими размерами кодовых блоков, и
Ni - i-й большой размер кодового блока.
В конструкции, изображенной в Уравнении (3), поддерживаемые большие размеры кодовых блоков увеличиваются линейно на L. Для каждого большого размера кодового блока Ni могут быть использованы до L-1 битов дополнения, и издержки дополнения могут быть до (L-1)/Ni. L может быть выбрано на основании компромисса между сложностью турбо-перемежителя и издержками дополнения. Меньшее значение L соответствует большему числу поддерживаемых больших размеров кодовых блоков, что может увеличивать сложность турбо-перемежителя, но уменьшать издержки дополнения. Обратное является справедливым для большого значения L.
В одной конструкции поддерживаемые большие размеры кодовых блоков могут быть выражены как:
Ni = 4096 + 32i, для i = 1, 2, …, 128
Figure 00000003
Уравнение (4)
Конструкция в Уравнении (4) поддерживает 128 разных больших размеров кодовых блоков, находящихся в диапазоне от 4128 до 8192, с приращением L = 32. Для 128 разных больших размеров кодовых блоков могут быть определены 128 бесконфликтных турбо-перемежителей. Издержки дополнения для каждого большого размера кодового блока равны менее чем одному проценту.
В другой конструкции поддерживаемые большие размеры кодовых блоков могут быть выражены как:
Ni = 4096 + 64i, для i = 1, 2, …, 64
Figure 00000005
Уравнение (5)
Конструкция в Уравнении (5) поддерживает 64 разных больших размеров кодовых блоков, находящихся в диапазоне от 4160 до 8192, с приращением L = 64. Для 64 разных больших размеров кодовых блоков могут быть определены 64 бесконфликтных турбо-перемежителя. Издержки дополнения для каждого большого размера кодового блока приблизительно равны 1,5 процента или меньше.
Для Nth и L также могут быть использованы другие значения, которые определяют число поддерживаемых больших размеров кодовых блоков и издержки дополнения.
В другой конструкции поддерживаемые большие размеры кодовых блоков могут быть выражены как:
Ni = Ni-1 + Li, для i = 1, 2,…,
Figure 00000003
Figure 00000006
Уравнение (6)
где N0 = Nth, а Li - приращение для i-го большого размера кодового блока. В конструкции, изображенной в Уравнении (6), поддерживаемые большие размеры кодовых блоков могут увеличиваться на разные величины Li. Например, Li может быть выбран таким образом, чтобы достичь целевых издержек дополнения для каждого большого размера кодового блока, в то же время уменьшая сложность турбо-перемежителя.
В общем может быть поддержано любое число больших размеров кодовых блоков. Бесконфликтный турбо-перемежитель может быть определен для каждого большого размера кодового блока на основе различных конструкций.
В одной конструкции бесконфликтный турбо-перемежитель может быть осуществлен с помощью перемежителя относительно простого числа со смешиванием (DRP). Перемежитель DRP использует перемежитель относительно простого числа (RP), который отображает бит данных в местоположении n в местоположение (s + P*n) mod N, где P и N - относительно простые числа, s - начальный индекс, а “mod N” обозначает операцию по модулю N. Перемежитель DRP дополнительно применяет смешивание до и после перемежителя RP.
Фиг.9 изображает работу перемежителя DRP. Кодовый блок размера N разделяют на множество секций размера KR, где N - целое кратное KR. KR битов в каждой секции перемежают на основе функции первого/считывания смешивания Ia(n). Затем N битов после первого смешивания перемежают на основе перемежителя RP, который может быть задан как Ib(n) = (s + P*n) mod N. N битов после перемежения RP разделяют на множество секций размера KW, где N - целое кратное KW. KW битов в каждой секции перемежают на основе функции второго/считывания смешивания Ic(n), чтобы получить окончательно перемеженные биты. Перемежитель DRP подробно описан в статье S. Crozier and P. Guinand под заголовком “High-Performance Low-Memory Interleaver Banks for Turbo-Codes”, Proc. 54-th IEEE Vehicular Tech., Oct. 2001, pages 2394-2398, которая является открыто доступной.
Функция перемежителя DRP πdrp(n) может быть определена на основе двух функций смешивания Ia(n) и Ic(n) и функции перемежителя RP Ib(n)следующим образом:
πdrp(n) = Ic(Ib(Ia(n))), для n = 0, …, N-1 Уравнение (7)
Функция перемежителя DRP имеет следующие характеристики:
πdrp((n + Q) mod N) = (πdrp(n) + Q*P) mod N, Уравнение (8)
πdrp((n + 1) mod N) = (πdrp(n) + D(n mod Q)) mod N, Уравнение (9),
где D(n) - общая функция смешивания с периодом Q, а Q - наименьшее общее кратное KR и KW. Можно показать, что перемежитель DRP удовлетворяет критерию бесконфликтного перемежителя в Уравнении (1) и (2) с K = Q.
В другой конструкции бесконфликтный перемежитель может быть осуществлен с помощью перемежителя с почти регулярной перестановкой (ARP). Перемежитель ARP использует перемежитель RP, но добавляет небольшое отклонение в каждом местоположении. Функция перемежителя ARP πarp(n) может быть определена следующим образом:
πarp(n) = (P*n + P*A(n)) + B(n) mod N, для n = 0, …, N-1, Уравнение (10),
где A(n) и B(n) - функции с периодом С, который является делителем N.
Значения A(n) и B(n) могут быть малыми по сравнению с P и N/K. Член P*A(n) и B(n) добавляет возмущение в перемежитель RP. Перемежитель ARP подробно описан в статье C. Berrou и др. под заголовком “Designing Good Permutations for Turbo Codes: Towards a Single Model”, IEEE Int. Conf. on Comm., vol. 1, 20-24 June 2004, pages 341-345, которая является открыто доступной. С помощью тщательного выбора A(n) и B(n) статья Berrou показывает, что перемежитель ARP может удовлетворять критерию бесконфликтного перемежителя в Уравнении (1) и (2) при М = С, и, возможно, при М = p*С, при условии, что N является кратным p.
Еще в одной конструкции бесконфликтный турбо-перемежитель может быть осуществлен с помощью перемежителя с квадратичным полиномом возмущения (QPP). Функция перемежителя QPP πqpp(n) может быть определена следующим образом:
πqpp(n) = (a*n + b*n) mod N, для n = 0, …, N-1, Уравнение (11),
где a и b - две константы для квадратичного полинома. Для каждого большого размера кодового блока могут быть выбраны конкретные значения для a и b для перемежителя QPP.
Можно показать, что, если квадратичный полином является полиномом возмущения для N, тогда перемежитель QPP является бесконфликтным для любого К, которое делится на N. Перемежитель QPP подробно описан в статье Jin Sun and Oscar Y. Takeshita под заголовком “Interleavers for Turbo Codes Using Permutation Polynomials Integer Rings”, IEEE Transaction of Information Theory, Issue 1, page 101-119, 2005, которая является открыто доступной. Показано, что перемежитель QPP может удовлетворять критерию бесконфликтного перемежителя Уравнения (1) и (2), пока K является делителем N.
Фиг.10 изображает блок-схему конструкции турбо-декодера 430d, которая также может быть использована для турбо-декодера на фиг.4. В турбо-декодере 430d модуль 1060 управления может принимать выбранный размер кодового блока и определять, больше ли размер кодового блока, чем пороговый размер. Модуль 1060 может выбирать обычный турбо-перемежитель 1030а, если размер кодового блока не больше, чем пороговый размер, и может выбирать бесконфликтный турбо-перемежитель 1030b в противном случае. Модуль 1060 может генерировать различные управляющие сигналы на основании размера кодового блока.
Переключатель 1010 может принимать входные LLR для кодового блока, подавать входные LLR в SISO-декодер 1020, если размер кодового блока не больше, чем пороговый размер, и подавать входные LLR в SISO-декодеры 1020b в противном случае. SISO-декодер 1020а может содержать SISO-декодер 620 на фиг.6. Обычный турбо-перемежитель 1030а может содержать перемежитель 630, модуль 640 обратного перемежения и модуль 650 памяти на фиг.6. SISO-декодер 1020а и обычный турбо-перемежитель 1030а могут работать, как описано выше для фиг.6. Модуль 1060 может подавать выбранный размер кодового блока и/или управляющие сигналы в SISO-декодер 1020а и обычный турбо-перемежитель 1030а, который может работать на основании размера кодового блока.
SISO-декодеры 1020b могут содержать демультиплексор 710 и SISO-декодеры 720а по 720m на фиг.7. Бесконфликтный турбо-перемежитель 1030b может содержать перемежители 730а по 730m кода, модули 740а по 740m обратного перемежения кода и модули 750а по 750m памяти на фиг.7. SISO-декодеры 1020b и бесконфликтный турбо-перемежитель 1030b могут работать, как описано выше для фиг.7. Модуль 1060 может подавать размер кодового блока в SISO-декодеры 1020b, которые могут демультиплексировать и декодировать входные LLR на основании размера сегмента К для размера кодового блока. Модуль 1060 также может подавать размер кодового блока в бесконфликтный турбо-перемежитель 1030b, который может выбирать подходящую функцию бесконфликтного турбо-перемежителя, чтобы использовать для декодирования.
После того как все операции декодирования завершены, модуль 1040 выбора может принять окончательные LLR битов данных из турбо-перемежителя 1030а или 1030b. Модуль 1040 выбора может выдавать окончательные LLR битов данных из турбо-перемежителя 1030а, если размер кодового блока не больше, чем пороговый размер, и может выдавать окончательные LLR битов данных из турбо-перемежителя 1030b в противном случае. Детектор 1050 может принимать окончательные LLR битов данных из модуля 1040 выбора и выдавать декодированные биты.
Фиг.11 изображает схему процесса 1100, предназначенного для обработки данных. Процесс 1100 может быть выполнен с помощью передатчика или приемника, например, с помощью UE, базовой станции или некоторого другого объекта. Размер кодового блока, выбранный среди множества размеров кодовых блоков, может быть определен (этап 1112). Размер кодового блока может быть выбран на основании размера передаваемой полезной нагрузки данных, например, как изображено на фиг.8. Бесконфликтный турбо-перемежитель может быть использован, если размер кодового блока больше, чем пороговый размер (этап 1114). Обычный турбо-перемежитель может быть использован, если размер кодового блока равен или меньше порогового размера (этап 1116). Множество размеров кодовых блоков могут содержать множество больших размеров кодовых блоков, которые больше, чем пороговый размер. Каждый больший размер кодового блока может быть ассоциативно связан с соответственным бесконфликтным турбо-перемежителем. Множество больших размеров кодовых блоков могут линейно увеличиваться на предварительно определенный размер шага. Множество размеров кодовых блоков также могут содержать множество меньших размеров кодовых блоков, которые равны или меньше порогового размера. Обычный турбо-перемежитель может быть использован для всех из меньших размеров кодовых блоков.
Турбо-кодирование или декодирование может быть выполнено на основе бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер (этап 1118). Турбо-кодирование или декодирование может быть выполнено на основе обычного перемежителя, если размер кодового блока равен или меньше, чем пороговый размер (этап 1120).
Для передатчика (например, базовой станции) турбо-кодирование может быть выполнено на основе множества составляющих кодеров и бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер. Турбо-кодирование может быть выполнено для кодового блока на основе множества составляющих кодеров и обычного перемежителя, если размер кодового блока равен или меньше, чем пороговый размер.
Для приемника (например, UE) турбо-декодирование может быть выполнено для кодового блока на основе множества SISO-декодеров и бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер. Множество модулей памяти могут быть использованы для того, чтобы запоминать информацию из множества SISO-декодеров. Информация из множества SISO-декодеров после перемежения или обратного перемежения на основе бесконфликтного турбо-перемежителя может быть записана параллельно во множество модулей памяти в каждом цикле записи. Бесконфликтный турбо-перемежитель может быть основан на перемежителе DRP, перемежителе ARP, перемежителе QPP или некотором другом типе перемежителя, который может поддерживать бесконфликтный доступ множества модулей памяти. Турбо-декодирование может быть выполнено на основе, по меньшей мере, одного SISO-декодера и обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер.
Фиг.12 изображает конструкцию устройства 1200 обработки данных. Устройство 1200 включает в себя средство определения размера кодового блока, выбранного из множества размеров кодового блока (модуль 1212), средство использования бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер (модуль 1214), средство использования обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер (модуль 1216), средство выполнения турбо-кодирования или декодирования на основе бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер (модуль 1218), и средство выполнения турбо-кодирования или декодирования на основе обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер (модуль 1220).
Модули на фиг.12 могут содержать процессоры, электронные устройства, устройства аппаратного обеспечения, электронные компоненты, логические схемы, памяти и т.д. или любые их комбинации.
Специалистам в данной области техники будет понятно, что информация и сигналы могут быть представлены с использованием любого из множества различных технологий и способов. Например, данные, инструкции, команды, информация, сигналы, биты, символы и элементарные посылки, которые могут быть упомянуты по всему вышеприведенному описанию, могут быть представлены с помощью напряжений, токов, электромагнитных волн, магнитных полей или частиц, оптических полей или частиц, или любых их комбинаций.
Специалисты в данной области техники дополнительно примут во внимание, что различные иллюстративные логические блоки, модули, схемы и этапы алгоритмов, описанные в связи с раскрытием, приведенным в настоящей заявке, могут быть осуществлены как электронное аппаратное обеспечение, компьютерное программное обеспечение или комбинация первого и второго. Чтобы понятно проиллюстрировать эту взаимозаменяемость аппаратного обеспечения и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и этапы описаны выше обычно в понятиях их функционального назначения. Осуществлено ли такое функциональное назначение, как аппаратное обеспечение или программное обеспечение, зависит от особых ограничений приложения и конструкции, наложенных на всю систему. Опытные изобретатели могут осуществить описанное функциональное назначение различными способами для каждого конкретного приложения, но такие решения осуществления не должны быть интерпретированы как вызывающие выход за рамки объема настоящего раскрытия.
Различные иллюстративные логические блоки, модули и схемы, описанные в связи с раскрытием, приведенным в настоящей заявке, могут быть осуществлены или выполнены с помощью универсального процессора, процессора цифровых сигналов (DSP), интегральной схемы прикладной ориентации (ASIC), вентильной матрицы, программируемой в условиях эксплуатации (FPGA), или другого программируемого логического устройства, дискретного вентиля или транзисторной логики, дискретных компонентов аппаратного обеспечения или любой их комбинации, сконструированной с возможностью выполнения функций, описанных в настоящей заявке. Универсальный процессор может быть микропроцессором, но в качестве альтернативы процессор может быть любым традиционным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор также может быть осуществлен как комбинация вычислительных устройств, например комбинация DSP и микропроцессора, множество микропроцессоров, один или более микропроцессоров в сочетании с ядром DSP или любая другая такая конфигурация.
Этапы способа или алгоритма, описанные в связи с раскрытием, приведенным в настоящей заявке, могут быть осуществлены непосредственно в аппаратном обеспечении, в программном обеспечении, модуле, выполняемом с помощью процессора, или в комбинации первого и второго. Модуль программного обеспечения может находиться в памяти RAM, флэш-памяти, памяти ROM, памяти EPROM, памяти EEPROM, в регистрах, на жестком диске, на сменном диске, CD-ROM или любом другом виде среды памяти, известной в данной области техники. Иллюстративная среда памяти соединена с процессором таким образом, что процессор может считывать информацию из среды памяти и записывать информацию в среду памяти. В качестве альтернативы среда памяти может неотъемлемой частью процессора. Процессор и среда памяти могут находиться в ASIC. ASIC может находиться в терминале пользователя. В качестве альтернативы процессор и среда памяти могут находиться в дискретных компонентах терминала пользователя.
В одном или более иллюстративных вариантах осуществления описанные функции могут быть осуществлены в аппаратном обеспечении, программном обеспечении, программно-аппаратном обеспечении или любой их комбинации. Если осуществлены в программном обеспечении, функции могут быть запомнены как одна или более инструкций или код в среде, доступной для чтения с помощью компьютера, или переданы через среду, доступную для чтения с помощью компьютера. Среда, доступная для чтения с помощью компьютера, включает в себя, как среду компьютерной памяти, так и среду связи, включающую в себя любую среду, которая способствует передаче компьютерной программы из одного места в другое. Среда памяти может быть любой доступной средой, доступ к которой может быть осуществлен с помощью компьютера. В качестве примера, а не ограничения, такая среда, доступная для чтения с помощью компьютера, может содержать RAM, ROM, EEPROM, CD-ROM или другую память на оптическом диске, память на магнитном диске или другие устройства магнитной памяти или любую другую среду, которая может быть использована, чтобы переносить или запоминать желаемый программный код в виде инструкций или структур данных, и доступ к которой может быть осуществлен с помощью компьютера. Также любое соединение соответственно называют средой, доступной для чтения с помощью компьютера. Например, если программное обеспечение передают из web-сайта, сервера или другого дистанционного источника с использованием коаксиального кабеля, волоконно-оптического кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасное излучение, радиоволны и микроволны, тогда коаксиальный кабель, волоконно-оптический кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасное излучение, радиоволны и микроволны, включены в определение среды. Disk и disc, как использованы в настоящей заявке, включают в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), гибкий диск и диск blu-ray, где disks обычно воспроизводят данные магнитным способом, в то время как discs воспроизводят данные оптическим способом с помощью лазеров. Комбинации вышеперечисленного также должны быть включены в рамки объема среды, доступной для чтения с помощью компьютера.
Предыдущее описание раскрытия предоставлено для того, чтобы дать возможность любому специалисту в данной области техники изготовить и использовать настоящее изобретение. Различные модификации в раскрытии будут без труда понятны специалистам в данной области техники, и общие принципы, определенные в настоящей заявке, могут быть применены к другим вариантам, не выходя за рамки сущности и объема изобретения. Таким образом, не подразумевается, что раскрытие ограничено примерами и конструкциями, описанными в настоящей заявке, но должно соответствовать самым широким рамкам, согласующимся с принципами и новыми признаками, раскрытыми в настоящей заявке.

Claims (30)

1. Устройство обработки данных, содержащее, по меньшей мере, один процессор, конфигурированный для:
определения размера кодового блока, выбранного из множества размеров кодовых блоков,
использования, по меньшей мере, одного бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер, и
использования обычного турбо-перемежителя иного типа, чем бесконфликтный турбо-перемежитель, если размер кодового блока равен или меньше, чем пороговый размер,
выполнения декодирования для кодового блока на основе, по меньшей мере, одного бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер, и
выполнения декодирования для кодового блока на основе обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер; и
память, связанную с, по меньшей мере, одним процессором.
2. Устройство по п.1, в котором упомянутый, по меньшей мере, один процессор конфигурирован, если используется бесконфликтный турбо-перемежитель, для:
деления кодового блока на множество секций; и
при этом выполнение декодирования для кодового блока содержит выполнение параллельного декодирования по множеству секций с использованием множества параллельных декодеров с программным входом и программным выходом (SISO) и, по меньшей мере, одного бесконфликтного турбо-перемежителя.
3. Устройство по п.2, в котором память конфигурирована для реализации множества модулей памяти для хранения информации из множества SISO-декодеров.
4. Устройство по п.3, в котором, по меньшей мере, один процессор конфигурирован для записи информации из множества SISO-декодеров, после перемежения или обратного перемежения на основе бесконфликтного турбо-перемежителя, во множество модулей памяти параллельно в каждом цикле записи.
5. Устройство по п.1, в котором множество размеров кодовых блоков включает в себя множество размеров кодовых блоков, больших, чем пороговый размер, и в котором каждый из множества размеров кодовых блоков ассоциирован с соответствующим бесконфликтным турбо-перемежителем.
6. Устройство по п.5, в котором множество размеров кодовых блоков линейно увеличивается на предварительно определенный размер шага.
7. Устройство по п.5, в котором множество размеров кодовых блоков задано, как
Figure 00000007

где Nth - минимальный размер; L - размер шага между последовательными размерами кодовых блоков, и Ni - i-й размер кодового блока из множества размеров кодовых блоков.
8. Устройство по п.5, в котором множество размеров кодовых блоков задано, как
Figure 00000008

где Li - приращение для i-го размера кодового блока, и Ni- i-й размер кодового блока из множества размеров кодовых блоков.
9. Устройство по п.1, в котором, по меньшей мере, один процессор, конфигурированный для выполнения декодирования для кодового блока, выполняет декодирование на основе, по меньшей мере, одного декодера с программным входом и программным выходом (SISO) и обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер.
10.Устройство по п.1, в котором множество размеров кодовых блоков включает в себя множество размеров кодовых блоков, равных или меньших, чем пороговый размер, и в котором обычный турбо-перемежитель используется для множества размеров кодовых блоков.
11. Устройство по п.1, в котором, по меньшей мере, один процессор конфигурирован для выбора размера кодового блока на основании размера полезной нагрузки данных.
12. Устройство по п.1, в котором, по меньшей мере, один процессор конфигурирован для выполнения кодирования для кодового блока на основе множества составляющих кодеров и бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер.
13. Устройство по п.1, в котором, по меньшей мере, один процессор конфигурирован для выполнения кодирования для кодового блока на основе множества составляющих кодеров и обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер.
14. Устройство по п.1, в котором бесконфликтный турбо-перемежитель основан на одном из перемежителя относительно простого числа с возмущением (DRP), перемежителя с почти регулярной перестановкой (ARP) и перемежителя с квадратичным полиномом перестановки (QPP).
15. Устройство по п.1, в котором, по меньшей мере, один процессор, конфигурированный для выполнения декодирования для кодового блока, выполняет декодирование на основе множества декодеров с программным входом и программным выходом (SISO) и бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер, и выполняет декодирование для кодового блока на основе, по меньшей мере, одного SISO-декодера и обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер.
16. Способ обработки данных, содержащий этапы, на которых
определяют размер кодового блока, выбранный из множества размеров кодовых блоков,
используют, по меньшей мере, один бесконфликтный турбо-перемежитель, если размер кодового блока больше, чем пороговый размер,
используют обычный турбо-перемежитель иного типа, чем бесконфликтный турбо-перемежитель, если размер кодового блока равен или меньше, чем пороговый размер,
выполняют декодирование для кодового блока на основе, по меньшей мере, одного бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер, и
выполняют декодирование для кодового блока на основе обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер.
17. Способ по п.16, в котором использование бесконфликтного турбо-перемежителя содержит:
деление кодового блока на множество секций, и
при этом выполнение декодирования для кодового блока содержит выполнение параллельного декодирования по множеству секций с использованием множества параллельных декодеров с программным входом и программным выходом (SISO) и, по меньшей мере, одного бесконфликтного турбо-перемежителя.
18. Способ по п.17, дополнительно содержащий этап, на котором:
записывают информацию из множества SISO-декодеров после перемежения или обратного перемежения на основе бесконфликтного турбо-перемежителя во множество модулей памяти параллельно в каждом цикле записи.
19. Способ по п.16, в котором выполнение декодирования для кодового блока содержит выполнение декодирования на основе, по меньшей мере, одного декодера с программным входом и программным выходом (SISO) и обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер.
20. Способ по п.16, дополнительно содержащий этап, на котором:
выполняют кодирование для кодового блока на основе множества составляющих кодеров и бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер.
21. Способ по п.16, дополнительно содержащий этап, на котором:
выполняют кодирование для кодового блока на основе множества составляющих кодеров и обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер.
22. Устройство обработки данных, содержащее:
средство для определения размера кодового блока, выбранного из множества размеров кодовых блоков,
средство для использования, по меньшей мере, одного бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер;
средство для использования обычного турбо-перемежителя иного типа, чем бесконфликтный турбо-перемежитель, если размер кодового блока равен или меньше, чем пороговый размер;
средство для выполнения декодирования для кодового блока на основе, по меньшей мере, одного бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер; и
средство для выполнения декодирования для кодового блока на основе обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер.
23. Устройство по п.22, в котором средство для использования бесконфликтного турбо-перемежителя содержит:
средство для деления кодового блока на множество секций; и средство для выполнения декодирования для кодового блока содержит средство для выполнения параллельного декодирования по множеству секций с использованием множества параллельных декодеров с программным входом и программным выходом (SISO) и, по меньшей мере, одного бесконфликтного турбо-перемежителя.
24. Устройство по п.23, дополнительно содержащее:
средство для записи информации из множества SISO-декодеров после перемежения или обратного перемежения на основе бесконфликтного турбо-перемежителя во множество модулей памяти параллельно в каждом цикле записи.
25. Устройство по п.22, в котором средство для выполнения декодирования для кодового блока содержит средство для выполнения декодирования для кодового блока на основе, по меньшей мере, одного декодера с программным входом и программным выходом (SISO) и обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер.
26. Устройство по п.22, дополнительно содержащее:
средство для выполнения кодирования для кодового блока на основе множества составляющих кодеров и бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер.
27. Устройство по п.22, дополнительно содержащее:
средство для выполнения кодирования для кодового блока на основе множества составляющих кодеров и обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер.
28. Машиночитаемый носитель, содержащий инструкции, которые, при выполнении посредством машины, побуждают машину выполнять операции, включающие в себя:
определение размера кодового блока, выбранного из множества размеров кодовых блоков;
использование, по меньшей мере, одного бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер;
использование обычного турбо-перемежителя иного типа, чем бесконфликтный турбо-перемежитель, если размер кодового блока равен или меньше, чем пороговый размер;
выполнение декодирования для кодового блока на основе, по меньшей мере, одного бесконфликтного турбо-перемежителя, если размер кодового блока больше, чем пороговый размер; и
выполнение декодирования для кодового блока на основе обычного турбо-перемежителя, если размер кодового блока равен или меньше, чем пороговый размер.
29. Машиночитаемый носитель по п.28, дополнительно содержащий инструкции, которые, при выполнении посредством машины, побуждают машину выполнять операции, дополнительно включающие в себя:
деление кодового блока на множество секций; и
при этом выполнение декодирования для кодового блока содержит выполнение параллельного декодирования по множеству секций с использованием множества параллельных декодеров с программным входом и программным выходом (SISO) и, по меньшей мере, одного бесконфликтного турбо-перемежителя.
30. Машиночитаемый носитель по п.29, дополнительно содержащий инструкции, которые, при выполнении посредством машины, побуждают машину выполнять операции, дополнительно включающие в себя:
запись информации из множества SISO-декодеров после перемежения или обратного перемежения на основе бесконфликтного турбо-перемежителя во множество модулей памяти параллельно в каждом цикле записи.
RU2009120617/09A 2006-11-01 2007-11-01 Турбо-перемежитель для высоких скоростей передачи данных RU2435298C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US86396206P 2006-11-01 2006-11-01
US60/863,962 2006-11-01

Publications (2)

Publication Number Publication Date
RU2009120617A RU2009120617A (ru) 2010-12-10
RU2435298C2 true RU2435298C2 (ru) 2011-11-27

Family

ID=39365230

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2009120617/09A RU2435298C2 (ru) 2006-11-01 2007-11-01 Турбо-перемежитель для высоких скоростей передачи данных

Country Status (10)

Country Link
US (1) US8583983B2 (ru)
EP (1) EP2089974A2 (ru)
JP (1) JP2010508790A (ru)
KR (1) KR101121284B1 (ru)
CN (1) CN101529726A (ru)
BR (1) BRPI0717898A2 (ru)
CA (1) CA2665647A1 (ru)
RU (1) RU2435298C2 (ru)
TW (1) TWI363540B (ru)
WO (1) WO2008057906A2 (ru)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7949926B2 (en) * 2006-11-30 2011-05-24 Motorola Mobility, Inc. Method and apparatus for encoding and decoding data
WO2008066349A1 (en) 2006-12-01 2008-06-05 Electronics And Telecommunications Research Institute Method and apparatus for transmitting/receiving multiple codewords in sc-fdma system
US8009758B2 (en) * 2007-06-20 2011-08-30 Samsung Electronics Co., Ltd Apparatus and method for channel-interleaving and channel-deinterleaving data in a wireless communication system
US7986741B2 (en) * 2007-09-28 2011-07-26 Samsung Electronics Co., Ltd. Method and apparatus of improved circular buffer rate matching for turbo-coded MIMO-OFDM wireless systems
US8140932B2 (en) * 2007-11-26 2012-03-20 Motorola Mobility, Inc. Data interleaving circuit and method for vectorized turbo decoder
WO2009096658A1 (en) 2008-01-31 2009-08-06 Lg Electronics Inc. Method for determining transport block size and signal transmission method using the same
KR101447651B1 (ko) * 2008-07-07 2014-10-13 삼성전자주식회사 이동통신 시스템의 유효 비트 연산 장치 및 방법
WO2010104338A2 (en) * 2009-03-11 2010-09-16 Samsung Electronics Co., Ltd. Method and apparatus for allocating backhaul transmission resource in wireless communication system based on relay
US8538450B2 (en) * 2009-07-16 2013-09-17 Qualcomm Incorporated User equipment and base station behavior in response to an overload indicator
TWI381653B (zh) * 2009-09-11 2013-01-01 Ind Tech Res Inst 二階重排多項式交織器位址產生裝置與方法
TWI629873B (zh) 2009-11-13 2018-07-11 松下電器(美國)知識產權公司 編碼裝置、發送裝置、解碼方法及發送方法
US8811452B2 (en) * 2009-12-08 2014-08-19 Samsung Electronics Co., Ltd. Method and apparatus for parallel processing turbo decoder
US20130007568A1 (en) * 2010-03-08 2013-01-03 Nec Corporation Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program
US8719658B2 (en) 2010-09-09 2014-05-06 Qualcomm Incorporated Accessing memory during parallel turbo decoding
JP2012099989A (ja) * 2010-11-01 2012-05-24 Fujitsu Ltd 無線通信装置および復号処理方法
CN102082628B (zh) * 2010-11-23 2013-04-24 山东大学 一种MIMO无线通信接收机的带排序Turbo增强方法
CN102006251B (zh) * 2010-11-23 2013-06-05 山东大学 一种MIMO无线通信接收机的Turbo增强方法
CN102006250B (zh) * 2010-11-23 2013-06-05 山东大学 一种MIMO-SCFDE无线通信接收机的Turbo增强方法
US8621160B2 (en) * 2010-12-17 2013-12-31 Futurewei Technologies, Inc. System and method for contention-free memory access
US20130324138A1 (en) * 2012-05-31 2013-12-05 Mediatek Inc. Method and apparatus for performing channel coding type control
JP2014011627A (ja) * 2012-06-29 2014-01-20 Mitsubishi Electric Corp 内部インタリーブを有する誤り訂正復号装置
US20140122977A1 (en) * 2012-11-01 2014-05-01 Peter Alexander CARIDES Variable control for a forward error correction capability
RU2013125784A (ru) * 2013-06-04 2014-12-10 ЭлЭсАй Корпорейшн Устройство для обработки сигналов, переносящих кодированные с модуляцией биты четности
FR3037746B1 (fr) * 2015-06-19 2020-10-02 Inst Mines Telecom Procede de construction d'un entrelaceur pour turbo-encodeur
EP3151432B1 (en) * 2015-10-01 2018-08-01 Mitsubishi Electric R&D Centre Europe B.V. Method and a device for demodulating received symbols using a turbo-demodulation scheme comprising an iterative mimo decoder and wherein an iterative channel decoder is used in the turbo-demodulation scheme
GB2559616A (en) * 2017-02-13 2018-08-15 Accelercomm Ltd Detection circuit, receiver, communications device and method of detecting
DE112018001571T5 (de) * 2017-03-24 2019-12-24 Intel Corporation Codeblock-segmentierung und dynamische crc-grössen-anpassung für nr
CN107508604A (zh) * 2017-07-13 2017-12-22 中国电子科技集团公司第七研究所 一种Turbo码并行RP交织方法及并行RP交织器
JP6847796B2 (ja) * 2017-09-20 2021-03-24 キオクシア株式会社 メモリシステム
US10103843B1 (en) * 2017-12-08 2018-10-16 Qualcomm Incorporated On the fly interleaving/rate matching and deinterleaving/de-rate matching for 5G NR

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69912075T2 (de) * 1998-03-31 2004-05-19 Samsung Electronics Co., Ltd., Suwon TURBOENKODER/DEKODER UND VON DER SERVICEQUALITÄT (QoS) ABHÄNGIGES RAHMENVERARBEITUNGSVERFAHREN
US6381728B1 (en) * 1998-08-14 2002-04-30 Qualcomm Incorporated Partitioned interleaver memory for map decoder
JP3453122B2 (ja) * 1998-08-17 2003-10-06 ヒューズ・エレクトロニクス・コーポレーション 最適性能に近いターボコードインターリーバ
US6304991B1 (en) 1998-12-04 2001-10-16 Qualcomm Incorporated Turbo code interleaver using linear congruential sequence
US6678843B2 (en) * 1999-02-18 2004-01-13 Interuniversitair Microelektronics Centrum (Imec) Method and apparatus for interleaving, deinterleaving and combined interleaving-deinterleaving
US6453442B1 (en) * 1999-08-20 2002-09-17 At&T Corp. Two stage S—Random interleaver
US6785859B2 (en) * 2000-08-04 2004-08-31 Texas Instruments Incorporated Interleaver for variable block size
US6813742B2 (en) * 2001-01-02 2004-11-02 Icomm Technologies, Inc. High speed turbo codes decoder for 3G using pipelined SISO log-map decoders architecture
US6392572B1 (en) * 2001-05-11 2002-05-21 Qualcomm Incorporated Buffer architecture for a turbo decoder
AU2003274779B2 (en) 2002-10-29 2006-10-12 Samsung Electronics Co., Ltd. Method and apparatus for deinterleaving interleaved data stream in a communication system
EP1667329A1 (en) 2004-12-01 2006-06-07 Istituto Superiore Mario Boella per le Technologie dell Informazione e delle Telecommunicazioni Methods for the generation of S-random interleavers for turbo-decoders with a parallel structure
WO2006082923A1 (ja) 2005-02-03 2006-08-10 Matsushita Electric Industrial Co., Ltd. 並列インターリーバ、並列デインターリーバ及びインターリーブ方法
US7437650B2 (en) * 2005-04-12 2008-10-14 Agere Systems Inc. Pre-emptive interleaver address generator for turbo decoders
EP1949188B1 (en) * 2005-10-28 2015-04-22 Mojix, Inc. Rfid receiver
US7925956B2 (en) * 2006-10-03 2011-04-12 Motorola Mobility, Inc. Method and apparatus for encoding and decoding data

Also Published As

Publication number Publication date
US20100077265A1 (en) 2010-03-25
JP2010508790A (ja) 2010-03-18
KR20090086237A (ko) 2009-08-11
CA2665647A1 (en) 2008-05-15
EP2089974A2 (en) 2009-08-19
KR101121284B1 (ko) 2012-06-20
RU2009120617A (ru) 2010-12-10
TWI363540B (en) 2012-05-01
US8583983B2 (en) 2013-11-12
BRPI0717898A2 (pt) 2013-11-05
WO2008057906A2 (en) 2008-05-15
CN101529726A (zh) 2009-09-09
WO2008057906A3 (en) 2009-01-15
TW200833039A (en) 2008-08-01

Similar Documents

Publication Publication Date Title
RU2435298C2 (ru) Турбо-перемежитель для высоких скоростей передачи данных
KR101459801B1 (ko) 비경쟁 인터리버들을 이용한 터보-인코딩
US8675693B2 (en) Iterative decoding with configurable number of iterations
US8719658B2 (en) Accessing memory during parallel turbo decoding
KR101331516B1 (ko) 절단된 인터리버들 및 디-인터리버들을 위한 능률적인 어드레스 생성기
JP6886515B2 (ja) データ伝送方法、送信デバイス、受信デバイス、及び通信システム
JP2008219892A (ja) データを符号化および復号化する方法および装置
CN109768803B (zh) 通信装置、通信方法和记录介质
KR101110201B1 (ko) 통신시스템에서 병렬구조 라틴방진 인터리빙 방법 및 장치
US7975203B2 (en) Quadratic polynomial permutation (QPP) interleaver providing hardware savings and flexible granularity adaptable to any possible turbo code block size
US7573962B1 (en) Diversity code combining scheme for turbo coded systems
US20080086674A1 (en) Reduced complexity ARP (almost regular permutation) interleaves providing flexible granularity and parallelism adaptable to any possible turbo code block size
US10312945B2 (en) Channel coding method using concatenated code structure and apparatus therefor
KR100912600B1 (ko) 임의 개수의 정보 비트들을 위한 테일바이팅 터보 코드
WO2000010254A1 (en) Memory architecture for map decoder
WO2019042370A1 (zh) 数据传输方法及装置
US9130728B2 (en) Reduced contention storage for channel coding
Giulietti et al. Turbo Coding for 4G Systems: Design Issues and Solutions 10.14209/jcis. 2003.5
MXPA01001657A (en) Memory architecture for map decoder

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20151102