RU2348103C2 - Device and method for coding and decoding of block code of low density parity check - Google Patents
Device and method for coding and decoding of block code of low density parity check Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 239000011159 matrix material Substances 0.000 claims abstract description 412
- 230000008569 process Effects 0.000 claims description 22
- 125000004122 cyclic group Chemical group 0.000 claims description 16
- 238000006467 substitution reaction Methods 0.000 claims description 13
- 230000009471 action Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 4
- 230000008030 elimination Effects 0.000 claims 3
- 238000003379 elimination reaction Methods 0.000 claims 3
- 230000000694 effects Effects 0.000 abstract description 3
- 239000000126 substance Substances 0.000 abstract 2
- 238000010586 diagram Methods 0.000 description 32
- 230000005540 biological transmission Effects 0.000 description 23
- 230000001788 irregular Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 238000010295 mobile communication Methods 0.000 description 8
- 238000012937 correction Methods 0.000 description 5
- 230000002457 bidirectional effect Effects 0.000 description 3
- 229910052739 hydrogen Inorganic materials 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000005562 fading Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- XOJVVFBFDXDTEG-UHFFFAOYSA-N Norphytane Natural products CC(C)CCCC(C)CCCC(C)CCCC(C)C XOJVVFBFDXDTEG-UHFFFAOYSA-N 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1134—Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1182—Parity 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity 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/1188—Parity 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6356—Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6362—Error control coding in combination with rate matching by puncturing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
- H04L1/005—Iterative decoding, including iteration between signal detection and decoding operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block 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
Description
Уровень техники изобретенияBACKGROUND OF THE INVENTION
Область техники, к которой относится изобретениеFIELD OF THE INVENTION
Настоящее изобретение относится к устройству и способу кодирования и декодирования блочных кодов LDPC (разреженного контроля четности).The present invention relates to an apparatus and method for encoding and decoding block LDPC (Sparse Parity Check) codes.
Описание предшествующего уровня техникиDescription of the Related Art
В связи наиболее существенной проблемой является эффективная и надежная передача данных по каналу. Мобильная мультимедийная система связи следующего поколения, которая исследуется в настоящее время, требует системы связи с высокой скоростью передачи, допускающей обработку и передачу различной информации, например, изображения или данных радиовещания, помимо предыдущей, ориентированной на голос услуги. Следовательно, необходимо повышать эффективность системы с помощью использования схемы кодирования канала, подходящей для системы.In connection, the most significant problem is the efficient and reliable transmission of data over the channel. The next generation mobile multimedia communication system, which is being investigated, requires a high-speed communication system capable of processing and transmitting various information, such as images or broadcast data, in addition to the previous voice-oriented service. Therefore, it is necessary to increase the efficiency of the system by using a channel coding scheme suitable for the system.
Передача данных неизбежно страдает от ошибок из-за шума, помех и замирания в соответствии с условиями канала, таким образом вызывая потерю большого количества информации. Для того, чтобы уменьшить потерю информации, в настоящее время используются различные схемы контроля ошибок, которые основаны частично на характеристиках канала для улучшения тем самым надежности мобильной системы связи. Самая элементарная схема исправления ошибок использует коды исправления ошибок.Data transmission inevitably suffers from errors due to noise, interference and fading in accordance with the conditions of the channel, thereby causing the loss of a large amount of information. In order to reduce the loss of information, various error control schemes are currently being used, which are based in part on channel characteristics, thereby improving the reliability of the mobile communication system. The most basic error correction scheme uses error correction codes.
Фиг.1 - это схема, иллюстрирующая приемопередатчик в традиционной системе мобильной связи. Ссылаясь на фиг.1, в передатчике сообщение 'u' передачи кодируется посредством кодера 101 с помощью предопределенной схемы кодирования перед передачей по каналу. Закодированный символ 'c', кодируемый посредством кодера 101, модулируется посредством модулятора 103, используя предопределенную схему модуляции, и модулированный сигнал 's' передается приемнику по каналу 105.1 is a diagram illustrating a transceiver in a conventional mobile communication system. Referring to FIG. 1, in a transmitter, a transmission message 'u' is encoded by an encoder 101 using a predetermined coding scheme before being transmitted over a channel. The encoded symbol 'c' encoded by encoder 101 is modulated by a modulator 103 using a predetermined modulation scheme, and the modulated signal 's' is transmitted to the receiver on channel 105.
В приемнике принятый сигнал 'r' является искаженным сигналом, в котором сигнал 's', переданный передатчиком, смешивается с несколькими шумами соответственно условиям канала. Принятый сигнал 'r' демодулируется посредством демодулятора 107 с помощью схемы демодуляции, соответствующей схеме модуляции, используемой в модуляторе 103 передатчика, и демодулированный сигнал 'x' декодируется посредством декодера 109 с помощью схемы декодирования, соответствующей схеме кодирования, используемой в кодере 101 передатчика. Сигнал, декодируемый посредством декодера 109, обозначается посредством û. At the receiver, the received signal 'r' is a distorted signal in which the signal 's' transmitted by the transmitter is mixed with several noises according to channel conditions. The received signal 'r' is demodulated by the demodulator 107 using a demodulation scheme corresponding to the modulation scheme used in the transmitter modulator 103, and the demodulated signal 'x' is decoded by the decoder 109 using the decoding scheme corresponding to the encoding scheme used in the encoder 101 of the transmitter. A signal decoded by decoder 109 is denoted by û .
Соответственно, существует необходимость высокоэффективных кодера и декодера канала для возможности приемнику восстанавливать сигнал 'u', переданный посредством передатчика без ошибки. В частности, когда канал 105 является беспроводным каналом, ошибки, вызванные каналом, должны рассматриваться более серьезно. Декодер 109 приемника может оценивать сообщение передачи на основе данных, принятых по каналу 105.Accordingly, there is a need for a high-performance channel encoder and decoder for the receiver to be able to recover the 'u' signal transmitted by the transmitter without error. In particular, when channel 105 is a wireless channel, errors caused by the channel should be considered more seriously. Receiver decoder 109 may evaluate the transmission message based on data received on channel 105.
В связи со стремительным развитием системы мобильной связи существует потребность в технологии, допускающей возможность передачи данных в беспроводной сети, имеющих большую емкость, приближающуюся к таковой в беспроводной сети. Так как существует потребность в быстродействующей высокопроизводительной системе связи, допускающей обработку и передачу мультимедийных данных, например, изображения и данных радиовещания помимо ориентированной на голос службы, то необходимо увеличивать эффективность передачи в системе с помощью использования подходящей схемы кодирования канала для улучшения производительности системы. Тем не менее, система мобильной связи неизбежно страдает от ошибок, которые обычно происходят из-за шума, помех и замирания соответственно условиям канала во время передачи данных. Как описано выше, возникновение ошибок вызывает потерю информационных данных.In connection with the rapid development of the mobile communication system, there is a need for a technology capable of transmitting data in a wireless network having a large capacity approaching that of a wireless network. Since there is a need for a high-speed, high-performance communication system capable of processing and transmitting multimedia data, for example, image and broadcast data, in addition to the voice-oriented service, it is necessary to increase transmission efficiency in the system by using a suitable channel coding scheme to improve system performance. However, the mobile communication system inevitably suffers from errors that usually occur due to noise, interference and fading according to channel conditions during data transmission. As described above, the occurrence of errors causes the loss of information data.
Для того, чтобы уменьшить потерю информационных данных из-за возникновения ошибок, возможно улучшать надежность мобильной системы связи посредством использования методик контроля ошибок. Методика, использующая коды исправления ошибок, является наиболее распространенной используемой методикой контроля ошибок. В настоящий момент будет сделано описание турбокодов и кодов LDPC (разреженного контроля четности), которые являются обычными кодами исправления ошибок.In order to reduce the loss of information data due to errors, it is possible to improve the reliability of a mobile communication system by using error control techniques. A technique that uses error correction codes is the most common error control technique used. A description will now be made of turbo codes and LDPC (Sparse Parity Check) codes, which are common error correction codes.
Хорошо известно, что турбокод превосходит в повышении производительности сверточный код, традиционно используемый для исправления ошибок во время высокоскоростной передачи данных. Турбокод является выгодным в том, что он может эффективно исправлять ошибку, вызванную шумами, сформированными в канале передачи, таким образом повышая надежность передачи данных.It is well known that turbo code is superior in performance enhancement to the convolutional code traditionally used to correct errors during high-speed data transfer. The turbo code is advantageous in that it can efficiently correct an error caused by noise generated in the transmission channel, thereby increasing the reliability of data transmission.
Код LDPC может быть декодирован с использованием итеративного алгоритма декодирования на основе алгоритма суммы-произведения в графе множителей. Так как декодер использует для кода LDPC итеративный алгоритм декодирования, основанный на алгоритме суммы-произведения, то он менее сложен по отношению к декодеру для турбокода. Кроме того, декодер для кода LDPC легко реализовать с помощью декодера параллельной обработки, по сравнению с декодером для турбокода.The LDPC code can be decoded using an iterative decoding algorithm based on the sum-product algorithm in the factor graph. Since the decoder uses an iterative decoding algorithm for the LDPC code based on the sum-product algorithm, it is less complex with respect to the decoder for the turbo code. In addition, the decoder for the LDPC code is easy to implement using a parallel processing decoder, compared to a decoder for a turbo code.
Теорема Шэннона о кодировании канала показывает, что надежная связь возможна только при скорости передачи данных, не превышающей пропускную способность канала связи. Тем не менее, теорема Шэннона о кодировании канала не предложила подробного способа кодирования и декодирования для канала для поддержания скорости передачи данных до предела пропускной способности канала связи. Хотя случайный код, имеющий очень большой размер блока, показывает производительность, приближающуюся к пределу пропускной способности канала связи по теореме Шэннона о кодировании канала, фактически невозможно реализовать способ декодирования с максимумом апостериорной вероятности (MAP) или максимально правдоподобный (ML) из-за его сложной вычислительной нагрузки.Shannon’s channel coding theorem shows that reliable communication is only possible with a data rate that does not exceed the bandwidth of the communication channel. However, Shannon’s channel coding theorem did not propose a detailed coding and decoding method for the channel to maintain the data rate to the maximum bandwidth of the communication channel. Although a random code having a very large block size shows performance approaching the bandwidth limit of the communication channel according to the Shannon theorem on channel coding, it is practically impossible to implement a decoding method with a maximum a posteriori probability (MAP) or the most plausible (ML) due to its complex computational load.
Турбокод был предложен Берроу, Главо и Титимаджшима в 1993 г. и имеет более высокую производительность, приближающуюся к пределу пропускной способности канала связи согласно теореме Шэннона о кодировании канала. Предложение турбокода инициировало активное исследование по итеративному декодированию и графическому представлению кодов, и коды LDPC, предложенные Галлагером в 1962 г., вновь находятся в центре внимания исследований. Циклы существуют в графе множителей турбокода и кода LDPC, и хорошо известно, что итеративное декодирование в графе множителей кода LDPC, где существуют циклы, является условно оптимальным. Также экспериментально доказано, что код LDPC имеет прекрасную производительность по итеративному декодированию. Известно, что код LDPC имеет самую высокую производительность, которую когда-либо показывает производительность, имеющая разность лишь около 0,04 [дБ] при пределе пропускной способности канала связи по теореме Шэннона о кодировании канала при частоте появления ошибочных битов (BER) 10-5, используя размер блока 107. Кроме того, хотя код LDPC, определенный в поле Галуа (GF) c q>2, т.е. GF(q), увеличивает сложность в своем декодировании, он является превосходящим по своей производительности двоичный код. Тем не менее, не предусмотрено удовлетворительное теоретическое описание успешного декодирования посредством итеративного алгоритма декодирования для кода LDPC, определенного в GF(q).The turbo code was proposed by Burrow, Glavo and Titimajshima in 1993 and has higher performance, approaching the limit of the bandwidth of the communication channel according to the Shannon theorem on channel coding. The turbo code proposal initiated an active study on iterative decoding and graphical representation of codes, and the LDPC codes proposed by Gallagher in 1962 are once again the focus of research. Loops exist in the multiplier graph of the turbo code and LDPC code, and it is well known that iterative decoding in the multiplier graph of the LDPC code, where loops exist, is conditionally optimal. It has also been experimentally proven that LDPC code has excellent iterative decoding performance. It is known that the LDPC code has the highest performance that performance has ever shown, having a difference of only about 0.04 [dB] at the limit of the throughput of the communication channel according to the Shannon theorem on channel coding at the occurrence frequency of error bits (BER) 10 -5 using a block size of 10 7 . In addition, although the LDPC code defined in the Galois field (GF) with q> 2, i.e. GF (q), increases the complexity in its decoding, it is superior in its performance to binary code. However, a satisfactory theoretical description of successful decoding by means of an iterative decoding algorithm for the LDPC code defined in GF (q) is not provided.
Код LDPC, предложенный Галлагером, определяется посредством матрицы контроля четности, в которой основные элементы имеют значение 0 и второстепенные элементы, т.е. элементы, не имеющие значение 0, имеют значение 1. Например, код LDPC (N, j, k) является линейным блочным кодом, имеющим длину блока N, и определяется матрицей разреженного контроля четности, в которой каждый столбец имеет j элементов, имеющих значение 1, каждый ряд имеет k элементов, имеющих значение 1, и все элементы за исключением элементов, имеющих значение 1, имеют значение 0.The LDPC code proposed by the Gallagher is determined by means of a parity check matrix in which the main elements have a value of 0 and secondary elements, i.e. elements that do not have a value of 0 have a value of 1. For example, the LDPC code (N, j, k) is a linear block code having a block length of N, and is determined by a sparse parity check matrix in which each column has j elements with a value of 1 , each row has k elements having a value of 1, and all elements except elements having a value of 1 have a value of 0.
Код LDPC, в котором вес каждого столбца в матрице контроля четности фиксируется на 'j' и вес каждой строки в матрице контроля четности фиксируется на 'k', как изложено выше, называется "регулярным кодом LDPC". В этом документе "вес" относится к количеству элементов, имеющих ненулевое значение среди элементов, включенных в порождающую матрицу и матрицу контроля четности. В отличие от обычного кода LDPC, код LDPC, в котором вес каждого столбца в матрице контроля четности и вес каждой строки в матрице контроля четности не являются зафиксированными, называется "нерегулярным кодом LDPC". Общеизвестно, что нерегулярный код LDPC является более высоким по производительности по отношению к регулярному коду LDPC. Тем не менее, в случае нерегулярного кода LDPC, так как вес каждого столбца и вес каждой строки в матрице контроля четности не зафиксированы, т.е. нерегулярны, то вес каждого столбца в матрице контроля четности и вес каждой строки в матрице контроля четности должны быть должным образом установлены для того, чтобы гарантировать отличную производительность.An LDPC code in which the weight of each column in the parity matrix is fixed to 'j' and the weight of each row in the parity matrix is fixed to 'k', as described above, is called the “regular LDPC code”. In this document, "weight" refers to the number of elements having a non-zero value among the elements included in the generator matrix and the parity matrix. Unlike a regular LDPC code, an LDPC code in which the weight of each column in the parity matrix and the weight of each row in the parity matrix are not fixed is called an “irregular LDPC code”. It is well known that irregular LDPC code is higher in performance with respect to the regular LDPC code. However, in the case of an irregular LDPC code, since the weight of each column and the weight of each row in the parity matrix are not fixed, i.e. irregular, the weight of each column in the parity matrix and the weight of each row in the parity matrix must be properly set in order to guarantee excellent performance.
Фиг.2 - это схема, иллюстрирующая матрицу контроля четности общего кода LDPC (8, 2, 4). Ссылаясь на фиг.2, матрица H контроля четности кода LDPC (8, 2, 4) имеет 8 столбцов и 4 строки, в которой вес каждого столбца зафиксирован на 2 и вес каждой строки зафиксирован на 4. Так как вес каждого столбца и вес каждой строки в матрице контроля четности являются регулярными, код LDPC (8, 2, 4), проиллюстрированный на фиг.2, становится регулярным кодом LDPC.2 is a diagram illustrating a parity check matrix of a common LDPC code (8, 2, 4). Referring to FIG. 2, the LDPC code parity check matrix H (8, 2, 4) has 8 columns and 4 rows, in which the weight of each column is fixed at 2 and the weight of each row is fixed at 4. Since the weight of each column and the weight of each the rows in the parity matrix are regular, the LDPC code (8, 2, 4) illustrated in FIG. 2 becomes the regular LDPC code.
Фиг.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-тым узлом.FIG. 3 is a diagram illustrating a graph of multipliers of the LDPC code (8, 2, 4) in FIG. 2. Referring to FIG. 3, the multiplier graph of the LDPC code (8, 2, 4) includes 8 variable nodes x 1 300, x 2 302, x 3 304, x 4 306, x 5 308, x 6 310, x 7 312 and x 8 314 and 4 of the
Так как матрица контроля четности кода LDPC имеет очень небольшой вес, то возможно выполнять декодирование посредством итеративного декодирования, даже в блочном коде, имеющем относительно большой размер, который показывает производительность, приближающуюся к пределу пропускной способности канала связи по теореме Шэннона о кодировании канала, например, турбокода, в то время, как размер блока блочного кода постоянно увеличивается. Мак Кей и Нил доказали, что итеративный процесс декодирования кода LDPC, используя схему диаграммы потока, приближается к итеративному процессу декодирования турбокода по производительности.Since the LDPC code parity matrix is very lightweight, it is possible to perform decoding by iterative decoding, even in a block code having a relatively large size, which shows performance approaching the bandwidth limit of the communication channel according to Shannon’s channel coding theorem, for example, turbo code, while the block code block size is constantly increasing. Mack Kay and Neil have proven that the iterative process of decoding an LDPC code using a flowchart diagram approaches the iterative process of decoding a turbo code in terms of performance.
Для того, чтобы сформировать высокопроизводительный код LDPC, должны выполняться следующие условия.In order to generate a high-performance LDPC code, the following conditions must be met.
(1) Циклы в графе множителей кода LDPC должны быть приняты во внимание.(1) The cycles in the multiplier graph of the LDPC code should be taken into account.
Термин "цикл" относится к петле, образованной гранями, соединяющими переменные узлы с контрольными узлами в графе множителей кода LDPC, и длина цикла определяется как число граней, составляющих петлю. Цикл петли означает, что число граней, соединяющих переменные узлы с контрольными узлами, составляющих петлю в графе множителей кода LDPC, является большим. В противоположность этому, короткий цикл означает, что число граней, соединяющих переменные узлы с контрольными узлами, составляющих петлю в графе множителей кода LDPC, является небольшим.The term “loop” refers to a loop formed by faces connecting variable nodes to control nodes in the multiplier graph of the LDPC code, and the length of the loop is defined as the number of faces making up the loop. The loop cycle means that the number of faces connecting the variable nodes to the control nodes that make up the loop in the multiplier graph of the LDPC code is large. In contrast, a short loop means that the number of faces connecting the variable nodes to the control nodes that make up the loop in the factor graph of the LDPC code is small.
Как только циклы в графе множителей кода LDPC становятся длиннее, относительный уровень производительности кода LDPC возрастает. Т.е. когда длинные циклы формируются в графе множителей кода LDPC, становится возможным предотвращать ухудшение производительности, например, минимальный уровень ошибки, происходящей, когда слишком много циклов с небольшой длиной существуют в графе множителей кода LDPC.As the cycles in the LDPC code factor graph become longer, the relative performance level of the LDPC code increases. Those. when long loops are formed in the LDPC code factor graph, it becomes possible to prevent performance degradation, for example, the minimum level of error that occurs when too many short-cycle cycles exist in the LDPC code factor graph.
(2) Эффективное кодирование кода LDPC должно быть принято во внимание(2) Effective coding of the LDPC code should be taken into account
Код LDPC сложно подвергнуть кодированию в реальном масштабе времени, по сравнению со сверточным кодом или турбокодом из-за высокой сложности его кодирования. Для того, чтобы уменьшить сложность кодирования кода LDPC, предложен код RA (повторного накопления). Тем не менее, код RA также имеет предел в уменьшении сложности кодирования кода LDPC. Следовательно, эффективное кодирование кода LDPC должно быть принято во внимание.LDPC code is difficult to encode in real time, compared to a convolutional code or turbo code due to the high complexity of its coding. In order to reduce the encoding complexity of the LDPC code, an RA (re-accumulation) code is proposed. However, the RA code also has a limit in reducing the encoding complexity of the LDPC code. Therefore, efficient coding of the LDPC code must be taken into account.
(3) Распределение степеней в графе множителей кода LDPC должно быть принято во внимание.(3) The degree distribution in the factor graph of the LDPC code should be taken into account.
В целом нерегулярный код LDPC превосходит в производительности регулярный код LDPC, так как граф множителей нерегулярного кода LDPC имеет различные степени. Термин "степень" относится к числу граней, соединенных с переменными узлами и контрольными узлами в графе множителей кода LDPC. Дополнительно, фраза "распределение степеней" в графе множителей кода LDPC относится к соотношению числа узлов, имеющих конкретную степень к общему числу узлов. Кроме того, Ричардсоном доказано, что код LDPC, имеющий конкретное распределение степеней, является превосходящим по производительности.In general, an irregular LDPC code is superior in performance to a regular LDPC code, since the factor graph of an irregular LDPC code has varying degrees. The term “degree” refers to the number of faces connected to variable nodes and control nodes in the multiplier graph of the LDPC code. Additionally, the phrase “degree distribution” in the factor graph of the LDPC code refers to the ratio of the number of nodes having a specific degree to the total number of nodes. In addition, Richardson proved that LDPC code with a specific degree distribution is superior in performance.
Фиг.4 - это схема, иллюстрирующая матрицу контроля четности для общего блочного кода LDPC. Тем не менее, до того, как будет дано описание фиг.4, следует заметить, что блочный код LDPC является новым кодом LDPC, что эффективное кодирование и эффективное хранение и повышение производительности матрицы контроля четности были приняты во внимание и блочный код LDPC является кодом LPDC, расширенным посредством обобщения структуры регулярного кода LDPC.4 is a diagram illustrating a parity matrix for a common block LDPC code. However, before the description of FIG. 4 is given, it should be noted that the block LDPC code is a new LDPC code, that efficient coding and efficient storage and improved performance of the parity matrix are taken into account, and the block LDPC code is an LPDC code extended by generalizing the structure of the regular LDPC code.
Ссылаясь на фиг.4, матрица контроля четности блочного кода LDPC разделена на множество частных блоков, и матрица перестановок сопоставлена с каждым из частных блоков. На фиг.4 'P' представляет матрицу перестановок, имеющую размер NsxNs и верхний индекс (или показатель степени)apq матрицы P перестановок является либо 0pqs-l, либо apq=. Кроме того, 'p' указывает, что соответствующая матрица перестановок располагается в p-той строке частных блоков матрицы контроля четности, и 'q' указывает, что соответствующая матрица перестановок располагается в q-том столбце частных блоков матрицы контроля четности. То есть представляет матрицу перестановок, расположенную в частном блоке, где p-тая строка и q-тый столбец матрицы контроля четности, содержащей множество частных блоков, пересекают друг друга. Более конкретно, 'p' и 'q' представляют собой число строк и число столбцов частных блоков, сопоставленных, соответственно, информационной части в матрице контроля четности.Referring to FIG. 4, a parity check matrix of a block LDPC code is divided into a plurality of private blocks, and a permutation matrix is mapped to each of the private blocks. 4, 'P' represents a permutation matrix having a size N s xN s and a superscript (or exponent) a pq of the permutation matrix P is either 0 pqs -l or a pq =. In addition, 'p' indicates that the corresponding permutation matrix is located in the pth row of partial blocks of the parity matrix, and 'q' indicates that the corresponding permutation matrix is located in the qth column of partial blocks of the parity matrix. I.e represents a permutation matrix located in a private block, where the pth row and the qth column of the parity matrix containing many private blocks intersect each other. More specifically, 'p' and 'q' represent the number of rows and the number of columns of the private blocks associated, respectively, of the information part in the parity matrix.
Фиг.5 является схемой, иллюстрирующей матрицу P перестановок по фиг.4. Как проиллюстрировано на фиг.5, матрица перестановок P является квадратной матрицей, имеющей размер NsxNs и каждый из столбцов Ns, включенный в матрицу P перестановок, имеет вес 1 и каждая из строк Ns, включенная в матрицу P перестановок, также имеет вес 1. В этом документе, хотя размер матрицы P перестановок и выражен как NsxNs, он будет также выражаться и как Ns, так как матрица P перестановок является квадратной матрицей.5 is a diagram illustrating a permutation matrix P of FIG. 4. As illustrated in Figure 5, the permutation matrix P is a square matrix having a size of N s xN s and each of the columns N s, is included in the permutation matrix P has a weight of 1 and each of the rows N s, included in the permutation matrix P also It has a weight of 1. In this document, although the size and the permutation matrix P is expressed as N s xN s, it will also be expressed also as N s, because the permutation matrix P is a square matrix.
На фиг.4 матрица P перестановок с верхним индексом apq=0, т.е. матрица перестановок P° представляет собой единичную матрицу INsxNs и матрица P перестановок с верхним индексом apq=, т.е. матрица Р перестановок представляет собой нулевую матрицу. В данном документе INsxNs представляет собой единичную матрицу размером NsxNs.In Fig. 4, the permutation matrix P with superscript a pq = 0, i.e. the permutation matrix P ° is the identity matrix I NsxNs and the permutation matrix P with the superscript a pq =, i.e. permutation matrix P is a zero matrix. In this document, I NsxNs is a unit matrix of size N s xN s .
В полной матрице контроля четности блочного кода LDPC, проиллюстрированного на фиг.4, так как общее количество строк - Nsxp и общее количество столбцов - Nsxq (для p), когда полная матрица контроля четности кода LDPC имеет полный ранг, скорость кода может быть выражена уравнением (1) независимо от размера частных блоков.In the full parity check matrix of the block LDPC code illustrated in FIG. 4, since the total number of rows is N s xp and the total number of columns is N s xq (for p), when the full LDPC code parity matrix has a full rank, the code rate can be expressed by equation (1) regardless of the size of the private blocks.
Если apq для всех p и q, то матрицы перестановок, соответствующие частным блокам, не являются нулевыми матрицами и частные блоки составляют регулярный код LDPC, в котором значение веса каждого столбца и значение веса каждой строки в каждой из матриц перестановок, соответствующих частным блокам, являются p и q соответственно. В данном документе каждая из матриц перестановок, соответствующих частным блокам, будет указываться как "частная матрица".If a pq for all p and q, then the permutation matrices corresponding to the private blocks are not null matrices and the private blocks compose a regular LDPC code in which the weight value of each column and the weight value of each row in each of the permutation matrices corresponding to the private blocks are p and q respectively. In this document, each of the permutation matrices corresponding to the private blocks will be referred to as a “private matrix”.
Так как зависимые строки (p-1) существуют в матрице контроля четности, скорость кодирования выше, чем скорость кодирования, вычисленная посредством уравнения (1). В блочном коде LDPC, если положение веса первой строки каждой из частных матриц, включенных в полную матрицу контроля четности, определено, то положения весов остающихся строк (Ns-1) может быть определено. Следовательно, требуемый размер памяти сводится к 1/NS, по сравнению с тем, когда веса нерегулярно выбираются для хранения информации во всей матрице контроля четности.Since dependent rows (p-1) exist in the parity check matrix, the coding rate is higher than the coding rate calculated by equation (1). In the block LDPC code, if the position of the weight of the first row of each of the partial matrices included in the full matrix of the parity is determined, then the position of the weights of the remaining rows (N s -1) can be determined. Therefore, the required memory size is reduced to 1 / N S , compared with when the weights are irregularly selected for storing information in the entire parity matrix.
Как описано выше, термин "цикл" относится к петле, образованной гранями, соединяющими переменные узлы с контрольными узлами в графе множителей кода LDPC, и длина цикла определяется как число граней, составляющих петлю. Длинный цикл означает, что число граней, соединяющих переменные узлы с контрольными узлами, составляющих петлю в графе множителей кода LDPC, является большим. Когда циклы в графе множителей кода LDPC становятся длиннее, относительный уровень производительности кода LDPC возрастает. В противоположность, когда циклы в графе множителей кода LDPC становятся короче, возможность исправления ошибок кода LDPC возрастает, так как происходит ухудшение производительности, например, минимального уровня ошибки. То есть, когда существует много циклов небольшой длины в графе множителей кода LDPC, информация на конкретном узле, принадлежащая циклу небольшой длины, начиная от него, возвращается после небольшого числа итераций. Когда число итераций возрастает, информация возвращается к соответствующему узлу чаще, так, что информацию нельзя правильно обновить, тем самым ухудшая возможность исправления ошибок кода LDPC.As described above, the term “loop” refers to a loop formed by faces connecting the variable nodes to the control nodes in the factor graph of the LDPC code, and the cycle length is defined as the number of faces making up the loop. A long cycle means that the number of faces connecting the variable nodes to the control nodes that make up the loop in the multiplier graph of the LDPC code is large. As the cycles in the multiplier graph of the LDPC code become longer, the relative performance level of the LDPC code increases. In contrast, when the cycles in the multiplier graph of the LDPC code become shorter, the possibility of correcting errors in the LDPC code increases, since performance degradation, for example, the minimum error level, occurs. That is, when there are many small cycles of small length in the factor graph of the LDPC code, information on a particular node belonging to a small cycle, starting from it, is returned after a small number of iterations. When the number of iterations increases, the information returns to the corresponding node more often, so that the information cannot be updated correctly, thereby impairing the ability to correct LDPC code errors.
Фиг.6 является схемой, иллюстрирующей структуру цикла блочного кода LDPC, матрица контроля четности которого включает в себя 4 частных матрицы. Тем не менее, до того, как дано описание фиг. 6, следует заметить, что блочный код LDPC является новым кодом LDPC, что эффективное кодирование и эффективное хранение и повышение производительности матрицы контроля четности были приняты во внимание. Блочный код LDPC является также кодом LDPC, расширенным посредством обобщения структуры регулярного кода LDPC.6 is a diagram illustrating a loop structure of a block LDPC code whose parity matrix includes 4 partial matrices. However, before the description of FIG. 6, it should be noted that the block LDPC code is a new LDPC code, that efficient coding and efficient storage and improved performance of the parity matrix were taken into account. The block LDPC code is also an LDPC code extended by generalizing the structure of a regular LDPC code.
Матрица контроля четности блочного кода LDPC, проиллюстрированная на фиг.6, включает в себя 4 частных блока. Диагональная линия представляет собой положение, где располагаются элементы, имеющие значение 1 и части, отличные от частей на диагонали, представляют собой положения, в которых расположены элементы, имеющие значение 0. Кроме того, 'P' представляет собой ту же самую матрицу перестановок, что и матрица перестановок, описанная в связи с фиг.5.The parity check matrix of the block LDPC code illustrated in FIG. 6 includes 4 private blocks. The diagonal line represents the position where the elements having a value of 1 and the parts other than the parts on the diagonal are located, represent the positions in which the elements having a value of 0 are located. In addition, 'P' represents the same permutation matrix that and a permutation matrix described in connection with FIG.
Для того, чтобы проанализировать структуру цикла блочного кода LDPC, проиллюстрированного на фиг.6, элемент, имеющий значение 1, расположенный в i-той строке частной матрицы Pa, определяется как опорный элемент и элемент, имеющий значение 1, расположенный в i-той строке, будет указываться как "отметка-0". В данном документе "частная матрица" будет относится к матрице, соответствующей частному блоку. Отметка 0 расположена в (i+a)-том столбце частной матрицы Pa.In order to analyze a cycle structure of a block code, LDPC, illustrated in Figure 6, an element having a value of 1 located in an i-th row of the partial matrix P a, is defined as a reference element and an element having a value of 1 located in an i-one line, will be indicated as "mark-0". As used herein, a “private matrix” will refer to a matrix corresponding to a private block. The 0 located in the (i + a) th column of the partial matrix P a.
Элемент, имеющий значение 1 в частной матрице Pb, расположенный в той же строке, что и нулевая отметка, будет указываться как "отметка-1". По той же причине, что и отметка-0, отметка-1 располагается в (i+b)-том столбце частной матрицы Pb.An element having a value of 1 in the partial matrix P b located in the same row as the zero mark will be indicated as “mark-1”. For the same reason as mark-0, mark-1 is located in the (i + b) -th column of the partial matrix P b .
Элемент, имеющий значение 1 в частной матрице Pc, расположенный в том же столбце, что и отметка-1, будет указываться как "отметка-2". Так как частная матрица Pc является матрицей, полученной посредством сдвига соответствующих столбцов единичной матрицы I вправо относительно модуля Ns на c, отметка-2 располагается в (i+b-c)-той строке частной матрицы Pc.An element having a value of 1 in the partial matrix P c located in the same column as mark-1 will be indicated as “mark-2”. Since the partial matrix P c is the matrix obtained by shifting the corresponding columns of the identity matrix I to the right relative to the module N s by c, the mark-2 is located in the (i + bc) -th row of the private matrix P c .
Кроме того, элемент, имеющий значение 1 в частной матрице Pb, расположенный в той же строке, что и отметка-2, будет упоминаться как "отметка-3". Отметка-3 располагается в (i+b-c+d)-том столбце частной матрицы Pd.In addition, an element having a value of 1 in the partial matrix P b located on the same line as mark-2 will be referred to as “mark-3”. Mark-3 is located in the (i + b-c + d) -th column of the partial matrix P d .
Элемент, имеющий значение 1 в частной матрице Pa, расположенный в том же столбце, что и отметка-3, будет указываться как "отметка-4". Отметка-4 располагается в (i+b-c+d-a)-той строке частной матрицы Pa.An element having a value of 1 in the partial matrix P a located in the same column as mark-3 will be indicated as “mark-4”. 4-point is located in an (i + b-c + da ) th row of the partial matrix P a.
В структуре цикла кода LDPC, проиллюстрированного на фиг.6, если существует цикл длины 4, то отметка-0 и отметка-4 располагаются в том же самом положении. То есть отношение между отметкой-0 и отметкой-4 определяется посредством уравнения (2)In the loop structure of the LDPC code illustrated in FIG. 6, if there is a loop of
or
Уравнение (2) может быть перезаписано, как показано в уравнении (3).Equation (2) can be rewritten as shown in equation (3).
Когда зависимость уравнения (3) выполняется, то формируется цикл диной 4. В общем, когда отметка-0 и отметка-4p сначала идентичны друг другу, то задана зависимость и зависимость, показанная в уравнении (4), выполняется.When the dependence of equation (3) is fulfilled, a cycle with a length of 4 is formed. In general, when the mark-0 and the mark-4p are first identical to each other, then the dependence and the dependence shown in equation (4) is satisfied.
То есть, если положительное целое число, имеющее минимальное значение среди положительных целых чисел, удовлетворяющих уравнению (4) для заданных a, b, c и d, определяется как 'p', то цикл с длиной 4p становится циклом, имеющим минимальную длину в структуре цикла блочного кода LDPC, проиллюстрированного на фиг.6.That is, if a positive integer having a minimum value among positive integers satisfying equation (4) for given a, b, c and d is defined as 'p', then a cycle with a length of 4p becomes a cycle having a minimum length in the structure the block LDPC code cycle illustrated in FIG.
Соответственно, как описано выше, для (a-b+c-d)0, если выполняется gcd(Ns, a-b+c-d)=l, тогда p = Ns. Следовательно, цикл длиной 4NS становится циклом с минимальной длиной.Accordingly, as described above, for (a-b + cd) 0, if gcd (N s , a-b + cd) = l holds, then p = N s . Therefore, a cycle of length 4N S becomes a cycle with a minimum length.
Ниже в данном документе будет использоваться методика Ричардсона-Урбанке, как методика кодирования для блочного кода LDPC. Так как методика Ричардсона-Урбанке используется как методика кодирования, то сложность кодирования может быть минимизирована, поскольку вид матрицы контроля четности становится аналогичным виду полной нижней треугольной матрицы.Later in this document, the Richardson-Urbank technique will be used as the coding technique for the block LDPC code. Since the Richardson-Urbanke technique is used as a coding technique, the coding complexity can be minimized, since the form of the parity check matrix becomes similar to that of the complete lower triangular matrix.
Фиг.7 является схемой, иллюстрирующей матрицу контроля четности, имеющей форму, аналогичную той, которую имеет полная нижняя треугольная матрица. Тем не менее, матрица контроля четности, проиллюстрированная на фиг.7, имеет отличную четную часть, чем матрица контроля четности, имеющая форму полной нижней треугольной матрицы.7 is a diagram illustrating a parity check matrix having a shape similar to that of a full lower triangular matrix. However, the parity check matrix illustrated in FIG. 7 has an excellent even part than the parity check matrix having the form of a complete lower triangular matrix.
Ссылаясь на фиг.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 по являются также матрицами перестановок и верхние индексы с a1 по ap последовательно индексируются по отношению к частным матрицам, расположенным в диагональной части четной части.Referring to FIG. 7, the superscript (or exponent) a pq of the matrix P of the permutation of the piece of information is either 0 pqs -1 or a pq =. The permutation matrix P with superscript a pq = 0, i.e. the permutation matrix P ° of the information part is the identity matrix I NsxNs and the permutation matrix P with the superscript a pq =, i.e. permutation matrix P is a zero matrix. In addition, 'p' represents the number of rows of private blocks mapped to the information part in the parity matrix, and 'q' represents the number of columns of private blocks mapped to the information part. In addition, the superscripts a p , x, and y of the matrices P of permutations associated with the even part represent the powers of the matrix P of permutations. However, for convenience, various superscripts a p , x, and y are used to distinguish the even part from the information part. That is, in FIG. 7 c by are also permutation matrices, and the superscripts a 1 through a p are sequentially indexed with respect to the partial matrices located in the diagonal part of the even part.
Кроме того, Px и Py являются также матрицами перестановок и для удобства они индексируются по-разному, чтобы отличать четную часть от информационной части. Если размер блока блочного кода LDPC, имеющего матрицу контроля четности, изображенную на фиг.7, предполагается в размере N, то сложность кодирования блочного кода LDPC линейно возрастает относительно размера блока N(O(N)).In addition, P x and P y are also permutation matrices and, for convenience, they are indexed differently to distinguish the even part from the information part. If the block size of the block LDPC code having the parity matrix shown in FIG. 7 is assumed to be N, then the coding complexity of the block LDPC code linearly increases with respect to the block size N (O (N)).
Самой большой проблемой кода LDPC, имеющего матрицу контроля четности по фиг.7, является то, что если размер частного блока определяется как Ns, то формируются Ns контрольных узлов, степень которых всегда 1 в графе множителей блочного кода LDPC. Контрольные узлы со степенью 1 не могут влиять на повышение производительности на основе итеративного декодирования. Следовательно, стандартный нерегулярный код LDPC, основанный на методике Ричардсона-Урбанке, не включает в себя контрольный узел со степенью 1.The biggest problem with the LDPC code having the parity matrix of Fig. 7 is that if the size of the private block is defined as N s , then N s control nodes are formed, the degree of which is always 1 in the factor graph of the block LDPC code. The control nodes with
Соответственно, матрица контроля четности по фиг.7 будет предполагаться в качестве основной матрицы контроля четности для того, чтобы рассчитать матрицу контроля четности так, что она делает возможным эффективное кодирование, в то же время не включая в себя контрольный узел со степенью 1.Accordingly, the parity check matrix of FIG. 7 will be assumed as the main parity check matrix in order to calculate the parity check matrix so that it enables efficient coding, while not including a control node with
В матрице контроля четности по фиг.7, включающей в себя частные матрицы, выбор частной матрицы является очень важным фактором для повышения производительности блочного кода LDPC, так, что поиск подходящего критерия выбора для частной матрицы также становится очень важным фактором.In the parity matrix of FIG. 7, including partial matrices, the selection of a particular matrix is a very important factor for improving the performance of the block LDPC code, so that finding the appropriate selection criteria for the partial matrix also becomes a very important factor.
Для того, чтобы облегчить способ расчета матрицы контроля четности блочного кода LDPC и способ кодирования блочного кода LDPC, предполагается, что матрица контроля четности, проиллюстрированная на фиг.7, составлена с помощью 6 частных матриц, как проиллюстрировано на фиг.8.In order to facilitate a method for calculating a parity check matrix of a block LDPC code and a method for encoding a block LDPC code, it is assumed that the parity check matrix illustrated in FIG. 7 is composed using 6 partial matrices, as illustrated in FIG.
Фиг.8 является схемой, иллюстрирующей матрицу контроля четности по фиг.7, которая разделена на 6 частных блоков. Ссылаясь на фиг.8, матрица контроля четности блочного кода LDPC, проиллюстрированная на фиг.7, разделяется на информационную часть 's', первую четную часть p1 и вторую четную часть p2. Информационная часть 's' представляет часть матрицы контроля четности, сопоставленной с действительным информационным словом во время процесса кодирования блочного кода LDPC, подобно информационной части, описанной в связи с фиг.7, и для удобства информационная часть 's' представляется посредством различных символов ссылки. Первая четная часть p1 и вторая четная часть p2 представляют часть матрицы контроля четности, сопоставленной с фактической четностью во время процесса кодирования блочного кода LDPC, подобно четной части, описанной в связи с фиг.7, и четная часть разделяется на две части.FIG. 8 is a diagram illustrating the parity matrix of FIG. 7, which is divided into 6 private blocks. Referring to FIG. 8, the parity check matrix of the block LDPC code illustrated in FIG. 7 is divided into the information part 's', the first even part p 1 and the second even part p 2 . The information part 's' represents the part of the parity check matrix associated with the actual information word during the encoding process of the block LDPC code, similar to the information part described in connection with Fig. 7, and for convenience, the information part 's' is represented by various reference characters. The first even part p 1 and the second even part p 2 represent the part of the parity check matrix compared with the actual parity during the LDPC block code coding process, like the even part described in connection with FIG. 7, and the even part is divided into two parts.
Частные матрицы 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.The partial matrices A and C correspond to the private blocks A (802) and C (804) of the information part 's', the partial matrices B and D correspond to the private blocks B (806) and D (808) of the first even part p 1 , and the partial matrices T and E correspond to the private blocks T (810) and E (812) of the second even part p 2 . Although the parity check matrix is divided into 7 private blocks in Fig. 8, it should be noted that since '0' is not a separate private block and the partial matrix T corresponding to the private side T (810) has a full lower triangular shape, the region where zero matrices based on diagonal division, represented by '0'. The process of simplifying the encoding method using the partial matrices of the information part 's', the first even part p 1 and the second even part p 2 will be described later with reference to FIG. 10.
Фиг.9 является схемой, иллюстрирующей транспонированную матрицу частной матрицы B, проиллюстрированной на фиг.8, частной матрицы E, частной матрицы T и обратной матрицы частной матрицы T в матрице контроля четности, проиллюстрированной на фиг.7. Ссылаясь на фиг.9, частная матрица BT представляет собой транспонированную матрицу частной матрицы B и частная матрица T-1 представляет обратную матрицу частной матрицы T. P(k1~k2) представляет .FIG. 9 is a diagram illustrating a transposed matrix of a partial matrix B illustrated in FIG. 8, a private matrix E, a private matrix T, and an inverse matrix of a private matrix T in the parity matrix illustrated in FIG. 7. Referring to FIG. 9, the partial matrix B T is the transposed matrix of the partial matrix B and the partial matrix T -1 represents the inverse matrix of the private matrix T. P (k1 ~ k2) represents .
Матрицы перестановок, проиллюстрированные на фиг.9, например, могут являться единичными матрицами. Как описано выше, если показатель степени матрицы перестановок, т.е. a1 является 0, то матрица перестановок будет являться единичной матрицей. К тому же, если показатель степени матрицы перестановок, т.е. a1 увеличивается на заранее определенную величину, то матрица перестановок циклически сдвигается на заранее определенную величину, из условия, что матрица будет являться единичной матрицей.The permutation matrices illustrated in FIG. 9, for example, can be unit matrices. As described above, if the exponent of the permutation matrix, i.e. a 1 is 0, then the matrix permutations will be the identity matrix. In addition, if the exponent of the permutation matrix, i.e. a 1 increases by a predetermined amount, then the permutation matrix is cyclically shifted by a predetermined amount, from the condition that the matrix will be the identity matrix.
Фиг.10 - это блок-схема последовательности операций способа, иллюстрирующая алгоритм для формирования матрицы контроля четности общего блочного кода LDPC. Тем не менее, до того, как дается описание фиг.10, следует заметить, что для формирования блочного кода LDPC размер кодового слова и скорость кодирования блочного кода LDPC, которые необходимо сформировать, должны быть определены и размер матрицы контроля четности должен определяться согласно определенному размеру кодового слова и скорости кодирования. Если размер кодового слова блочного кода LDPC представляется посредством N и скорость кодирования представляется посредством R, то размер матрицы контроля четности обращается в N(1-R)xN.10 is a flowchart illustrating an algorithm for generating a parity check matrix of a common block LDPC code. However, before the description of FIG. 10 is given, it should be noted that in order to generate the block LDPC code, the codeword size and the coding rate of the block LDPC code to be generated must be determined and the size of the parity check matrix must be determined according to the determined size code word and coding rate. If the codeword size of the block LDPC code is represented by N and the coding rate is represented by R, then the size of the parity matrix is converted to N (1-R) xN.
Фактически алгоритм для формирования матрицы контроля четности блочного кода LDPC, проиллюстрированного на фиг.10, выполняется только один раз, так как матрица контроля четности первоначально формируется, подходящей для ситуации в системе связи, и после этого используется сформированная матрица контроля четности.In fact, the algorithm for generating the parity check matrix of the block LDPC code illustrated in FIG. 10 is performed only once, since the parity check matrix is initially formed suitable for the situation in the communication system, and then the generated parity check matrix is used.
Ссылаясь на фиг.10 на этапе 1011, контроллер разделяет матрицу контроля четности с размером N(1-R)xN на сумму блоков pxq, включающих в себя p блоков по горизонтальной оси и q блоков по вертикальной оси. Так как каждый из блоков имеет размер NsxNs, то матрица контроля четности включает в себя Nsxp строк и Nsxq столбцов. На этапе 1013 контроллер классифицирует блоки pxq, разделенные матрицей контроля четности на информационную часть 's', первую четную часть p1 и вторую четную часть p2.Referring to FIG. 10 in
На этапе 1015 контроллер разделяет информационную часть 's' на ненулевые блоки или ненулевые матрицы и нулевые блоки или нулевые матрицы согласно распределению степеней для гарантирования достаточной производительности блочного кода LDPC. Так как распределение степеней для гарантирования достаточной производительности блочного кода LDPC описано выше, то подробное описание этого будет здесь пропущено.At 1015, the controller divides the information part 's' into non-zero blocks or non-zero matrices and zero blocks or zero matrices according to a power distribution to ensure sufficient performance of the block LDPC code. Since the degree distribution to ensure sufficient performance of the block LDPC code is described above, a detailed description of this will be omitted here.
На этапе 1017 контроллер определяет матрицы перестановок из условия, что минимальная длина блочного цикла должна быть максимизирована, как описано выше в частях ненулевой матрицы в блоках, имеющих низкую степень среди блоков, определенных согласно распределению степеней для гарантирования достаточной производительности блочного кода LDPC. Матрицы перестановок должны определяться, принимая во внимание блочные циклы информационной части 's', первую четную часть p1 и вторую четную часть p2.At 1017, the controller determines the matrices permutations from the condition that the minimum length of the block cycle should be maximized, as described above in parts of a nonzero matrix in blocks having a low degree among blocks determined according to the degree distribution to ensure sufficient performance of the block LDPC code. Matrices permutations should be determined, taking into account the block cycles of the information part 's', the first even part p 1 and the second even part p 2 .
На этапе 1019 контроллер случайно определяет матрицы перестановок в частях ненулевой матрицы в блоках, имеющих высокую степень среди блоков, определенных согласно распределению степеней, для гарантирования хорошей производительности блочного кода LDPC и затем заканчивает алгоритм. Даже когда матрицы перестановок определяются для использования в частях ненулевой матрицы в блоках, имеющих высокую степень, матрицы перестановок должны определяться из условия, что минимальная длина блочного цикла максимизируется. Матрицы перестановок определяются, принимая во внимание блочные циклы информационной части 's', первую четную часть p1 и вторую четную часть p2. Пример матриц перестановок, расположенных в информационной части 's' матрицы контроля четности, проиллюстрирован на фиг.9.At 1019, the controller randomly determines matrices permutations in parts of a nonzero matrix in blocks having a high degree among blocks determined according to the degree distribution to guarantee good performance of the block LDPC code and then terminates the algorithm. Even when the matrices permutations are determined for use in parts of a nonzero matrix in blocks with a high degree of matrix permutations should be determined from the condition that the minimum length of the block cycle is maximized. Matrices permutations are determined taking into account the block cycles of the information part 's', the first even part p 1 and the second even part p 2 . Matrix Example permutations located in the information part 's' of the parity check matrix are illustrated in FIG.
На этапе 1021 контроллер разделяет первую часть p1 и вторую четную часть p2 на 4 частных матрицы B, T, D и E. На этапе 1023 контроллер вводит ненулевые матрицы Py и перестановок в 2 частных блока среди частных блоков, включенных в частную матрицу B. Структура для ввода ненулевых матриц Py и перестановок в 2 частных блока среди частных блоков, составляющих частную матрицу B, описана выше со ссылкой на фиг.9.At
На этапе 1025 контроллер вводит единичные матрицы I в диагональные частные блоки частной матрицы T и вводит конкретные матрицы перестановок , ,..., в частные блоки (i, i+1)th под диагональные элементы частной матрицы T. Структура для ввода единичных матриц I в диагональные частные блоки частной матрицы T и ввода конкретных матриц перестановок , ,..., в частные (i, i+1)-тые блоки под диагональные элементы частной матрицы T описана выше со ссылкой на фиг.9.At 1025, the controller enters the identity matrices I into the diagonal quotient blocks of the quotient matrix T and enters specific permutation matrices , , ..., into the private blocks (i, i + 1) th under the diagonal elements of the private matrix T. The structure for introducing the identity matrices I into the diagonal private blocks of the private matrix T and entering the specific permutation matrices , , ..., into partial (i, i + 1) -th blocks for the diagonal elements of a particular matrix T is described above with reference to Fig.9.
На этапе 1027 контроллер вводит матрицу Px перестановок в частную матрицу D. На этапе 1029 контроллер вводит матрицу перестановок только в последний частный блок в частной матрице E и затем заканчивает алгоритм. Структура для ввода 2 матриц перестановок только в последний частный блок среди частных блоков, составляющих частную матрицу E, описана выше со ссылкой на фиг.9.At 1027, the controller enters the permutation matrix P x into the private matrix D. At 1029, the controller enters the matrix permutations only to the last private block in the private matrix E and then ends the algorithm. Structure for entering 2 matrices permutations only to the last private block among the private blocks making up the private matrix E is described above with reference to Fig.9.
Как описано выше, известно, что код LDPC вместе с турбокодом обладает серьезным увеличением производительности во время передачи данных на высокой скорости и эффективно исправляет ошибки, вызванные шумами, сформированными в канале передачи, посредством этого увеличивая надежность передачи данных. Тем не менее, код LDPC является невыгодным в терминах скорости кодирования. То есть, так как код LDPC имеет относительно высокую скорость кодирования, то он имеет ограничение в терминах скорости кодирования. Среди кодов LDPC, доступных в настоящее время, основные коды LDPC имеют скорость кодирования 1/2 и только неосновные коды LDPC имеют скорость кодирования 1/3. Ограничение в скорости кодирования оказывает неизбежное влияние на высокоскоростную высокопроизводительную передачу данных.As described above, it is known that the LDPC code together with the turbo code has a significant increase in performance during data transmission at high speed and effectively corrects errors caused by noise generated in the transmission channel, thereby increasing the reliability of data transmission. However, the LDPC code is disadvantageous in terms of coding rate. That is, since the LDPC code has a relatively high coding rate, it has a limitation in terms of coding rate. Among the currently available LDPC codes, the main LDPC codes have a 1/2 coding rate and only minor LDPC codes have a 1/3 coding rate. A limitation in coding rate has an inevitable effect on high-speed, high-performance data transmission.
Хотя распределение степеней, представляющих оптимальные характеристики, может быть вычислено, используя схему эволюции плотности, чтобы реализовать относительно низкую скорость кодирования для кода LDPC, является сложным реализовать код LDPC, имеющий распределение степеней, показывающих оптимальные характеристики из-за различных ограничений, таких как, структура цикла в графе множителей и аппаратная реализация.Although the distribution of degrees representing optimal characteristics can be calculated using a density evolution scheme to implement a relatively low coding rate for an LDPC code, it is difficult to implement an LDPC code having a distribution of degrees showing optimal characteristics due to various constraints, such as structure cycle in the graph of factors and hardware implementation.
Сущность изобретенияSUMMARY OF THE INVENTION
Целью настоящего изобретения, следовательно, является предоставление устройства и способа для кодирования и декодирования блочных кодов LDPC (разреженного контроля четности).An object of the present invention, therefore, is to provide an apparatus and method for encoding and decoding block LDPC (Sparse Parity Check) codes.
Другим аспектом настоящего изобретения является предоставление устройства и способа для кодирования и декодирования блочных кодов LDPC с минимизированной сложностью кодирования в системе мобильной связи.Another aspect of the present invention is the provision of a device and method for encoding and decoding block LDPC codes with minimized coding complexity in a mobile communication system.
В соответствии с одним аспектом настоящего изобретения предусматривается способ для кодирования блочного кода LDPC. Способ содержит этапы приема вектора информационного слова и кодирование вектора информационного слова в блочный код LDPC в соответствии с предопределенной порождающей матрицей.In accordance with one aspect of the present invention, there is provided a method for encoding a block LDPC code. The method comprises the steps of receiving an information word vector and encoding the information word vector into a block LDPC code in accordance with a predetermined generating matrix.
В соответствии с другим аспектом настоящего изобретения предусматривается устройство для кодирования блочного кода LDPC. Устройство содержит кодер для кодирования вектора информационного слова в блочном коде LDPC в соответствии с предопределенной порождающей матрицей; модулятор для модулирования блочного кода LDPC в символе модуляции, используя предопределенную схему модуляции; и передатчик для передачи символа модуляции.In accordance with another aspect of the present invention, there is provided an apparatus for encoding a block LDPC code. The device comprises an encoder for encoding an information word vector in a block LDPC code in accordance with a predetermined generator matrix; a modulator for modulating the block LDPC code in the modulation symbol using a predetermined modulation scheme; and a transmitter for transmitting a modulation symbol.
В соответствии с другим дополнительным аспектом настоящего изобретения предусматривается способ декодирования блочного кода LDPC. Способ содержит этапы: прием сигнала; декодирование принятого сигнала, используя матрицу контроля четности, предопределенную в соответствии с длиной блочного кода LDPC, который необходимо декодировать; и обнаружение блочного кода LDPC из декодированного принятого сигнала.In accordance with another further aspect of the present invention, there is provided a method for decoding a block LDPC code. The method comprises the steps of: receiving a signal; decoding the received signal using a parity matrix predetermined in accordance with the length of the block LDPC code to be decoded; and detecting the block LDPC code from the decoded received signal.
В соответствии с еще одним аспектом настоящего изобретения предусматривается устройство для декодирования блочного кода LDPC. Устройство содержит приемник для приема сигнала; и декодер для декодирования принятого сигнала, используя матрицу контроля четности, предопределенную в соответствии с длиной блочного кода LDPC, который необходимо декодировать; и обнаружение блочного кода LDPC из декодированного принятого сигнала.In accordance with another aspect of the present invention, there is provided an apparatus for decoding a block LDPC code. The device comprises a receiver for receiving a signal; and a decoder for decoding the received signal using the parity matrix predetermined in accordance with the length of the block LDPC code to be decoded; and detecting the block LDPC code from the decoded received signal.
Краткое описание чертежейBrief Description of the Drawings
Вышеуказанная и другие цели, признаки и преимущества настоящего изобретения станут более понятными из последующего подробного описания, рассматриваемого вместе с прилагаемыми чертежами, из которых:The above and other objectives, features and advantages of the present invention will become more apparent from the following detailed description, taken in conjunction with the accompanying drawings, of which:
Фиг.1 - это схема, иллюстрирующая приемопередатчик в традиционной системе мобильной связи;Figure 1 is a diagram illustrating a transceiver in a conventional mobile communication system;
Фиг.2 - это схема, иллюстрирующая матрицу контроля четности для стандартного кода LDPC (8, 2, 4);Figure 2 is a diagram illustrating a parity check matrix for a standard LDPC code (8, 2, 4);
Фиг.3 является схемой, иллюстрирующей граф множителей кода LDPC (8, 2, 4), проиллюстрированного на фиг.2;FIG. 3 is a diagram illustrating a factor graph of the LDPC code (8, 2, 4) illustrated in FIG. 2;
Фиг.4 - это схема, иллюстрирующая матрицу контроля четности стандартного блочного кода LDPC;4 is a diagram illustrating a parity check matrix of a standard block LDPC code;
Фиг.5 является схемой, иллюстрирующей матрицу P перестановок, проиллюстрированной на фиг.4;FIG. 5 is a diagram illustrating a permutation matrix P illustrated in FIG. 4;
Фиг.6 является схемой, иллюстрирующей структуру цикла блочного кода LDPC, матрица контроля четности которого включает в себя 4 частных матрицы;6 is a diagram illustrating a loop structure of a block LDPC code whose parity matrix includes 4 partial matrices;
Фиг.7 является схемой, иллюстрирующей матрицу контроля четности, имеющей форму, аналогичную той, которую имеет полная нижняя треугольная матрица;7 is a diagram illustrating a parity check matrix having a shape similar to that of a full lower triangular matrix;
Фиг.8 является схемой, иллюстрирующей матрицу контроля четности на фиг.7, которая разделена на 6 частных блоков;Fig. 8 is a diagram illustrating a parity check matrix in Fig. 7, which is divided into 6 private blocks;
Фиг.9 является схемой, иллюстрирующей транспонированную матрицу частной матрицы B, проиллюстрированной на фиг.8, частной матрицы E, частной матрицы T и обратной матрицы частной матрицы T;FIG. 9 is a diagram illustrating a transposed matrix of a partial matrix B illustrated in FIG. 8, a private matrix E, a private matrix T, and an inverse matrix of a private matrix T;
Фиг.10 - это блок-схема последовательности операций способа, иллюстрирующая алгоритм формирования матрицы контроля четности стандартного блочного кода LDPC;10 is a flowchart illustrating an algorithm for generating a parity check matrix of a standard block LDPC code;
Фиг.11 является схемой, иллюстрирующей транспонированную матрицу BT частной матрицы B, частную матрицу D и частную матрицу T среди 6 частных матриц, отделенных от матрицы контроля четности нерегулярного блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения;11 is a diagram illustrating a transposed matrix B T of a private matrix B, a private matrix D and a private matrix T among 6 private matrices separated from a parity matrix of an irregular block LDPC code in accordance with an embodiment of the present invention;
Фиг.12 является схемой, иллюстрирующей матрицу F, используемую для формирования матрицы H' в соответствии с вариантом осуществления настоящего изобретения;12 is a diagram illustrating a matrix F used to form a matrix H ′ in accordance with an embodiment of the present invention;
Фиг.13 является схемой, иллюстрирующей матрицу контроля четности нерегулярного блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения;13 is a diagram illustrating a parity check matrix of an irregular block LDPC code in accordance with an embodiment of the present invention;
Фиг.14 является схемой, иллюстрирующей порождающую матрицу нерегулярного блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения;Fig. 14 is a diagram illustrating a generator matrix of an irregular block LDPC code in accordance with an embodiment of the present invention;
Фиг.15 является схемой, иллюстрирующей процесс кодирования нерегулярного блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения;15 is a diagram illustrating a coding process of an irregular block LDPC code in accordance with an embodiment of the present invention;
Фиг.16 является схемой, иллюстрирующей внутреннюю структуру устройства кодирования нерегулярного блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения; и16 is a diagram illustrating an internal structure of an irregular block LDPC code encoding apparatus according to an embodiment of the present invention; and
Фиг.17 является схемой, иллюстрирующей внутреннюю структуру устройства декодирования нерегулярного блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения.17 is a diagram illustrating an internal structure of an irregular block LDPC code decoding apparatus according to an embodiment of the present invention.
Подробное описание предпочтительного варианта осуществленияDetailed Description of a Preferred Embodiment
Предпочтительные варианты осуществления настоящего изобретения далее подробно описаны в данном документе ниже со ссылкой на прилагаемые чертежи. В последующем описании подробное описание известных функций и конфигураций, включенных в материалы настоящей заявки, опущено для краткости.Preferred embodiments of the present invention are further described in detail herein below with reference to the accompanying drawings. In the following description, a detailed description of known functions and configurations included in the materials of this application is omitted for brevity.
Настоящее изобретение представляет устройство и способ кодирования и декодирования блочных кодов LDPC, обеспечивающих высокую производительность. То есть настоящее изобретение представляет устройство и способ кодирования и декодирования блочных кодов LDPC, в которых длина минимального цикла в графе множителей максимизируется, сложность кодирования минимизируется и распределение степеней в графе множителей имеет самое лучшее распределение степеней в единицу. Хотя в данном документе не проиллюстрировано отдельно, устройство для кодирования и декодирования блочных кодов LDPC в соответствии с настоящим изобретением может применяться к приемопередатчику, описанному со ссылкой на фиг.1.The present invention provides an apparatus and method for encoding and decoding block LDPC codes providing high performance. That is, the present invention provides an apparatus and method for encoding and decoding block LDPC codes in which the minimum cycle length in the multiplier graph is maximized, the coding complexity is minimized, and the degree distribution in the multiplier graph has the best degree distribution per unit. Although not specifically illustrated herein, an apparatus for encoding and decoding block LDPC codes in accordance with the present invention can be applied to the transceiver described with reference to FIG. 1.
Фиг.11 является схемой, иллюстрирующей транспонированную матрицу BT частной матрицы B, частную матрицу D и частную матрицу T из числа 6 частных матриц, отделенных от матрицы контроля четности блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения.11 is a diagram illustrating a transposed matrix B T of a private matrix B, a private matrix D and a private matrix T of among 6 private matrices separated from the parity check matrix of a block LDPC code in accordance with an embodiment of the present invention.
До того, как дается описание фиг.11, следует заметить, что матрица контроля четности имеет структуру частных блоков, описанную в разделе предыдущего уровня техники со ссылкой на фиг.8. То есть матрица контроля четности блочного кода LDPC разделяется на частные блоки для информационной части 's', первой четной части pl и второй четной части p2. Информационная часть 's' представляет часть матрицы контроля четности, сопоставленной с фактическим информационным словом во время процесса кодирования блочного кода LDPC. Первая четная часть p1 и вторая четная часть p2 представляют части матрицы контроля четности, сопоставленные с фактической четностью во время процесса кодирования блочного кода LDPC.Before the description of FIG. 11 is given, it should be noted that the parity check matrix has a private block structure described in the section of the prior art with reference to FIG. That is, the parity check matrix of the block LDPC code is divided into private blocks for the information part 's', the first even part p l and the second even part p 2 . The information part 's' represents the part of the parity matrix mapped to the actual information word during the coding process of the block LDPC code. The first even part p 1 and the second even part p 2 represent portions of the parity matrix mapped to the actual parity during the coding process of the block LDPC code.
Как проиллюстрировано на фиг.8, информационная часть 's' разделяется на частный блок A и частный блок C, первая четная часть p1 разделятся на частный блок B и частный блок D, вторая четная часть p2 разделяется на частный блок T и частный блок E. Частные матрицы A и C соответствуют частным блокам A и C, частные матрицы B и D соответствуют частным блокам B и D, частные матрицы T и E соответствуют частным блокам T и E.As illustrated in FIG. 8, the information part 's' is divided into the private block A and the private block C, the first even part p 1 is divided into the private block B and the private block D, the second even part p 2 is divided into the private block T and the private block E. The partial matrices A and C correspond to the private blocks A and C, the partial matrices B and D correspond to the private blocks B and D, the partial matrices T and E correspond to the private blocks T and E.
Ссылаясь на фиг.11, частная матрица B включает в себя две единичные матрицы перестановок и нулевые матрицы. Матрица P перестановок является квадратной матрицей с размером NsxNs, в которой вес каждой строки Ns равен 1 и вес каждого столбца равен также 1. Хотя размер матрицы P перестановок выражается как NsxNs, размер матрицы P перестановок, которая является квадратной матрицей, будет выражаться как Ns для удобства.Referring to FIG. 11, the partial matrix B includes two identity matrices permutations and zero matrices. The permutation matrix P is a square matrix with size NsxNs, in which the weight of each row N s is 1 and the weight of each column is also 1. Although the size of the permutation matrix P is expressed as N s xN s , the size of the permutation matrix P, which is a square matrix, will be expressed as N s for convenience.
В вышеприведенном описании, данном со ссылкой на фиг.9, частная матрица B включает в себя матрицы и Px перестановок и нулевые матрицы. В случае стандартного блочного кода LDPC, чтобы удовлетворять равенству ET-1B + D = I, матрицы и Px перестановок, отличные от нулевых матриц частной матрицы B, должны быть зафиксированы в положении, как проиллюстрировано на фиг.9, и матрицы и Px перестановок являются отличными друг от друга. Тем не менее, в настоящем изобретении две матрицы перестановок, отличные от нулевых матриц частной матрицы B, не должны быть зафиксированы в положении, и две матрицы перестановок обладают переменным положением и равны друг другу. Частная матрица T имеет единичные матрицы I в двухдиагональной структуре и нулевые матрицы. Частная матрица D включает в себя частную матрицу Px.In the above description given with reference to FIG. 9, the partial matrix B includes matrices and P x permutations and zero matrices. In the case of the standard block LDPC code, in order to satisfy the equality ET -1 B + D = I, the matrices and P x permutations other than the zero matrices of the partial matrix B, must be fixed in position, as illustrated in FIG. 9, and the matrices and P x permutations are distinct from each other. However, in the present invention, two matrices permutations other than the zero matrices of the partial matrix B should not be fixed in position, and two permutation matrices have a variable position and are equal to each other. The partial matrix T has unit matrices I in a bi-diagonal structure and zero matrices. The partial matrix D includes the partial matrix P x .
На фиг.11 верхние индексы ai и x матрицы P перестановок представляют степени матрицы P перестановок.11, the superscripts a i and x of the permutation matrix P represent the degrees of the permutation matrix P.
Хотя две матрицы перестановок сопоставляются с транспонированной матрицей BT частной матрицы B и матрица Px перестановок сопоставляется с частной матрицей D на фиг.11 в качестве примера, тот же самый результат может быть достигнут, если матрицы перестановок сопоставляются только с двумя матрицами перестановок среди всего трех матриц перестановок, будучи сопоставленными с транспонированной матрицей BT частной матрицы B и частной матрицей D. То есть, хотя матрица перестановок сопоставляется с любой из двух матриц перестановок, существующих в транспонированной матрице BT частной матрицы B, и матрица перестановок сопоставляется с матрицей перестановок, существующей в частной матрице D, то может быть достигнут тот же самый результат.Although two matrices permutations are compared with the transposed matrix B T of the partial matrix B and the permutation matrix P x is compared with the partial matrix D in FIG. 11 as an example, the same result can be achieved if the matrices permutations are mapped to only two permutation matrices among only three permutation matrices, being mapped to the transposed matrix B T of the partial matrix B and the partial matrix D. That is, although the matrix permutations is mapped to either of the two permutation matrices existing in the transposed matrix B T of the private matrix B, and the matrix permutations matched with the permutation matrix existing in the partial matrix D, then the same result can be achieved.
Альтернативно, тот же самый эффект может быть достигнут, даже если матрицы перестановок сопоставляются с двумя из двух матриц перестановок, существующих в транспонированной матрице BT частной матрицы B и матрице перестановок, существующей в частной матрице D.Alternatively, the same effect can be achieved even if the matrices permutations are mapped to two of the two permutation matrices existing in the transposed matrix B T of the private matrix B and the permutation matrix existing in the private matrix D.
Кроме того, на фиг.11 матрица перестановок может быть единичной матрицей, так как если степень матрицы перестановок равна a1=0, то матрица перестановок становится единичной матрицей, как описано выше. К тому же, показатель a1 матрицы перестановок увеличивается на предопределенную величину, матрица перестановок циклически сдвигается на предопределенную величину, так, что матрица перестановок будет являться единичной матрицей.In addition, in FIG. 11, the matrix permutations can be the identity matrix, since if the degree of the permutation matrix is a 1 = 0, then the matrix permutations becomes the identity matrix, as described above. In addition, the exponent a 1 of the permutation matrix is increased by a predetermined value, the permutation matrix is cyclically shifted by a predetermined value, so that the matrix permutations will be the identity matrix.
В случае стандартного блочного кода LDPC нетронутая матрица контроля четности, используемая в декодере, используется как порождающая матрица для кодера. Тем не менее, в случае блочного кода LDPC, предложенного в настоящем изобретении, матрица контроля четности, используемая в декодере, модифицируется до использования ее в качестве порождающей матрицы для кодера, таким образом минимизируя сложность кодирования блочного кода LDPC.In the case of the standard block LDPC code, the pristine parity matrix used in the decoder is used as a generator matrix for the encoder. However, in the case of the block LDPC code proposed in the present invention, the parity matrix used in the decoder is modified to be used as a generator matrix for the encoder, thereby minimizing the coding complexity of the block LDPC code.
Матрица контроля четности, представленная посредством H, может выражаться, как показано в уравнении (5).The parity matrix represented by H may be expressed as shown in equation (5).
В уравнении (5) H1 обозначает матрицу, сопоставленную с информационным словом, т.е. матрицу, сопоставленную с информационной частью 's' в матрице H контроля четности, и H2 обозначает матрицу, сопоставленную с четностью, т.е. матрицу, сопоставленную с первой четной частью p1 и второй четной частью p2 в матрице H контроля четности. То есть H1 представляет матрицу, включающую в себя частную матрицу A и частную матрицу C, и H2 представляет матрицу, включающую частную матрицу B, частную матрицу T, частную матрицу D и частную матрицу E. Тем не менее, так как схема кодирования, предложенная в настоящем изобретении, не основывается на методике Ричардсона-Урбанке, то предложенная схема кодирования не требует разделения матрицы контроля четности блочного кода LDPC на шесть частных матриц, как в методике Ричардсона-Урбанке. Вместо этого предложенная схема разделяет матрицу контроля четности на матрицу H1, сопоставленную с информационной частью, и матрицы H21 и H22, сопоставленные с первой четной частью и второй четной частью.In equation (5), H 1 denotes a matrix mapped to an information word, i.e. a matrix mapped to the information part 's' in the parity check matrix H, and H 2 denotes a matrix mapped to parity, i.e. a matrix mapped to the first even part p 1 and the second even part p 2 in the parity check matrix H. That is, H 1 represents a matrix including a private matrix A and a private matrix C, and H 2 represents a matrix including a private matrix B, a private matrix T, a private matrix D and a private matrix E. However, since the encoding scheme, Since the present invention is not based on the Richardson-Urbank technique, the proposed coding scheme does not require dividing the parity check matrix of the LDPC block code into six partial matrices, as in the Richardson-Urbank technique. Instead, the proposed scheme divides the parity check matrix into a matrix H 1 mapped to the information part and matrices H 21 and H 22 mapped to the first even part and the second even part.
Порождающая матрица, предусмотренная модификацией матрицы H контроля четности, используемой в кодере, представляется посредством H', и порождающая матрица H' может выражаться уравнением (6), используя новую матрицу F.The generator matrix provided for by the modification of the parity check matrix H used in the encoder is represented by H ′, and the generator matrix H ′ can be expressed by equation (6) using the new matrix F.
В уравнении (6) F обозначает матрицу с размером (N-K)x(N-K), N обозначает размер блока или длину кодового слова кода и K обозначает длину информационного слова. Матрица F проиллюстрирована на фиг.12 и будет описана позже. Аналогично матрице H контроля четности, описанной со ссылкой на уравнение (5), порождающая матрица H' делится на H1', сопоставленную с информационным словом, и H2', сопоставленную с четностью, и H2' делится на H21', сопоставленную с первой четностью, и H22', сопоставленную со второй четностью.In equation (6), F denotes a matrix with a size of (NK) x (NK), N denotes a block size or a codeword length of a code, and K denotes an information word length. Matrix F is illustrated in FIG. 12 and will be described later. Similarly to the parity check matrix H described with reference to equation (5), the generating matrix H ′ is divided by H 1 ′ mapped to the information word, and H 2 ′ mapped with parity and H 2 ′ is divided by H 21 ′ mapped with the first parity, and H 22 ', compared with the second parity.
В порождающей матрице H', показанной в уравнении (6), степени всех ненулевых матриц перестановок, соответствующие последнему увеличению блока на am посредством действия по модулю Ns, H22', сопоставленная со второй четностью, имеет единичные матрицы в двухдиагональной структуре на каждый блок, и все остающиеся матрицы, за исключением единичных матриц, включают в себя нулевые матрицы.In the generator matrix H 'shown in equation (6), the degrees of all nonzero permutation matrices corresponding to the last block increase by a m by the modulo action N s , H 22 ', compared with the second parity, have unit matrices in a bi-diagonal structure for each block, and all remaining matrices, with the exception of unit matrices, include zero matrices.
Сейчас будет сделано описание процесса кодирования блочного кода LDPC, используя порождающую матрицу H'.A description will now be made of the coding process of the block LDPC code using the generator matrix H ′.
Вектор c кодового слова блочного кода LDPC может разделяться на вектор s информационного слова, первый вектор четности и второй вектор четности. Как описано выше, первый вектор четности сопоставляется с частными блоками B и D и второй вектор четности сопоставляется с частными блоками T и E.The LDPC block code codeword vector c may be divided into the information word vector s , the first vector parity and second vector parity. As described above, the first vector parity is mapped to private blocks B and D and the second vector parity is mapped to private blocks T and E.
Кодирование первого вектора четности достигается применением уравнения (7) и уравнения (8), приведенными ниже. Так как Hc T = H'c T = 0, то зависимость уравнения (7) выполняетсяThe coding of the first vector parity is achieved by applying equation (7) and equation (8) below. Since H c T = H ' c T = 0 , the dependence of equation (7) is satisfied
В уравнении (7) обозначает матрицу NsxK, предусмотренную суммированием строк блоков по всем строкам в каждом блоке в H'. Когда вычисление матрицы, основанное на суммировании по каждому блоку, применяется к матрице контроля четности, описанной со ссылкой на фиг.4, результирующая матрица становится матрицей NsxqN, и каждая матрица NsxNs становится матрицей, заданной суммированием всех матриц перестановок, соответствующих каждому столбцу блока. Например, первая матрица NsxNs имеет значение на фиг.4.In equation (7) denotes the matrix N s xK provided by summing the rows of blocks over all rows in each block in H '. When the matrix calculation based on summation over each block is applied to the parity matrix described with reference to FIG. 4, the resulting matrix becomes the matrix N s xqN, and each matrix N s xN s becomes the matrix given by the summation of all permutation matrices corresponding to each column of the block. For example, the first matrix N s xN s has the value figure 4.
Аналогично , обозначает матрицу NsxNs, обеспеченную суммированием всех строк каждого блока в H21'. Подобным образом обозначает матрицу Nsx(N-K-Ns), обеспеченную суммированием всех строк каждого блока в H22'.Similarly , denotes the matrix N s xN s provided by summing all the rows of each block in H 21 '. In a similar way denotes the matrix N s x (NKN s ) provided by summing all the rows of each block in H 22 ′.
Выражение "суммирование строк в матрице в каждом блоке" относится к суммированию строк в частных блоках, включенных в соответствующую матрицу таким способом, что 1-тые строки в частных блоках складываются исключительно друг с другом. Что касается расчета в уравнении (7), так как H22' имеет двухдиагональную структуру аналогично частной матрице T, проиллюстрированной на фиг.11, матрица, полученная суммированием строк каждого блока, становится нулевой матрицей Nsx(N-K-Ns), в которой все элементы равны 0. Так как становится нулевой матрицей Nsx(N-K-Ns), то элемент удаляется из уравнения (7), следовательно, матрица H21' может выражаться в уравнении (8) в соответствии со свойством частной матрицы B, описанной со ссылкой на фиг.11The expression "summation of rows in a matrix in each block" refers to the summation of rows in private blocks included in the corresponding matrix in such a way that the first rows in private blocks are added exclusively to each other. Regarding the calculation in equation (7), since H 22 'has a two-diagonal structure similar to the partial matrix T illustrated in FIG. 11, the matrix obtained by summing the rows of each block becomes the zero matrix N s x (NKN s ), in which all elements are 0 . As becomes the zero matrix N s x (NKN s ), then the element is removed from equation (7), therefore, the matrix H 21 ′ can be expressed in equation (8) in accordance with the property of the partial matrix B described with reference to FIG. 11
В уравнении (8) является вектором, полученным циклическим сдвигом на x, и представляет транспонированный вектор первого вектора четности.In equation (8) is a cyclic shift vector on x and represents the transposed vector of the first vector parity.
Второй вектор p2 четности может быть легко вычислен обратной подстановкой, так как H22' имеет двухдиагональную структуру. Так как блочный код LDPC, отличный от кода RA, имеет блочную структуру, он может выполнять обратную подстановку в каждом блоке, увеличивая скорость вычисления второго вектора четности.The second parity vector p 2 can be easily calculated by reverse substitution, since H 22 'has a bi-diagonal structure. Since the block LDPC code, different from the RA code, has a block structure, it can perform backward substitution in each block, increasing the speed of computing the second vector parity.
Более конкретно, если предполагается, что код RA имеет вектор p=(p1, p2,..., pN-K) четности, то P2 может вычисляться после того, как определяется p1. Подобным образом p3 может вычисляться после того, как определяется p2. Следовательно, биты (N-K) четности могут вычисляться последовательно.More specifically, if it is assumed that the RA code has a parity vector p = (p 1 , p 2 , ..., p NK ), then P 2 can be calculated after p 1 is determined. Similarly, p 3 can be calculated after p 2 is determined. Therefore, parity bits (NK) can be computed sequentially.
Тем не менее, в процессе кодирования блочного кода LDPC, как предложено в настоящем изобретении, так как частный блок, сопоставленный с четностью порождающей матрицы H', имеет двухдиагональную структуру, то p1 по pNs могут вычисляться одновременно, и следующие Ns бит могут быть вычислены одновременно, используя Ns бит с P1 по pNs, вычисленных на предыдущем этапе. Следовательно, процесс кодирования блочного кода LDPC, предложенный в настоящем изобретении, в Ns раз быстрее, чем процесс кодирования кода RA.However, in the encoding process of the block LDPC code, as proposed in the present invention, since the private block mapped to the parity of the generator matrix H ′ has a two-diagonal structure, p 1 by p Ns can be calculated simultaneously, and the next N s bits can be computed simultaneously using N s bits from P 1 to p Ns calculated in the previous step. Therefore, the LDPC block code encoding process proposed in the present invention is N s times faster than the RA code encoding process.
Фиг.13 является схемой, иллюстрирующей матрицу контроля четности блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения. Матрица контроля четности, проиллюстрированная на фиг.13, представляет матрицу контроля четности блочного кода LDPC со скоростью кодирования 1/2 и включает 12 x 24 блоков.13 is a diagram illustrating a parity check matrix of a block LDPC code in accordance with an embodiment of the present invention. The parity check matrix illustrated in FIG. 13 represents a parity check matrix of a block LDPC code with a 1/2 coding rate and includes 12 x 24 blocks.
На фиг.13 цифры, записанные в блоках, представляют степени матриц перестановок, расположенных в соответствующих блоках, и 'I' представляет единичные матрицы, расположенные в соответствующих блоках. Величина степени матрицы перестановки для матрицы контроля четности блочного кода LDPC с размером блока Ns может быть вычислена выполнением действия по модулю Ns над каждым показателем степени матриц перестановок, расположенных в соответствующих блоках. Если показатель соответствующего блока выше, чем размер Ns соответствующего блока, то это означает, что нужно выполнить действие по модулю Ns.13, the numbers recorded in the blocks represent the degrees of the permutation matrices located in the respective blocks, and 'I' represents the identity matrices located in the corresponding blocks. The degree of degree of the permutation matrix for the parity check matrix of the block LDPC code with the block size N s can be calculated by performing the modulo N s action on each exponent of the degree of permutation matrices located in the corresponding blocks. If the indicator of the corresponding block is higher than the size N s of the corresponding block, then this means that you need to perform the action modulo N s .
В общем, показатель должен быть меньше, чем Ns. Тем не менее, когда та же самая матрица контроля четности в общем используется и для большого, и для малого размера блоков, то значение показателя, большее, чем Ns, включается в матрицу случайно. В этом случае многие матрицы контроля четности необходимы в соответствии со скоростью кодирования и размерами блоков, увеличивая требуемую емкость памяти. Если величина, достигнутая выполнением действия по модулю Ns над показателем степени матрицы перестановок, равна 0, то матрица перестановок, расположенная в соответствующем блоке, становится единичной матрицей.In general, the indicator should be less than N s . However, when the same parity matrix is generally used for both large and small block sizes, an indicator value greater than N s is included in the matrix randomly. In this case, many parity matrices are necessary in accordance with the coding rate and block sizes, increasing the required memory capacity. If the value achieved by performing the action modulo N s on the exponent of the permutation matrix is 0, then the permutation matrix located in the corresponding block becomes the identity matrix.
Фиг.14 является схемой, иллюстрирующей порождающую матрицу блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения. Тем не менее, до того, как задано описание фиг.14, следует заметить, что порождающая матрица H' является матрицей, сформированной умножением матрицы H контроля четности на матрицу F, как описано выше. Матрица F будет описана со ссылкой на Фиг.12.14 is a diagram illustrating a block matrix LDPC matrix generator in accordance with an embodiment of the present invention. However, before the description of FIG. 14 is given, it should be noted that the generator matrix H ′ is a matrix formed by multiplying the parity check matrix H by the matrix F, as described above. Matrix F will be described with reference to FIG.
Фиг.12 является схемой, иллюстрирующей матрицу F, используемую для формирования матрицы H' в соответствии с вариантом осуществления настоящего изобретения. Ссылаясь на фиг.12, в матрице F единичные матрицы I располагаются вдоль линии диагонали и матрица перестановок располагается в последнем элементе линии диагонали. Матрица перестановок является матрицей перестановок, имеющей отрицательный показатель степени для матрицы перестановок, расположенной в последней части матрицы E перестановок матрицы контроля четности. На фиг.12 предполагается, что am=1.12 is a diagram illustrating a matrix F used to form a matrix H ′ in accordance with an embodiment of the present invention. Referring to FIG. 12, in the matrix F, the identity matrices I are located along the diagonal line and the matrix permutations are located in the last element of the diagonal line. Matrix permutation is a permutation matrix having a negative exponent for the matrix permutations located in the last part of the matrix E permutations of the parity matrix. 12, it is assumed that a m = 1.
Ссылаясь на фиг.14, порождающая матрица H' формируется умножением матрицы H контроля четности на матрицу F, как описано выше. Тем не менее, так как матрица перестановок, расположенная в последней части матрицы F, является P-1, как описано выше, то порождающая матрица H' сравнивается с матрицей H контроля четности, и только матрицы, расположенные в последней строке блока порождающей матрицы H', имеют значения степеней меньше на 1 по сравнению со степенями матрицы H перестановок.Referring to FIG. 14, a generator matrix H ′ is formed by multiplying the parity check matrix H by a matrix F, as described above. However, since the matrix permutations located in the last part of the matrix F is P -1 , as described above, then the generator matrix H 'is compared with the parity control matrix H, and only the matrices located in the last row of the block of the generator matrix H' have degrees less than 1 compared with powers of the permutation matrix H.
Фиг.15 является блок-схемой операций способа, иллюстрирующей процесс кодирования блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения. Ссылаясь на фиг.15 на этапе 1511, контроллер принимает вектор s информационного слова для кодирования в блочный код LDPC. В данном документе предполагается, что вектор s информационного слова имеет размер, соответствующий скорости кодирования для кодирования в блочный код LDPC, и размер вектора s информационного слова равен k.FIG. 15 is a flowchart illustrating a process for encoding a block LDPC code in accordance with an embodiment of the present invention. Referring to FIG. 15, in
На этапе 1513 контроллер вычисляет первый вектор четности, используя матрицу, сформированную суммированием всех строк в H1' порождающей матрицы H' в каждом блоке, и транспонированный вектор принятого вектора s информационного слова. Матрица, сформированная суммированием всех строк в H1' порождающей матрицы H' имеет размер NsxK, и первый вектор четности вычисляется, используя уравнение (8).At
На этапе 1515, контроллер вычисляет второй вектор четности обратной подстановкой, используя вектор s информационного слова и первый вектор четности. На этапе 1517 контроллер формирует вектор c кодового слова, используя вектор s информационного слова, первый вектор четности и второй вектор четности, и передает сформированный вектор c кодового слова.At
Фиг.16 является блок-схемой, иллюстрирующей внутреннюю структуру устройства кодирования блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения. Ссылаясь на фиг.16, устройство для кодирования блочного кода LDPC включает в себя умножитель 1611 матрицы, запоминающее устройство 1613, циклическое сдвигающее устройство 1615, процессор 1617 обратной подстановки и переключатели 1619, 1621 и 1623.16 is a block diagram illustrating an internal structure of an LDPC block code encoding apparatus according to an embodiment of the present invention. Referring to FIG. 16, an apparatus for encoding a block LDPC code includes a
Входной сигнал, т.е. вектор s информационного слова длиной k, который необходимо кодировать в блочный код LDPC, используется переключателем 1619, матричным умножителем 1611 и процессором 1617 обратной подстановки. Матричный умножитель 1611 умножает вектор s информационного слова на матрицу NsxK, сформированную суммированием всех строк в H1' порождающей матрицы H', сохраненных в запоминающем устройстве 1613 на каждый блок, и выводит результат на циклическое сдвигающее устройство 1615. Вывод сигнала от матричного умножителя 1611 является вектором , полученным циклическим сдвигом транспонированного вектора первого вектора четности на x.Input signal i.e. an information word vector s of length k, which must be encoded into a block LDPC code, is used by
Циклическое сдвигающее устройство 1615 вычисляет транспонированный вектор первого вектора четности обратным циклическим сдвигом сигнала, выводимого от матричного умножителя 1611 на x, вычисляет первый вектор четности, используя транспонированный вектор первого вектора четности, и выводит результат на процессор 1617 обратной подстановки и переключатель 1621. Процессор 1617 обратной подстановки вычисляет второй вектор четности обратной заменой, используя вектор s информационного слова и первый вектор четности, выведенный из циклического сдвигающего устройства 1615, и выводит результат на переключатель 1623.The
Каждый из переключателей 1619, 1621 и 1623 включается только в свой интервал времени передачи, чтобы передать свой ассоциативно связанный сигнал. То есть переключатель 1619 включается во время передачи вектора s информационного слова, переключатель 1621 включается во время передачи первого вектора P 1 четной части и переключатель 1623 включается во время передачи второго вектора P 2 четной части.Each of the
Все коды серии LDPC могут декодироваться в графе множителей, используя алгоритм частного произведения (sub-product). Схема декодирования кода LDPC может быть примерно разделена на схему двунаправленной передачи и схему передачи потока. Когда операция декодирования выполняется, используя схему двунаправленной передачи, каждый контрольный узел имеет узловой процессор, таким образом, увеличивая сложность декодирования пропорционально числу контрольных узлов. Тем не менее, так как все контрольные узлы одновременно обновляются, то скорость декодирования резко возрастает.All codes of the LDPC series can be decoded in the multiplier graph using the sub-product algorithm. The LDPC code decoding scheme can be roughly divided into a bidirectional transmission scheme and a stream transmission scheme. When the decoding operation is performed using the bidirectional transmission scheme, each control node has a node processor, thereby increasing the decoding complexity in proportion to the number of control nodes. However, since all control nodes are updated simultaneously, the decoding speed increases dramatically.
Отличная от этого, схема передачи потока имеет единственный узловой процессор и узловой процессор обновляет информацию, проходя через все узлы в графе множителей. Следовательно, схема передачи потока ниже по сложности декодирования, но увеличение в размере матрицы контроля четности, т.е. увеличение количества узлов вызывает снижение в скорости декодирования. Тем не менее, матрица контроля четности формируется на каждый блок аналогично блочному коду LDPC, предложенному в настоящем изобретении, затем количество узловых процессоров, равное количеству блоков, составляющих матрицу контроля четности, используется во время декодирования. В этом случае возможно реализовать декодер, который менее сложен в декодировании, чем схема двунаправленной передачи, и с более высокой скоростью декодирования, чем схема передачи потока.Different from this, the flow transmission scheme has a single nodal processor and the nodal processor updates information passing through all nodes in the multiplier graph. Therefore, the stream transmission scheme is lower in decoding complexity, but an increase in the size of the parity check matrix, i.e. an increase in the number of nodes causes a decrease in decoding speed. However, a parity check matrix is generated per block like the block LDPC code proposed in the present invention, then the number of node processors equal to the number of blocks making up the parity check matrix is used during decoding. In this case, it is possible to implement a decoder that is less complicated to decode than the bidirectional transmission scheme, and with a higher decoding speed than the stream transmission scheme.
Фиг.17 является блок-схемой, иллюстрирующей внутреннюю структуру устройства декодирования для блочного кода LDPC в соответствии с вариантом осуществления настоящего изобретения. Ссылаясь на фиг.17, устройство декодирования для блочного кода LDPC включает в себя контроллер 1710 блоков, переменную узловую часть 1700, сумматор 1715, обращенный перемежитель 1717, перемежитель 1719, контроллер 1721, запоминающее устройство 1723, сумматор 1725, контрольную узловую часть 1750 и блок 1729 жесткого выбора решения. Переменная узловая часть 1700 включает в себя переменный узловой декодер 1711 и переключатели 1713 и 1714, и контрольная узловая часть включает в себя контрольный узловой декодер 1727.17 is a block diagram illustrating an internal structure of a decoding apparatus for a block LDPC code in accordance with an embodiment of the present invention. Referring to FIG. 17, a decoding apparatus for a block LDPC code includes a
Сигнал, принятый по радиоканалу, является входным для контроллера 1710 блоков. Контроллер 1710 блоков определяет размер блоков принятого сигнала. Если существует часть информационного слова, прокалываемая в устройстве кодирования, соответствующем устройству декодирования, то контроллер 1710 блоков вставляет '0' в проколотую часть информационного слова, чтобы регулировать размер полного блока, и выводит результирующий сигнал на переменный узловой декодер 1711. Переменный узловой декодер 1711 вычисляет значения вероятности вывода сигнала контроллера 1710 блоков, обновляет вычисленные значения вероятности и выводит обновленные значения вероятности на переключатели 1713 и 1714. Переменный узловой декодер 1711 соединяет переменные узлы в соответствии с матрицей контроля четности, предварительно заданной в устройстве декодирования для блочного кода LDPC, и выполняет операцию обновления над столькими входными и выходными значениями, как и число единиц, соединенных с переменными узлами. Число единиц, соединенных с переменными узлами, равно весу каждого из столбцов, составляющих матрицу контроля четности. Внутреннее функционирование переменного узлового декодера 1711 отличается в соответствии с весом каждого из столбцов, составляющих матрицу контроля четности. За исключением ситуации, когда включен переключатель 1713, переключатель 1714 включается для вывода выходного сигнала переменного узлового декодера 1711 к сумматору 1715.The signal received over the air is the input to the
Сумматор 1715 принимает выход сигнала от переменного узлового декодера 1711 и выводит сигнал перемежителя 1719 в предыдущем итеративном процессе декодирования, вычитает выходной сигнал перемежителя 1719 в предыдущем итеративном процессе декодирования из выходного сигнала переменного узлового декодера 1711 и выводит итог вычитания на обращенный перемежитель 1717. Если процесс декодирования является первоначальным процессом декодирования, следует полагать, что выходной сигнал перемежителя 1719 равен 0.The
Обращенный перемежитель 1717 устраняет перемежение выходного сигнала от сумматора 1715 согласно предопределенной схеме перемежения и выводит сигнал с устраненным перемежением на сумматор 1725 и контрольный узловой декодер 1727. Обращенный перемежитель 1717 имеет внутреннее устрйство, соответствующее матрице контроля четности, так как выходное значение для входного значения перемежителя 1719, соответствующего обращенному перемежителю 1717, является различным в соответствии с положением элементов, имеющих значение 1 в матрице контроля четности.Reversed interleaver 1717 eliminates the interleaving of the output signal from the
Сумматор 1725 принимает выходной сигнал контрольного узлового декодера 1711 в предыдущем итеративном процессе декодирования и выходной сигнал обращенного перемежителя 1717, вычитает выходной сигнал обращенного перемежителя 1717 из выходного сигнала контрольного узлового декодера 1727 в предыдущем процессе итеративного декодирования и выводит итог вычитания на перемежитель 1719. Контрольный узловой декодер 1727 соединяет контрольные узлы в соответствии с матрицей контроля четности, предварительно заданной в устройстве декодирования для блочного кода LDPC, и выполняет операцию обновления над столькими входными и выходными значениями, сколько число единиц, соединенных с контрольными узлами. Число единиц, соединенных с контрольными узлами, равно весу каждой строки, включенной в матрицу контроля четности. Следовательно, внутренняя работа контрольного узлового декодера 1727 отличается в соответствии с весом каждой строки, составляющей матрицу контроля четности.The
Перемежитель 1719 под управлением контроллера 1721 перемежает выходной сигнал от сумматора 1725 в соответствии с предопределенной схемой перемежения и выводит перемеженный сигнал на сумматор 1715 и переменный узловой декодер 1711. Контроллер 1721 считывает информацию, относящуюся к перемежению, сохраненную в запоминающем устройстве 1723, и управляет схемой перемежения перемежителя 1719 согласно считываемой информации. Аналогично, если процесс декодирования является первоначальным процессом декодирования, то следует принять во внимание, что выходной сигнал обращенного перемежителя 1717 равен 0.An
Итеративно выполняя вышеупомянутые процессы, устройство декодирования выполняет надежное безошибочное декодирование.By iteratively performing the above processes, the decoding apparatus performs reliable error-free decoding.
После того, как итеративное декодирование выполняется предопределенное число раз, переключатель 1714 выключает соединение между переменным узловым декодером 1711 и сумматором 1715, и переключатели 1713 включают соединение между переменным узловым декодером 1711 и блоком 1729 принятия жесткого решения, чтобы обеспечить выход сигнала от переменного узлового декодера 1711 на блок 1729 жесткого принятия решения. Блок 1729 выбора жесткого решения применяет жесткое решение над выходным сигналом из переменного узлового декодера 1711 и выводит итог жесткого решения, и выходная величина блока 1729 выбора жесткого решения становится окончательно декодированной величиной.After iterative decoding is performed a predetermined number of times, the
Как может быть принято во внимание из вышеуказанного описания, настоящее изобретение предлагает блочный код LDPC, минимальная длина цикла которого максимизируется в системе мобильной связи, таким образом максимизируя возможность исправления ошибок. Следовательно, устройство декодирования может правильно декодировать принятые данные, используя блочный код LDPC, обеспечивая надежное декодирование.As can be taken into account from the above description, the present invention provides a block LDPC code whose minimum cycle length is maximized in a mobile communication system, thereby maximizing error correction capability. Therefore, the decoding apparatus can correctly decode the received data using the block LDPC code, providing reliable decoding.
Кроме того, настоящее изобретение формирует эффективную порождающую матрицу, используя матрицу контроля четности, таким образом, минимизируя сложность кодирования блочного кода LDPC.In addition, the present invention generates an efficient generator matrix using a parity matrix, thereby minimizing the coding complexity of the block LDPC code.
То есть настоящее изобретение предлагает обеспечить таким образом блочному коду LDPC высокую производительность путем использования итеративного декодирования в графе множителей.That is, the present invention proposes to provide thus high performance LDPC block code by using iterative decoding in the factor graph.
Кроме того, настоящее изобретение создает матрицу контроля четности блочного кода LDPC, блок за блоком, таким образом делая возможным реализацию декодера с минимальной сложностью декодирования, усовершенствованной в плане скорости декодирования. В особенности, настоящее изобретение минимизирует сложность кодирования, используя простое перемножение матриц и поблочную обратную подстановку.In addition, the present invention provides a block-by-block LDPC parity check matrix, thus making it possible to implement a decoder with minimal decoding complexity, improved in terms of decoding speed. In particular, the present invention minimizes coding complexity using simple matrix multiplication and blockwise inverse substitution.
Несмотря на то, что настоящее изобретение показано и описано со ссылкой на его конкретные варианты осуществления, специалистам в данной области техники следует понимать, что различные изменения по форме и содержанию могут быть сделаны без отступления от духа и объема настоящего изобретения, как задано прилагаемой формулой изобретения.Although the present invention has been shown and described with reference to its specific embodiments, it will be understood by those skilled in the art that various changes in form and content may be made without departing from the spirit and scope of the present invention as defined by the appended claims. .
Claims (11)
причем блочный код LDPC включает в себя вектор информационного слова, первый вектор четности и второй вектор четности, и порождающая матрица включает в себя первую матрицу, сопоставленную с вектором информационного слова, вторую матрицу, сопоставленную с первым вектором четности, и третью матрицу, сопоставленную со вторым вектором четности; первая матрица формируется умножением четвертой матрицы, сопоставленной с вектором информационного слова матрицы контроля четности, соответствующей длине, которую необходимо использовать, когда формируют вектор информационного слова в блочном коде LDPC, на предопределенную пятую матрицу, вторая матрица формируется умножением шестой матрицы, сопоставленной с первым вектором четности матрицы контроля четности, на пятую матрицу, и третья матрица формируется умножением седьмой матрицы, сопоставленной со вторым вектором четности матрицы контроля четности, на пятую матрицу; причем этап кодирования вектора информационного слова в блочном коде LDPC в соответствии с предопределенной порождающей матрицей содержит этапы, на которых формируют первый вектор четности из условия, что вектор, сформированный умножением матрицы, сформированной суммированием всех строк четвертой матрицы в каждом блоке, на транспонированный вектор вектора информационного слова, становится вектором, сформированным циклическим сдвигом транспонированного вектора первого вектора четности на предопределенную величину; формируют второй вектор четности, используя обратную подстановку; и формируют блочный код LDPC соединением первого вектора четности и второго вектора четности в вектор информационного слова.1. A method for encoding / decoding a block code of a low-density parity check (LDPC), comprising the steps of: receiving a vector of the information word and encoding the vector of the information word in the block LDPC code in accordance with the generating matrix; moreover, the generating matrix is formed by modifying the parity check matrix corresponding to the length that must be used when forming the vector of the information word in the LDPC block code;
moreover, the LDPC block code includes an information word vector, a first parity vector and a second parity vector, and the generating matrix includes a first matrix mapped to the information word vector, a second matrix mapped to the first parity vector, and a third matrix mapped to the second parity vector; the first matrix is formed by multiplying the fourth matrix associated with the vector of the information word of the parity check matrix corresponding to the length to be used when forming the vector of the information word in the LDPC block code by the predetermined fifth matrix, the second matrix is formed by multiplying the sixth matrix compared with the first parity vector the parity check matrix by the fifth matrix, and the third matrix is formed by multiplying the seventh matrix associated with the second matrix parity vector parity, on the fifth matrix; wherein the step of encoding the information word vector in the LDPC block code in accordance with a predetermined generating matrix comprises the steps of forming a first parity vector from the condition that the vector formed by multiplying the matrix formed by summing all rows of the fourth matrix in each block by the transposed vector of the information vector words, becomes a vector formed by a cyclic shift of the transposed vector of the first parity vector by a predetermined value; forming a second parity vector using backward substitution; and form a block LDPC code by combining the first parity vector and the second parity vector into an information word vector.
где s обозначает вектор информационного слова, обозначает первый вектор четности, s T обозначает транспонированный вектор вектора информационного слова, обозначает транспонированный вектор первого вектора четности, Рx обозначает матрицу, сформированную циклическим сдвигом матрицы перестановок с размером NsxNs на х, р1 T' обозначает вектор, сформированный циклическим сдвигом на х, и обозначает действие суммирования всех строк соответствующей матрицы в каждом блоке, H1' обозначает матрицу, сопоставленную с вектором информационного слова, в которую включена порождающая матрица, х обозначает показатель степени матрицы перестановок.3. The method according to claim 1, in which the first parity vector is formed using the formula
where s denotes the vector of the information word, denotes the first parity vector, s T denotes the transposed vector of the information word vector, denotes the transposed vector of the first parity vector, P x denotes a matrix formed by cyclic shift of a permutation matrix with size N s x N s by x, p 1 T ' denotes a vector formed by cyclic shift on x and denotes the action of summing all the rows of the corresponding matrix in each block, H 1 ′ denotes the matrix associated with the vector of the information word, in which the generating matrix is included, x denotes the exponent of the permutation matrix.
декодирования принятого сигнала, используя матрицу контроля четности; и
выделения блочного кода LDPC из декодированного принятого сигнала,
причем этапы декодирования принятого сигнала, используя матрицу контроля четности, и выделения блочного кода LDPC из декодированного принятого сигнала содержат этапы, на которых определяют схему устранения перемежения и схему перемежения в соответствии с матрицей контроля четности; обнаруживают значения вероятности принятого сигнала; формируют выходной сигнал переменного узлового декодера посредством вычисления значения вероятности сигнала, выводимого из принятого сигнала и сигнала предыдущей обработки декодирования; формируют первый сигнал вычитанием сигнала, сформированного в предшествующем процессе декодирования, из значений вероятности выходного сигнала переменного узлового декодера; устраняют перемежение первого сигнала, используя упомянутую схему устранения перемежения; обнаруживают значения вероятности из сигнала с устраненным перемежением; формируют выходной сигнал контрольного узлового декодера из сигнала с устраненным перемежением; формируют второй сигнал вычитанием сигнала с устраненным перемежением из значений вероятности выходного сигнала контрольного узлового декодера; перемежают второй сигнал, используя схему перемежения; и определяют блочный код LDPC итеративным декодированием сигнала с перемежением.5. The method according to claim 1, additionally containing steps
decoding the received signal using a parity matrix; and
extracting the block LDPC code from the decoded received signal,
moreover, the steps of decoding the received signal using the parity matrix and extracting the block LDPC code from the decoded received signal comprise the steps of determining an interleaving elimination circuit and an interleaving scheme in accordance with the parity matrix; detect the probability values of the received signal; generating an output signal of a variable nodal decoder by calculating a probability value of a signal output from a received signal and a signal of previous decoding processing; generating the first signal by subtracting the signal generated in the previous decoding process from the probability values of the output signal of the variable node decoder; eliminating interleaving of the first signal using said interleaving elimination circuit; detecting probability values from a signal with eliminated interleaving; form the output signal of the control node decoder from the signal with the eliminated interleaving; generating a second signal by subtracting the signal with the eliminated interleaving from the probability values of the output signal of the control node decoder; interleaving a second signal using an interleaving scheme; and determining the block LDPC code by iteratively decoding the interleaved signal.
где s обозначает вектор информационного слова, обозначает первый вектор четности, s T обозначает транспонированный вектор вектора информационного слова, обозначает транспонированный вектор первого вектора четности, Рх обозначает матрицу, сформированную циклическим сдвигом матрицы перестановок с размером NsxNs на х, р1 T обозначает вектор, сформированный циклическим сдвигом на х, и обозначает действие суммирования всех строк соответствующей матрицы в каждом блоке.9. The device according to claim 7, in which the encoder generates a first parity vector using
where s denotes the vector of the information word, denotes the first parity vector, s T denotes the transposed vector of the information word vector, denotes the transposed vector of the first parity vector, P x denotes a matrix formed by cyclic shift of a permutation matrix with a size of N s x N s by x, p 1 T denotes a vector formed by a cyclic shift on x and denotes the action of summing all the rows of the corresponding matrix in each block.
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 (en) | 2008-08-20 |
| RU2348103C2 true RU2348103C2 (en) | 2009-02-27 |
Family
ID=35431229
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| RU2007105100/09A RU2348103C2 (en) | 2004-08-10 | 2005-08-10 | Device and method for coding and decoding of block code of low density parity check |
Country Status (10)
| Country | Link |
|---|---|
| US (1) | US7600174B2 (en) |
| EP (1) | EP1626505B1 (en) |
| JP (1) | JP4545793B2 (en) |
| KR (1) | KR100713371B1 (en) |
| CN (1) | CN1993892B (en) |
| AU (1) | AU2005272268B2 (en) |
| CA (1) | CA2563642C (en) |
| DE (1) | DE602005026754D1 (en) |
| RU (1) | RU2348103C2 (en) |
| WO (1) | WO2006016769A1 (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2716044C1 (en) * | 2016-07-20 | 2020-03-05 | Хуавей Текнолоджиз Ко., Лтд. | Methods and systems for encoding and decoding ldpc codes |
| RU2731883C1 (en) * | 2017-06-27 | 2020-09-08 | Телефонактиеболагет Лм Эрикссон (Пабл) | Ldpc-shift coefficients for new radio communication standard |
| RU2739465C2 (en) * | 2016-11-03 | 2020-12-24 | Хуавей Текнолоджиз Ко., Лтд. | Method and apparatus for encoding and decoding codes with low density of parity checks |
| RU2731883C9 (en) * | 2017-06-27 | 2022-08-08 | Телефонактиеболагет Лм Эрикссон (Пабл) | Ldpc-shift coefficients for new radio communication standard |
Families Citing this family (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100641052B1 (en) * | 2004-12-08 | 2006-11-02 | 한국전자통신연구원 | LDPC encoder and decoder, and method for LDPC encoding and decoding |
| US20070198905A1 (en) * | 2006-02-03 | 2007-08-23 | Nokia Corporation | Transmitter for a communications network |
| KR100975558B1 (en) * | 2006-05-03 | 2010-08-13 | 삼성전자주식회사 | Signal transceiving device and method in communication system |
| KR100834650B1 (en) * | 2006-09-04 | 2008-06-02 | 삼성전자주식회사 | Signal transceiving device and method in communication system |
| US8271851B2 (en) | 2006-11-13 | 2012-09-18 | France Telecom | Encoding and decoding a data signal as a function of a correcting code |
| US7913149B2 (en) * | 2006-12-20 | 2011-03-22 | Lsi Corporation | Low complexity LDPC encoding algorithm |
| KR100975696B1 (en) | 2007-04-05 | 2010-08-12 | 삼성전자주식회사 | Coding apparatus and method in communication system |
| US8473824B1 (en) * | 2008-09-08 | 2013-06-25 | Marvell International Ltd. | Quasi-cyclic low-density parity-check (QC-LDPC) encoder |
| CN101488819B (en) * | 2008-01-15 | 2013-02-27 | 华为技术有限公司 | LDPC code encoding modulation method and apparatus |
| WO2009150707A1 (en) * | 2008-06-09 | 2009-12-17 | パイオニア株式会社 | Generating method of inspection matrix, inspection matrix, decoding device and decoding method |
| KR101481431B1 (en) * | 2008-12-08 | 2015-01-12 | 삼성전자주식회사 | A method for rearranging a low-density parity check matrix and a device using the same |
| JP5445829B2 (en) * | 2009-05-29 | 2014-03-19 | ソニー株式会社 | Receiving apparatus, receiving method, program, and receiving system |
| JP5413701B2 (en) * | 2011-03-22 | 2014-02-12 | 日本電気株式会社 | Error correction encoding apparatus, error correction encoding method, and error correction encoding program |
| CN102315911B (en) * | 2011-09-29 | 2017-10-27 | 中兴通讯股份有限公司 | A kind of low density parity check code encoding method and device |
| CN104488196B (en) | 2012-11-05 | 2017-08-01 | 三菱电机株式会社 | Error correction/encoding method and encoder for correcting |
| CN103580807B (en) * | 2013-11-05 | 2017-01-18 | 上海数字电视国家工程研究中心有限公司 | BICM transmission method and system for LDPC code words in specific degree distribution |
| CN104363023B (en) * | 2014-10-11 | 2017-10-03 | 中国科学院国家授时中心 | Big Dipper high-precision difference information coding method |
| CA3209954A1 (en) | 2015-03-02 | 2016-09-09 | Samsung Electronics Co., Ltd. | Transmitter and parity permutation method thereof |
| US10367525B2 (en) * | 2015-05-29 | 2019-07-30 | National Instruments Corporation | Incremental loop modification for LDPC encoding |
| TWI602188B (en) * | 2017-01-03 | 2017-10-11 | 慧榮科技股份有限公司 | Method for performing data management in memory device, and associated memory device and controller thereof |
| US10484134B2 (en) * | 2017-03-30 | 2019-11-19 | Samsung Electronics Co., Ltd. | Apparatus and method for channel encoding/decoding in communication or broadcasting system |
| CN118473421A (en) | 2017-05-05 | 2024-08-09 | 华为技术有限公司 | Information processing method and communication device |
| EP4187794A1 (en) | 2017-06-15 | 2023-05-31 | Huawei Technologies Co., Ltd. | Qc-ldpc codes for 3gpp 5g mobile radio |
| CN109150197B (en) | 2017-06-27 | 2024-05-14 | 华为技术有限公司 | Information processing method, device and communication equipment |
| US10621035B2 (en) * | 2017-10-18 | 2020-04-14 | Intel Corporation | Techniques for correcting data errors in memory devices |
| CN111313909A (en) * | 2018-12-12 | 2020-06-19 | 北京航空航天大学 | LDPC code decoding method and encoding method |
| CN112015325B (en) * | 2019-05-28 | 2024-03-26 | 阿里巴巴集团控股有限公司 | Method for generating decoding matrix, decoding method and corresponding device |
| 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 (en) * | 2020-02-10 | 2023-08-04 | 成都烨软科技有限公司 | Parallel TPC coding method based on Hamming code |
| CN112398488B (en) * | 2020-12-29 | 2021-04-30 | 支付宝(杭州)信息技术有限公司 | Method and device for vector compression |
| CN116383848B (en) * | 2023-04-04 | 2023-11-28 | 北京航空航天大学 | A three-party secure computing anti-evil method, equipment and medium |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| SU1505451A3 (en) * | 1984-03-24 | 1989-08-30 | Н.В.Филипс Глоэлампенфабрикен (Фирма) | Device for decoding information with error correction |
| WO2002095965A1 (en) * | 2001-05-21 | 2002-11-28 | Pctel, Inc. | Dsl modem utilizing low density parity check codes |
| RU2001118276A (en) * | 1998-12-04 | 2003-06-27 | Квэлкомм Инкорпорейтед | Turbo code interleaver using linear congruent sequences |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 (en) | 2001-04-18 | 2002-10-25 | Sharp Corp | Demodulation method, error correction method, and recording medium reproducing device |
| 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 |
| EP1379001A3 (en) * | 2002-07-03 | 2004-03-10 | Hughes Electronics Corporation | Method and system for decoding low density parity check (LDPC) codes |
| KR100543154B1 (en) * | 2002-07-26 | 2006-01-20 | 휴우즈 일렉트로닉스 코오포레이션 | Method and system for generating low density parity check codes |
| 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 (en) * | 2002-10-26 | 2004-04-30 | 삼성전자주식회사 | LDPC decoding apparatus and method |
| US7702986B2 (en) | 2002-11-18 | 2010-04-20 | Qualcomm Incorporated | Rate-compatible LDPC codes |
| KR100502609B1 (en) * | 2002-11-21 | 2005-07-20 | 한국전자통신연구원 | Encoder using low density parity check code and encoding method thereof |
| US7162684B2 (en) * | 2003-01-27 | 2007-01-09 | Texas Instruments Incorporated | Efficient encoder for low-density-parity-check codes |
| KR100906474B1 (en) * | 2003-01-29 | 2009-07-08 | 삼성전자주식회사 | Error correction method and apparatus using low density additional information generation matrix |
| KR100809619B1 (en) | 2003-08-26 | 2008-03-05 | 삼성전자주식회사 | Block Low Density Parity Check Coding / Decoding Apparatus and Method in Mobile Communication System |
| KR100550101B1 (en) | 2003-12-22 | 2006-02-08 | 한국전자통신연구원 | An apparatus for encoding and decoding of Low-Density Parity-Check Codes, and methods thereof |
| KR20050073359A (en) * | 2004-01-09 | 2005-07-13 | 주식회사 하이닉스반도체 | Method of manufacturing test reticle |
| 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 |
| KR100678176B1 (en) * | 2004-04-28 | 2007-02-28 | 삼성전자주식회사 | Block low density parity check code encoding / decoding apparatus and method with variable block length |
-
2005
- 2005-08-10 CA CA2563642A patent/CA2563642C/en not_active Expired - Fee Related
- 2005-08-10 WO PCT/KR2005/002594 patent/WO2006016769A1/en not_active Ceased
- 2005-08-10 JP JP2007514929A patent/JP4545793B2/en not_active Expired - Fee Related
- 2005-08-10 EP EP05017399A patent/EP1626505B1/en not_active Expired - Lifetime
- 2005-08-10 KR KR1020050073359A patent/KR100713371B1/en not_active Expired - Fee Related
- 2005-08-10 CN CN2005800259119A patent/CN1993892B/en not_active Expired - Fee Related
- 2005-08-10 RU RU2007105100/09A patent/RU2348103C2/en not_active IP Right Cessation
- 2005-08-10 AU AU2005272268A patent/AU2005272268B2/en not_active Ceased
- 2005-08-10 DE DE602005026754T patent/DE602005026754D1/en not_active Expired - Lifetime
- 2005-08-10 US US11/201,663 patent/US7600174B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| SU1505451A3 (en) * | 1984-03-24 | 1989-08-30 | Н.В.Филипс Глоэлампенфабрикен (Фирма) | Device for decoding information with error correction |
| RU2001118276A (en) * | 1998-12-04 | 2003-06-27 | Квэлкомм Инкорпорейтед | Turbo code interleaver using linear congruent sequences |
| WO2002095965A1 (en) * | 2001-05-21 | 2002-11-28 | Pctel, Inc. | Dsl modem utilizing low density parity check codes |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2716044C1 (en) * | 2016-07-20 | 2020-03-05 | Хуавей Текнолоджиз Ко., Лтд. | Methods and systems for encoding and decoding ldpc codes |
| US10868567B2 (en) | 2016-07-20 | 2020-12-15 | Huawei Technologies Co., Ltd. | Methods and systems for encoding and decoding for LDPC codes |
| RU2739465C2 (en) * | 2016-11-03 | 2020-12-24 | Хуавей Текнолоджиз Ко., Лтд. | Method and apparatus for encoding and decoding codes with low density of parity checks |
| US11265014B2 (en) | 2016-11-03 | 2022-03-01 | Huawei Technologies Co., Ltd. | Method and apparatus for encoding and decoding LDPC codes |
| RU2731883C1 (en) * | 2017-06-27 | 2020-09-08 | Телефонактиеболагет Лм Эрикссон (Пабл) | Ldpc-shift coefficients for new radio communication standard |
| RU2731883C9 (en) * | 2017-06-27 | 2022-08-08 | Телефонактиеболагет Лм Эрикссон (Пабл) | Ldpc-shift coefficients for new radio communication standard |
| 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 |
| US12334955B2 (en) | 2017-06-27 | 2025-06-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Shift values for quasi-cyclic LDPC codes |
| RU2791717C1 (en) * | 2022-12-14 | 2023-03-13 | Акционерное общество "Научно-производственная фирма "Микран" | Channel encoding method in a communication system using an ldpc code |
Also Published As
| Publication number | Publication date |
|---|---|
| AU2005272268B2 (en) | 2008-07-31 |
| US20060036927A1 (en) | 2006-02-16 |
| CA2563642C (en) | 2013-10-01 |
| CA2563642A1 (en) | 2006-02-16 |
| DE602005026754D1 (en) | 2011-04-21 |
| CN1993892A (en) | 2007-07-04 |
| AU2005272268A1 (en) | 2006-02-16 |
| WO2006016769A1 (en) | 2006-02-16 |
| JP2008501287A (en) | 2008-01-17 |
| KR20060050384A (en) | 2006-05-19 |
| EP1626505A1 (en) | 2006-02-15 |
| KR100713371B1 (en) | 2007-05-04 |
| EP1626505B1 (en) | 2011-03-09 |
| CN1993892B (en) | 2012-12-26 |
| JP4545793B2 (en) | 2010-09-15 |
| RU2007105100A (en) | 2008-08-20 |
| US7600174B2 (en) | 2009-10-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| RU2348103C2 (en) | Device and method for coding and decoding of block code of low density parity check | |
| RU2341894C2 (en) | Device and method of encoding/decoding discharged even-parity check with variable block length | |
| US7516391B2 (en) | Apparatus and method for coding/decoding block low density parity check code with variable block length | |
| EP1596501B1 (en) | Apparatus and method for encoding and decoding block low density parity check codes with a variable coding rate | |
| US9319068B2 (en) | Apparatus and method for coding/decoding block low density parity check code in a mobile communication system | |
| US7526717B2 (en) | Apparatus and method for coding and decoding semi-systematic block low density parity check codes | |
| KR100809616B1 (en) | Apparatus and method for coding/decoding block low density parity check code with variable block length | |
| RU2369008C2 (en) | Device and method for coding/decoding block code for low density parity check with variable block length | |
| KR20060016061A (en) | Block low density parity check code encoding / decoding apparatus and method with variable block length |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20190811 |



