RU2348103C2 - Устройство и способ кодирования и декодирования блочного кода разреженного контроля четности - Google Patents

Устройство и способ кодирования и декодирования блочного кода разреженного контроля четности Download PDF

Info

Publication number
RU2348103C2
RU2348103C2 RU2007105100/09A RU2007105100A RU2348103C2 RU 2348103 C2 RU2348103 C2 RU 2348103C2 RU 2007105100/09 A RU2007105100/09 A RU 2007105100/09A RU 2007105100 A RU2007105100 A RU 2007105100A RU 2348103 C2 RU2348103 C2 RU 2348103C2
Authority
RU
Russia
Prior art keywords
matrix
vector
parity
block
information word
Prior art date
Application number
RU2007105100/09A
Other languages
English (en)
Other versions
RU2007105100A (ru
Inventor
Гиу-Бум КИУНГ (KR)
Гиу-Бум КИУНГ
Хонг-Сил ДЗЕОНГ (KR)
Хонг-Сил ДЗЕОНГ
Донг-Сеек ПАРК (KR)
Донг-Сеек ПАРК
Дзае-Йоел КИМ (KR)
Дзае-Йоел КИМ
Original Assignee
Самсунг Электроникс Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Самсунг Электроникс Ко., Лтд. filed Critical Самсунг Электроникс Ко., Лтд.
Publication of RU2007105100A publication Critical patent/RU2007105100A/ru
Application granted granted Critical
Publication of RU2348103C2 publication Critical patent/RU2348103C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1182Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the structure of the parity-check matrix is obtained by reordering of a random parity-check matrix
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
    • H03M13/1188Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal wherein in the part with the double-diagonal at least one column has an odd column weight equal or greater than three
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6356Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

Изобретение относится к устройству и способу кодирования блочного кода разреженного контроля четности (LDPC). Сущность изобретения состоит в том, что при приеме вектора информационного слова кодер кодирует вектор информационного слова в блочный код LDPC в соответствии с предопределенной порождающей матрицей. Модулятор модулирует блочный код LDPC в символ модуляции, используя предопределенную схему модуляции. Передатчик передает символ модуляции. Технический результат - обеспечение надежности декодирования при минимизации сложности кодирования блочного кода LDPC. 4 н. и 7 з.п. ф-лы, 17 ил.

Description

Уровень техники изобретения
Область техники, к которой относится изобретение
Настоящее изобретение относится к устройству и способу кодирования и декодирования блочных кодов LDPC (разреженного контроля четности).
Описание предшествующего уровня техники
В связи наиболее существенной проблемой является эффективная и надежная передача данных по каналу. Мобильная мультимедийная система связи следующего поколения, которая исследуется в настоящее время, требует системы связи с высокой скоростью передачи, допускающей обработку и передачу различной информации, например, изображения или данных радиовещания, помимо предыдущей, ориентированной на голос услуги. Следовательно, необходимо повышать эффективность системы с помощью использования схемы кодирования канала, подходящей для системы.
Передача данных неизбежно страдает от ошибок из-за шума, помех и замирания в соответствии с условиями канала, таким образом вызывая потерю большого количества информации. Для того, чтобы уменьшить потерю информации, в настоящее время используются различные схемы контроля ошибок, которые основаны частично на характеристиках канала для улучшения тем самым надежности мобильной системы связи. Самая элементарная схема исправления ошибок использует коды исправления ошибок.
Фиг.1 - это схема, иллюстрирующая приемопередатчик в традиционной системе мобильной связи. Ссылаясь на фиг.1, в передатчике сообщение 'u' передачи кодируется посредством кодера 101 с помощью предопределенной схемы кодирования перед передачей по каналу. Закодированный символ 'c', кодируемый посредством кодера 101, модулируется посредством модулятора 103, используя предопределенную схему модуляции, и модулированный сигнал 's' передается приемнику по каналу 105.
В приемнике принятый сигнал 'r' является искаженным сигналом, в котором сигнал 's', переданный передатчиком, смешивается с несколькими шумами соответственно условиям канала. Принятый сигнал 'r' демодулируется посредством демодулятора 107 с помощью схемы демодуляции, соответствующей схеме модуляции, используемой в модуляторе 103 передатчика, и демодулированный сигнал 'x' декодируется посредством декодера 109 с помощью схемы декодирования, соответствующей схеме кодирования, используемой в кодере 101 передатчика. Сигнал, декодируемый посредством декодера 109, обозначается посредством û.
Соответственно, существует необходимость высокоэффективных кодера и декодера канала для возможности приемнику восстанавливать сигнал 'u', переданный посредством передатчика без ошибки. В частности, когда канал 105 является беспроводным каналом, ошибки, вызванные каналом, должны рассматриваться более серьезно. Декодер 109 приемника может оценивать сообщение передачи на основе данных, принятых по каналу 105.
В связи со стремительным развитием системы мобильной связи существует потребность в технологии, допускающей возможность передачи данных в беспроводной сети, имеющих большую емкость, приближающуюся к таковой в беспроводной сети. Так как существует потребность в быстродействующей высокопроизводительной системе связи, допускающей обработку и передачу мультимедийных данных, например, изображения и данных радиовещания помимо ориентированной на голос службы, то необходимо увеличивать эффективность передачи в системе с помощью использования подходящей схемы кодирования канала для улучшения производительности системы. Тем не менее, система мобильной связи неизбежно страдает от ошибок, которые обычно происходят из-за шума, помех и замирания соответственно условиям канала во время передачи данных. Как описано выше, возникновение ошибок вызывает потерю информационных данных.
Для того, чтобы уменьшить потерю информационных данных из-за возникновения ошибок, возможно улучшать надежность мобильной системы связи посредством использования методик контроля ошибок. Методика, использующая коды исправления ошибок, является наиболее распространенной используемой методикой контроля ошибок. В настоящий момент будет сделано описание турбокодов и кодов LDPC (разреженного контроля четности), которые являются обычными кодами исправления ошибок.
Хорошо известно, что турбокод превосходит в повышении производительности сверточный код, традиционно используемый для исправления ошибок во время высокоскоростной передачи данных. Турбокод является выгодным в том, что он может эффективно исправлять ошибку, вызванную шумами, сформированными в канале передачи, таким образом повышая надежность передачи данных.
Код LDPC может быть декодирован с использованием итеративного алгоритма декодирования на основе алгоритма суммы-произведения в графе множителей. Так как декодер использует для кода LDPC итеративный алгоритм декодирования, основанный на алгоритме суммы-произведения, то он менее сложен по отношению к декодеру для турбокода. Кроме того, декодер для кода LDPC легко реализовать с помощью декодера параллельной обработки, по сравнению с декодером для турбокода.
Теорема Шэннона о кодировании канала показывает, что надежная связь возможна только при скорости передачи данных, не превышающей пропускную способность канала связи. Тем не менее, теорема Шэннона о кодировании канала не предложила подробного способа кодирования и декодирования для канала для поддержания скорости передачи данных до предела пропускной способности канала связи. Хотя случайный код, имеющий очень большой размер блока, показывает производительность, приближающуюся к пределу пропускной способности канала связи по теореме Шэннона о кодировании канала, фактически невозможно реализовать способ декодирования с максимумом апостериорной вероятности (MAP) или максимально правдоподобный (ML) из-за его сложной вычислительной нагрузки.
Турбокод был предложен Берроу, Главо и Титимаджшима в 1993 г. и имеет более высокую производительность, приближающуюся к пределу пропускной способности канала связи согласно теореме Шэннона о кодировании канала. Предложение турбокода инициировало активное исследование по итеративному декодированию и графическому представлению кодов, и коды LDPC, предложенные Галлагером в 1962 г., вновь находятся в центре внимания исследований. Циклы существуют в графе множителей турбокода и кода LDPC, и хорошо известно, что итеративное декодирование в графе множителей кода LDPC, где существуют циклы, является условно оптимальным. Также экспериментально доказано, что код LDPC имеет прекрасную производительность по итеративному декодированию. Известно, что код LDPC имеет самую высокую производительность, которую когда-либо показывает производительность, имеющая разность лишь около 0,04 [дБ] при пределе пропускной способности канала связи по теореме Шэннона о кодировании канала при частоте появления ошибочных битов (BER) 10-5, используя размер блока 107. Кроме того, хотя код LDPC, определенный в поле Галуа (GF) c q>2, т.е. GF(q), увеличивает сложность в своем декодировании, он является превосходящим по своей производительности двоичный код. Тем не менее, не предусмотрено удовлетворительное теоретическое описание успешного декодирования посредством итеративного алгоритма декодирования для кода LDPC, определенного в GF(q).
Код LDPC, предложенный Галлагером, определяется посредством матрицы контроля четности, в которой основные элементы имеют значение 0 и второстепенные элементы, т.е. элементы, не имеющие значение 0, имеют значение 1. Например, код LDPC (N, j, k) является линейным блочным кодом, имеющим длину блока N, и определяется матрицей разреженного контроля четности, в которой каждый столбец имеет j элементов, имеющих значение 1, каждый ряд имеет k элементов, имеющих значение 1, и все элементы за исключением элементов, имеющих значение 1, имеют значение 0.
Код LDPC, в котором вес каждого столбца в матрице контроля четности фиксируется на 'j' и вес каждой строки в матрице контроля четности фиксируется на 'k', как изложено выше, называется "регулярным кодом LDPC". В этом документе "вес" относится к количеству элементов, имеющих ненулевое значение среди элементов, включенных в порождающую матрицу и матрицу контроля четности. В отличие от обычного кода LDPC, код LDPC, в котором вес каждого столбца в матрице контроля четности и вес каждой строки в матрице контроля четности не являются зафиксированными, называется "нерегулярным кодом LDPC". Общеизвестно, что нерегулярный код LDPC является более высоким по производительности по отношению к регулярному коду LDPC. Тем не менее, в случае нерегулярного кода LDPC, так как вес каждого столбца и вес каждой строки в матрице контроля четности не зафиксированы, т.е. нерегулярны, то вес каждого столбца в матрице контроля четности и вес каждой строки в матрице контроля четности должны быть должным образом установлены для того, чтобы гарантировать отличную производительность.
Фиг.2 - это схема, иллюстрирующая матрицу контроля четности общего кода LDPC (8, 2, 4). Ссылаясь на фиг.2, матрица H контроля четности кода LDPC (8, 2, 4) имеет 8 столбцов и 4 строки, в которой вес каждого столбца зафиксирован на 2 и вес каждой строки зафиксирован на 4. Так как вес каждого столбца и вес каждой строки в матрице контроля четности являются регулярными, код LDPC (8, 2, 4), проиллюстрированный на фиг.2, становится регулярным кодом LDPC.
Фиг.3 является схемой, иллюстрирующей граф множителей кода LDPC (8, 2, 4) на фиг.2. Ссылаясь на фиг.3, граф множителей кода LDPC (8, 2, 4) включает в себя 8 переменных узлов x1 300, x2 302, x3 304, x4 306, x5 308, x6 310, x7 312 и x8 314 и 4 контрольных узла 316, 318, 320 и 322. Когда элемент, имеющий значение 1, т.е. ненулевое значение существует в точке, где i-тая строка и j-тый столбец матрицы контроля четности кода LDPC (8, 2, 4) пересекаются друг с другом, создается ветвь между переменным узлом xi и контрольным j-тым узлом.
Так как матрица контроля четности кода LDPC имеет очень небольшой вес, то возможно выполнять декодирование посредством итеративного декодирования, даже в блочном коде, имеющем относительно большой размер, который показывает производительность, приближающуюся к пределу пропускной способности канала связи по теореме Шэннона о кодировании канала, например, турбокода, в то время, как размер блока блочного кода постоянно увеличивается. Мак Кей и Нил доказали, что итеративный процесс декодирования кода LDPC, используя схему диаграммы потока, приближается к итеративному процессу декодирования турбокода по производительности.
Для того, чтобы сформировать высокопроизводительный код LDPC, должны выполняться следующие условия.
(1) Циклы в графе множителей кода LDPC должны быть приняты во внимание.
Термин "цикл" относится к петле, образованной гранями, соединяющими переменные узлы с контрольными узлами в графе множителей кода LDPC, и длина цикла определяется как число граней, составляющих петлю. Цикл петли означает, что число граней, соединяющих переменные узлы с контрольными узлами, составляющих петлю в графе множителей кода LDPC, является большим. В противоположность этому, короткий цикл означает, что число граней, соединяющих переменные узлы с контрольными узлами, составляющих петлю в графе множителей кода LDPC, является небольшим.
Как только циклы в графе множителей кода LDPC становятся длиннее, относительный уровень производительности кода LDPC возрастает. Т.е. когда длинные циклы формируются в графе множителей кода LDPC, становится возможным предотвращать ухудшение производительности, например, минимальный уровень ошибки, происходящей, когда слишком много циклов с небольшой длиной существуют в графе множителей кода LDPC.
(2) Эффективное кодирование кода LDPC должно быть принято во внимание
Код LDPC сложно подвергнуть кодированию в реальном масштабе времени, по сравнению со сверточным кодом или турбокодом из-за высокой сложности его кодирования. Для того, чтобы уменьшить сложность кодирования кода LDPC, предложен код RA (повторного накопления). Тем не менее, код RA также имеет предел в уменьшении сложности кодирования кода LDPC. Следовательно, эффективное кодирование кода LDPC должно быть принято во внимание.
(3) Распределение степеней в графе множителей кода LDPC должно быть принято во внимание.
В целом нерегулярный код LDPC превосходит в производительности регулярный код LDPC, так как граф множителей нерегулярного кода LDPC имеет различные степени. Термин "степень" относится к числу граней, соединенных с переменными узлами и контрольными узлами в графе множителей кода LDPC. Дополнительно, фраза "распределение степеней" в графе множителей кода LDPC относится к соотношению числа узлов, имеющих конкретную степень к общему числу узлов. Кроме того, Ричардсоном доказано, что код LDPC, имеющий конкретное распределение степеней, является превосходящим по производительности.
Фиг.4 - это схема, иллюстрирующая матрицу контроля четности для общего блочного кода LDPC. Тем не менее, до того, как будет дано описание фиг.4, следует заметить, что блочный код LDPC является новым кодом LDPC, что эффективное кодирование и эффективное хранение и повышение производительности матрицы контроля четности были приняты во внимание и блочный код LDPC является кодом LPDC, расширенным посредством обобщения структуры регулярного кода LDPC.
Ссылаясь на фиг.4, матрица контроля четности блочного кода LDPC разделена на множество частных блоков, и матрица перестановок сопоставлена с каждым из частных блоков. На фиг.4 'P' представляет матрицу перестановок, имеющую размер NsxNs и верхний индекс (или показатель степени)apq матрицы P перестановок является либо 0pqs-l, либо apq=. Кроме того, 'p' указывает, что соответствующая матрица перестановок располагается в p-той строке частных блоков матрицы контроля четности, и 'q' указывает, что соответствующая матрица перестановок располагается в q-том столбце частных блоков матрицы контроля четности. То есть
Figure 00000001
представляет матрицу перестановок, расположенную в частном блоке, где p-тая строка и q-тый столбец матрицы контроля четности, содержащей множество частных блоков, пересекают друг друга. Более конкретно, 'p' и 'q' представляют собой число строк и число столбцов частных блоков, сопоставленных, соответственно, информационной части в матрице контроля четности.
Фиг.5 является схемой, иллюстрирующей матрицу P перестановок по фиг.4. Как проиллюстрировано на фиг.5, матрица перестановок P является квадратной матрицей, имеющей размер NsxNs и каждый из столбцов Ns, включенный в матрицу P перестановок, имеет вес 1 и каждая из строк Ns, включенная в матрицу P перестановок, также имеет вес 1. В этом документе, хотя размер матрицы P перестановок и выражен как NsxNs, он будет также выражаться и как Ns, так как матрица P перестановок является квадратной матрицей.
На фиг.4 матрица P перестановок с верхним индексом apq=0, т.е. матрица перестановок P° представляет собой единичную матрицу INsxNs и матрица P перестановок с верхним индексом apq=, т.е. матрица Р перестановок представляет собой нулевую матрицу. В данном документе INsxNs представляет собой единичную матрицу размером NsxNs.
В полной матрице контроля четности блочного кода LDPC, проиллюстрированного на фиг.4, так как общее количество строк - Nsxp и общее количество столбцов - Nsxq (для p), когда полная матрица контроля четности кода LDPC имеет полный ранг, скорость кода может быть выражена уравнением (1) независимо от размера частных блоков.
Figure 00000002
Если apq для всех p и q, то матрицы перестановок, соответствующие частным блокам, не являются нулевыми матрицами и частные блоки составляют регулярный код LDPC, в котором значение веса каждого столбца и значение веса каждой строки в каждой из матриц перестановок, соответствующих частным блокам, являются p и q соответственно. В данном документе каждая из матриц перестановок, соответствующих частным блокам, будет указываться как "частная матрица".
Так как зависимые строки (p-1) существуют в матрице контроля четности, скорость кодирования выше, чем скорость кодирования, вычисленная посредством уравнения (1). В блочном коде LDPC, если положение веса первой строки каждой из частных матриц, включенных в полную матрицу контроля четности, определено, то положения весов остающихся строк (Ns-1) может быть определено. Следовательно, требуемый размер памяти сводится к 1/NS, по сравнению с тем, когда веса нерегулярно выбираются для хранения информации во всей матрице контроля четности.
Как описано выше, термин "цикл" относится к петле, образованной гранями, соединяющими переменные узлы с контрольными узлами в графе множителей кода LDPC, и длина цикла определяется как число граней, составляющих петлю. Длинный цикл означает, что число граней, соединяющих переменные узлы с контрольными узлами, составляющих петлю в графе множителей кода LDPC, является большим. Когда циклы в графе множителей кода LDPC становятся длиннее, относительный уровень производительности кода LDPC возрастает. В противоположность, когда циклы в графе множителей кода LDPC становятся короче, возможность исправления ошибок кода LDPC возрастает, так как происходит ухудшение производительности, например, минимального уровня ошибки. То есть, когда существует много циклов небольшой длины в графе множителей кода LDPC, информация на конкретном узле, принадлежащая циклу небольшой длины, начиная от него, возвращается после небольшого числа итераций. Когда число итераций возрастает, информация возвращается к соответствующему узлу чаще, так, что информацию нельзя правильно обновить, тем самым ухудшая возможность исправления ошибок кода LDPC.
Фиг.6 является схемой, иллюстрирующей структуру цикла блочного кода LDPC, матрица контроля четности которого включает в себя 4 частных матрицы. Тем не менее, до того, как дано описание фиг. 6, следует заметить, что блочный код LDPC является новым кодом LDPC, что эффективное кодирование и эффективное хранение и повышение производительности матрицы контроля четности были приняты во внимание. Блочный код LDPC является также кодом LDPC, расширенным посредством обобщения структуры регулярного кода LDPC.
Матрица контроля четности блочного кода LDPC, проиллюстрированная на фиг.6, включает в себя 4 частных блока. Диагональная линия представляет собой положение, где располагаются элементы, имеющие значение 1 и части, отличные от частей на диагонали, представляют собой положения, в которых расположены элементы, имеющие значение 0. Кроме того, 'P' представляет собой ту же самую матрицу перестановок, что и матрица перестановок, описанная в связи с фиг.5.
Для того, чтобы проанализировать структуру цикла блочного кода LDPC, проиллюстрированного на фиг.6, элемент, имеющий значение 1, расположенный в i-той строке частной матрицы Pa, определяется как опорный элемент и элемент, имеющий значение 1, расположенный в i-той строке, будет указываться как "отметка-0". В данном документе "частная матрица" будет относится к матрице, соответствующей частному блоку. Отметка 0 расположена в (i+a)-том столбце частной матрицы Pa.
Элемент, имеющий значение 1 в частной матрице Pb, расположенный в той же строке, что и нулевая отметка, будет указываться как "отметка-1". По той же причине, что и отметка-0, отметка-1 располагается в (i+b)-том столбце частной матрицы Pb.
Элемент, имеющий значение 1 в частной матрице Pc, расположенный в том же столбце, что и отметка-1, будет указываться как "отметка-2". Так как частная матрица Pc является матрицей, полученной посредством сдвига соответствующих столбцов единичной матрицы I вправо относительно модуля Ns на c, отметка-2 располагается в (i+b-c)-той строке частной матрицы Pc.
Кроме того, элемент, имеющий значение 1 в частной матрице Pb, расположенный в той же строке, что и отметка-2, будет упоминаться как "отметка-3". Отметка-3 располагается в (i+b-c+d)-том столбце частной матрицы Pd.
Элемент, имеющий значение 1 в частной матрице Pa, расположенный в том же столбце, что и отметка-3, будет указываться как "отметка-4". Отметка-4 располагается в (i+b-c+d-a)-той строке частной матрицы Pa.
В структуре цикла кода LDPC, проиллюстрированного на фиг.6, если существует цикл длины 4, то отметка-0 и отметка-4 располагаются в том же самом положении. То есть отношение между отметкой-0 и отметкой-4 определяется посредством уравнения (2)
Figure 00000003
или
Figure 00000004
(2)
Уравнение (2) может быть перезаписано, как показано в уравнении (3).
Figure 00000005
(3)
Когда зависимость уравнения (3) выполняется, то формируется цикл диной 4. В общем, когда отметка-0 и отметка-4p сначала идентичны друг другу, то задана зависимость
Figure 00000006
и зависимость, показанная в уравнении (4), выполняется.
Figure 00000007
(4)
То есть, если положительное целое число, имеющее минимальное значение среди положительных целых чисел, удовлетворяющих уравнению (4) для заданных a, b, c и d, определяется как 'p', то цикл с длиной 4p становится циклом, имеющим минимальную длину в структуре цикла блочного кода LDPC, проиллюстрированного на фиг.6.
Соответственно, как описано выше, для (a-b+c-d)0, если выполняется gcd(Ns, a-b+c-d)=l, тогда p = Ns. Следовательно, цикл длиной 4NS становится циклом с минимальной длиной.
Ниже в данном документе будет использоваться методика Ричардсона-Урбанке, как методика кодирования для блочного кода LDPC. Так как методика Ричардсона-Урбанке используется как методика кодирования, то сложность кодирования может быть минимизирована, поскольку вид матрицы контроля четности становится аналогичным виду полной нижней треугольной матрицы.
Фиг.7 является схемой, иллюстрирующей матрицу контроля четности, имеющей форму, аналогичную той, которую имеет полная нижняя треугольная матрица. Тем не менее, матрица контроля четности, проиллюстрированная на фиг.7, имеет отличную четную часть, чем матрица контроля четности, имеющая форму полной нижней треугольной матрицы.
Ссылаясь на фиг.7, верхний индекс (или показатель степени) apq матрицы P перестановок части информации является либо 0pqs-1, либо apq=. Матрица P перестановок с верхним индексом apq=0, т.е. матрица перестановок P° информационной части представляет собой единичную матрицу INsxNs и матрица P перестановок с верхним индексом apq=, т.е. матрица Р перестановок представляет собой нулевую матрицу. Кроме того, 'p' представляет собой число строк частных блоков, сопоставленных информационной части в матрице контроля четности, и 'q' представляет собой число столбцов частных блоков, сопоставленных информационной части. К тому же, верхние индексы ap, x и y матриц P перестановок, сопоставленных четной части, представляют собой степени матрицы P перестановок. Тем не менее, для удобства различные верхние индексы ap, x и y используются для различия четной части от информационной части. То есть на фиг.7 c
Figure 00000008
по
Figure 00000009
являются также матрицами перестановок и верхние индексы с a1 по ap последовательно индексируются по отношению к частным матрицам, расположенным в диагональной части четной части.
Кроме того, Px и Py являются также матрицами перестановок и для удобства они индексируются по-разному, чтобы отличать четную часть от информационной части. Если размер блока блочного кода LDPC, имеющего матрицу контроля четности, изображенную на фиг.7, предполагается в размере N, то сложность кодирования блочного кода LDPC линейно возрастает относительно размера блока N(O(N)).
Самой большой проблемой кода LDPC, имеющего матрицу контроля четности по фиг.7, является то, что если размер частного блока определяется как Ns, то формируются Ns контрольных узлов, степень которых всегда 1 в графе множителей блочного кода LDPC. Контрольные узлы со степенью 1 не могут влиять на повышение производительности на основе итеративного декодирования. Следовательно, стандартный нерегулярный код LDPC, основанный на методике Ричардсона-Урбанке, не включает в себя контрольный узел со степенью 1.
Соответственно, матрица контроля четности по фиг.7 будет предполагаться в качестве основной матрицы контроля четности для того, чтобы рассчитать матрицу контроля четности так, что она делает возможным эффективное кодирование, в то же время не включая в себя контрольный узел со степенью 1.
В матрице контроля четности по фиг.7, включающей в себя частные матрицы, выбор частной матрицы является очень важным фактором для повышения производительности блочного кода LDPC, так, что поиск подходящего критерия выбора для частной матрицы также становится очень важным фактором.
Для того, чтобы облегчить способ расчета матрицы контроля четности блочного кода LDPC и способ кодирования блочного кода LDPC, предполагается, что матрица контроля четности, проиллюстрированная на фиг.7, составлена с помощью 6 частных матриц, как проиллюстрировано на фиг.8.
Фиг.8 является схемой, иллюстрирующей матрицу контроля четности по фиг.7, которая разделена на 6 частных блоков. Ссылаясь на фиг.8, матрица контроля четности блочного кода LDPC, проиллюстрированная на фиг.7, разделяется на информационную часть 's', первую четную часть p1 и вторую четную часть p2. Информационная часть 's' представляет часть матрицы контроля четности, сопоставленной с действительным информационным словом во время процесса кодирования блочного кода LDPC, подобно информационной части, описанной в связи с фиг.7, и для удобства информационная часть 's' представляется посредством различных символов ссылки. Первая четная часть p1 и вторая четная часть p2 представляют часть матрицы контроля четности, сопоставленной с фактической четностью во время процесса кодирования блочного кода LDPC, подобно четной части, описанной в связи с фиг.7, и четная часть разделяется на две части.
Частные матрицы A и C соответствуют частным блокам A (802) и C (804) информационной части 's', частные матрицы B и D соответствуют частным блокам B (806) и D (808) первой четной части p1, и частные матрицы T и E соответствуют частным блокам T (810) и E (812) второй четной части p2. Хотя матрица контроля четности разделяется на 7 частных блоков на фиг.8, следует заметить, что так как '0' не является отдельным частным блоком и частная матрица T, соответствующая частному боку T (810) имеет полную нижнюю треугольную форму, область, где располагаются нулевые матрицы на основе диагонального деления, представлена посредством '0'. Процесс упрощения способа кодирования, используя частные матрицы информационной части 's', первую четную часть p1 и вторую четную часть p2, будет описан позже со ссылкой на фиг.10.
Фиг.9 является схемой, иллюстрирующей транспонированную матрицу частной матрицы B, проиллюстрированной на фиг.8, частной матрицы E, частной матрицы T и обратной матрицы частной матрицы T в матрице контроля четности, проиллюстрированной на фиг.7. Ссылаясь на фиг.9, частная матрица BT представляет собой транспонированную матрицу частной матрицы B и частная матрица T-1 представляет обратную матрицу частной матрицы T. P(k1~k2) представляет
Figure 00000010
.
Матрицы перестановок, проиллюстрированные на фиг.9, например,
Figure 00000011
могут являться единичными матрицами. Как описано выше, если показатель степени матрицы перестановок, т.е. a1 является 0, то матрица
Figure 00000011
перестановок будет являться единичной матрицей. К тому же, если показатель степени матрицы перестановок, т.е. a1 увеличивается на заранее определенную величину, то матрица перестановок циклически сдвигается на заранее определенную величину, из условия, что матрица
Figure 00000011
будет являться единичной матрицей.
Фиг.10 - это блок-схема последовательности операций способа, иллюстрирующая алгоритм для формирования матрицы контроля четности общего блочного кода LDPC. Тем не менее, до того, как дается описание фиг.10, следует заметить, что для формирования блочного кода LDPC размер кодового слова и скорость кодирования блочного кода LDPC, которые необходимо сформировать, должны быть определены и размер матрицы контроля четности должен определяться согласно определенному размеру кодового слова и скорости кодирования. Если размер кодового слова блочного кода LDPC представляется посредством N и скорость кодирования представляется посредством R, то размер матрицы контроля четности обращается в N(1-R)xN.
Фактически алгоритм для формирования матрицы контроля четности блочного кода LDPC, проиллюстрированного на фиг.10, выполняется только один раз, так как матрица контроля четности первоначально формируется, подходящей для ситуации в системе связи, и после этого используется сформированная матрица контроля четности.
Ссылаясь на фиг.10 на этапе 1011, контроллер разделяет матрицу контроля четности с размером N(1-R)xN на сумму блоков pxq, включающих в себя p блоков по горизонтальной оси и q блоков по вертикальной оси. Так как каждый из блоков имеет размер NsxNs, то матрица контроля четности включает в себя Nsxp строк и Nsxq столбцов. На этапе 1013 контроллер классифицирует блоки pxq, разделенные матрицей контроля четности на информационную часть 's', первую четную часть p1 и вторую четную часть p2.
На этапе 1015 контроллер разделяет информационную часть 's' на ненулевые блоки или ненулевые матрицы и нулевые блоки или нулевые матрицы согласно распределению степеней для гарантирования достаточной производительности блочного кода LDPC. Так как распределение степеней для гарантирования достаточной производительности блочного кода LDPC описано выше, то подробное описание этого будет здесь пропущено.
На этапе 1017 контроллер определяет матрицы
Figure 00000012
перестановок из условия, что минимальная длина блочного цикла должна быть максимизирована, как описано выше в частях ненулевой матрицы в блоках, имеющих низкую степень среди блоков, определенных согласно распределению степеней для гарантирования достаточной производительности блочного кода LDPC. Матрицы
Figure 00000013
перестановок должны определяться, принимая во внимание блочные циклы информационной части 's', первую четную часть p1 и вторую четную часть p2.
На этапе 1019 контроллер случайно определяет матрицы
Figure 00000013
перестановок в частях ненулевой матрицы в блоках, имеющих высокую степень среди блоков, определенных согласно распределению степеней, для гарантирования хорошей производительности блочного кода LDPC и затем заканчивает алгоритм. Даже когда матрицы
Figure 00000013
перестановок определяются для использования в частях ненулевой матрицы в блоках, имеющих высокую степень, матрицы
Figure 00000013
перестановок должны определяться из условия, что минимальная длина блочного цикла максимизируется. Матрицы
Figure 00000013
перестановок определяются, принимая во внимание блочные циклы информационной части 's', первую четную часть p1 и вторую четную часть p2. Пример матриц
Figure 00000013
перестановок, расположенных в информационной части 's' матрицы контроля четности, проиллюстрирован на фиг.9.
На этапе 1021 контроллер разделяет первую часть p1 и вторую четную часть p2 на 4 частных матрицы B, T, D и E. На этапе 1023 контроллер вводит ненулевые матрицы Py и
Figure 00000014
перестановок в 2 частных блока среди частных блоков, включенных в частную матрицу B. Структура для ввода ненулевых матриц Py и
Figure 00000015
перестановок в 2 частных блока среди частных блоков, составляющих частную матрицу B, описана выше со ссылкой на фиг.9.
На этапе 1025 контроллер вводит единичные матрицы I в диагональные частные блоки частной матрицы T и вводит конкретные матрицы перестановок
Figure 00000016
,
Figure 00000017
,...,
Figure 00000018
в частные блоки (i, i+1)th под диагональные элементы частной матрицы T. Структура для ввода единичных матриц I в диагональные частные блоки частной матрицы T и ввода конкретных матриц перестановок
Figure 00000016
,
Figure 00000017
,...,
Figure 00000019
в частные (i, i+1)-тые блоки под диагональные элементы частной матрицы T описана выше со ссылкой на фиг.9.
На этапе 1027 контроллер вводит матрицу Px перестановок в частную матрицу D. На этапе 1029 контроллер вводит матрицу
Figure 00000020
перестановок только в последний частный блок в частной матрице E и затем заканчивает алгоритм. Структура для ввода 2 матриц
Figure 00000021
перестановок только в последний частный блок среди частных блоков, составляющих частную матрицу E, описана выше со ссылкой на фиг.9.
Как описано выше, известно, что код LDPC вместе с турбокодом обладает серьезным увеличением производительности во время передачи данных на высокой скорости и эффективно исправляет ошибки, вызванные шумами, сформированными в канале передачи, посредством этого увеличивая надежность передачи данных. Тем не менее, код LDPC является невыгодным в терминах скорости кодирования. То есть, так как код LDPC имеет относительно высокую скорость кодирования, то он имеет ограничение в терминах скорости кодирования. Среди кодов LDPC, доступных в настоящее время, основные коды LDPC имеют скорость кодирования 1/2 и только неосновные коды LDPC имеют скорость кодирования 1/3. Ограничение в скорости кодирования оказывает неизбежное влияние на высокоскоростную высокопроизводительную передачу данных.
Хотя распределение степеней, представляющих оптимальные характеристики, может быть вычислено, используя схему эволюции плотности, чтобы реализовать относительно низкую скорость кодирования для кода LDPC, является сложным реализовать код LDPC, имеющий распределение степеней, показывающих оптимальные характеристики из-за различных ограничений, таких как, структура цикла в графе множителей и аппаратная реализация.
Сущность изобретения
Целью настоящего изобретения, следовательно, является предоставление устройства и способа для кодирования и декодирования блочных кодов LDPC (разреженного контроля четности).
Другим аспектом настоящего изобретения является предоставление устройства и способа для кодирования и декодирования блочных кодов LDPC с минимизированной сложностью кодирования в системе мобильной связи.
В соответствии с одним аспектом настоящего изобретения предусматривается способ для кодирования блочного кода LDPC. Способ содержит этапы приема вектора информационного слова и кодирование вектора информационного слова в блочный код LDPC в соответствии с предопределенной порождающей матрицей.
В соответствии с другим аспектом настоящего изобретения предусматривается устройство для кодирования блочного кода LDPC. Устройство содержит кодер для кодирования вектора информационного слова в блочном коде LDPC в соответствии с предопределенной порождающей матрицей; модулятор для модулирования блочного кода LDPC в символе модуляции, используя предопределенную схему модуляции; и передатчик для передачи символа модуляции.
В соответствии с другим дополнительным аспектом настоящего изобретения предусматривается способ декодирования блочного кода LDPC. Способ содержит этапы: прием сигнала; декодирование принятого сигнала, используя матрицу контроля четности, предопределенную в соответствии с длиной блочного кода LDPC, который необходимо декодировать; и обнаружение блочного кода LDPC из декодированного принятого сигнала.
В соответствии с еще одним аспектом настоящего изобретения предусматривается устройство для декодирования блочного кода LDPC. Устройство содержит приемник для приема сигнала; и декодер для декодирования принятого сигнала, используя матрицу контроля четности, предопределенную в соответствии с длиной блочного кода LDPC, который необходимо декодировать; и обнаружение блочного кода LDPC из декодированного принятого сигнала.
Краткое описание чертежей
Вышеуказанная и другие цели, признаки и преимущества настоящего изобретения станут более понятными из последующего подробного описания, рассматриваемого вместе с прилагаемыми чертежами, из которых:
Фиг.1 - это схема, иллюстрирующая приемопередатчик в традиционной системе мобильной связи;
Фиг.2 - это схема, иллюстрирующая матрицу контроля четности для стандартного кода LDPC (8, 2, 4);
Фиг.3 является схемой, иллюстрирующей граф множителей кода LDPC (8, 2, 4), проиллюстрированного на фиг.2;
Фиг.4 - это схема, иллюстрирующая матрицу контроля четности стандартного блочного кода LDPC;
Фиг.5 является схемой, иллюстрирующей матрицу P перестановок, проиллюстрированной на фиг.4;
Фиг.6 является схемой, иллюстрирующей структуру цикла блочного кода LDPC, матрица контроля четности которого включает в себя 4 частных матрицы;
Фиг.7 является схемой, иллюстрирующей матрицу контроля четности, имеющей форму, аналогичную той, которую имеет полная нижняя треугольная матрица;
Фиг.8 является схемой, иллюстрирующей матрицу контроля четности на фиг.7, которая разделена на 6 частных блоков;
Фиг.9 является схемой, иллюстрирующей транспонированную матрицу частной матрицы B, проиллюстрированной на фиг.8, частной матрицы E, частной матрицы T и обратной матрицы частной матрицы T;
Фиг.10 - это блок-схема последовательности операций способа, иллюстрирующая алгоритм формирования матрицы контроля четности стандартного блочного кода LDPC;
Фиг.11 является схемой, иллюстрирующей транспонированную матрицу BT частной матрицы B, частную матрицу D и частную матрицу T среди 6 частных матриц, отделенных от матрицы контроля четности нерегулярного блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения;
Фиг.12 является схемой, иллюстрирующей матрицу F, используемую для формирования матрицы H' в соответствии с вариантом осуществления настоящего изобретения;
Фиг.13 является схемой, иллюстрирующей матрицу контроля четности нерегулярного блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения;
Фиг.14 является схемой, иллюстрирующей порождающую матрицу нерегулярного блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения;
Фиг.15 является схемой, иллюстрирующей процесс кодирования нерегулярного блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения;
Фиг.16 является схемой, иллюстрирующей внутреннюю структуру устройства кодирования нерегулярного блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения; и
Фиг.17 является схемой, иллюстрирующей внутреннюю структуру устройства декодирования нерегулярного блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения.
Подробное описание предпочтительного варианта осуществления
Предпочтительные варианты осуществления настоящего изобретения далее подробно описаны в данном документе ниже со ссылкой на прилагаемые чертежи. В последующем описании подробное описание известных функций и конфигураций, включенных в материалы настоящей заявки, опущено для краткости.
Настоящее изобретение представляет устройство и способ кодирования и декодирования блочных кодов LDPC, обеспечивающих высокую производительность. То есть настоящее изобретение представляет устройство и способ кодирования и декодирования блочных кодов LDPC, в которых длина минимального цикла в графе множителей максимизируется, сложность кодирования минимизируется и распределение степеней в графе множителей имеет самое лучшее распределение степеней в единицу. Хотя в данном документе не проиллюстрировано отдельно, устройство для кодирования и декодирования блочных кодов LDPC в соответствии с настоящим изобретением может применяться к приемопередатчику, описанному со ссылкой на фиг.1.
Фиг.11 является схемой, иллюстрирующей транспонированную матрицу BT частной матрицы B, частную матрицу D и частную матрицу T из числа 6 частных матриц, отделенных от матрицы контроля четности блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения.
До того, как дается описание фиг.11, следует заметить, что матрица контроля четности имеет структуру частных блоков, описанную в разделе предыдущего уровня техники со ссылкой на фиг.8. То есть матрица контроля четности блочного кода LDPC разделяется на частные блоки для информационной части 's', первой четной части pl и второй четной части p2. Информационная часть 's' представляет часть матрицы контроля четности, сопоставленной с фактическим информационным словом во время процесса кодирования блочного кода LDPC. Первая четная часть p1 и вторая четная часть p2 представляют части матрицы контроля четности, сопоставленные с фактической четностью во время процесса кодирования блочного кода LDPC.
Как проиллюстрировано на фиг.8, информационная часть 's' разделяется на частный блок A и частный блок C, первая четная часть p1 разделятся на частный блок B и частный блок D, вторая четная часть p2 разделяется на частный блок T и частный блок E. Частные матрицы A и C соответствуют частным блокам A и C, частные матрицы B и D соответствуют частным блокам B и D, частные матрицы T и E соответствуют частным блокам T и E.
Ссылаясь на фиг.11, частная матрица B включает в себя две единичные матрицы
Figure 00000015
перестановок и нулевые матрицы. Матрица P перестановок является квадратной матрицей с размером NsxNs, в которой вес каждой строки Ns равен 1 и вес каждого столбца равен также 1. Хотя размер матрицы P перестановок выражается как NsxNs, размер матрицы P перестановок, которая является квадратной матрицей, будет выражаться как Ns для удобства.
В вышеприведенном описании, данном со ссылкой на фиг.9, частная матрица B включает в себя матрицы
Figure 00000015
и Px перестановок и нулевые матрицы. В случае стандартного блочного кода LDPC, чтобы удовлетворять равенству ET-1B + D = I, матрицы
Figure 00000015
и Px перестановок, отличные от нулевых матриц частной матрицы B, должны быть зафиксированы в положении, как проиллюстрировано на фиг.9, и матрицы
Figure 00000015
и Px перестановок являются отличными друг от друга. Тем не менее, в настоящем изобретении две матрицы
Figure 00000015
перестановок, отличные от нулевых матриц частной матрицы B, не должны быть зафиксированы в положении, и две матрицы перестановок
Figure 00000015
обладают переменным положением и равны друг другу. Частная матрица T имеет единичные матрицы I в двухдиагональной структуре и нулевые матрицы. Частная матрица D включает в себя частную матрицу Px.
На фиг.11 верхние индексы ai и x матрицы P перестановок представляют степени матрицы P перестановок.
Хотя две матрицы
Figure 00000015
перестановок сопоставляются с транспонированной матрицей BT частной матрицы B и матрица Px перестановок сопоставляется с частной матрицей D на фиг.11 в качестве примера, тот же самый результат может быть достигнут, если матрицы
Figure 00000015
перестановок сопоставляются только с двумя матрицами перестановок среди всего трех матриц перестановок, будучи сопоставленными с транспонированной матрицей BT частной матрицы B и частной матрицей D. То есть, хотя матрица
Figure 00000015
перестановок сопоставляется с любой из двух матриц перестановок, существующих в транспонированной матрице BT частной матрицы B, и матрица
Figure 00000015
перестановок сопоставляется с матрицей перестановок, существующей в частной матрице D, то может быть достигнут тот же самый результат.
Альтернативно, тот же самый эффект может быть достигнут, даже если матрицы
Figure 00000015
перестановок сопоставляются с двумя из двух матриц перестановок, существующих в транспонированной матрице BT частной матрицы B и матрице перестановок, существующей в частной матрице D.
Кроме того, на фиг.11 матрица
Figure 00000015
перестановок может быть единичной матрицей, так как если степень матрицы перестановок равна a1=0, то матрица
Figure 00000015
перестановок становится единичной матрицей, как описано выше. К тому же, показатель a1 матрицы перестановок увеличивается на предопределенную величину, матрица перестановок циклически сдвигается на предопределенную величину, так, что матрица
Figure 00000015
перестановок будет являться единичной матрицей.
В случае стандартного блочного кода LDPC нетронутая матрица контроля четности, используемая в декодере, используется как порождающая матрица для кодера. Тем не менее, в случае блочного кода LDPC, предложенного в настоящем изобретении, матрица контроля четности, используемая в декодере, модифицируется до использования ее в качестве порождающей матрицы для кодера, таким образом минимизируя сложность кодирования блочного кода LDPC.
Матрица контроля четности, представленная посредством H, может выражаться, как показано в уравнении (5).
Figure 00000022
(5)
В уравнении (5) H1 обозначает матрицу, сопоставленную с информационным словом, т.е. матрицу, сопоставленную с информационной частью 's' в матрице H контроля четности, и H2 обозначает матрицу, сопоставленную с четностью, т.е. матрицу, сопоставленную с первой четной частью p1 и второй четной частью p2 в матрице H контроля четности. То есть H1 представляет матрицу, включающую в себя частную матрицу A и частную матрицу C, и H2 представляет матрицу, включающую частную матрицу B, частную матрицу T, частную матрицу D и частную матрицу E. Тем не менее, так как схема кодирования, предложенная в настоящем изобретении, не основывается на методике Ричардсона-Урбанке, то предложенная схема кодирования не требует разделения матрицы контроля четности блочного кода LDPC на шесть частных матриц, как в методике Ричардсона-Урбанке. Вместо этого предложенная схема разделяет матрицу контроля четности на матрицу H1, сопоставленную с информационной частью, и матрицы H21 и H22, сопоставленные с первой четной частью и второй четной частью.
Порождающая матрица, предусмотренная модификацией матрицы H контроля четности, используемой в кодере, представляется посредством H', и порождающая матрица H' может выражаться уравнением (6), используя новую матрицу F.
Figure 00000023
(6)
В уравнении (6) F обозначает матрицу с размером (N-K)x(N-K), N обозначает размер блока или длину кодового слова кода и K обозначает длину информационного слова. Матрица F проиллюстрирована на фиг.12 и будет описана позже. Аналогично матрице H контроля четности, описанной со ссылкой на уравнение (5), порождающая матрица H' делится на H1', сопоставленную с информационным словом, и H2', сопоставленную с четностью, и H2' делится на H21', сопоставленную с первой четностью, и H22', сопоставленную со второй четностью.
В порождающей матрице H', показанной в уравнении (6), степени всех ненулевых матриц перестановок, соответствующие последнему увеличению блока на am посредством действия по модулю Ns, H22', сопоставленная со второй четностью, имеет единичные матрицы в двухдиагональной структуре на каждый блок, и все остающиеся матрицы, за исключением единичных матриц, включают в себя нулевые матрицы.
Сейчас будет сделано описание процесса кодирования блочного кода LDPC, используя порождающую матрицу H'.
Вектор c кодового слова блочного кода LDPC может разделяться на вектор s информационного слова, первый вектор
Figure 00000024
четности и второй вектор
Figure 00000025
четности. Как описано выше, первый вектор
Figure 00000026
четности сопоставляется с частными блоками B и D и второй вектор
Figure 00000027
четности сопоставляется с частными блоками T и E.
Кодирование первого вектора
Figure 00000026
четности достигается применением уравнения (7) и уравнения (8), приведенными ниже. Так как Hc T = H'c T = 0, то зависимость уравнения (7) выполняется
Figure 00000028
(7)
В уравнении (7)
Figure 00000029
обозначает матрицу NsxK, предусмотренную суммированием строк блоков по всем строкам в каждом блоке в H'. Когда вычисление матрицы, основанное на суммировании по каждому блоку, применяется к матрице контроля четности, описанной со ссылкой на фиг.4, результирующая матрица становится матрицей NsxqN, и каждая матрица NsxNs становится матрицей, заданной суммированием всех матриц перестановок, соответствующих каждому столбцу блока. Например, первая матрица NsxNs имеет значение
Figure 00000030
на фиг.4.
Аналогично
Figure 00000029
,
Figure 00000031
обозначает матрицу NsxNs, обеспеченную суммированием всех строк каждого блока в H21'. Подобным образом
Figure 00000032
обозначает матрицу Nsx(N-K-Ns), обеспеченную суммированием всех строк каждого блока в H22'.
Выражение "суммирование строк в матрице в каждом блоке" относится к суммированию строк в частных блоках, включенных в соответствующую матрицу таким способом, что 1-тые строки в частных блоках складываются исключительно друг с другом. Что касается расчета
Figure 00000032
в уравнении (7), так как H22' имеет двухдиагональную структуру аналогично частной матрице T, проиллюстрированной на фиг.11, матрица, полученная суммированием строк каждого блока, становится нулевой матрицей Nsx(N-K-Ns), в которой все элементы равны 0. Так как
Figure 00000032
становится нулевой матрицей Nsx(N-K-Ns), то элемент
Figure 00000033
удаляется из уравнения (7), следовательно, матрица H21' может выражаться в уравнении (8) в соответствии со свойством частной матрицы B, описанной со ссылкой на фиг.11
Figure 00000034
(8)
В уравнении (8)
Figure 00000035
является вектором, полученным циклическим сдвигом
Figure 00000036
на x, и
Figure 00000037
представляет транспонированный вектор первого вектора
Figure 00000038
четности.
Второй вектор p2 четности может быть легко вычислен обратной подстановкой, так как H22' имеет двухдиагональную структуру. Так как блочный код LDPC, отличный от кода RA, имеет блочную структуру, он может выполнять обратную подстановку в каждом блоке, увеличивая скорость вычисления второго вектора
Figure 00000039
четности.
Более конкретно, если предполагается, что код RA имеет вектор p=(p1, p2,..., pN-K) четности, то P2 может вычисляться после того, как определяется p1. Подобным образом p3 может вычисляться после того, как определяется p2. Следовательно, биты (N-K) четности могут вычисляться последовательно.
Тем не менее, в процессе кодирования блочного кода LDPC, как предложено в настоящем изобретении, так как частный блок, сопоставленный с четностью порождающей матрицы H', имеет двухдиагональную структуру, то p1 по pNs могут вычисляться одновременно, и следующие Ns бит могут быть вычислены одновременно, используя Ns бит с P1 по pNs, вычисленных на предыдущем этапе. Следовательно, процесс кодирования блочного кода LDPC, предложенный в настоящем изобретении, в Ns раз быстрее, чем процесс кодирования кода RA.
Фиг.13 является схемой, иллюстрирующей матрицу контроля четности блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения. Матрица контроля четности, проиллюстрированная на фиг.13, представляет матрицу контроля четности блочного кода LDPC со скоростью кодирования 1/2 и включает 12 x 24 блоков.
На фиг.13 цифры, записанные в блоках, представляют степени матриц перестановок, расположенных в соответствующих блоках, и 'I' представляет единичные матрицы, расположенные в соответствующих блоках. Величина степени матрицы перестановки для матрицы контроля четности блочного кода LDPC с размером блока Ns может быть вычислена выполнением действия по модулю Ns над каждым показателем степени матриц перестановок, расположенных в соответствующих блоках. Если показатель соответствующего блока выше, чем размер Ns соответствующего блока, то это означает, что нужно выполнить действие по модулю Ns.
В общем, показатель должен быть меньше, чем Ns. Тем не менее, когда та же самая матрица контроля четности в общем используется и для большого, и для малого размера блоков, то значение показателя, большее, чем Ns, включается в матрицу случайно. В этом случае многие матрицы контроля четности необходимы в соответствии со скоростью кодирования и размерами блоков, увеличивая требуемую емкость памяти. Если величина, достигнутая выполнением действия по модулю Ns над показателем степени матрицы перестановок, равна 0, то матрица перестановок, расположенная в соответствующем блоке, становится единичной матрицей.
Фиг.14 является схемой, иллюстрирующей порождающую матрицу блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения. Тем не менее, до того, как задано описание фиг.14, следует заметить, что порождающая матрица H' является матрицей, сформированной умножением матрицы H контроля четности на матрицу F, как описано выше. Матрица F будет описана со ссылкой на Фиг.12.
Фиг.12 является схемой, иллюстрирующей матрицу F, используемую для формирования матрицы H' в соответствии с вариантом осуществления настоящего изобретения. Ссылаясь на фиг.12, в матрице F единичные матрицы I располагаются вдоль линии диагонали и матрица
Figure 00000040
перестановок располагается в последнем элементе линии диагонали. Матрица
Figure 00000041
перестановок является матрицей перестановок, имеющей отрицательный показатель степени для матрицы
Figure 00000042
перестановок, расположенной в последней части матрицы E перестановок матрицы контроля четности. На фиг.12 предполагается, что am=1.
Ссылаясь на фиг.14, порождающая матрица H' формируется умножением матрицы H контроля четности на матрицу F, как описано выше. Тем не менее, так как матрица
Figure 00000041
перестановок, расположенная в последней части матрицы F, является P-1, как описано выше, то порождающая матрица H' сравнивается с матрицей H контроля четности, и только матрицы, расположенные в последней строке блока порождающей матрицы H', имеют значения степеней меньше на 1 по сравнению со степенями матрицы H перестановок.
Фиг.15 является блок-схемой операций способа, иллюстрирующей процесс кодирования блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения. Ссылаясь на фиг.15 на этапе 1511, контроллер принимает вектор s информационного слова для кодирования в блочный код LDPC. В данном документе предполагается, что вектор s информационного слова имеет размер, соответствующий скорости кодирования для кодирования в блочный код LDPC, и размер вектора s информационного слова равен k.
На этапе 1513 контроллер вычисляет первый вектор
Figure 00000043
четности, используя матрицу, сформированную суммированием всех строк в H1' порождающей матрицы H' в каждом блоке, и транспонированный вектор принятого вектора s информационного слова. Матрица, сформированная суммированием всех строк в H1' порождающей матрицы H' имеет размер NsxK, и первый вектор
Figure 00000043
четности вычисляется, используя уравнение (8).
На этапе 1515, контроллер вычисляет второй вектор
Figure 00000044
четности обратной подстановкой, используя вектор s информационного слова и первый вектор
Figure 00000043
четности. На этапе 1517 контроллер формирует вектор c кодового слова, используя вектор s информационного слова, первый вектор
Figure 00000043
четности и второй вектор
Figure 00000044
четности, и передает сформированный вектор c кодового слова.
Фиг.16 является блок-схемой, иллюстрирующей внутреннюю структуру устройства кодирования блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения. Ссылаясь на фиг.16, устройство для кодирования блочного кода LDPC включает в себя умножитель 1611 матрицы, запоминающее устройство 1613, циклическое сдвигающее устройство 1615, процессор 1617 обратной подстановки и переключатели 1619, 1621 и 1623.
Входной сигнал, т.е. вектор s информационного слова длиной k, который необходимо кодировать в блочный код LDPC, используется переключателем 1619, матричным умножителем 1611 и процессором 1617 обратной подстановки. Матричный умножитель 1611 умножает вектор s информационного слова на матрицу NsxK, сформированную суммированием всех строк в H1' порождающей матрицы H', сохраненных в запоминающем устройстве 1613 на каждый блок, и выводит результат на циклическое сдвигающее устройство 1615. Вывод сигнала от матричного умножителя 1611 является вектором
Figure 00000045
, полученным циклическим сдвигом транспонированного вектора
Figure 00000036
первого вектора
Figure 00000038
четности на x.
Циклическое сдвигающее устройство 1615 вычисляет транспонированный вектор
Figure 00000036
первого вектора
Figure 00000038
четности обратным циклическим сдвигом сигнала, выводимого от матричного умножителя 1611 на x, вычисляет первый вектор
Figure 00000038
четности, используя транспонированный вектор
Figure 00000036
первого вектора
Figure 00000038
четности, и выводит результат на процессор 1617 обратной подстановки и переключатель 1621. Процессор 1617 обратной подстановки вычисляет второй вектор
Figure 00000039
четности обратной заменой, используя вектор s информационного слова и первый вектор
Figure 00000038
четности, выведенный из циклического сдвигающего устройства 1615, и выводит результат на переключатель 1623.
Каждый из переключателей 1619, 1621 и 1623 включается только в свой интервал времени передачи, чтобы передать свой ассоциативно связанный сигнал. То есть переключатель 1619 включается во время передачи вектора s информационного слова, переключатель 1621 включается во время передачи первого вектора P 1 четной части и переключатель 1623 включается во время передачи второго вектора P 2 четной части.
Все коды серии LDPC могут декодироваться в графе множителей, используя алгоритм частного произведения (sub-product). Схема декодирования кода LDPC может быть примерно разделена на схему двунаправленной передачи и схему передачи потока. Когда операция декодирования выполняется, используя схему двунаправленной передачи, каждый контрольный узел имеет узловой процессор, таким образом, увеличивая сложность декодирования пропорционально числу контрольных узлов. Тем не менее, так как все контрольные узлы одновременно обновляются, то скорость декодирования резко возрастает.
Отличная от этого, схема передачи потока имеет единственный узловой процессор и узловой процессор обновляет информацию, проходя через все узлы в графе множителей. Следовательно, схема передачи потока ниже по сложности декодирования, но увеличение в размере матрицы контроля четности, т.е. увеличение количества узлов вызывает снижение в скорости декодирования. Тем не менее, матрица контроля четности формируется на каждый блок аналогично блочному коду LDPC, предложенному в настоящем изобретении, затем количество узловых процессоров, равное количеству блоков, составляющих матрицу контроля четности, используется во время декодирования. В этом случае возможно реализовать декодер, который менее сложен в декодировании, чем схема двунаправленной передачи, и с более высокой скоростью декодирования, чем схема передачи потока.
Фиг.17 является блок-схемой, иллюстрирующей внутреннюю структуру устройства декодирования для блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения. Ссылаясь на фиг.17, устройство декодирования для блочного кода LDPC включает в себя контроллер 1710 блоков, переменную узловую часть 1700, сумматор 1715, обращенный перемежитель 1717, перемежитель 1719, контроллер 1721, запоминающее устройство 1723, сумматор 1725, контрольную узловую часть 1750 и блок 1729 жесткого выбора решения. Переменная узловая часть 1700 включает в себя переменный узловой декодер 1711 и переключатели 1713 и 1714, и контрольная узловая часть включает в себя контрольный узловой декодер 1727.
Сигнал, принятый по радиоканалу, является входным для контроллера 1710 блоков. Контроллер 1710 блоков определяет размер блоков принятого сигнала. Если существует часть информационного слова, прокалываемая в устройстве кодирования, соответствующем устройству декодирования, то контроллер 1710 блоков вставляет '0' в проколотую часть информационного слова, чтобы регулировать размер полного блока, и выводит результирующий сигнал на переменный узловой декодер 1711. Переменный узловой декодер 1711 вычисляет значения вероятности вывода сигнала контроллера 1710 блоков, обновляет вычисленные значения вероятности и выводит обновленные значения вероятности на переключатели 1713 и 1714. Переменный узловой декодер 1711 соединяет переменные узлы в соответствии с матрицей контроля четности, предварительно заданной в устройстве декодирования для блочного кода LDPC, и выполняет операцию обновления над столькими входными и выходными значениями, как и число единиц, соединенных с переменными узлами. Число единиц, соединенных с переменными узлами, равно весу каждого из столбцов, составляющих матрицу контроля четности. Внутреннее функционирование переменного узлового декодера 1711 отличается в соответствии с весом каждого из столбцов, составляющих матрицу контроля четности. За исключением ситуации, когда включен переключатель 1713, переключатель 1714 включается для вывода выходного сигнала переменного узлового декодера 1711 к сумматору 1715.
Сумматор 1715 принимает выход сигнала от переменного узлового декодера 1711 и выводит сигнал перемежителя 1719 в предыдущем итеративном процессе декодирования, вычитает выходной сигнал перемежителя 1719 в предыдущем итеративном процессе декодирования из выходного сигнала переменного узлового декодера 1711 и выводит итог вычитания на обращенный перемежитель 1717. Если процесс декодирования является первоначальным процессом декодирования, следует полагать, что выходной сигнал перемежителя 1719 равен 0.
Обращенный перемежитель 1717 устраняет перемежение выходного сигнала от сумматора 1715 согласно предопределенной схеме перемежения и выводит сигнал с устраненным перемежением на сумматор 1725 и контрольный узловой декодер 1727. Обращенный перемежитель 1717 имеет внутреннее устрйство, соответствующее матрице контроля четности, так как выходное значение для входного значения перемежителя 1719, соответствующего обращенному перемежителю 1717, является различным в соответствии с положением элементов, имеющих значение 1 в матрице контроля четности.
Сумматор 1725 принимает выходной сигнал контрольного узлового декодера 1711 в предыдущем итеративном процессе декодирования и выходной сигнал обращенного перемежителя 1717, вычитает выходной сигнал обращенного перемежителя 1717 из выходного сигнала контрольного узлового декодера 1727 в предыдущем процессе итеративного декодирования и выводит итог вычитания на перемежитель 1719. Контрольный узловой декодер 1727 соединяет контрольные узлы в соответствии с матрицей контроля четности, предварительно заданной в устройстве декодирования для блочного кода LDPC, и выполняет операцию обновления над столькими входными и выходными значениями, сколько число единиц, соединенных с контрольными узлами. Число единиц, соединенных с контрольными узлами, равно весу каждой строки, включенной в матрицу контроля четности. Следовательно, внутренняя работа контрольного узлового декодера 1727 отличается в соответствии с весом каждой строки, составляющей матрицу контроля четности.
Перемежитель 1719 под управлением контроллера 1721 перемежает выходной сигнал от сумматора 1725 в соответствии с предопределенной схемой перемежения и выводит перемеженный сигнал на сумматор 1715 и переменный узловой декодер 1711. Контроллер 1721 считывает информацию, относящуюся к перемежению, сохраненную в запоминающем устройстве 1723, и управляет схемой перемежения перемежителя 1719 согласно считываемой информации. Аналогично, если процесс декодирования является первоначальным процессом декодирования, то следует принять во внимание, что выходной сигнал обращенного перемежителя 1717 равен 0.
Итеративно выполняя вышеупомянутые процессы, устройство декодирования выполняет надежное безошибочное декодирование.
После того, как итеративное декодирование выполняется предопределенное число раз, переключатель 1714 выключает соединение между переменным узловым декодером 1711 и сумматором 1715, и переключатели 1713 включают соединение между переменным узловым декодером 1711 и блоком 1729 принятия жесткого решения, чтобы обеспечить выход сигнала от переменного узлового декодера 1711 на блок 1729 жесткого принятия решения. Блок 1729 выбора жесткого решения применяет жесткое решение над выходным сигналом из переменного узлового декодера 1711 и выводит итог жесткого решения, и выходная величина блока 1729 выбора жесткого решения становится окончательно декодированной величиной.
Как может быть принято во внимание из вышеуказанного описания, настоящее изобретение предлагает блочный код LDPC, минимальная длина цикла которого максимизируется в системе мобильной связи, таким образом максимизируя возможность исправления ошибок. Следовательно, устройство декодирования может правильно декодировать принятые данные, используя блочный код LDPC, обеспечивая надежное декодирование.
Кроме того, настоящее изобретение формирует эффективную порождающую матрицу, используя матрицу контроля четности, таким образом, минимизируя сложность кодирования блочного кода LDPC.
То есть настоящее изобретение предлагает обеспечить таким образом блочному коду LDPC высокую производительность путем использования итеративного декодирования в графе множителей.
Кроме того, настоящее изобретение создает матрицу контроля четности блочного кода LDPC, блок за блоком, таким образом делая возможным реализацию декодера с минимальной сложностью декодирования, усовершенствованной в плане скорости декодирования. В особенности, настоящее изобретение минимизирует сложность кодирования, используя простое перемножение матриц и поблочную обратную подстановку.
Несмотря на то, что настоящее изобретение показано и описано со ссылкой на его конкретные варианты осуществления, специалистам в данной области техники следует понимать, что различные изменения по форме и содержанию могут быть сделаны без отступления от духа и объема настоящего изобретения, как задано прилагаемой формулой изобретения.

Claims (11)

1. Способ кодирования/декодирования блочного кода разреженного контроля четности (LDPC), содержащий этапы, на которых принимают вектор информационного слова и кодируют вектор информационного слова в блочный код LDPC в соответствии с порождающей матрицей; причем порождающая матрица формируется модифицированием матрицы контроля четности, соответствующей длине, которую необходимо использовать, когда формируют вектор информационного слова в блочном коде LDPC;
причем блочный код LDPC включает в себя вектор информационного слова, первый вектор четности и второй вектор четности, и порождающая матрица включает в себя первую матрицу, сопоставленную с вектором информационного слова, вторую матрицу, сопоставленную с первым вектором четности, и третью матрицу, сопоставленную со вторым вектором четности; первая матрица формируется умножением четвертой матрицы, сопоставленной с вектором информационного слова матрицы контроля четности, соответствующей длине, которую необходимо использовать, когда формируют вектор информационного слова в блочном коде LDPC, на предопределенную пятую матрицу, вторая матрица формируется умножением шестой матрицы, сопоставленной с первым вектором четности матрицы контроля четности, на пятую матрицу, и третья матрица формируется умножением седьмой матрицы, сопоставленной со вторым вектором четности матрицы контроля четности, на пятую матрицу; причем этап кодирования вектора информационного слова в блочном коде LDPC в соответствии с предопределенной порождающей матрицей содержит этапы, на которых формируют первый вектор четности из условия, что вектор, сформированный умножением матрицы, сформированной суммированием всех строк четвертой матрицы в каждом блоке, на транспонированный вектор вектора информационного слова, становится вектором, сформированным циклическим сдвигом транспонированного вектора первого вектора четности на предопределенную величину; формируют второй вектор четности, используя обратную подстановку; и формируют блочный код LDPC соединением первого вектора четности и второго вектора четности в вектор информационного слова.
2. Способ по п.1, в котором матрица, сформированная суммированием всех строк четвертой матрицы в каждом блоке, формируется суммированием одних и тех же строк частных блоков, включенных в четвертую матрицу.
3. Способ по п.1, в котором первый вектор четности формируется, используя формулу
Figure 00000046

где s обозначает вектор информационного слова,
Figure 00000047
обозначает первый вектор четности, s T обозначает транспонированный вектор вектора информационного слова,
Figure 00000048
обозначает транспонированный вектор первого вектора четности, Рx обозначает матрицу, сформированную циклическим сдвигом матрицы перестановок с размером NsxNs на х, р1T' обозначает вектор, сформированный циклическим сдвигом
Figure 00000049
на х, и
Figure 00000050
обозначает действие суммирования всех строк соответствующей матрицы в каждом блоке, H1' обозначает матрицу, сопоставленную с вектором информационного слова, в которую включена порождающая матрица, х обозначает показатель степени матрицы перестановок.
4. Способ по п.3, в котором действие суммирования всех строк соответствующей матрицы в каждом блоке складывает те же самые строки частных блоков, включенные в соответствующую матрицу.
5. Способ по п.1, дополнительно содержащий этапы
декодирования принятого сигнала, используя матрицу контроля четности; и
выделения блочного кода LDPC из декодированного принятого сигнала,
причем этапы декодирования принятого сигнала, используя матрицу контроля четности, и выделения блочного кода LDPC из декодированного принятого сигнала содержат этапы, на которых определяют схему устранения перемежения и схему перемежения в соответствии с матрицей контроля четности; обнаруживают значения вероятности принятого сигнала; формируют выходной сигнал переменного узлового декодера посредством вычисления значения вероятности сигнала, выводимого из принятого сигнала и сигнала предыдущей обработки декодирования; формируют первый сигнал вычитанием сигнала, сформированного в предшествующем процессе декодирования, из значений вероятности выходного сигнала переменного узлового декодера; устраняют перемежение первого сигнала, используя упомянутую схему устранения перемежения; обнаруживают значения вероятности из сигнала с устраненным перемежением; формируют выходной сигнал контрольного узлового декодера из сигнала с устраненным перемежением; формируют второй сигнал вычитанием сигнала с устраненным перемежением из значений вероятности выходного сигнала контрольного узлового декодера; перемежают второй сигнал, используя схему перемежения; и определяют блочный код LDPC итеративным декодированием сигнала с перемежением.
6. Устройство для кодирования/декодирования блочного кода LDPC, содержащее кодер для кодирования вектора информационного слова в блочный код LDPC в соответствии с предопределенной порождающей матрицей и модулятор для модулирования блочного кода LDPC в символ модуляции, используя предопределенную схему модуляции; причем порождающая матрица формируется модифицированием матрицы контроля четности, соответствующей длине, которую необходимо использовать, когда формируют вектор информационного слова в блочном коде LDPC; причем блочный код LDPC включает в себя вектор информационного слова, первый вектор четности и второй вектор четности, и порождающая матрица включает в себя первую матрицу, сопоставленную с вектором информационного слова, вторую матрицу, сопоставленную с первым вектором четности, и третью матрицу, сопоставленную со вторым вектором четности; первая матрица формируется умножением четвертой матрицы, сопоставленной с вектором информационного слова матрицы контроля четности, соответствующей длине, которую необходимо использовать, когда формируют вектор информационного слова в блочном коде LDPC, на предопределенную пятую матрицу, вторая матрица формируется умножением шестой матрицы, сопоставленной с первым вектором четности матрицы контроля четности, на пятую матрицу, и третья матрица формируется умножением седьмой матрицы, сопоставленной со вторым вектором четности матрицы контроля четности, на пятую матрицу; и причем кодер содержит умножитель матрицы для умножения вектора информационного слова на матрицу, сформированную суммированием всех строк четвертой матрицы в каждом блоке; циклическое сдвигающее устройство для формирования первого вектора четности циклическим сдвигом выходного сигнала от умножителя матрицы на предопределенную величину; процессор обратной подстановки для формирования второго вектора четности посредством выполнения обратной подстановки по вектору информационного слова и выходному сигналу от циклического сдвигающего устройства и переключатели для формирования блочного кода LDPC посредством переключения вектора информационного слова, первого вектора четности и второго вектора четности.
7. Устройство по п.6, в котором кодер формирует первый вектор четности из условия, что вектор, сформированный умножением матрицы, сформированной суммированием всех строк четвертой матрицы в каждом блоке, на транспонированный вектор вектора информационного слова, становится вектором, сформированным циклическим сдвигом транспонированного вектора первого вектора четности на предопределенную величину, формирует второй вектор четности обратной подстановкой и формирует блочный код LDPC присоединением первого вектора четности и второго вектора четности к вектору информационного слова.
8. Устройство по п.7, в котором матрица, сформированная суммированием всех строк четвертой матрицы в каждом блоке, формируется суммированием тех же самых строк частных блоков, включенных в четвертую матрицу.
9. Устройство по п.7, в котором кодер формирует первый вектор четности, используя
Figure 00000051

где s обозначает вектор информационного слова,
Figure 00000052
обозначает первый вектор четности, s T обозначает транспонированный вектор вектора информационного слова,
Figure 00000053
обозначает транспонированный вектор первого вектора четности, Рх обозначает матрицу, сформированную циклическим сдвигом матрицы перестановок с размером NsxNs на х, р1T обозначает вектор, сформированный циклическим сдвигом
Figure 00000054
на х, и
Figure 00000055
обозначает действие суммирования всех строк соответствующей матрицы в каждом блоке.
10. Устройство по п.9, в котором действие суммирования всех строк соответствующей матрицы в каждом блоке складывает те же самые строки частных блоков, включенных в соответствующую матрицу.
11. Устройство по п.6, дополнительно содержащее декодер для декодирования принятого сигнала, используя матрицу контроля четности, и определения блочного кода LDPC из декодированного принятого сигнала, причем декодер содержит переменный узловой декодер для обнаружения значений вероятности принятого сигнала посредством соединения переменных узлов в соответствии с весом каждого столбца, включенного в матрицу контроля четности; первый сумматор для вычитания сигнала, сформированного в предыдущем процессе декодирования, из выходного сигнала от переменного узлового декодера; обращенный перемежитель для устранения перемежения выходного сигнала от первого сумматора, используя схему устранения перемежения, установленную в соответствии с матрицей контроля четности; контрольный узловой декодер для обнаружения значений вероятности выходного сигнала от обращенного перемежителя посредством соединения контрольных узлов в соответствии с весом каждой строки, включенной в матрицу контроля четности; второй сумматор для вычитания выходного сигнала от обращенного перемежителя из выходного сигнала от контрольного узлового декодера; перемежитель для перемежения выходного сигнала от второго сумматора, используя схему перемежения, заданную в соответствии с матрицей контроля четности, и вывода перемеженного сигнала на переменный узловой декодер и первый сумматор; и контроллер для управления схемой устранения перемежения и схемой перемежения в соответствии с матрицей контроля четности.
RU2007105100/09A 2004-08-10 2005-08-10 Устройство и способ кодирования и декодирования блочного кода разреженного контроля четности RU2348103C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2004-0062977 2004-08-10
KR20040062977 2004-08-10

Publications (2)

Publication Number Publication Date
RU2007105100A RU2007105100A (ru) 2008-08-20
RU2348103C2 true RU2348103C2 (ru) 2009-02-27

Family

ID=35431229

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2007105100/09A RU2348103C2 (ru) 2004-08-10 2005-08-10 Устройство и способ кодирования и декодирования блочного кода разреженного контроля четности

Country Status (10)

Country Link
US (1) US7600174B2 (ru)
EP (1) EP1626505B1 (ru)
JP (1) JP4545793B2 (ru)
KR (1) KR100713371B1 (ru)
CN (1) CN1993892B (ru)
AU (1) AU2005272268B2 (ru)
CA (1) CA2563642C (ru)
DE (1) DE602005026754D1 (ru)
RU (1) RU2348103C2 (ru)
WO (1) WO2006016769A1 (ru)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2716044C1 (ru) * 2016-07-20 2020-03-05 Хуавей Текнолоджиз Ко., Лтд. Способы и системы кодирования и декодирования ldpc кодов
RU2731883C1 (ru) * 2017-06-27 2020-09-08 Телефонактиеболагет Лм Эрикссон (Пабл) Коэффициенты ldpc-сдвига для нового стандарта радиосвязи
RU2739465C2 (ru) * 2016-11-03 2020-12-24 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство для кодирования и декодирования кодов с низкой плотностью проверок на четность
RU2731883C9 (ru) * 2017-06-27 2022-08-08 Телефонактиеболагет Лм Эрикссон (Пабл) Коэффициенты ldpc-сдвига для нового стандарта радиосвязи

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100641052B1 (ko) * 2004-12-08 2006-11-02 한국전자통신연구원 Ldpc 부호기 및 복호기, 및 ldpc 부호화 방법 및복호화 방법
US20070198905A1 (en) * 2006-02-03 2007-08-23 Nokia Corporation Transmitter for a communications network
KR100975558B1 (ko) * 2006-05-03 2010-08-13 삼성전자주식회사 통신 시스템에서 신호 송수신 장치 및 방법
KR100834650B1 (ko) * 2006-09-04 2008-06-02 삼성전자주식회사 통신 시스템에서 신호 송수신 장치 및 방법
EP2092651B1 (fr) 2006-11-13 2020-03-25 3G Licensing S.A. Codage et decodage d'un signal de donnees en fonction d'un code correcteur
US7913149B2 (en) * 2006-12-20 2011-03-22 Lsi Corporation Low complexity LDPC encoding algorithm
KR100975696B1 (ko) * 2007-04-05 2010-08-12 삼성전자주식회사 통신 시스템에서 부호화 장치 및 방법
US8473824B1 (en) * 2008-09-08 2013-06-25 Marvell International Ltd. Quasi-cyclic low-density parity-check (QC-LDPC) encoder
CN101488819B (zh) * 2008-01-15 2013-02-27 华为技术有限公司 一种低密度奇偶校验码编码调制方法及装置
JP5009418B2 (ja) * 2008-06-09 2012-08-22 パイオニア株式会社 検査行列の生成方法及び検査行列、並びに復号装置及び復号方法
KR101481431B1 (ko) * 2008-12-08 2015-01-12 삼성전자주식회사 저밀도 패리티 검사 행렬 재배열 방법 및 이를 이용하는 장치
JP5445829B2 (ja) * 2009-05-29 2014-03-19 ソニー株式会社 受信装置、受信方法、およびプログラム、並びに受信システム
JP5413701B2 (ja) * 2011-03-22 2014-02-12 日本電気株式会社 誤り訂正符号化装置、誤り訂正符号化方法および誤り訂正符号化プログラム
CN102315911B (zh) * 2011-09-29 2017-10-27 中兴通讯股份有限公司 一种低密度奇偶校验码编码方法及装置
EP2916461B1 (en) * 2012-11-05 2019-08-28 Mitsubishi Electric Corporation Encoding method for qc-ldpc codes
CN103580807B (zh) * 2013-11-05 2017-01-18 上海数字电视国家工程研究中心有限公司 针对特定度分布ldpc码字的bicm传输方法及系统
CN104363023B (zh) * 2014-10-11 2017-10-03 中国科学院国家授时中心 北斗高精度差分信息编码方法
CN111917518B (zh) * 2015-03-02 2023-04-14 三星电子株式会社 发送方法
US10367525B2 (en) * 2015-05-29 2019-07-30 National Instruments Corporation Incremental loop modification for LDPC encoding
TWI602188B (zh) * 2017-01-03 2017-10-11 慧榮科技股份有限公司 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
WO2018182371A1 (en) * 2017-03-30 2018-10-04 Samsung Electronics Co., Ltd. Apparatus and method for channel encoding/decoding in communication or broadcasting system
CN108809328B (zh) 2017-05-05 2024-05-17 华为技术有限公司 信息处理的方法、通信装置
EP4187794A1 (en) 2017-06-15 2023-05-31 Huawei Technologies Co., Ltd. Qc-ldpc codes for 3gpp 5g mobile radio
CN109327225B9 (zh) 2017-06-27 2021-12-10 华为技术有限公司 信息处理的方法、装置和通信设备
US10621035B2 (en) * 2017-10-18 2020-04-14 Intel Corporation Techniques for correcting data errors in memory devices
CN111313909A (zh) * 2018-12-12 2020-06-19 北京航空航天大学 Ldpc码译码方法和编码方法
CN112015325B (zh) * 2019-05-28 2024-03-26 阿里巴巴集团控股有限公司 一种生成解码矩阵的方法、解码方法和对应装置
US11405055B2 (en) * 2019-06-26 2022-08-02 Polaran Haberlesme Teknolojileri Anonim Sirketi Methods and apparatus for error correction coding with triangular factorization of generator matrix
CN111211793B (zh) * 2020-02-10 2023-08-04 成都烨软科技有限公司 一种基于汉明码并行tpc编码方法
CN112398488B (zh) * 2020-12-29 2021-04-30 支付宝(杭州)信息技术有限公司 向量压缩的方法和装置
CN116383848B (zh) * 2023-04-04 2023-11-28 北京航空航天大学 一种三方安全计算防作恶方法、设备及介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2156555B (en) 1984-03-24 1988-03-09 Philips Nv Error correction of data symbols
US5838267A (en) 1996-10-09 1998-11-17 Ericsson, Inc. Method and apparatus for encoding and decoding digital information
US6304991B1 (en) 1998-12-04 2001-10-16 Qualcomm Incorporated Turbo code interleaver using linear congruential sequence
JP2002313036A (ja) 2001-04-18 2002-10-25 Sharp Corp 復調方法および誤り訂正方法、並びに、記録媒体再生装置
US6567465B2 (en) 2001-05-21 2003-05-20 Pc Tel Inc. DSL modem utilizing low density parity check codes
US6789227B2 (en) 2001-07-05 2004-09-07 International Business Machines Corporation System and method for generating low density parity check codes using bit-filling
US6895547B2 (en) 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
US6829308B2 (en) 2002-07-03 2004-12-07 Hughes Electronics Corporation Satellite communication system utilizing low density parity check codes
JP3917563B2 (ja) 2002-07-03 2007-05-23 ヒューズ・エレクトロニクス・コーポレーション 低密度のパリティチェック(ldpc)コードをデコードする方法およびシステム
KR100543154B1 (ko) * 2002-07-26 2006-01-20 휴우즈 일렉트로닉스 코오포레이션 저밀도 패리티 검사 코드 생성 방법 및 시스템
US6785863B2 (en) * 2002-09-18 2004-08-31 Motorola, Inc. Method and apparatus for generating parity-check bits from a symbol set
US7222289B2 (en) * 2002-09-30 2007-05-22 Certance Llc Channel processor using reduced complexity LDPC decoder
KR20040036460A (ko) * 2002-10-26 2004-04-30 삼성전자주식회사 Ldpc 복호화 장치 및 그 방법
US7702986B2 (en) * 2002-11-18 2010-04-20 Qualcomm Incorporated Rate-compatible LDPC codes
KR100502609B1 (ko) * 2002-11-21 2005-07-20 한국전자통신연구원 Ldpc 코드를 이용한 부호화기 및 부호화 방법
US7162684B2 (en) * 2003-01-27 2007-01-09 Texas Instruments Incorporated Efficient encoder for low-density-parity-check codes
KR100906474B1 (ko) 2003-01-29 2009-07-08 삼성전자주식회사 저밀도 부가정보 발생용 매트릭스를 이용한 에러 정정방법 및그 장치
KR100809619B1 (ko) 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
KR100550101B1 (ko) 2003-12-22 2006-02-08 한국전자통신연구원 저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그방법
KR20050073359A (ko) * 2004-01-09 2005-07-13 주식회사 하이닉스반도체 테스트 레티클 제작 방법
US7260763B2 (en) * 2004-03-11 2007-08-21 Nortel Networks Limited Algebraic low-density parity check code design for variable block sizes and code rates
JP4555334B2 (ja) 2004-04-28 2010-09-29 サムスン エレクトロニクス カンパニー リミテッド 可変ブロック長を有するブロック低密度パリティ検査符号の符号化/復号化装置及び方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2716044C1 (ru) * 2016-07-20 2020-03-05 Хуавей Текнолоджиз Ко., Лтд. Способы и системы кодирования и декодирования ldpc кодов
US10868567B2 (en) 2016-07-20 2020-12-15 Huawei Technologies Co., Ltd. Methods and systems for encoding and decoding for LDPC codes
RU2739465C2 (ru) * 2016-11-03 2020-12-24 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство для кодирования и декодирования кодов с низкой плотностью проверок на четность
US11265014B2 (en) 2016-11-03 2022-03-01 Huawei Technologies Co., Ltd. Method and apparatus for encoding and decoding LDPC codes
RU2731883C1 (ru) * 2017-06-27 2020-09-08 Телефонактиеболагет Лм Эрикссон (Пабл) Коэффициенты ldpc-сдвига для нового стандарта радиосвязи
RU2731883C9 (ru) * 2017-06-27 2022-08-08 Телефонактиеболагет Лм Эрикссон (Пабл) Коэффициенты ldpc-сдвига для нового стандарта радиосвязи
US11515893B2 (en) 2017-06-27 2022-11-29 Telefonaktiebolaget Lm Ericsson (Publ) Shift values for quasi-cyclic LDPC codes
US11848685B2 (en) 2017-06-27 2023-12-19 Telefonaktiebolaget Lm Ericsson (Publ) Shift values for quasi-cyclic LDPC codes
RU2791717C1 (ru) * 2022-12-14 2023-03-13 Акционерное общество "Научно-производственная фирма "Микран" Способ кодирования канала в системе связи, использующей LDPC-код

Also Published As

Publication number Publication date
US7600174B2 (en) 2009-10-06
AU2005272268B2 (en) 2008-07-31
KR20060050384A (ko) 2006-05-19
DE602005026754D1 (de) 2011-04-21
JP2008501287A (ja) 2008-01-17
US20060036927A1 (en) 2006-02-16
AU2005272268A1 (en) 2006-02-16
CA2563642C (en) 2013-10-01
CN1993892B (zh) 2012-12-26
EP1626505A1 (en) 2006-02-15
CN1993892A (zh) 2007-07-04
JP4545793B2 (ja) 2010-09-15
WO2006016769A1 (en) 2006-02-16
KR100713371B1 (ko) 2007-05-04
EP1626505B1 (en) 2011-03-09
CA2563642A1 (en) 2006-02-16
RU2007105100A (ru) 2008-08-20

Similar Documents

Publication Publication Date Title
RU2348103C2 (ru) Устройство и способ кодирования и декодирования блочного кода разреженного контроля четности
RU2341894C2 (ru) Устройство и способ для кодирования/декодирования кода разреженного контроля четности с переменной длиной блока
US7516391B2 (en) Apparatus and method for coding/decoding block low density parity check code with variable block length
US9319068B2 (en) Apparatus and method for coding/decoding block low density parity check code in a mobile communication system
EP1596501B1 (en) Apparatus and method for encoding and decoding block low density parity check codes with a variable coding rate
KR100809616B1 (ko) 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
US7526717B2 (en) Apparatus and method for coding and decoding semi-systematic block low density parity check codes
RU2369008C2 (ru) Устройство и способ кодирования-декодирования блочного кода проверки на четность с низкой плотностью с переменной длиной блока
KR20060016061A (ko) 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법

Legal Events

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

Effective date: 20190811