RU2187196C2 - Параллельный каскадный сверточный код с конечной последовательностью битов и декодер для такого кода - Google Patents
Параллельный каскадный сверточный код с конечной последовательностью битов и декодер для такого кода Download PDFInfo
- Publication number
- RU2187196C2 RU2187196C2 RU98100768/09A RU98100768A RU2187196C2 RU 2187196 C2 RU2187196 C2 RU 2187196C2 RU 98100768/09 A RU98100768/09 A RU 98100768/09A RU 98100768 A RU98100768 A RU 98100768A RU 2187196 C2 RU2187196 C2 RU 2187196C2
- Authority
- RU
- Russia
- Prior art keywords
- component
- interleaving
- decoder
- bits
- soft decision
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2957—Turbo codes and decoding
- H03M13/2996—Tail biting
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2957—Turbo codes and decoding
- H03M13/2978—Particular arrangement of the component decoders
- H03M13/2981—Particular arrangement of the component decoders using as many component decoders as component codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3723—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3905—Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0066—Parallel concatenated codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0067—Rate matching
- H04L1/0068—Rate matching by puncturing
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
Изобретение относится к кодированию с исправлением ошибок, используемому при передаче коротких сообщений по каналам низкого качества, и, более конкретно, к способу параллельного каскадного сверточного кодирования и к соответствующему устройству декодирования. Технический результат повышение точности кодирования и декодирования при применении коротких сообщений. Схема параллельного каскадного сверточного кодирования использует нерекурсивные систематические сверточные коды с конечной последовательностью битов. Соответствующий декодер осуществляет циклическое декодирование по методу максимума апостериорной вероятности для формирования выходных результатов непрограммируемого и программируемого решений. Данная схема кодирования/декодирования обеспечивает повышение эффективности исправления ошибок для коротких сообщений. 6 с. и 30 з.п.ф-лы, 5 ил.
Description
Изобретение относится к кодированию с исправлением ошибок, используемому при передаче коротких сообщений по каналам низкого качества, и, более конкретно, к способу параллельного каскадного сверточного кодирования и к соответствующему устройству декодирования.
Предшествующий уровень техники
Один из видов параллельного каскадного кодирования, определяемый как параллельное каскадное сверточное кодирование или "турбо"-кодирование, явился предметом недавних исследований, связанных со способами кодирования, ввиду весьма существенного выигрыша, обеспечиваемого таким кодированием, при использовании с блоками из 10000 и более битов (см. C.Berrou, A.Glavieux, P. Thitimajshima, "Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes, "Proceedings of the IEEE International Conference on Communications, 1993, pp. 1064-1070; J.D. Andersen, "The TURBO Coding Scheme, "Report IT-146 ISSN 0105-854, Institute of Telecommunication, Technical University of Denmark, December 1994; P. Robertson, "Illuminating the Structure of Code and Decoder of Parallel Concatenated Recursive Systematic (Turbo) Codes", 1994 IEEE Globecom Conference, pp. 1298-1303).
Один из видов параллельного каскадного кодирования, определяемый как параллельное каскадное сверточное кодирование или "турбо"-кодирование, явился предметом недавних исследований, связанных со способами кодирования, ввиду весьма существенного выигрыша, обеспечиваемого таким кодированием, при использовании с блоками из 10000 и более битов (см. C.Berrou, A.Glavieux, P. Thitimajshima, "Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes, "Proceedings of the IEEE International Conference on Communications, 1993, pp. 1064-1070; J.D. Andersen, "The TURBO Coding Scheme, "Report IT-146 ISSN 0105-854, Institute of Telecommunication, Technical University of Denmark, December 1994; P. Robertson, "Illuminating the Structure of Code and Decoder of Parallel Concatenated Recursive Systematic (Turbo) Codes", 1994 IEEE Globecom Conference, pp. 1298-1303).
Однако было показано, что эффективность турбо-кода существенно снижается по мере уменьшения длины кодированного блока данных. Этот эффект обусловлен сильной зависимостью структуры весов рекурсивных систематических кодов для их компонентов от длины блока. Еще одной проблемой является надлежащее завершение блоков сообщения, подаваемых на турбо-кодер. Как описано в работе O. Joersson, H.Meyer, "Terminating the Trellis of Turbo-Codes", IEE Electronics Letters, vol.30, 16, August 4, 1994, pp. 1285-1286, перемежение, используемое в турбо-кодерах, может привести к невозможности завершения входных последовательностей кодера как с перемежением, так и без перемежения единственным набором конечных битов. Хотя возможно использование второй конечной последовательности в составе структуры сообщения, так чтобы кодер, работающий с последовательностью данных с перемежением, имел возможность надлежащего завершения последовательности данных, однако такой подход приводит к удвоению непроизводительных расходов на обработку, связанных с завершением цикла обработки кодера, и к снижению эффективной скорости кода. Альтернативный подход состоит в том, чтобы не завершать одну из последовательностей кодера, однако это снижает эффективность системы кодирования/декодирования, в частности, при применении для коротких сообщений. В работе A.S. Barbulescu, S.S. Pietrobon, "Terminating the Trellis of Turbo-Codes in the Same State", IEE Electronics Letters, 1995, vol. 31, 1, January 5, pp. 22-23, описан способ, который предусматривает ограничения, накладываемые на схему перемежителя, для того, чтобы обеспечить завершение цикла обработки рекурсивных систематических сверточных кодеров двух компонентов одной последовательностью битов завершения. Полученные результаты показывают некоторое снижение эффективности по сравнению с эффективностью, обеспечиваемой завершением цикла обработки обоих кодеров при использовании оптимизированного перемежителя. Кроме того, опубликованные данные для частоты ошибок по битам (BER) в зависимости от отношения энергии, приходящейся на бит, к спектральной плотности мощности шума (Еb/N0) показывают выравнивание коэффициента BER в диапазоне значений отношения Еb/N0, когда в турбо-кодере используются устройства кодирования на основе рекурсивного систематического сверточного кода.
Таким образом, существует необходимость в создании усовершенствованного способа параллельного каскадного кодирования для коротких блоков данных.
Сущность изобретения
В соответствии с настоящим изобретением схема параллельного каскадного сверточного кодирования использует нерекурсивные систематические сверточные коды (NSC-коды) с конечной последовательностью битов. Соответствующее устройство декодирования итеративно использует циклическое декодирование по методу апостериорного максимума (МАР-декодирование) для формирования на выходе непрограммируемого и программируемого решения. Использование кодов конечной последовательности битов решает проблему завершения входных последовательностей данных при турбо-кодировании, без связанного обычно с этим снижения эффективности устройства декодирования. Хотя нерекурсивные систематические сверточные коды, т. е. NSC-коды, в общем случае асимптотически слабее, чем рекурсивные систематические сверточные коды (RSC-коды), имеющие ту же память, по мере увеличения длины блока данных, свободное кодовое расстояние для NSC-кодов менее чувствительно к длине блока данных. Следовательно, параллельное каскадное кодирование с использованием NSC-кодов будет давать лучший результат, чем при использовании RSC-кодов с той же самой памятью для сообщений, которые короче, чем некоторое пороговое значение размера блока данных.
В соответствии с настоящим изобретением схема параллельного каскадного сверточного кодирования использует нерекурсивные систематические сверточные коды (NSC-коды) с конечной последовательностью битов. Соответствующее устройство декодирования итеративно использует циклическое декодирование по методу апостериорного максимума (МАР-декодирование) для формирования на выходе непрограммируемого и программируемого решения. Использование кодов конечной последовательности битов решает проблему завершения входных последовательностей данных при турбо-кодировании, без связанного обычно с этим снижения эффективности устройства декодирования. Хотя нерекурсивные систематические сверточные коды, т. е. NSC-коды, в общем случае асимптотически слабее, чем рекурсивные систематические сверточные коды (RSC-коды), имеющие ту же память, по мере увеличения длины блока данных, свободное кодовое расстояние для NSC-кодов менее чувствительно к длине блока данных. Следовательно, параллельное каскадное кодирование с использованием NSC-кодов будет давать лучший результат, чем при использовании RSC-кодов с той же самой памятью для сообщений, которые короче, чем некоторое пороговое значение размера блока данных.
Краткое описание чертежей
Признаки и преимущества настоящего изобретения поясняются в нижеследующем детальном описании изобретения, иллюстрируемом чертежами, на которых представлено следующее:
фиг.1 - упрощенная блок-схема, иллюстрирующая параллельный каскадный кодер;
фиг. 2 - упрощенная блок-схема, иллюстрирующая декодер для использования с параллельными каскадными кодами;
фиг. 3 - упрощенная блок-схема, иллюстрирующая нерекурсивный систематический сверточный кодер с конечной последовательностью битов, предназначенный для использования в схеме кодирования согласно настоящему изобретению;
фиг. 4 - упрощенная блок-схема, иллюстрирующая циклический МАР-декодер, используемый в качестве декодера компонента, для декодера, соответствующего схеме параллельного каскадного сверточного кодирования, согласно настоящему изобретению;
фиг.5 - упрощенная блок-схема, иллюстрирующая другой вариант циклического MAP-декодера, используемого в качестве декодера компонента, для декодера, соответствующего схеме параллельного каскадного сверточного кодирования, согласно настоящему изобретению.
Признаки и преимущества настоящего изобретения поясняются в нижеследующем детальном описании изобретения, иллюстрируемом чертежами, на которых представлено следующее:
фиг.1 - упрощенная блок-схема, иллюстрирующая параллельный каскадный кодер;
фиг. 2 - упрощенная блок-схема, иллюстрирующая декодер для использования с параллельными каскадными кодами;
фиг. 3 - упрощенная блок-схема, иллюстрирующая нерекурсивный систематический сверточный кодер с конечной последовательностью битов, предназначенный для использования в схеме кодирования согласно настоящему изобретению;
фиг. 4 - упрощенная блок-схема, иллюстрирующая циклический МАР-декодер, используемый в качестве декодера компонента, для декодера, соответствующего схеме параллельного каскадного сверточного кодирования, согласно настоящему изобретению;
фиг.5 - упрощенная блок-схема, иллюстрирующая другой вариант циклического MAP-декодера, используемого в качестве декодера компонента, для декодера, соответствующего схеме параллельного каскадного сверточного кодирования, согласно настоящему изобретению.
Детальное описание изобретения
На фиг. 1 представлена обобщенная блок-схема кодера 10, осуществляющего обработку по схемам параллельного каскадного кодирования. Он содержит множество N кодеров компонентов 12, которые осуществляют обработку блоков битов данных, поступающих от источника. Блоки данных подвергаются перестановке согласно алгоритмам перемежения, реализуемым блоками перемежения 14. Как показано на чертеже, множеству N кодеров 12 соответствуют N-1 блоков перемежения 14. Выходы кодеров компонентов объединены для формирования одного составного кодового слова с помощью блока форматирования 16 кодового слова. Блок форматирования кодового слова соответствует характеристикам канала, и за ним может следовать блок форматирования кадра, соответствующий каналу и методу доступа к каналу системы связи. Блок форматирования кадра может обеспечивать ввод необходимых дополнительных элементов, таких как контрольные биты и символы синхронизации.
На фиг. 1 представлена обобщенная блок-схема кодера 10, осуществляющего обработку по схемам параллельного каскадного кодирования. Он содержит множество N кодеров компонентов 12, которые осуществляют обработку блоков битов данных, поступающих от источника. Блоки данных подвергаются перестановке согласно алгоритмам перемежения, реализуемым блоками перемежения 14. Как показано на чертеже, множеству N кодеров 12 соответствуют N-1 блоков перемежения 14. Выходы кодеров компонентов объединены для формирования одного составного кодового слова с помощью блока форматирования 16 кодового слова. Блок форматирования кодового слова соответствует характеристикам канала, и за ним может следовать блок форматирования кадра, соответствующий каналу и методу доступа к каналу системы связи. Блок форматирования кадра может обеспечивать ввод необходимых дополнительных элементов, таких как контрольные биты и символы синхронизации.
Значительное преимущество, касающееся скорости кода, может быть получено при параллельном каскадном кодировании, если коды компонентов представляют собой систематические коды. Кодовые слова (полученные на выходе), генерируемые систематическим кодером, включают в себя биты исходных данных, являющихся входными для кодера, и дополнительные биты контроля четности. (Избыточность, обусловленная контрольными битами, обеспечивает возможность исправления ошибок кода.) Поэтому если в параллельном каскадном кодере, показанном на фиг. 1, используются систематические кодеры, то кодовые слова, формируемые всеми кодерами компонентов 12, содержат биты входных данных. Если блок форматирования 16 формирует пакет данных или составное кодовое слово, содержащее только биты контроля четности, генерируемые каждым кодером компонентов 12, и блок информационных битов, подлежащий кодированию, то достигается существенное улучшение в скорости составного параллельного каскадного кода за счет исключения повторения информационных битов в передаваемом составном кодовом слове. Например, если кодер компонента 1 и кодер компонента 2 параллельного каскадного сверточного кодера, содержащего только два кодера компонентов, оба имеют скорость кодов, определяемую как 1/2, то скорость составного параллельного каскадного кода увеличивается с 1/4 для несистематических кодов компонентов до 1/3 при использовании систематических кодов компонентов.
Схемы параллельного каскадного кодирования, которые используют рекурсивные систематические сверточные коды (RSC-коды), в последнее время стали предметом множества исследований. Такие параллельные каскадные сверточные коды в литературе известны как "турбо"-коды. Как отмечено выше, показано, что эти параллельные каскадные сверточные коды могут обеспечивать высокую эффективность в смысле коэффициента BER в зависимости от отношения Еb/N0 для случая относительно больших сообщений, например, состоящих из десяти тысяч или более битов. Однако также было показано, что выигрыш, получаемый за счет кодирования, обеспечиваемый "турбо"-кодами, существенно снижается, когда размер блока данных уменьшается, так как мощность кодов компонентов, представляющих собой рекурсивные систематические сверточные коды, весьма чувствительная к длине блока данных. С другой стороны, эффективность нерекурсивного систематического сверточного кода с конечной последовательностью битов не зависит от длины блока данных для большинства практических целей. Достигаемая эффективность снижается, только если блок кодируемых битов данных меньше, чем минимальный размер, который определяется свойствами глубины решения для NSC-кодов.
На фиг. 2 показана обобщенная блок-схема декодера 20, используемого с параллельными каскадными кодами. Декодер 20 содержит следующие блоки: преобразователь 22 составного кодового слова в кодовые слова-компоненты, обеспечивающий преобразование составного кодового слова, принятого из канала, в индивидуальные принятые кодовые слова для каждого декодера компонентов 24; N декодеров компонентов 24, соответствующих N кодерам компонентов, показанных на фиг. 1; блоки перемежения 14 того же типа, что и использованные в параллельном каскадном кодере по фиг.1; первый и второй блоки исключения перемежения 28 и 29 соответственно, каждый из которых имеет характеристику переупорядочивания последовательности, которая эквивалентна последовательной цепочке из N-1 блоков исключения перемежения 30, соответственно N-1 блокам перемежения, использованных при кодировании. Требуемый порядок этих блоков исключения перемежения показан на фиг.2 и является обратным порядку блоков перемежения по фиг. 1. На выходах декодеров компонентов 24 формируется информация программируемого решения некоторого типа для оцениваемого значения каждого бита данных в принимаемом кодовом слове. Например, на выходах декодеров компонентов может быть сформирована первая функция вероятностей, что декодированные биты представляют собой 0 или 1 при условии принятой последовательности символов из канала. Одним из примеров такой первой функции, которая устраняет влияние условной вероятности P{dj t=0/Yj t}, является вероятность того, что j-й информационный бит в момент t равен 0 при условии j-го (систематического) бита принятого выходного символа Yt канала. Как вариант, информация программируемого решения, выдаваемого на выходе декодеров компонентов 24, может представлять собой функцию отношения правдоподобия
или функцию логарифма отношения правдоподобия
Как показано N-ый декодер компонента имеет второй выход, например, второй функции условных вероятностей для декодируемых значений битов или указанных выше отношений правдоподобия. Примером такой второй функции является произведение P{dj t=0/YL 1} и априорной вероятности, что dj t=0 принято от предыдущего декодера компонента.
или функцию логарифма отношения правдоподобия
Как показано N-ый декодер компонента имеет второй выход, например, второй функции условных вероятностей для декодируемых значений битов или указанных выше отношений правдоподобия. Примером такой второй функции является произведение P{dj t=0/YL 1} и априорной вероятности, что dj t=0 принято от предыдущего декодера компонента.
Декодер для параллельных каскадных кодов работает итеративным методом следующим образом. Первый декодер компонента (декодер 1) вычисляет множество программируемых решений для последовательности информационных битов, кодированных первым кодером компонента, на основе принятого кодового слова и априорной информации о переданных информационных битах. В первой итерации, если отсутствует априорная информация о статистических характеристиках источника, предполагается, что биты могут с равной вероятностью принимать значения 0 и 1 ( т.е. Р{бит=0}=Р{бит=1}=1/2). Значения программируемых решений, вычисленные декодером 1, затем обрабатываются с перемежением с использованием блока перемежения того де типа (или того же самого блока), что был использован в кодере для обеспечения перестановки блока битов данных для второго кодера. Полученные значения программируемого решения с перестановкой и соответствующее принятое кодовое слово образуют входные данные для следующего декодера компонента (декодера 2). Значения программируемого решения с перестановкой, полученные от предыдущего декодера компонента и блока перемежения, затем используются следующим декодером компонента в качестве априорной информации о битах данных, которые должны быть декодированы. Декодеры компонентов осуществляют указанную обработку последовательно до тех пор, пока N-й декодер не вычислит множество выходных программируемых решений для блока битов данных, которые были закодированы кодером. На следующем этапе осуществляется исключение перемежения для значений программируемых решений с выхода N-го декодера, как описано выше. Затем первый декодер вновь осуществляет обработку принятого кодового слова, используя новые значения программируемого решения с N-го декодера в качестве априорной информации. Такая обработка в декодере осуществляется для желательного числа итераций. В заключение последней итерации последовательность значений, которые являются второй функцией выходных программируемых решений, вычисленных N-м декодером, обрабатывается для исключения перемежения и восстановления данных в порядке, в котором они были приняты параллельным каскадным сверточным кодером. Число итераций может быть задано предварительно, или может определяться динамически путем определения сходимости декодера.
Декодер обеспечивает информацию программируемого решения, которая является функцией вероятности P{dj t=0/YL 1}, т.е. условной вероятности того, что j-й бит данных в k-битовом символьном входном сигнале кодера в момент t равен 0 при условии, что принимается множество канальных выходных сигналов YL 1,={y1,..,yL}. Кроме того, декодер может обеспечить информацию непрограммируемого решения в функции своих выходных данных программируемого решения посредством устройства принятия решения, которое реализует решающее правило, такое как
Это означает, что если P{dj t=0/YL 1}>1/2, то если P{dj t=0/YL 1} <1/2, то в других случаях dj t принимает случайным образом значения 0 или 1.
Это означает, что если P{dj t=0/YL 1}>1/2, то если P{dj t=0/YL 1} <1/2, то в других случаях dj t принимает случайным образом значения 0 или 1.
Типовые турбо-декодеры используют либо MAP-декодеры, как описано в работе L.R.Bahl, J.Соске, F.Jelinek, J.Raviv, "Optimal Decoding of Linear Codes for Minimizing Symbol error Rate", IEEE Transactions of Information Theory, March 1974, pp.284-287, или декодеры, использующие алгоритм Витерби для программируемых выходных данных (SOVA-декодеры), как описано в работе J. Hagenauer. P.Hoeher, "A Viterbi Algorithm with Soft-Decision Outputs and its Applications, 1989 IEEE Globecom Conference, pp. 1680-1686. MAP-декодер формирует вероятность того, что декодированное значение бита равно 0 или 1. С другой стороны, SOVA-декодер обычно вычисляет отношение правдоподобия
для каждого декодированного бита. Очевидно, что это отношение правдоподобия может быть получено из вероятности Р {декодированный бит имеет значение 0} и, наоборот, с использованием вероятности Р{декодированный бит имеет значение 0}=1-Р{декодированный бит имеет значение 1}. Некоторые преимущества в смысле вычислений могут быть получены, если MAP-декодеры или SOVA-декодеры определяют логарифм отношений правдоподобия, то есть
Показано, что выигрыш, получаемый за счет кодирования (возможность исправления ошибок), обеспечиваемый турбо-кодами, существенно снижается при уменьшении размера блока данных. Некоторые авторы объясняли данную закономерность в первую очередь свойствами RSC-кодов. Показано, что кодовое расстояние RSC-кода увеличивается с увеличением длины блока данных. И наоборот, минимальное кодовое расстояние RSC-кода уменьшается с уменьшением длины блока данных. Вторая проблема состоит в трудности завершения цикла обработки всех RSC-кодов, образующих схему турбо-кодирования, вследствие перемежения. К сожалению, отрицательные эффекты, обусловленные отсутствием завершения последовательности или наложением ограничений на схему блока перемежения, становятся тем более значительными при уменьшении длины блока данных.
для каждого декодированного бита. Очевидно, что это отношение правдоподобия может быть получено из вероятности Р {декодированный бит имеет значение 0} и, наоборот, с использованием вероятности Р{декодированный бит имеет значение 0}=1-Р{декодированный бит имеет значение 1}. Некоторые преимущества в смысле вычислений могут быть получены, если MAP-декодеры или SOVA-декодеры определяют логарифм отношений правдоподобия, то есть
Показано, что выигрыш, получаемый за счет кодирования (возможность исправления ошибок), обеспечиваемый турбо-кодами, существенно снижается при уменьшении размера блока данных. Некоторые авторы объясняли данную закономерность в первую очередь свойствами RSC-кодов. Показано, что кодовое расстояние RSC-кода увеличивается с увеличением длины блока данных. И наоборот, минимальное кодовое расстояние RSC-кода уменьшается с уменьшением длины блока данных. Вторая проблема состоит в трудности завершения цикла обработки всех RSC-кодов, образующих схему турбо-кодирования, вследствие перемежения. К сожалению, отрицательные эффекты, обусловленные отсутствием завершения последовательности или наложением ограничений на схему блока перемежения, становятся тем более значительными при уменьшении длины блока данных.
В соответствии с настоящим изобретением коды компонентов в схеме параллельного каскадного кодирования содержат нерекурсивные систематические сверточные коды конечной последовательности битов. Использование таких кодов конечной последовательности битов решает проблему завершения цикла обработки входных последовательностей данных при турбо-кодировании и, тем самым, позволяет избежать ухудшения эффективности декодера для коротких сообщений. Хотя NSC-коды в общем случае более слабы, чем RSC-коды с той же самой памятью, свободное кодовое расстояние для NSC-кода менее чувствительно к длине блока данных. Следовательно, параллельное каскадное кодирование с использованием NSC-кодов будет более эффективно, чем с использованием RSC-кодов, при той же самой памяти для сообщений более коротких, чем предварительно определенное пороговое значение размера блока данных. Точка пересечения, определяющая эффективность, является функцией требуемой частоты ошибок в декодированных битах, скорости кода и памяти кода.
На фиг.3 представлен пример нерекурсивного систематического сверточного кодера с конечной последовательностью битов для скорости =1/2 и памяти = m, предназначенного для использования в схеме параллельного каскадного сверточного кодирования согласно настоящему изобретению. Для целей настоящего описания кодер, обозначенный как (n, k, m)-кодер, представляет собой кодер, для которого входные символы содержат k битов, выходные символы содержат n битов и m - память кодера в k-битовых символах. Для целей иллюстрации схема на фиг.3 показана для двоичных входных символов, т.е. k=1. Однако настоящее изобретение применимо для любых значений k, n, m.
Первоначально переключатель 50 находится в нижнем положении, и L входных битов записываются в регистр сдвига 52, по k за один раз (по одному входному символу за один раз для данного примера). После загрузки L-го бита в кодер переключатель устанавливается в верхнее положение, и кодирование начинается со сдвига пяти первых битов из второго регистра сдвига 54 в нерекурсивный систематический кодер; состояние кодера в этот момент соответствует {bL, bL-1,..., bL-(km-1)} В данном примере выходные данные кодера содержат текущий входной бит и бит контроля четности, сформированный в блоке 56 (показанном в данном примере как сумматор по модулю 2) в функции состояния кодера и текущего входного символа. Кодирование заканчивается, когда закодирован L-й бит.
Другой аспект настоящего изобретения связан с декодером, соответствующим вышеописанному параллельному каскадному кодеру, содержащим циклический MAP-декодер, как описано авторами настоящего изобретения в совместно поданной заявке на патент США (RD-24923). В частности, в указанной заявке описан циклический MAP-декодер, предназначенный для декодирования сверточных кодов с конечной последовательностью битов. Циклический MAP-декодер может вырабатывать как оценку блока кодированных данных, так и надежную информацию для приемника данных, например процессора синтеза речевого сигнала для использования при маскировании ошибок передачи или процессора протокола для пакетированных данных в качестве меры вероятности ошибок блока для использования при принятии решений о запросе повторения.
В частности, как описано в вышеуказанной заявке, циклический МАР-декодер для решетчатых кодов с исправлением ошибок, которые используют конечные последовательности битов, формирует выходные данные программируемого ("мягкого") решения. Циклический МАР-декодер обеспечивает оценку вероятностей состояний в первом каскаде решеточного кода, причем эти вероятности заменяют априорно известное начальное состояние в обычном МАР-декодере. Циклический МАР-декодер обеспечивает распределение вероятности начального состояния любым из двух способов. Первый из них связывает решение с задачей собственного значения, для которой результирующий собственный вектор представляет собой желательное распределение вероятности начального состояния. Зная начальное состояние, циклический МАР-декодер выполняет остальную часть декодирования в соответствии с обычным алгоритмом декодирования на основе максимума апостериорной вероятности. Второй способ основан на рекурсивной обработке для обеспечения сходимости итераций к распределению начального состояния. После достаточного количества итераций состояние циклической последовательности состояний известно с высокой вероятностью, и циклический МАР-декодер выполняет остальную часть обработки в соответствии с обычным алгоритмом декодирования по методу максимума апостериорной вероятности.
Задачей обычного алгоритма максимума апостериорной вероятности является нахождение следующих условных вероятностей:
Р{состояние в момент времени t/выходные данные канала приема у1,...,уL}.
Р{состояние в момент времени t/выходные данные канала приема у1,...,уL}.
В этом выражении L представляет длину блока данных в единицах числа символов кодера. (Кодер для (n,k)-кода обрабатывает k-битовые входные символы для формирования n-битовых выходных символов.) Обозначение уt представляет собой выходные данные (символ) канала в момент t.
Алгоритм декодирования на основе максимума апостериорной вероятности прежде всего определяет вероятности:
λt(m) = P{St= m; Y }; (1)
т. е. совместную вероятность того, что состояние St кодера в момент t есть m и принято множество данных каналов YL 1={y1,...,yL}. Это требуемые вероятности, умноженные на постоянную (Р{YL 1}, вероятность приема множества выходных данных каналов {y1,...,yL}).
λt(m) = P{St= m; Y
т. е. совместную вероятность того, что состояние St кодера в момент t есть m и принято множество данных каналов YL 1={y1,...,yL}. Это требуемые вероятности, умноженные на постоянную (Р{YL 1}, вероятность приема множества выходных данных каналов {y1,...,yL}).
Затем определяем элементы матрицы Гt в следующем виде:
Гt(i,j)=Р{состояние j в момент t; уt состояние i в момент t-1}
Матрица Гt вычисляется как функция вероятности перехода канала R(Yt, X), вероятности рt(m/m'), что кодер осуществляет переход из состояния m в состояние m' в момент времени t, и вероятности qt(X/m',m) того, что выходной символ кодера есть Х, при условии, что предыдущее состояние кодера есть m', а текущее состояние кодера есть m. В частности, каждый элемент Гt вычисляется суммированием всех возможных выходных данных Х кодера следующим образом:
МАР-декодер вычисляет L таких матриц, по одной для каждого решетчатого кода. Они формируются из принятых выходных символов канала с учетом свойства ветвей решетки для данного кода.
Гt(i,j)=Р{состояние j в момент t; уt состояние i в момент t-1}
Матрица Гt вычисляется как функция вероятности перехода канала R(Yt, X), вероятности рt(m/m'), что кодер осуществляет переход из состояния m в состояние m' в момент времени t, и вероятности qt(X/m',m) того, что выходной символ кодера есть Х, при условии, что предыдущее состояние кодера есть m', а текущее состояние кодера есть m. В частности, каждый элемент Гt вычисляется суммированием всех возможных выходных данных Х кодера следующим образом:
МАР-декодер вычисляет L таких матриц, по одной для каждого решетчатого кода. Они формируются из принятых выходных символов канала с учетом свойства ветвей решетки для данного кода.
Затем определяется М элементов совместной вероятности вектора-строки αt в виде
и М элементов условных вероятностей вектора-столбца βt в виде
для j= 0, 1,..., (М-1), где М - число состояний кодера, (матрицы и вектора обозначены жирным шрифтом. ) Этапы алгоритма МАР-декодирования можно представить следующим образом:
(i) Вычислить α1,...,αL посредством прямой рекурсии:
αt= αt-1Гt, t = 1,..,L. (5)
(ii) Вычислить β1,...,βL-1 посредством обратной рекурсии:
βt= Гt+1βt+1, t = L-1,...,1. (6)
(iii) Вычислить элементы λt согласно выражению
λt(i) = αt(i)βt(i), all i, t = 1,...,L. (7)
(iv) Найти связанные величины, если это необходимо. Например, пусть АJ t -множество состояний St={S1 t, S2 t,..., Skm t) такое, что j-й элемент Sj t множества St равен нулю. Для обычного нерекурсивного решетчатого кода Sj t=dj t, т.е. бит данных в момент t. Поэтому выходные данные программируемого решения декодера имеют вид
где и m - индекс, соответствующий состоянию St.
и М элементов условных вероятностей вектора-столбца βt в виде
для j= 0, 1,..., (М-1), где М - число состояний кодера, (матрицы и вектора обозначены жирным шрифтом. ) Этапы алгоритма МАР-декодирования можно представить следующим образом:
(i) Вычислить α1,...,αL посредством прямой рекурсии:
αt= αt-1Гt, t = 1,..,L. (5)
(ii) Вычислить β1,...,βL-1 посредством обратной рекурсии:
βt= Гt+1βt+1, t = L-1,...,1. (6)
(iii) Вычислить элементы λt согласно выражению
λt(i) = αt(i)βt(i), all i, t = 1,...,L. (7)
(iv) Найти связанные величины, если это необходимо. Например, пусть АJ t -множество состояний St={S1 t, S2 t,..., Skm t) такое, что j-й элемент Sj t множества St равен нулю. Для обычного нерекурсивного решетчатого кода Sj t=dj t, т.е. бит данных в момент t. Поэтому выходные данные программируемого решения декодера имеют вид
где и m - индекс, соответствующий состоянию St.
Выходные данные "жесткого" решения или декодированные биты получают с использованием выражения P{dj t=0/YL 1} к следующему решающему правилу:
T.e. ecли P{dj t=0/YL 1}>1/2, то
если P{dj t=0/YL 1}<1/2, то
в других случаях dj t принимает случайным образом значения 0 или 1.
T.e. ecли P{dj t=0/YL 1}>1/2, то
если P{dj t=0/YL 1}<1/2, то
в других случаях dj t принимает случайным образом значения 0 или 1.
В качестве другого примера связанных значений для этапа (iv), упомянутого выше, можно привести матрицу вероятностей σt, содержащую элементы, как определено ниже:
Эти вероятности можно использовать, когда желательно определить апостериорную вероятность выходных битов кодера.
Эти вероятности можно использовать, когда желательно определить апостериорную вероятность выходных битов кодера.
В стандартном применении алгоритма МАР-декодирования прямая рекурсия инициализируется вектором α0= (1, 0,...,0), а обратная рекурсия инициализируется вектором βL= (1,0,..., 0)T. Эти начальные условия основываются на предположении, что начальное состояние кодера S0=0, а его конечное состояние SL=0.
В одном из вариантов циклического МАР-декодера определяется распределение вероятности начальных состояний путем решения задачи собственных значений следующим образом. Пусть αt, βt, Гt, λt будут теми же, что и ранее, а начальные α0 и βL определяются следующим образом: βL- вектор-столбец (111... 1 )T, а α0- неизвестная (векторная) переменная.
Тогда
(i) Вычислить Гt для t=1, 2,...L согласно уравнению (2).
(i) Вычислить Гt для t=1, 2,...L согласно уравнению (2).
(ii) Найти максимальное собственное значение матричного произведения Г1 Г2. . .ГL Нормировать соответствующий собственный вектор так, чтобы его компоненты суммировались до единицы. Этот вектор представляет собой решение для α0. Собственное значение есть P(YL 1).
(iii) Сформировать последующее значение αt путем прямой рекурсии согласно уравнению (5).
(iv) Начиная с βL, инициализированного, как указано выше, сформировать βt путем обратной рекурсии, как установлено в уравнении (6).
(v) Сформировать λt, как указано в уравнении (7), а также другие переменные, например выходные данные программируемого решения P{dj t=0/YL 1} или матрицу вероятностей σt, как описано выше.
Изобретателями показано, что неизвестная переменная α0 удовлетворяет матричному уравнению.
Из того факта, что эта формула выражает соотношение вероятностей, известно, что произведение Гt матриц в правой части имеет максимальное собственное значение, равное P{ YL 1} , и что соответствующий собственный вектор должен быть вектором вероятности.
При первоначальном βL= (111...1)T уравнение (6) дает βL-1. Таким образом, повторное применение этой обратной рекурсии даст все значения βt. Если α0 известно, a βL установлено, все вычисления в циклическом МАР-декодере в соответствии с изобретением осуществляются согласно обычному алгоритму МАР-декодирования.
На фиг.4 представлена упрощенная блок-схема, иллюстрирующая циклический МАР-декодер 110 для декодирования решетчатого кода с конечной последовательностью битов с исправлением ошибок в соответствии со способом, использующим собственный вектор, как описано выше. Декодер 110 содержит вычислитель Гt, осуществляющий вычисление Гt в функции выходных данных канала уt. Вычислитель 112 получает на своих входах из памяти 130 следующие величины: вероятность перехода канала R(Yt/X), вероятность pt(m/m') того, что кодер осуществил переход из состояния m' в состояние m в момент t, и вероятность qt((X/m', m) того, что выходной символ кодера есть X при условии, что предыдущее состояние кодера есть m', а текущее состояние кодера - m. Вычислитель 112 вычисляет каждый элемент Гt путем суммирования по всем возможным выходным данным Х кодера в соответствии с уравнением (2).
Вычисленные значения Гt подаются на вычислитель произведения матриц 114 для формирования матричного произведения Г1, Г2...ГL с использованием единичной матрицы 116, например, из памяти переключателя 118 и схемы задержки 120. В момент t=l единичная матрица подается на вход вычислителя матричного произведения. Для каждого последующего момента времени с t=2 до t=L матричное произведение
подается назад через схему задержки на вычислитель матричного произведения. Затем в момент времени t=L полученное матричное произведение подается через переключатель 121 на вычислитель нормированного собственного вектора 122, который вычисляет нормированный собственный вектор, соответствующий максимальному собственному значению матричного произведения, введенного в него. Если таким образом инициализировано α0, т.е. как этот нормированный собственный вектор, последующие вектора αt определяются рекурсивно в соответствии с уравнением (5) в вычислителе матричного произведения 124 с использованием задержки 126 и переключателя 128. Соответствующие значения Гt извлекаются из памяти 130, и полученные значения αt запоминаются в памяти 130.
подается назад через схему задержки на вычислитель матричного произведения. Затем в момент времени t=L полученное матричное произведение подается через переключатель 121 на вычислитель нормированного собственного вектора 122, который вычисляет нормированный собственный вектор, соответствующий максимальному собственному значению матричного произведения, введенного в него. Если таким образом инициализировано α0, т.е. как этот нормированный собственный вектор, последующие вектора αt определяются рекурсивно в соответствии с уравнением (5) в вычислителе матричного произведения 124 с использованием задержки 126 и переключателя 128. Соответствующие значения Гt извлекаются из памяти 130, и полученные значения αt запоминаются в памяти 130.
Значения βt определяются в вычислителе матричного произведения 132 с использованием переключателя 134 и задержки 136 в соответствии с уравнением (6). Затем с использованием значений αt и βt вычисляются вероятности λt в вычислителе поэлементного произведения 140 согласно уравнению (7). Значения λt/ подаются на вычислитель вероятности значений декодированных битов 150, который определяет вероятность того, что j-й декодированный бит в момент времени t, т.е. dt, равен нулю. Эта вероятность подается на устройство пороговой обработки 152, которое реализует следующее решающее правило: если вероятность с вычислителя 150 превышает 1/2, то принимается решение, что декодированный бит равен нулю; если вероятность меньше 1/2, то принимается решение, что декодированный бит равен единице; если вероятность равна 1/2 то декодированному биту случайным образом присваивается значение 0 или 1. Выходное значение устройства пороговой обработки соответствует биту на выходе декодера в момент времени t.
Вероятность того, что декодированный бит равен нулю, т.е. P(dj t=0/Yj t), также подается, как показано на фиг. 4, на блок 154 определения функции "мягкого" выходного результата для определения функции вероятности, т.е. f(P{dj t=0/Yj t)), так, чтобы, например,
в качестве выходного результата "мягкого" решения декодера. Кроме того. может быть использована другая функция P(dj t=0/Yj t),
Как вариант, полезной функцией для блока 154 может быть просто единичная функция, так что программируемое выходное решение соответствует просто P(dj t=О/Yj t).
в качестве выходного результата "мягкого" решения декодера. Кроме того. может быть использована другая функция P(dj t=0/Yj t),
Как вариант, полезной функцией для блока 154 может быть просто единичная функция, так что программируемое выходное решение соответствует просто P(dj t=О/Yj t).
Альтернативный вариант осуществления МАР-декодера определяет распределения вероятности состояния путем рекурсивного метода. В частности, в одном из вариантов осуществления (метод динамической сходимости) рекурсия продолжает осуществляться, пока не будет обнаружена сходимость декодера. В этом рекурсивном методе (или методе динамической сходимости) этапы (ii) и (iii) метода собственного вектора, описанного выше, заменяются следующим образом:
(ii.a) Начиная с начального α0 равного (1/М,...,1/М), где М - число состояний в решетчатом коде, вычислить рекурсию вперед L раз. Нормировать результаты так, чтобы элементы каждого нового αt суммировались до единицы. Сохранить все L векторов αt.
(ii.b) Принимая α0 равным αL из предыдущего этапа и начиная с момента t= 1, вычислить первые Lw min векторов αt. Т.е. вычислить
для m=0, 1,...,М-1 и t=1, 2,..., Lw min,
где Lw min соответствующее минимальное число каскадов решетчатого кода. Осуществить нормировку, как описано выше. Сохранить только самое последнее множество из L векторов α, найденных путем рекурсивного вычисления согласно этапам (ii.a) и (ii.b), и αLw min найденное ранее на этапе (ii.a).
(ii.a) Начиная с начального α0 равного (1/М,...,1/М), где М - число состояний в решетчатом коде, вычислить рекурсию вперед L раз. Нормировать результаты так, чтобы элементы каждого нового αt суммировались до единицы. Сохранить все L векторов αt.
(ii.b) Принимая α0 равным αL из предыдущего этапа и начиная с момента t= 1, вычислить первые Lw min векторов αt. Т.е. вычислить
для m=0, 1,...,М-1 и t=1, 2,..., Lw min,
где Lw min соответствующее минимальное число каскадов решетчатого кода. Осуществить нормировку, как описано выше. Сохранить только самое последнее множество из L векторов α, найденных путем рекурсивного вычисления согласно этапам (ii.a) и (ii.b), и αLw min найденное ранее на этапе (ii.a).
(ii. c) Сравнить αLw min полученное на этапе (ii.b) с ранее полученным множеством, полученным на этапе (ii.a). Если М соответствующих элементов их нового и старого значения αLw min находятся в пределах поля допуска, то перейти к этапу (iv), как описано выше. В противном случае продолжать обработку согласно этапу (ii.d).
(ii.d) При t=t+1 вычислить αt= αt-1Гt. Осуществить нормировку, как и ранее. Сохранить только самое последнее множество из L вычисленных векторов α и αt, полученные ранее на этапе (ii.a).
(ii. e) Сравнить новые значения αt с ранее найденным множеством. Если М новых и старые αt находятся в пределах поля допуска, то перейти к этапу (iv). В противном случае продолжить обработку с этапа (ii.d), если два самых последних вектора не совпадают в пределах поля допуска и если число рекурсий не превысило определенный максимум (в типовом случае 2L); в противном случае перейти к этапу (iv).
Данный способ затем продолжается обработкой на этапах (iv) и (v), описанных выше для способа с использованием собственных векторов, для получения выходных результатов "мягкого" (программируемого) решения и декодированных выходных битов циклического МАР-декодера.
В другом варианте осуществления циклического МАР-декодера, как описано в заявке на патент США (RD-24923), способ рекурсии, описанный выше, модифицирован таким образом, что декодеру необходимо только обрабатывать предварительно определенное фиксированное число каскадов решеточного кода для второго раза, т. е. на предварительно определенную глубину цикла. Это дает преимущества при реализации, так как количество вычислений. требуемых для декодирования, одно и то же для каждого кодированного блока сообщений. Соответственно, снижается сложность аппаратных средств и программного обеспечения.
Возможный способ оценки требуемой глубины цикла для МАР-декодирования сверточного кода с конечной последовательностью битов состоит в определении ее из экспериментов с аппаратными средствами или с программным обеспечением при условии, что необходимо осуществить циклический МАР-декодер с переменной глубиной цикла, причем эксперименты должны проводиться для измерения частоты ошибок в декодированных битах данных в зависимости от отношения Еb/N0 для последовательно возрастающих значений глубины цикла. Минимальная глубина цикла декодера, которая обеспечивает минимальную вероятность ошибки декодированных битов данных для конкретного значения отношения Еb/N0 находится при условии, когда дальнейшее увеличение глубины цикла не снижает вероятности ошибки.
Если частота ошибок в декодированных битах данных, которая превышает минимально достижимую при конкретном значении отношения Еb/N0, допустима, то возможно уменьшить требуемое число каскадов решетчатого кода, обрабатываемых МАР-декодером. В частности, поиск глубины цикла, как описано выше, может быть просто завершен, когда получена желаемая вероятность ошибки в битах данных.
Другим способом определения глубины цикла для данного кода является использование свойств кодового расстояния. С этой целью необходимо определить две различные глубины для принятия решения в декодере. Как использовано в настоящем описании, термин "корректный путь" относится к последовательности состояний или к пути через решетчатый код, который вытекает из кодирования блока битов данных. Термин "некорректное подмножество узла" относится к множеству некорректных (решетчатых) ответвлений из узла корректного пути и их "спускам". Обе глубины решений, определенные ниже, зависят от сверточного кодера.
Глубины решений определяются следующим образом.
(i) Определить глубину прямого решения для исправления е-ошибки, LF(e), в качестве первой глубины в решетчатом коде, при которой все пути в некорректном подмножестве исходного узла корректного пути, независимо от того, сливается ли этот узел с корректным путем или нет, лежат более чем на Хэмминговом расстоянии 2е от корректного пути. Важность параметра LF(e) состоит в том, что если е или менее ошибок имеется перед исходным узлом, и известно, что кодирование начато в той позиции, то декодер должен осуществлять корректное декодирование. Формальное табулирование глубин прямого решения для сверточных кодов было проведено в работе J.B.Anderson. K.Balachandran, "Decision Depth of Convolutional Codes", IEEE Transactions on Information Theory, vol. IT-35, pp.455-59, March 1989. Ряд свойств параметра LF(e) был описан в указанной работе, а также в работе J.B.Anderson, S.Mohan, "Source and Channel Coding An Algorithmic Approach, Kluwer Academic Publishers, Norwell, MA, 1991. Главным из этих свойств является то, что существует простое линейное соотношение между LF и е, например, для кодов скорости 1/2 параметр LF примерно равен 9,08е.
(ii) Затем определить глубину решения без слияния для исправления е-ошибок, т.е. LU(е), которая определяется как первая глубина в решетчатом коде, при которой все пути в решетчатом коде, которые нигде не касаются корректного пути, лежат более чем на Хэмминговом расстоянии 2е от корректного пути.
Важность параметра LU(e) для циклического МАР-декодирования с принятием программируемого решения состоит в том, что вероятность идентификации состояния на действительно переданном пути высока после того, как декодер обработает LU(e) каскадов решетчатого кода. Поэтому минимальная глубина цикла для циклического МАР-декодирования равна LU(е). Вычисления глубины LU(е) показывают, что она всегда больше, чем LF(e), но что она подчиняется тому же самому аппроксимирующему закону. Это означает, что минимальная глубина цикла может быть оценена как глубина прямого решения LF(e), если глубина решения без слияния для кода не известна.
Путем нахождения минимальной глубины решения без слияния для данного кодера тем самым находим наименьшее число каскадов решетчатого кода, которое должно быть обработано конкретным циклическим декодером, который генерирует выходные результаты "мягкого" (программируемого) решения. Алгоритм нахождения LF(e), т.е. глубины прямого решения, был представлен в работе J.B.Anderson, К. Balachandran, "Decision Depths of Convolutional Codes", упомянутой выше. Для определения LU(e) необходимо осуществить следующую обработку:
(i) Вытянуть "решетку" кода слева направо, начиная со всех узлов решетчатого кода, за исключением нулевого состояния.
(i) Вытянуть "решетку" кода слева направо, начиная со всех узлов решетчатого кода, за исключением нулевого состояния.
(ii) На каждом уровне исключить любые пути, которые сливаются с корректным (все нули) путем; не растягивать какие-либо пути за пределы узла корректного (нулевого) состояния.
(iii) На уровне k найти наименьшее Хэммингово расстояние, или вес, среди всех путей, завершающихся в узлах на этом уровне.
(iv) Если это наименьшее расстояние превышает 2е, то прекратить обработку. Тогда LU(e)=k.
Как описано в заявке на патент США (RD-24923), эксперименты с использованием математического моделирования привели к двум неожиданным результатам: (1) циклическая обработка βe привела к повышению эффективности декодера; (2) использование глубины цикла LU(е)+LF(e)≈2LF(e) существенно повысило эффективность. Следовательно, предпочтительный вариант алгоритма для циклического МАР-декодера, основанного на рекурсивной обработке, включает следующие этапы:
(i) Вычислить Гt для t=1, 2,..., L в соответствии с уравнением (2).
(i) Вычислить Гt для t=1, 2,..., L в соответствии с уравнением (2).
(ii) Начиная с исходного α0, равного (1/М,....1/М), где М - число состояний в решетчатом коде, вычислить рекурсию вперед уравнения (5) (L+Lw) раз для u= 1, 2, ...(L+Lw), где Lw - глубина цикла декодера. Индекс уровня решетчатого кода t принимает значения ((u-1)modL)+1. Когда декодер осуществляет циклическую обработку принятой последовательности символов из канала, αL обрабатывается как α0. Осуществить нормировку результатов так, чтобы элементы каждого нового вектора αt суммировались до единицы. Сохранить L самых последних векторов α, найденных посредством этой рекурсивной обработки.
(iii) Начиная с исходного βL, равного (1,...,1)T, вычислить обратную рекурсию согласно уравнению (6) (L+Lw) раз для u=1, 2,...(L +Lw). Индекс уровня решетчатого кода t принимает значения L-(u modL). Когда декодер осуществляет циклическую обработку принятой последовательности, β1 используется как βL+1, а Г1 используется как Г1+1 при вычислении нового βL. Осуществить нормировку результатов так, чтобы элементы каждого нового вектора βt суммировались до единицы. Сохранить L самых последних векторов β, найденных посредством этой рекурсивной обработки.
Следующий этап этого предпочтительного способа рекурсивной обработки является тем же самым, что и этап (v), описанный выше относительно способа собственных векторов, для получения "мягких" решений и выходных декодированных битов с использованием циклического МАР-декодера.
На фиг.5 представлена упрощенная блок-схема, иллюстрирующая циклический МАР-декодер 180, выполненный в соответствии с данным предпочтительным вариантом осуществления изобретения. Декодер 180 содержит вычислитель Гt 182 для вычисления Гt как функции выходных данных канала yt. Выходные данные y1, ..., yL подаются на вычислитель Гt через переключатель 184. Когда переключатель установлен в нижнее положение, L выходных символов каналов загружаются в вычислитель Гt 182 и в регистр сдвига 186 по одному в каждый момент времени. Затем переключатель 184 перемещается в верхнее положение, обеспечивая перемещение первых Lw принятых символов в вычислитель Гt для обеспечения циклической обработки. Вычислитель Гt получает на своих входах из памяти 196 вероятность перехода канала R(Yt,X), вероятность pt(m/m') того, что кодер осуществил переход из состояния m' в состояние m в момент t, и вероятность qt(X/m', m) того, что выходной символ кодера есть X, при условии, что предыдущее состояние кодера есть m', а текущее состояние кодера m. Вычислитель 182 вычисляет каждый элемент Гt путем суммирования по всем возможным выходным данным Х кодера в соответствии с уравнением (2).
Вычисленные значения Гt подаются на вычислитель матричного произведения 190, который умножает матрицу Гt на матрицу αt-1, которая рекурсивно выдается с помощью элемента задержки 192 и схемы демультиплексора 194. Управляющий сигнал CNTRL1 обеспечивает в демультиплексоре 194 выбор α0 из памяти 196 в качестве входных данных для вычислителя матричного произведения 190 при t= 1. Когда 2≤t≤L, управляющий сигнал CNTRL1 обеспечивает в демультиплексоре 194 выбор αt-1 с элемента задержки 192 в качестве входных данных для вычислителя матричного произведения 190. Значения Гt и αt запоминаются в памяти 196, если это необходимо.
Вектора βt вычисляются рекурсивно в вычислителе матричного произведения 200 с помощью элемента задержки 202 и схемы демультиплексора 204. Управляющий сигнал CNTRL2 обеспечивает в демультиплексоре 204 выбор βL из памяти 196 в качестве входных данных для вычислителя матричного произведения 200 при t= L-1. Когда L-2≥t≥1, управляющий сигнал CNTRL2 обеспечивает в демультиплексоре 204 выбор βt+1 с элемента задержки 122 в качестве входных данных для вычислителя матричного произведения 200. Полученные в результате значения βt умножаются на значения αt, получаемые из памяти 196, в вычислителе поэлементных произведений 206 для получения вероятностей λt как описано выше. Тем же самым способом, как описано выше со ссылками на фиг.4, значения λt подаются на вычислитель 150 вероятности значения декодированных битов, выходной результат которого подается на устройство пороговой обработки 152, в результате чего формируются декодированные выходные биты декодера.
Условная вероятность P(dj t= 0/Yj t) того, что декодированный бит равен нулю, также показана на фиг.5, как подаваемая на функциональный блок 154 программируемого выходного результата, для получения функции вероятности, т. е. f(P(dj t=0/Yj t)), например в виде
в качестве выходного результата программируемого решения. Другой полезной функцией вероятности является (P(dj t=0/Yj t)) является
Как вариант, полезной функцией для блока 154 может быть просто единичная функция, так что программируемый выходной результат равен (P(dj t=0/Yj t)).
в качестве выходного результата программируемого решения. Другой полезной функцией вероятности является (P(dj t=0/Yj t)) является
Как вариант, полезной функцией для блока 154 может быть просто единичная функция, так что программируемый выходной результат равен (P(dj t=0/Yj t)).
В соответствии с настоящим изобретением также возможно увеличить частоту схемы параллельного каскадного кодирования, содержащую нерекурсивные систематические коды с конечными последовательностями битов путем исключения выделенных битов в составном кодовом слове, формируемом блоком форматирования составного кода в соответствии с предпочтительно выбранной комбинацией, перед передачей битов составного кодового слова в канале. Этот метод известен как "пробивание". Схема такого "пробивания" известна в декодере. Следующий простой дополнительный этап, выполняемый преобразователем принятого составного кодового слова в кодовые слова-компоненты, обеспечивает желательную операцию декодера: преобразователь принятого составного кодового слова в кодовые слова-компоненты просто вводит нейтральное значение для каждого известного "пробиваемого" бита в процессе формирования принятых кодовых слов-компонентов. Например, нейтральное значение используется для случая диаметрально противоположной ("антиподной") сигнализации в канале аддитивного белого гауссова шума. Остальная часть операций обработки в декодере такая, как описано выше.
До сих пор считалось, что нерекурсивные систематические сверточные коды (NSC-коды) не могут использоваться в качестве кодов компонентов в схеме параллельного каскадного кодирования ввиду того, что наилучшими свойствами кодового расстояния обладают рекурсивные систематические коды сверточные (RSC-коды), как показано, например, в работе S. Benedetto, G.Montorsi, "Design of Parallel Concatenated Convolutional Codes, "IEEE Transaction on Communications", подготовленной к публикации. Однако, как описано выше, изобретателями определено, что минимальное расстояние NSC-кода менее чувствительно к длине блока данных, и поэтому это свойство может быть использовано с выгодой в системах связи, которые передают короткие блоки битов данных в очень зашумленных каналах. Кроме того, изобретателями определено, что использование кодов с конечной последовательностью битов решает проблему завершения последовательностей входных данных в турбо-кодах. Использование сверточных кодов как кодов компонентов в схеме параллельного каскадного кодирования ранее не предлагалось. Следовательно, настоящее изобретение предусматривает схему параллельного каскадного нерекурсивного систематического сверточного кодирования с конечной последовательностью битов с использованием декодера, включающего в себя циклические МАР-декодеры для декодирования сверточных кодов компонентов с конечной последовательностью битов для обеспечения лучших характеристик для коротких длин блоков данных, по сравнению с обычными схемами сверточного турбо-кодирования, измеряемых через частоту ошибок в битах данных в зависимости от отношения сигнал/шум.
Claims (36)
1. Способ параллельного каскадного сверточного кодирования, включающий этапы подачи блока битов данных на параллельных каскадный кодер, содержащий множество N компонентных кодеров и N-1 блоков перемежения, соединенных параллельными каскадами, кодирования блока битов данных в первом из компонентных кодеров с использованием нерекурсивного систематического сверточного кода с конечной последовательностью битов и формирования при этом соответствующего первого компонентного кодового слова, содержащего биты данных и биты контроля четности, перемежения битов блока данных для формирования блока битов с перестановками, кодирования полученного в результате блока битов с перестановками в последующем компонентном кодере с использованием нерекурсивного систематического сверточного кода с конечной последовательностью битов и формирования при этом соответствующего второго компонентного кодового слова, содержащего биты данных и биты контроля четности, повторения этапов перемежения и кодирования получаемого в результате блока битов с перестановками с использованием остальных N-2 блоков перемежения и остальных N-2 компонентных кодеров для формирования компонентных кодовых слов, содержащих биты данных и биты контроля четности, и форматирования битов компонентных кодовых слов для формирования составного кодового слова.
2. Способ по п.1, отличающийся тем, что этап форматирования выполняют так, чтобы составное кодовое слово включало только одно появление каждого бита в блоке битов данных.
3. Способ по п.1, отличающийся тем, что этап формирования выполняют так, чтобы составное кодовое слово включало только выбранные биты из числа битов, образующих компонентные кодовые слова в соответствии с предварительно определенной схемой.
4. Способ декодирования параллельных каскадных сверточных кодов, включающий этапы приема из канала составного кодового слова, которое содержит сформатированное множество битов из множества (N) компонентных кодовых слов, которые были сформированы с использованием нерекурсивных систематических сверточных кодов с конечной последовательностью битов для блока битов данных в параллельном каскадном кодере, формирования принятых компонентных кодовых слов из принятого составного кодового слова, причем каждое соответствующее принятое компонентное кодовое слово принимается соответственно одним из множества N компонентных декодеров составного декодера, каждый соответствующий компонентный декодер также принимает набор априорной информации мягкого решения для значений битов данных, декодирования принятых компонентных кодовых слов по процедуре итераций с использованием N компонентных декодеров и N-1 блоков перемежения для формирования выходных результатов мягкого решения составного декодера, причем каждый из N компонентных декодеров обеспечивает информацию мягкого решения по каждому биту данных в блоке данных в порядке кодирования соответствующим компонентным кодером, каждый из N-1 блоков перемежения осуществляет перемежение информации мягкого решения с предыдущего компонентного декодера для обеспечения перемеженного блока информации мягкого решения для последующего компонентного декодера, при этом набор априорной информации мягкого решения для первого из N компонентных декодеров вычисляется в предположении, что значения битов данных равновероятны для первой итерации и после этого содержит первую функцию информации мягкого решения, при этом указанная первая функция информации мягкого решения подается назад с N-го компонентного декодера через первый блок исключения перемежения, содержащий N-1 блоков исключения перемежения, соответствующих N-1 блокам перемежения, при этом N-1 блоков исключения перемежения первого блока исключения перемежения используют в порядке, обратном порядку N-1 блоков перемежения, набор априорной информации мягкого решения, подаваемый на каждый из остальных компонентных декодеров, содержит первую функцию информации мягкого решения с предыдущего последовательного компонентного декодера, и исключения перемежения во втором блоке исключения перемежения для формирования второй функции выходного результата мягкого решения с N-го компонентного декодера в качестве выходного результата мягкого решения составного декодера с использованием N-1 блоков исключения перемежения, соответствующих N-1 блокам перемежения, причем N-1 блоков исключения перемежения использованы в порядке, обратном порядку N-1 блоков перемежения.
5. Способ по п.4, отличающийся тем, что число итераций с использованием компонентных декодеров, блоков перемежения и блоков исключения перемежения равно предварительно определенному числу.
6. Способ по п.4, отличающийся тем, что итерации с использованием компонентных декодеров, блоков перемежения и блоков исключения перемежения продолжают до обнаружения сходимости декодера, если число итераций меньше максимального числа, в противном случае декодирование завершают после максимального числа итераций, при этом составной декодер обеспечивает вторую функцию выходного результата мягкого решения с N-гo компонентного декодера в качестве своего выходного результата мягкого решения через второй блок исключения перемежения.
7. Способ по п.4, отличающийся тем, что дополнительно включает этап выполнения решающего правила для получения выходного результата жесткого решения в функции выходного результата мягкого решения составного декодера.
8. Способ по п.4, отличающийся тем, что осуществляют изъятие битов из сформатированной совокупности битов в соответствии с предварительно определенной комбинацией, при этом декодирование дополнительно включает этап введения нейтральных значений для всех изъятых битов при формировании принятых компонентных кодовых слов.
9. Способ по п.4, отличающийся тем, что этап декодирования выполняют с использованием N компонентных декодеров, включающих циклические декодеры максимума апостериорной вероятности (МАР-декодеры), а этап декодирования включает решение задачи собственных векторов.
10. Способ по п.4, отличающийся тем, что этап декодирования выполняют с использованием N компонентных декодеров, включающих циклические МАР-декодеры, а этап декодирования включает рекурсивную обработку.
11. Способ параллельного каскадного сверточного кодирования и декодирования, включающий этапы подачи блока битов данных на параллельный каскадный кодер, содержащий множество N компонентных кодеров и N-1 блоков перемежения, соединенных параллельными каскадами, кодирования блока битов данных в первом из компонентных кодеров путем применения к нему нерекурсивного систематического сверточного кода с конечной последовательностью битов и формирования при этом соответствующего первого компонентного кодового слова, содержащего биты данных и биты контроля четности, перемежения битов блока данных для формирования блока битов данных с перестановкой, кодирования полученного в результате блока битов данных с перестановкой в последующем компонентном кодере путем применения к нему нерекурсивного систематического сверточного кода с конечной последовательностью битов и формирования при этом соответствующего второго компонентного кодового слова, содержащего биты данных и биты контроля четности, повторения этапов перемежения и кодирования получаемого в результате блока битов данных с перестановками с использованием остальных N-2 блоков перемежения и остальных N-2 компонентных кодеров для формирования компонентных кодовых слов, содержащих биты данных и биты контроля четности, и форматирования битов компонентных кодовых слов для формирования составного кодового слова, введения составного кодового слова в канал, приема из канала принимаемого составного кодового слова, формирования принятых компонентных кодовых слов из принятого составного кодового слова, подачи каждого соответствующего принятого компонентного кодового слова на соответствующий один из множества N компонентных декодеров составного декодера, причем каждый соответствующий компонентный декодер также принимает набор априорных вероятностей для значений битов данных, декодирования принятых компонентов кодовых слов по процедуре итераций с использованием N компонентных декодеров и N-1 блоков перемежения для формирования выходных результатов мягкого решения составного декодера, причем каждый из N компонентных декодеров обеспечивает информацию мягкого решения по каждому биту данных в блоке данных в порядке кодирования соответствующим компонентным кодером, каждый из N-1 блоков перемежения осуществляет перемежение информации мягкого решения с предыдущего компонентного декодера для обеспечения блока информации мягкого решения с перестановками для последующего компонентного декодера, при этом набор априорной информации мягкого решения для первого из N компонентных декодеров вычисляется в предположении, что значения битов данных равновероятны для первой итерации, и после этого содержит первую функцию информации мягкого решения, при этом указанная первая функция информации мягкого решения подается назад с N-го компонентного декодера через первый блок исключения перемежения, содержащий N-1 блоков исключения перемежения, соответствующих N-1 блокам перемежения, при этом N-1 блоков исключения перемежения первого блока исключения перемежения используются в порядке, обратном порядку N-1 блоков перемежения, набор априорной информации мягкого решения, подаваемый на каждый из компонентных декодеров, содержит первую функцию информации мягкого решения с предыдущего последовательного компонентного декодера, и исключения перемежения во втором блоке исключения перемежения для формирования второй функции выходного результата мягкого решения с N-го компонентного декодера в качестве выходного результата мягкого решения составного декодера с использованием N-1 блоков исключения перемежения, соответствующих N-1 блокам перемежения, причем N-1 блоков исключения перемежения использованы в порядке, обратном порядку N-1 блоков перемежения.
12. Способ по п.11, отличающийся тем, что этап форматирования выполняют так, чтобы составное кодовое слово включало только одно появление каждого бита в блоке битов данных.
13. Способ по п.11, отличающийся тем, что этап форматирования выполняют так, чтобы составное кодовое слово включало только выбранные биты из числа битов, образующих компонентные кодовые слова в соответствии с предварительно определенной схемой.
14. Способ по п.11, отличающийся тем, что число итераций с использованием компонентных декодеров, блоков перемежения и блоков исключения перемежения равно предварительно определенному числу.
15. Способ по п.11, отличающийся тем, что итерации с использованием компонентных декодеров, блоков перемежения и блоков исключения перемежения продолжают до обнаружения сходимости декодера, если число итераций меньше максимального числа, в противном случае декодирование завершают после максимального числа итераций, при этом составной декодер обеспечивает вторую функцию выходного результата мягкого решения с N-го компонентного декодера в качестве своего выходного результата мягкого решения через второй блок исключения перемежения.
16. Способ по п.11, отличающийся тем, что дополнительно включает этап выполнения решающего правила для получения выходного результата жесткого решения в функции выходного результата мягкого решения составного декодера.
17. Способ по п.11, отличающийся тем, что этап декодирования выполняют с использованием N компонентных декодеров, включающих циклические МАР-декодеры, а этап декодирования включает решение задачи собственных векторов.
18. Способ по п.11, отличающийся тем, что этап декодирования выполняют с использованием N компонентных декодеров, включающих циклические МАР-декодеры, а этап декодирования включает рекурсивную обработку.
19. Способ по п.11, отличающийся тем, что осуществляют изъятие битов из сформатированной совокупности битов в соответствии с предварительно определенной комбинацией, при этом декодирование дополнительно включает этап введения нейтральных значений для всех изъятых битов при формировании принятых компонентных кодовых слов.
20. Параллельный каскадный кодер, содержащий множество (N) компонентных кодеров и множество (N-1) блоков перемежения, соединенных параллельными каскадами, для систематического применения нерекурсивных систематических сверточных кодов с конечной последовательностью битов к блоку битов данных и различных перестановок блока битов данных для формирования компонентных кодовых слов, содержащих биты данных и биты контроля четности, и блок форматирования составного кодового слова для форматирования совокупности битов из компонентных кодовых слов для формирования составного кодового слова.
21. Кодер по п.20, отличающийся тем, что блок форматирования составного кодового слова выполнен с возможностью формирования составного кодового слова так, чтобы оно включало только одно появление каждого бита в блоке битов данных.
22. Кодер по п.20, отличающийся тем, что блок форматирования составного кодового слова выполнен так, что составное кодовое слово включает только выбранные биты из числа битов, образующих компонентные кодовые слова в соответствии с предварительно определенной схемой.
23. Составной декодер для декодирования параллельных каскадных сверточных кодов, содержащий преобразователь составного кодового слова в компонентные кодовые слова для приема составного кодового слова из канала, причем составное кодовое слово содержит выбранные биты из множества N компонентных кодовых слов, которые были сформированы с применением нерекурсивных сверточных кодов с конечной битовой последовательностью к блоку битов данных в параллельном каскадном кодере, и формирования из него множества N соответствующих принятых компонентных кодовых слов, множество (N) компонентных декодеров, причем каждый соответствующий декодер принимает соответствующее принимаемое компонентное кодовое слово от преобразователя составного кодового слова в компонентные кодовые слова, причем каждый соответствующий декодер также принимает набор ариорной информации мягкого решения для значений битов данных, и каждый из N компонентных декодеров обеспечивает информацию мягкого решения по каждому биту данных в блоке данных в порядке кодирования соответствующим компонентным кодером в параллельном каскадном кодере, множество N-1 блоков перемежения, каждый из которых обеспечивает перемежение информации мягкого решения с соответствующего компонентного декодера для обеспечения блока информации мягкого решения с перестановками для последующего компонентного декодера, при этом принимаемые кодовые слова декодируются в процессе итераций с использованием N компонентных декодеров и N-1 блоков перемежения для обеспечения выходного результата мягкого решения с составного декодера, первый блок исключения перемежения, содержащий N-1 блоков исключения перемежения соответственно N-1 блокам перемежения, причем N-1 блоков исключения перемежения первого блока исключения перемежения использованы в порядке, обратном порядку N-1 блоков перемежения, при этом набор априорной информации мягкого решения для первого из N компонентных декодеров вычисляется в предположении, что значения битов данных равновероятны для первой итерации, и затем содержит первую функцию информации мягкого решения, причем первая функция информации мягкого решения выдается N-м декодером и подается назад через первый блок исключения перемежения, а набор априорной информации мягкого решения, подаваемой на каждый из остальных компонентных декодеров, содержит первую функцию информации мягкого решения с предыдущего последовательного компонентного декодера, и второй блок исключения перемежения, содержащий N-1 блоков исключения перемежения, соответственно N-1 блокам перемежения, причем N-1 блоков исключения перемежения второго блока исключения перемежения используются в порядке, обратном порядку N-1 блоков перемежения, при этом второй блок исключения перемежения осуществляют исключение перемежения для второй функции выходного результата мягкого решения с N-го компонентного декодера для получения выходного результата мягкого решения составного декодера.
24. Декодер по п. 23, отличающийся тем, что количество итераций с использованием компонентных декодеров, блоков перемежения и блоков исключения перемежения равно предварительно определенному числу.
25. Декодер по п.23, отличающийся тем, что итерации с использованием компонентных декодеров, блоков перемежения и блоков исключения перемежения продолжают до обнаружения сходимости декодера, если число итераций меньше максимального числа, в противном случае декодирование завершают после максимального числа итераций, при этом составной декодер выдает вторую функцию выходного результата мягкого решения с N-го компонентного декодера в качестве своего выходного результата мягкого решения через второй блок исключения перемежения.
26. Декодер по п.23, отличающийся тем, что содержит блок принятия решения для выполнения решающего правила для выработки выходного результата жесткого решения в качестве функции выходного результата мягкого решения составного декодера.
27. Декодер по п. 23, отличающийся тем, что N компонентных декодеров включают циклические МАР-декодеры для осуществления декодирования путем решения задачи собственных векторов.
28. Декодер по п. 23, отличающийся тем, что N компонентных декодеров включают в себя циклические МАР-декодеры для осуществления декодирования путем рекурсивной обработки.
29. Система кодера и декодера для кодирования и декодирования параллельных каскадных сверточных кодов, содержащая параллельный каскадный кодер, содержащий множество (N) компонентных кодеров и множество (N-1) блоков перемежения, соединенных параллельными каскадами для систематического применения нерекурсивных систематических сверточных кодов с конечной последовательностью битов к блоку битов данных и различных перестановок блока битов данных для формирования компонентных кодовых слов, содержащих биты данных и биты контроля четности, и блок форматирования составного кодового слова для форматирования совокупности битов из компонентных кодовых слов для формирования составного кодового слова, преобразователь составного кодового слова в компонентные кодовые слова для приема составного кодового слова из канала и формирования из него множества N соответствующих принятых компонентных кодовых слов, множество (N) компонентных декодеров, причем каждый соответствующий декодер принимает соответствующее принятое компонентное кодовое слово от преобразователя составного кодового слова в компонентные кодовые слова, причем каждый соответствующий декодер также принимает набор априорной информации мягкого решения для значений битов данных, и каждый из N декодеров компонентов обеспечивает информацию мягкого решения по каждому биту данных в блоке данных в порядке кодирования соответствующим компонентным кодером в параллельном каскадном кодере, множество N-1 блоков перемежения, каждый из которых обеспечивает перемежение информации мягкого решения с соответствующего компонентного декодера для обеспечения блока информации мягкого решения с перестановками для последующего компонентного декодера, при этом принимаемые кодовые слова декодируются в процессе итераций с использованием N компонентных декодеров и N-1 блоков перемежения для обеспечения выходного результата мягкого решения с составного декодера, первый блок исключения перемежения, содержащий N-1 блоков исключения перемежения соответственно N-1 блокам перемежения, причем N-1 блоков исключения перемежения в первом блоке исключения перемежения использованы в порядке, обратном порядку N-1 блоков перемежения, при этом набор априорной информации мягкого решения для первого из N компонентных декодеров вычисляется в предположении, что значения битов данных равновероятны для первой итерации, и затем содержит первую функцию информации мягкого решения, причем первая функция информации мягкого решения выдается N-м декодером и подается назад через первый блок исключения перемежения, а набор априорной информации мягкого решения, подаваемый на каждый из остальных компонентных декодеров, содержит первую функцию информации мягкого решения с предыдущего последовательного компонентного декодера и второй блок исключения перемежения, содержащий N-1 блоков исключения перемежения, соответственно N-1 блокам перемежения, причем N-1 блоков исключения перемежения второго блока исключения перемежения используются в порядке, обратном порядку N-1 блоков перемежения, при этом второй блок исключения перемежения осуществляет исключение перемежения для второй функции выходного результата мягкого решения с N-го компонентного декодера для получения выходного результата мягкого решения составного декодера.
30. Система кодера и декодера по п.29, отличающаяся тем, что блок форматирования составного кодового слова выполнен с возможностью формирования составного кодового слова так, чтобы оно включало только одно появление каждого бита в блоке битов данных.
31. Система кодера и декодера по п.29, отличающаяся тем, что блок форматирования составного кодового слова выполнен так, что составное кодовое слово включает только выбранные биты из числа битов, образующих компонентные кодовые слова в соответствии с предварительно определенной схемой.
32. Система кодера и декодера по п.29, отличающаяся тем, что количество итераций с использованием компонентных декодеров, блоков перемежения и блоков исключения перемежения равно предварительно определенному числу.
33. Система кодера и декодера по п.29, отличающаяся тем, что итерации с использованием компонентных декодеров, блоков перемножения и блоков исключения перемежения продолжают до обнаружения сходимости декодера, если число итераций меньше максимального числа, в противном случае декодирование завершают после максимального числа итераций, при этом составной декодер обеспечивает вторую функцию выходного результата мягкого решения с N-го компонентного декодера в качестве своего выходного результата мягкого решения через второй блок исключения перемежения.
34. Система кодера и декодера по п.29, отличающаяся тем, что содержит блок принятия решения для выполнения решающего правила для выработки выходного результата жесткого решения в качестве функции выходного результата мягкого решения составного декодера.
35. Система кодера и декодера по п.29, отличающаяся тем, что N компонентных декодеров включают циклические МАР-декодеры для осуществления декодирования путем решения задачи собственных векторов.
36. Система кодера и декодера по п.29, отличающаяся тем, что N компонентных декодеров включают циклические МАР-декодеры для осуществления декодирования путем рекурсивной обработки.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/636,732 US5721745A (en) | 1996-04-19 | 1996-04-19 | Parallel concatenated tail-biting convolutional code and decoder therefor |
US08/636,732 | 1996-04-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU98100768A RU98100768A (ru) | 1999-12-27 |
RU2187196C2 true RU2187196C2 (ru) | 2002-08-10 |
Family
ID=24553103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU98100768/09A RU2187196C2 (ru) | 1996-04-19 | 1997-04-14 | Параллельный каскадный сверточный код с конечной последовательностью битов и декодер для такого кода |
Country Status (21)
Country | Link |
---|---|
US (1) | US5721745A (ru) |
EP (1) | EP0834222B1 (ru) |
JP (1) | JP3857320B2 (ru) |
KR (1) | KR100522263B1 (ru) |
CN (1) | CN1111962C (ru) |
AR (1) | AR006767A1 (ru) |
AU (1) | AU716645B2 (ru) |
BR (1) | BR9702156A (ru) |
CA (1) | CA2221295C (ru) |
CZ (1) | CZ296885B6 (ru) |
DE (1) | DE69736881T2 (ru) |
HU (1) | HU220815B1 (ru) |
ID (1) | ID16464A (ru) |
IL (1) | IL122525A0 (ru) |
MY (1) | MY113013A (ru) |
NO (1) | NO975966D0 (ru) |
PL (3) | PL183239B1 (ru) |
RU (1) | RU2187196C2 (ru) |
UA (1) | UA44779C2 (ru) |
WO (1) | WO1997040582A1 (ru) |
ZA (1) | ZA973217B (ru) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7512843B2 (en) | 2004-11-30 | 2009-03-31 | Samsung Electronics Co., Ltd. | Apparatus and method for interleaving channels in a mobile communication system |
US7747929B2 (en) | 2004-04-28 | 2010-06-29 | Samsung Electronics Co., Ltd | Apparatus and method for coding/decoding block low density parity check code with variable block length |
RU2454795C2 (ru) * | 2008-01-07 | 2012-06-27 | Квэлкомм Инкорпорейтед | Декодирование каналов с помощью априорной информации в мар-сообщениях канала |
RU2628162C2 (ru) * | 2010-01-12 | 2017-08-15 | Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Форшунг Е.Ф., | Аудио кодер, аудио декодер, способ кодирования и декодирования аудио информации и компьютерная программа, определяющая значение поддиапазона контекста на основе нормы ранее декодированных спектральных значений |
Families Citing this family (170)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI100565B (fi) * | 1996-01-12 | 1997-12-31 | Nokia Mobile Phones Ltd | Tiedonsiirtomenetelmä ja laitteisto signaalin koodaamiseksi |
US6023783A (en) * | 1996-05-15 | 2000-02-08 | California Institute Of Technology | Hybrid concatenated codes and iterative decoding |
KR100498752B1 (ko) * | 1996-09-02 | 2005-11-08 | 소니 가부시끼 가이샤 | 비트메트릭스를 사용한 데이터 수신장치 및 방법 |
US5996113A (en) * | 1996-11-26 | 1999-11-30 | Intel Corporation | Method and apparatus for generating digital checksum signatures for alteration detection and version confirmation |
US6377610B1 (en) * | 1997-04-25 | 2002-04-23 | Deutsche Telekom Ag | Decoding method and decoding device for a CDMA transmission system for demodulating a received signal available in serial code concatenation |
WO1998058468A1 (fr) * | 1997-06-19 | 1998-12-23 | Kabushiki Kaisha Toshiba | Systeme de transmission avec multiplexage de donnees d'information, multiplexeur et demultiplexeur utilises a cet effet et codeur et decodeur pour correction d'erreurs |
US5983384A (en) * | 1997-04-21 | 1999-11-09 | General Electric Company | Turbo-coding with staged data transmission and processing |
US6029264A (en) * | 1997-04-28 | 2000-02-22 | The Trustees Of Princeton University | System and method for error correcting a received data stream in a concatenated system |
WO1998049778A1 (de) * | 1997-04-30 | 1998-11-05 | Siemens Aktiengesellschaft | Verfahren und anordnung zur ermittlung mindestens eines digitalen signalwerts aus einem elektrischen signal |
KR19990003242A (ko) | 1997-06-25 | 1999-01-15 | 윤종용 | 구조적 펀처드 길쌈부호 부호와 및 복호기 |
EP0997031B1 (en) * | 1997-07-30 | 2007-09-19 | Samsung Electronics Co. Ltd. | Adaptive channel encoding method and device |
KR19990012821A (ko) | 1997-07-31 | 1999-02-25 | 홍성용 | 전자기파 흡수체 조성물과 이의 제조 방법, 전자기파 흡수용도료 조성물과 이의 제조 방법 및 이의 도포 방법 |
US6192503B1 (en) * | 1997-08-14 | 2001-02-20 | Ericsson Inc. | Communications system and methods employing selective recursive decording |
WO1999012265A1 (fr) * | 1997-09-02 | 1999-03-11 | Sony Corporation | Codeur/decodeur turbo et procede de codage/decodage turbo |
US6138260A (en) * | 1997-09-04 | 2000-10-24 | Conexant Systems, Inc. | Retransmission packet capture system within a wireless multiservice communications environment with turbo decoding |
KR100248396B1 (ko) * | 1997-10-24 | 2000-03-15 | 정선종 | 병렬 길쌈 부호화기를 사용한 채널 부호기 설계방법 |
US6000054A (en) * | 1997-11-03 | 1999-12-07 | Motorola, Inc. | Method and apparatus for encoding and decoding binary information using restricted coded modulation and parallel concatenated convolution codes |
EP0952673B1 (en) * | 1997-11-10 | 2017-05-17 | Ntt Mobile Communications Network Inc. | Interleaving method, interleaving apparatus, and recording medium in which interleave pattern generating program is recorded |
FR2771228A1 (fr) * | 1997-11-18 | 1999-05-21 | Philips Electronics Nv | Systeme de transmission numerique, decodeur, et procede de decodage |
US6256764B1 (en) * | 1997-11-26 | 2001-07-03 | Nortel Networks Limited | Method and system for decoding tailbiting convolution codes |
CA2315795C (en) * | 1997-12-24 | 2006-01-31 | Inmarsat Ltd. | Coding method and apparatus |
US6088387A (en) * | 1997-12-31 | 2000-07-11 | At&T Corp. | Multi-channel parallel/serial concatenated convolutional codes and trellis coded modulation encoder/decoder |
US7536624B2 (en) * | 2002-01-03 | 2009-05-19 | The Directv Group, Inc. | Sets of rate-compatible universal turbo codes nearly optimized over various rates and interleaver sizes |
US6370669B1 (en) * | 1998-01-23 | 2002-04-09 | Hughes Electronics Corporation | Sets of rate-compatible universal turbo codes nearly optimized over various rates and interleaver sizes |
US6430722B1 (en) * | 1998-01-23 | 2002-08-06 | Hughes Electronics Corporation | Forward error correction scheme for data channels using universal turbo codes |
US6275538B1 (en) * | 1998-03-11 | 2001-08-14 | Ericsson Inc. | Technique for finding a starting state for a convolutional feedback encoder |
US6452985B1 (en) * | 1998-03-18 | 2002-09-17 | Sony Corporation | Viterbi decoding apparatus and Viterbi decoding method |
EP1367748B1 (en) | 1998-03-31 | 2009-07-22 | Samsung Electronics Co., Ltd. | Turbo encoding/decoding device and method for processing frame data according to qoS |
KR100557177B1 (ko) * | 1998-04-04 | 2006-07-21 | 삼성전자주식회사 | 적응 채널 부호/복호화 방법 및 그 부호/복호 장치 |
EP0990308B1 (en) * | 1998-04-18 | 2010-08-18 | Samsung Electronics Co., Ltd. | Turbo encoding with insertion of known bits |
US6198775B1 (en) * | 1998-04-28 | 2001-03-06 | Ericsson Inc. | Transmit diversity method, systems, and terminals using scramble coding |
WO1999065148A1 (en) * | 1998-06-05 | 1999-12-16 | Samsung Electronics Co., Ltd. | Channel coding device and method for rate matching |
US6298463B1 (en) * | 1998-07-31 | 2001-10-02 | Nortel Networks Limited | Parallel concatenated convolutional coding |
US6334197B1 (en) | 1998-08-17 | 2001-12-25 | Hughes Electronics Corporation | Turbo code interleaver with near optimal performance |
JP2000068862A (ja) * | 1998-08-19 | 2000-03-03 | Fujitsu Ltd | 誤り訂正符号化装置 |
US6263467B1 (en) | 1998-08-20 | 2001-07-17 | General Electric Company | Turbo code decoder with modified systematic symbol transition probabilities |
US6128765A (en) * | 1998-08-20 | 2000-10-03 | General Electric Company | Maximum A posterior estimator with fast sigma calculator |
US6223319B1 (en) | 1998-08-20 | 2001-04-24 | General Electric Company | Turbo code decoder with controlled probability estimate feedback |
US6192501B1 (en) | 1998-08-20 | 2001-02-20 | General Electric Company | High data rate maximum a posteriori decoder for segmented trellis code words |
WO2000013323A1 (en) | 1998-08-27 | 2000-03-09 | Hughes Electronics Corporation | Method for a general turbo code trellis termination |
KR100377939B1 (ko) * | 1998-09-01 | 2003-06-12 | 삼성전자주식회사 | 이동통신시스템에서서브프레임전송을위한프레임구성장치및방법 |
EP1118159B1 (en) | 1998-09-28 | 2004-07-07 | Comtech Telecommunications Corp. | Turbo product code decoder |
US6427214B1 (en) * | 1998-09-29 | 2002-07-30 | Nortel Networks Limited | Interleaver using co-set partitioning |
US6028897A (en) * | 1998-10-22 | 2000-02-22 | The Aerospace Corporation | Error-floor mitigating turbo code communication method |
US6014411A (en) * | 1998-10-29 | 2000-01-11 | The Aerospace Corporation | Repetitive turbo coding communication method |
US6044116A (en) * | 1998-10-29 | 2000-03-28 | The Aerospace Corporation | Error-floor mitigated and repetitive turbo coding communication system |
KR100277764B1 (ko) * | 1998-12-10 | 2001-01-15 | 윤종용 | 통신시스템에서직렬쇄상구조를가지는부호화및복호화장치 |
US6202189B1 (en) * | 1998-12-17 | 2001-03-13 | Teledesic Llc | Punctured serial concatenated convolutional coding system and method for low-earth-orbit satellite data communication |
KR100346170B1 (ko) * | 1998-12-21 | 2002-11-30 | 삼성전자 주식회사 | 통신시스템의인터리빙/디인터리빙장치및방법 |
US6484283B2 (en) * | 1998-12-30 | 2002-11-19 | International Business Machines Corporation | Method and apparatus for encoding and decoding a turbo code in an integrated modem system |
KR100315708B1 (ko) * | 1998-12-31 | 2002-02-28 | 윤종용 | 이동통신시스템에서터보인코더의펑처링장치및방법 |
KR100296028B1 (ko) * | 1998-12-31 | 2001-09-06 | 윤종용 | 이동통신시스템에서 이득 조절 장치를 가지는 복호기 |
US6088405A (en) * | 1999-01-15 | 2000-07-11 | Lockheed Martin Corporation | Optimal decoder for tall-biting convolutional codes |
US6665357B1 (en) * | 1999-01-22 | 2003-12-16 | Sharp Laboratories Of America, Inc. | Soft-output turbo code decoder and optimized decoding method |
US6304995B1 (en) * | 1999-01-26 | 2001-10-16 | Trw Inc. | Pipelined architecture to decode parallel and serial concatenated codes |
FR2789824B1 (fr) | 1999-02-12 | 2001-05-11 | Canon Kk | Procede de correction d'erreurs residuelles a la sortie d'un turbo-decodeur |
US6678843B2 (en) * | 1999-02-18 | 2004-01-13 | Interuniversitair Microelektronics Centrum (Imec) | Method and apparatus for interleaving, deinterleaving and combined interleaving-deinterleaving |
US6499128B1 (en) * | 1999-02-18 | 2002-12-24 | Cisco Technology, Inc. | Iterated soft-decision decoding of block codes |
EP1030457B1 (en) * | 1999-02-18 | 2012-08-08 | Imec | Methods and system architectures for turbo decoding |
JP3932091B2 (ja) * | 1999-03-01 | 2007-06-20 | 富士通株式会社 | ターボ復号装置 |
FR2790621B1 (fr) | 1999-03-05 | 2001-12-21 | Canon Kk | Dispositif et procede d'entrelacement pour turbocodage et turbodecodage |
US6304996B1 (en) * | 1999-03-08 | 2001-10-16 | General Electric Company | High-speed turbo decoder |
US6754290B1 (en) * | 1999-03-31 | 2004-06-22 | Qualcomm Incorporated | Highly parallel map decoder |
US6594792B1 (en) | 1999-04-30 | 2003-07-15 | General Electric Company | Modular turbo decoder for expanded code word length |
US6715120B1 (en) | 1999-04-30 | 2004-03-30 | General Electric Company | Turbo decoder with modified input for increased code word length and data rate |
DE19924211A1 (de) * | 1999-05-27 | 2000-12-21 | Siemens Ag | Verfahren und Vorrichtung zur flexiblen Kanalkodierung |
US6473878B1 (en) * | 1999-05-28 | 2002-10-29 | Lucent Technologies Inc. | Serial-concatenated turbo codes |
JP3670520B2 (ja) * | 1999-06-23 | 2005-07-13 | 富士通株式会社 | ターボ復号器およびターボ復号装置 |
US6516136B1 (en) * | 1999-07-06 | 2003-02-04 | Agere Systems Inc. | Iterative decoding of concatenated codes for recording systems |
KR100421853B1 (ko) * | 1999-11-01 | 2004-03-10 | 엘지전자 주식회사 | 상향 링크에서의 레이트 매칭 방법 |
JP3846527B2 (ja) | 1999-07-21 | 2006-11-15 | 三菱電機株式会社 | ターボ符号の誤り訂正復号器、ターボ符号の誤り訂正復号方法、ターボ符号の復号装置およびターボ符号の復号システム |
US7031406B1 (en) * | 1999-08-09 | 2006-04-18 | Nortel Networks Limited | Information processing using a soft output Viterbi algorithm |
DE19946721A1 (de) * | 1999-09-29 | 2001-05-03 | Siemens Ag | Verfahren und Vorrichtung zur Kanalkodierung in einem Nachrichtenübertragungssystem |
US6226773B1 (en) * | 1999-10-20 | 2001-05-01 | At&T Corp. | Memory-minimized architecture for implementing map decoding |
ES2201617T3 (es) * | 1999-10-21 | 2004-03-16 | Sony International (Europe) Gmbh | Turbo-dscodificador sova con complejidad de normalizacion reducida. |
US6580767B1 (en) * | 1999-10-22 | 2003-06-17 | Motorola, Inc. | Cache and caching method for conventional decoders |
WO2001031795A1 (de) * | 1999-10-27 | 2001-05-03 | Infineon Technologies Ag | Verfahren und vorrichtung zur codierung eines punktierten turbocodes |
JP3549788B2 (ja) * | 1999-11-05 | 2004-08-04 | 三菱電機株式会社 | 多段符号化方法、多段復号方法、多段符号化装置、多段復号装置およびこれらを用いた情報伝送システム |
US6400290B1 (en) * | 1999-11-29 | 2002-06-04 | Altera Corporation | Normalization implementation for a logmap decoder |
EP1234420A2 (en) * | 1999-12-03 | 2002-08-28 | Broadcom Corporation | Viterbi slicer for turbo codes |
WO2001043310A2 (en) * | 1999-12-03 | 2001-06-14 | Broadcom Corporation | Embedded training sequences for carrier acquisition and tracking |
DE10001147A1 (de) * | 2000-01-13 | 2001-07-19 | Siemens Ag | Verfahren zum Fehlerschutz bei der Übertragung eines Datenbitstroms |
KR100374787B1 (ko) * | 2000-01-18 | 2003-03-04 | 삼성전자주식회사 | 대역 효율적인 연쇄 티.씨.엠 디코더 및 그 방법들 |
US7092457B1 (en) * | 2000-01-18 | 2006-08-15 | University Of Southern California | Adaptive iterative detection |
KR20020079790A (ko) | 2000-01-20 | 2002-10-19 | 노오텔 네트웍스 리미티드 | 가변 레이트 패킷 데이타 애플리케이션에서 소프트 결합을 사용하는 하이브리드 arq 방법 |
KR100331686B1 (ko) * | 2000-01-26 | 2002-11-11 | 한국전자통신연구원 | 2를 밑수로 하는 로그 맵을 이용한 터보 복호기 |
US6606724B1 (en) * | 2000-01-28 | 2003-08-12 | Conexant Systems, Inc. | Method and apparatus for decoding of a serially concatenated block and convolutional code |
US6810502B2 (en) | 2000-01-28 | 2004-10-26 | Conexant Systems, Inc. | Iteractive decoder employing multiple external code error checks to lower the error floor |
US6516437B1 (en) | 2000-03-07 | 2003-02-04 | General Electric Company | Turbo decoder control for use with a programmable interleaver, variable block length, and multiple code rates |
US7356752B2 (en) * | 2000-03-14 | 2008-04-08 | Comtech Telecommunications Corp. | Enhanced turbo product codes |
CA2404984A1 (en) * | 2000-04-04 | 2001-10-11 | Comtech Telecommunications Corp. | Enhanced turbo product code decoder system |
US6606725B1 (en) | 2000-04-25 | 2003-08-12 | Mitsubishi Electric Research Laboratories, Inc. | MAP decoding for turbo codes by parallel matrix processing |
FR2808632B1 (fr) * | 2000-05-03 | 2002-06-28 | Mitsubishi Electric Inf Tech | Procede de turbo-decodage avec reencodage des informations erronees et retroaction |
WO2001086821A2 (en) * | 2000-05-05 | 2001-11-15 | Icoding Technology, Inc. | Improved error floor turbo codes |
US6542559B1 (en) * | 2000-05-15 | 2003-04-01 | Qualcomm, Incorporated | Decoding method and apparatus |
US6718508B2 (en) * | 2000-05-26 | 2004-04-06 | Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communication Research Centre | High-performance error-correcting codes with skew mapping |
US6738942B1 (en) * | 2000-06-02 | 2004-05-18 | Vitesse Semiconductor Corporation | Product code based forward error correction system |
FI109162B (fi) * | 2000-06-30 | 2002-05-31 | Nokia Corp | Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi |
JP4543522B2 (ja) * | 2000-08-31 | 2010-09-15 | ソニー株式会社 | 軟出力復号装置及び軟出力復号方法、並びに、復号装置及び復号方法 |
WO2002019552A2 (en) * | 2000-09-01 | 2002-03-07 | Broadcom Corporation | Satellite receiver |
AU2001287101A1 (en) * | 2000-09-05 | 2002-03-22 | Broadcom Corporation | Quasi error free (qef) communication using turbo codes |
US7242726B2 (en) * | 2000-09-12 | 2007-07-10 | Broadcom Corporation | Parallel concatenated code with soft-in soft-out interactive turbo decoder |
US6604220B1 (en) * | 2000-09-28 | 2003-08-05 | Western Digital Technologies, Inc. | Disk drive comprising a multiple-input sequence detector selectively biased by bits of a decoded ECC codedword |
US6518892B2 (en) | 2000-11-06 | 2003-02-11 | Broadcom Corporation | Stopping criteria for iterative decoding |
US20020104058A1 (en) * | 2000-12-06 | 2002-08-01 | Yigal Rappaport | Packet switched network having error correction capabilities of variable size data packets and a method thereof |
EP1410513A4 (en) | 2000-12-29 | 2005-06-29 | Infineon Technologies Ag | CHANNEL CODEC PROCESSOR CONFIGURABLE FOR MULTIPLE WIRELESS COMMUNICATION STANDARDS |
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 |
FI20010147A (fi) * | 2001-01-24 | 2002-07-25 | Nokia Corp | Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi |
WO2002067429A2 (en) * | 2001-02-20 | 2002-08-29 | Cute Ltd. | System and method for enhanced error correction in trellis decoding |
FR2822316B1 (fr) * | 2001-03-19 | 2003-05-02 | Mitsubishi Electric Inf Tech | Procede d'optimisation, sous contrainte de ressoureces, de la taille de blocs de donnees codees |
JP4451008B2 (ja) * | 2001-04-04 | 2010-04-14 | 三菱電機株式会社 | 誤り訂正符号化方法および復号化方法とその装置 |
US6738948B2 (en) * | 2001-04-09 | 2004-05-18 | Motorola, Inc. | Iteration terminating using quality index criteria of turbo codes |
WO2002091592A1 (en) * | 2001-05-09 | 2002-11-14 | Comtech Telecommunications Corp. | Low density parity check codes and low density turbo product codes |
US7012911B2 (en) * | 2001-05-31 | 2006-03-14 | Qualcomm Inc. | Method and apparatus for W-CDMA modulation |
US20030123563A1 (en) * | 2001-07-11 | 2003-07-03 | Guangming Lu | Method and apparatus for turbo encoding and decoding |
US20030131303A1 (en) * | 2001-07-12 | 2003-07-10 | Samsung Electronics Co., Ltd. | Reverse transmission apparatus and method for improving transmission throughput in a data communication system |
US6738370B2 (en) * | 2001-08-22 | 2004-05-18 | Nokia Corporation | Method and apparatus implementing retransmission in a communication system providing H-ARQ |
US7085969B2 (en) * | 2001-08-27 | 2006-08-01 | Industrial Technology Research Institute | Encoding and decoding apparatus and method |
US6763493B2 (en) * | 2001-09-21 | 2004-07-13 | The Directv Group, Inc. | Method and system for performing decoding using a reduced-memory implementation |
FR2830384B1 (fr) * | 2001-10-01 | 2003-12-19 | Cit Alcatel | Procede de dispositif de codage et de decodage convolutifs |
EP1317070A1 (en) * | 2001-12-03 | 2003-06-04 | Mitsubishi Electric Information Technology Centre Europe B.V. | Method for obtaining from a block turbo-code an error correcting code of desired parameters |
JP3637323B2 (ja) * | 2002-03-19 | 2005-04-13 | 株式会社東芝 | 受信装置、送受信装置及び受信方法 |
JP3549519B2 (ja) * | 2002-04-26 | 2004-08-04 | 沖電気工業株式会社 | 軟出力復号器 |
US20050226970A1 (en) * | 2002-05-21 | 2005-10-13 | Centrition Ltd. | Personal nutrition control method and measuring devices |
US20030219513A1 (en) * | 2002-05-21 | 2003-11-27 | Roni Gordon | Personal nutrition control method |
JP3898574B2 (ja) * | 2002-06-05 | 2007-03-28 | 富士通株式会社 | ターボ復号方法及びターボ復号装置 |
KR100584170B1 (ko) * | 2002-07-11 | 2006-06-02 | 재단법인서울대학교산학협력재단 | 터보 부호화된 복합 재전송 방식 시스템 및 오류 검출 방법 |
US6774825B2 (en) * | 2002-09-25 | 2004-08-10 | Infineon Technologies Ag | Modulation coding based on an ECC interleave structure |
US7346833B2 (en) * | 2002-11-05 | 2008-03-18 | Analog Devices, Inc. | Reduced complexity turbo decoding scheme |
CN100367676C (zh) * | 2004-05-27 | 2008-02-06 | 中国科学院计算技术研究所 | 一种卷积码的编码方法 |
WO2005119627A2 (en) * | 2004-06-01 | 2005-12-15 | Centrition Ltd. | Personal nutrition control devices |
US7346832B2 (en) | 2004-07-21 | 2008-03-18 | Qualcomm Incorporated | LDPC encoding methods and apparatus |
US7395490B2 (en) | 2004-07-21 | 2008-07-01 | Qualcomm Incorporated | LDPC decoding methods and apparatus |
US7373585B2 (en) * | 2005-01-14 | 2008-05-13 | Mitsubishi Electric Research Laboratories, Inc. | Combined-replica group-shuffled iterative decoding for error-correcting codes |
US7461328B2 (en) * | 2005-03-25 | 2008-12-02 | Teranetics, Inc. | Efficient decoding |
US7360147B2 (en) * | 2005-05-18 | 2008-04-15 | Seagate Technology Llc | Second stage SOVA detector |
US7395461B2 (en) * | 2005-05-18 | 2008-07-01 | Seagate Technology Llc | Low complexity pseudo-random interleaver |
US7502982B2 (en) * | 2005-05-18 | 2009-03-10 | Seagate Technology Llc | Iterative detector with ECC in channel domain |
US8611305B2 (en) | 2005-08-22 | 2013-12-17 | Qualcomm Incorporated | Interference cancellation for wireless communications |
US8271848B2 (en) * | 2006-04-06 | 2012-09-18 | Alcatel Lucent | Method of decoding code blocks and system for concatenating code blocks |
US20080092018A1 (en) * | 2006-09-28 | 2008-04-17 | Broadcom Corporation, A California Corporation | Tail-biting turbo code for arbitrary number of information bits |
US7827473B2 (en) * | 2006-10-10 | 2010-11-02 | Broadcom Corporation | Turbo decoder employing ARP (almost regular permutation) interleave and arbitrary number of decoding processors |
US7831894B2 (en) * | 2006-10-10 | 2010-11-09 | Broadcom Corporation | Address generation for contention-free memory mappings of turbo codes with ARP (almost regular permutation) interleaves |
EP2096884A1 (en) | 2008-02-29 | 2009-09-02 | Koninklijke KPN N.V. | Telecommunications network and method for time-based network access |
TWI374613B (en) | 2008-02-29 | 2012-10-11 | Ind Tech Res Inst | Method and apparatus of pre-encoding and pre-decoding |
US8250448B1 (en) * | 2008-03-26 | 2012-08-21 | Xilinx, Inc. | Method of and apparatus for implementing a decoder |
US8719670B1 (en) * | 2008-05-07 | 2014-05-06 | Sk Hynix Memory Solutions Inc. | Coding architecture for multi-level NAND flash memory with stuck cells |
US8995417B2 (en) | 2008-06-09 | 2015-03-31 | Qualcomm Incorporated | Increasing capacity in wireless communication |
US9277487B2 (en) | 2008-08-01 | 2016-03-01 | Qualcomm Incorporated | Cell detection with interference cancellation |
US9237515B2 (en) | 2008-08-01 | 2016-01-12 | Qualcomm Incorporated | Successive detection and cancellation for cell pilot detection |
KR101418467B1 (ko) * | 2008-08-15 | 2014-07-10 | 엘에스아이 코포레이션 | 니어 코드워드들의 ram 리스트-디코딩 |
EP2307960B1 (en) | 2009-04-21 | 2018-01-10 | Avago Technologies General IP (Singapore) Pte. Ltd. | Error-floor mitigation of codes using write verification |
US9160577B2 (en) | 2009-04-30 | 2015-10-13 | Qualcomm Incorporated | Hybrid SAIC receiver |
EP2505017B1 (en) | 2009-11-27 | 2018-10-31 | Qualcomm Incorporated | Increasing capacity in wireless communications |
WO2011063568A1 (en) * | 2009-11-27 | 2011-06-03 | Qualcomm Incorporated | Increasing capacity in wireless communications |
US8448033B2 (en) * | 2010-01-14 | 2013-05-21 | Mediatek Inc. | Interleaving/de-interleaving method, soft-in/soft-out decoding method and error correction code encoder and decoder utilizing the same |
US8464142B2 (en) | 2010-04-23 | 2013-06-11 | Lsi Corporation | Error-correction decoder employing extrinsic message averaging |
US8499226B2 (en) * | 2010-06-29 | 2013-07-30 | Lsi Corporation | Multi-mode layered decoding |
US8458555B2 (en) | 2010-06-30 | 2013-06-04 | Lsi Corporation | Breaking trapping sets using targeted bit adjustment |
US8504900B2 (en) | 2010-07-02 | 2013-08-06 | Lsi Corporation | On-line discovery and filtering of trapping sets |
CN107276717B (zh) * | 2010-10-08 | 2020-06-26 | 黑莓有限公司 | 用于获得改进的码性能的消息重新排布 |
US8769365B2 (en) | 2010-10-08 | 2014-07-01 | Blackberry Limited | Message rearrangement for improved wireless code performance |
CN102412849A (zh) * | 2011-09-26 | 2012-04-11 | 中兴通讯股份有限公司 | 一种卷积码编码方法及编码装置 |
US9043667B2 (en) | 2011-11-04 | 2015-05-26 | Blackberry Limited | Method and system for up-link HARQ-ACK and CSI transmission |
US8768990B2 (en) | 2011-11-11 | 2014-07-01 | Lsi Corporation | Reconfigurable cyclic shifter arrangement |
EP2847876B1 (en) | 2012-05-11 | 2016-10-05 | BlackBerry Limited | Method and system for uplink harq and csi multiplexing for carrier aggregation |
US20130326630A1 (en) * | 2012-06-01 | 2013-12-05 | Whisper Communications, LLC | Pre-processor for physical layer security |
US9053047B2 (en) * | 2012-08-27 | 2015-06-09 | Apple Inc. | Parameter estimation using partial ECC decoding |
RU2012146685A (ru) | 2012-11-01 | 2014-05-10 | ЭлЭсАй Корпорейшн | База данных наборов-ловушек для декодера на основе разреженного контроля четности |
US9432053B1 (en) * | 2014-07-07 | 2016-08-30 | Microsemi Storage Solutions (U.S.), Inc. | High speed LDPC decoder |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2675971B1 (fr) * | 1991-04-23 | 1993-08-06 | France Telecom | Procede de codage correcteur d'erreurs a au moins deux codages convolutifs systematiques en parallele, procede de decodage iteratif, module de decodage et decodeur correspondants. |
FR2675968B1 (fr) * | 1991-04-23 | 1994-02-04 | France Telecom | Procede de decodage d'un code convolutif a maximum de vraisemblance et ponderation des decisions, et decodeur correspondant. |
US5349589A (en) * | 1991-07-01 | 1994-09-20 | Ericsson Ge Mobile Communications Inc. | Generalized viterbi algorithm with tail-biting |
US5369671A (en) * | 1992-05-20 | 1994-11-29 | Hughes Aircraft Company | System and method for decoding tail-biting code especially applicable to digital cellular base stations and mobile units |
US5355376A (en) * | 1993-02-11 | 1994-10-11 | At&T Bell Laboratories | Circular viterbi decoder |
US5577053A (en) * | 1994-09-14 | 1996-11-19 | Ericsson Inc. | Method and apparatus for decoder optimization |
-
1996
- 1996-04-19 US US08/636,732 patent/US5721745A/en not_active Expired - Lifetime
-
1997
- 1997-04-14 KR KR1019970709441A patent/KR100522263B1/ko active IP Right Grant
- 1997-04-14 BR BR9702156A patent/BR9702156A/pt not_active Application Discontinuation
- 1997-04-14 JP JP53813797A patent/JP3857320B2/ja not_active Expired - Fee Related
- 1997-04-14 CN CN97190399A patent/CN1111962C/zh not_active Expired - Fee Related
- 1997-04-14 PL PL97323524A patent/PL183239B1/pl not_active IP Right Cessation
- 1997-04-14 RU RU98100768/09A patent/RU2187196C2/ru not_active IP Right Cessation
- 1997-04-14 PL PL97349517A patent/PL184230B1/pl not_active IP Right Cessation
- 1997-04-14 AU AU24591/97A patent/AU716645B2/en not_active Ceased
- 1997-04-14 IL IL12252597A patent/IL122525A0/xx not_active IP Right Cessation
- 1997-04-14 PL PL97349516A patent/PL183537B1/pl not_active IP Right Cessation
- 1997-04-14 WO PCT/US1997/006129 patent/WO1997040582A1/en active IP Right Grant
- 1997-04-14 CA CA002221295A patent/CA2221295C/en not_active Expired - Fee Related
- 1997-04-14 UA UA97125953A patent/UA44779C2/uk unknown
- 1997-04-14 EP EP97920377A patent/EP0834222B1/en not_active Expired - Lifetime
- 1997-04-14 DE DE69736881T patent/DE69736881T2/de not_active Expired - Fee Related
- 1997-04-14 HU HU9901440A patent/HU220815B1/hu not_active IP Right Cessation
- 1997-04-14 CZ CZ0407397A patent/CZ296885B6/cs not_active IP Right Cessation
- 1997-04-15 ZA ZA9703217A patent/ZA973217B/xx unknown
- 1997-04-17 MY MYPI97001695A patent/MY113013A/en unknown
- 1997-04-17 ID IDP971284A patent/ID16464A/id unknown
- 1997-04-21 AR ARP970101602A patent/AR006767A1/es unknown
- 1997-12-18 NO NO975966A patent/NO975966D0/no not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7747929B2 (en) | 2004-04-28 | 2010-06-29 | Samsung Electronics Co., Ltd | Apparatus and method for coding/decoding block low density parity check code with variable block length |
US7512843B2 (en) | 2004-11-30 | 2009-03-31 | Samsung Electronics Co., Ltd. | Apparatus and method for interleaving channels in a mobile communication system |
RU2454795C2 (ru) * | 2008-01-07 | 2012-06-27 | Квэлкомм Инкорпорейтед | Декодирование каналов с помощью априорной информации в мар-сообщениях канала |
RU2628162C2 (ru) * | 2010-01-12 | 2017-08-15 | Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Форшунг Е.Ф., | Аудио кодер, аудио декодер, способ кодирования и декодирования аудио информации и компьютерная программа, определяющая значение поддиапазона контекста на основе нормы ранее декодированных спектральных значений |
Also Published As
Publication number | Publication date |
---|---|
CN1111962C (zh) | 2003-06-18 |
HUP9901440A3 (en) | 2000-03-28 |
NO975966L (no) | 1997-12-18 |
EP0834222A1 (en) | 1998-04-08 |
CZ407397A3 (cs) | 1998-06-17 |
DE69736881D1 (de) | 2006-12-14 |
PL183239B1 (pl) | 2002-06-28 |
CZ296885B6 (cs) | 2006-07-12 |
KR19990022971A (ko) | 1999-03-25 |
WO1997040582A1 (en) | 1997-10-30 |
HUP9901440A2 (hu) | 1999-08-30 |
CN1189935A (zh) | 1998-08-05 |
MY113013A (en) | 2001-10-31 |
PL183537B1 (pl) | 2002-06-28 |
NO975966D0 (no) | 1997-12-18 |
BR9702156A (pt) | 1999-07-20 |
KR100522263B1 (ko) | 2006-02-01 |
EP0834222B1 (en) | 2006-11-02 |
JP3857320B2 (ja) | 2006-12-13 |
CA2221295C (en) | 2005-03-22 |
CA2221295A1 (en) | 1997-10-30 |
IL122525A0 (en) | 1998-06-15 |
PL184230B1 (pl) | 2002-09-30 |
JPH11508439A (ja) | 1999-07-21 |
AU716645B2 (en) | 2000-03-02 |
HU220815B1 (hu) | 2002-05-28 |
AR006767A1 (es) | 1999-09-29 |
PL323524A1 (en) | 1998-03-30 |
ID16464A (id) | 1997-10-02 |
DE69736881T2 (de) | 2007-06-21 |
US5721745A (en) | 1998-02-24 |
ZA973217B (en) | 1997-12-18 |
UA44779C2 (uk) | 2002-03-15 |
AU2459197A (en) | 1997-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2187196C2 (ru) | Параллельный каскадный сверточный код с конечной последовательностью битов и декодер для такого кода | |
CA2221137C (en) | An optimal soft-output decoder for tail-biting trellis codes | |
US6044116A (en) | Error-floor mitigated and repetitive turbo coding communication system | |
US6014411A (en) | Repetitive turbo coding communication method | |
US5933462A (en) | Soft decision output decoder for decoding convolutionally encoded codewords | |
US6263467B1 (en) | Turbo code decoder with modified systematic symbol transition probabilities | |
US6028897A (en) | Error-floor mitigating turbo code communication method | |
US6128765A (en) | Maximum A posterior estimator with fast sigma calculator | |
US6223319B1 (en) | Turbo code decoder with controlled probability estimate feedback | |
KR100841295B1 (ko) | 터보 코드 디코딩 방법 및 디코더 | |
US7913153B2 (en) | Arithmetic circuit | |
US7552379B2 (en) | Method for iterative decoding employing a look-up table | |
KR19990081470A (ko) | 터보복호기의 반복복호 종료 방법 및 그 복호기 | |
US6801588B1 (en) | Combined channel and entropy decoding | |
US7770092B2 (en) | Method for iterative decoding in a digital system and apparatus implementing the method | |
EP1098447B1 (en) | Combined channel and entropy decoding | |
Soyjaudah et al. | Comparative study of turbo codes in AWGN channel using MAP and SOVA decoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20080415 |