RU2337478C2 - Decoding of highly excessive code with parity check, using multithreshold message transfer - Google Patents
Decoding of highly excessive code with parity check, using multithreshold message transfer Download PDFInfo
- Publication number
- RU2337478C2 RU2337478C2 RU2006138223/09A RU2006138223A RU2337478C2 RU 2337478 C2 RU2337478 C2 RU 2337478C2 RU 2006138223/09 A RU2006138223/09 A RU 2006138223/09A RU 2006138223 A RU2006138223 A RU 2006138223A RU 2337478 C2 RU2337478 C2 RU 2337478C2
- Authority
- RU
- Russia
- Prior art keywords
- codeword
- reliability
- threshold
- bit
- parity
- Prior art date
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
Description
Область техникиTechnical field
Варианты изобретения относятся в общем случае к исправлению ошибок в сигналах связи.Embodiments of the invention relate generally to error correction in communication signals.
Уровень техникиState of the art
Канал связи, будь то волоконно-оптический канал, коаксиальный канал, проводной канал, беспроводный канал или шина, соединяющая элементы системы, по которой пересылаются большие объемы данных, может внести шум и ошибки в информацию, передаваемую по такому каналу. Для исправления ошибок, добавленных каналом связи, информацию можно посылать в виде кодовых слов, где каждое кодовое слово содержит одинаковое общее количество битов и в котором некоторое количество битов являются информационными битами (биты сообщения), а несколько битов используются для исправления ошибок. Кодовое слово длиной n битов включает в себя k битов для длины кода сообщения и r=n-k избыточных битов. r битов предназначены для исправления ошибок и могут представлять собой r битов контроля четности. Матрица H контроля четности содержит набор уравнений контроля четности, которые определяют кодовое слово согласно соотношению:A communication channel, whether it is a fiber-optic channel, a coaxial channel, a wired channel, a wireless channel or a bus connecting system elements through which large amounts of data are sent, can introduce noise and errors into the information transmitted through such a channel. To correct errors added by the communication channel, information can be sent in the form of code words, where each code word contains the same total number of bits and in which a certain number of bits are information bits (message bits), and several bits are used to correct errors. A codeword of length n bits includes k bits for the length of the message code and r = n-k redundant bits. r bits are for error correction and may be r parity bits. The parity check matrix H contains a set of parity control equations that define a codeword according to the relation:
HCT=0,HC T = 0,
где C - n-мерный вектор битов кодового слова. Если это соотношение в приемнике не удовлетворяется, то принятое кодовое слово является недостоверным и должно быть либо исправлено, либо повторно передано.where C is the n-dimensional vector of bits of the codeword. If this ratio is not satisfied at the receiver, then the received codeword is invalid and must either be corrected or retransmitted.
Существует множество различных схем для декодирования кодового слова, которое прошло через канал связи. Некоторые схемы могут обеспечить точность, а другие схемы способны обеспечить быстрое декодирование. При высокоскоростной передаче данных необходима схема декодирования, обеспечивающая точность и быстроту действия, но в то же время ее реализация не должна отличаться большой сложностью.There are many different schemes for decoding a codeword that has passed through a communication channel. Some circuits can provide accuracy, while other circuits can provide fast decoding. For high-speed data transmission, a decoding scheme is needed to ensure accuracy and speed of operation, but at the same time, its implementation should not be very complex.
Краткое описание чертежейBrief Description of the Drawings
Фиг.1 - блок-схема варианта способа для итеративного декодирования информации, полученной из канала связи, согласно настоящему изобретению;Figure 1 - block diagram of a variant of the method for iteratively decoding information obtained from a communication channel, according to the present invention;
Фиг.2 - вариант устройства для итеративного декодирования информации, полученной из канала связи, согласно настоящему изобретению;FIG. 2 is an embodiment of an apparatus for iteratively decoding information obtained from a communication channel according to the present invention; FIG.
Фиг.3 - блок-схема варианта способа для кодирования информации для передачи кодового слова, представляющего информацию, в канал связи согласно настоящему изобретению;Figure 3 is a flowchart of an embodiment of a method for encoding information for transmitting a codeword representing information to a communication channel according to the present invention;
Фиг.4 - вариант устройства для кодирования информации, которая итеративно декодируется на приемном конце канала связи с использованием множества значений для порога согласно настоящему изобретению;FIG. 4 is an embodiment of an apparatus for encoding information that is iteratively decoded at a receiving end of a communication channel using a plurality of threshold values according to the present invention; FIG.
Фиг.5 - блок-схема варианта сети связи, имеющей систему для кодирования высоко-избыточного кодового слова с контролем четности и систему для декодирования версии закодированного высоко-избыточного кодового слова с контролем четности, полученного из канала связи между двумя системами согласно настоящему изобретению;5 is a block diagram of an embodiment of a communication network having a system for encoding a high redundancy codeword with parity and a system for decoding a version of a coded high excess codeword with parity obtained from a communication channel between two systems according to the present invention;
Фиг.6 - блок-схема варианта способа для итеративного декодирования высоко-избыточного кодового слова с контролем четности с использованием декодера, который может быть сконфигурирован, как показано на фиг.5, согласно настоящему изобретению.FIG. 6 is a flowchart of an embodiment of a method for iteratively decoding a high-redundancy parity codeword using a decoder that can be configured as shown in FIG. 5 according to the present invention.
Подробное описание изобретенияDETAILED DESCRIPTION OF THE INVENTION
В последующем подробном описании делаются ссылки на чертежи, где в качестве иллюстрации показаны возможные конкретные детали и варианты практической реализации изобретения. Эти варианты описаны достаточно подробно, чтобы дать возможность специалистам в данной области техники реализовать на практике настоящее изобретение. Можно использовать другие варианты и внести структурные и логические изменения, а также изменения в электрических схемах, без изменения объема изобретения. Раскрытые варианты осуществления не обязательно взаимно исключают друг друга, напротив, некоторые раскрытые варианты могут объединяться с одним или более другими раскрытыми вариантами для создания новых вариантов. Таким образом, последующее подробное описание не следует трактовать как ограничение, а объем вариантов осуществления настоящего изобретения определяется только прилагаемой формулой изобретения вместе с полным объемом эквивалентов, на которые указанная формула изобретения дает право.In the following detailed description, reference is made to the drawings, where, as an illustration, possible specific details and embodiments of the invention are shown. These options are described in sufficient detail to enable those skilled in the art to practice the present invention. You can use other options and make structural and logical changes, as well as changes in electrical circuits, without changing the scope of the invention. The disclosed embodiments are not necessarily mutually exclusive; on the contrary, some disclosed embodiments may be combined with one or more other disclosed embodiments to create new variations. Thus, the following detailed description should not be construed as limiting, and the scope of embodiments of the present invention is determined only by the attached claims, together with the full scope of equivalents to which the claims claim.
Высокоизбыточные коды с контролем четности (LDPC) обеспечивают эффективный инструмент прямого исправления ошибок в высокоскоростных системах связи благодаря невысокой сложности декодирования и низкой частоте ошибок по битам (BER), достигаемой в канале с аддитивным белым гауссовым шумом (AWGN). Стандартные декодеры LDPC работают, используя схему однопорогового декодирования. Примеры известных декодеров LDPC включают в себя, среди прочих, алгоритм минимальных сумм, алгоритм декодирования на основе апостериорных вероятностей (APP) и равномерно наиболее мощный (UMP) декодер.High redundancy parity check (LDPC) codes provide an efficient direct error correction tool in high-speed communication systems due to the low decoding complexity and low bit error rate (BER) achieved in an additive white Gaussian noise (AWGN) channel. Standard LDPC decoders operate using a single-threshold decoding scheme. Examples of well-known LDPC decoders include, among others, a minimum sum algorithm, a posteriori probability decoding (APP) algorithm, and a uniformly most powerful (UMP) decoder.
Коды LDPC используют матрицу контроля четности, содержащую большинство нулей и ограниченное количество единиц. Двоичный (n, γ, ρ) код LDPC имеет длину кодового слова или длину блока, равную n битов, и матрицу контроля четности, содержащую ровно γ единиц в каждом столбце и ровно ρ единиц в каждой строке. В коде LDPC каждый кодовый бит проверяется с помощью γ проверок четности, а каждая проверка четности использует ρ кодовых битов. Кроме того, у кода имеется скорость R, определяемая как R=k/n, где k - количество битов сообщения (информационных битов) в кодовом слове, имеющем n битов.LDPC codes use a parity matrix that contains most zeros and a limited number of units. The binary (n, γ, ρ) LDPC code has a codeword or block length of n bits and a parity matrix that contains exactly γ units in each column and exactly ρ units in each row. In the LDPC code, each code bit is checked with γ parity checks, and each parity check uses ρ code bits. In addition, the code has a speed R, defined as R = k / n, where k is the number of message bits (information bits) in the codeword that has n bits.
Процесс итеративного декодирования может включать в себя проверку того, удовлетворяется или нет уравнение контроля четности для каждого бита, принятого из канала. Если все уравнения контроля четности удовлетворяются, то считается, что принятые биты являются переданным кодовым словом. Если большинство уравнений контроля четности для данного принятого бита не удовлетворяются, то значение данного принятого бита может быть изменено на противоположное; в противном случае, значение данного принятого бита сохраняется. Изменение значения бита на противоположное означает изменение нуля на единицу или единицы на ноль. После восстановления кодового слова с изменением значения бита на противоположное уравнения контроля четности проверяются вновь. Если все уравнения контроля четности удовлетворяются, то считают, что принятые биты являются переданным кодовым словом; в противном случае, итеративная процедура продолжается, пока не будет достигнуто максимальное количество допустимых итераций.The iterative decoding process may include checking whether or not the parity equation is satisfied for each bit received from the channel. If all the parity equations are satisfied, then the received bits are considered to be the transmitted codeword. If most parity equations for a given received bit are not satisfied, then the value of this received bit can be reversed; otherwise, the value of this received bit is stored. Changing the value of a bit to the opposite means changing the zero by one or units by zero. After recovering the codeword with changing the bit value to the opposite, the parity equations are checked again. If all the parity equations are satisfied, then it is considered that the received bits are the transmitted codeword; otherwise, the iterative procedure continues until the maximum number of valid iterations is reached.
При декодировании LDPC может быть применен алгоритм декодирования с доверительным распространением на основе использования вероятностных значений. Как правило, итеративное декодирование кода LDPC связано с определением вектора x с максимальной вероятностью, где HxT mod 2 = 0. Вероятность x может быть задана произведением вероятностей того, что для каждой битовой позиции n, Xn=x. Для двоичного кодового слова x принимает значение 0 и 1, так что вероятность того, что x=1, равна единице минус вероятность того, что x=0. Кроме того, вероятностные значения могут быть представлены логарифмическими отношениями правдоподобия. Для двоичного сигнала с вероятностью p, заданной в качестве вероятности 1, логарифмическое отношение правдоподобия (LLR) может быть задано в видеFor LDPC decoding, a confidence distribution decoding algorithm based on the use of probabilistic values can be applied. As a rule, iterative decoding of the LDPC code is associated with the determination of the vector x with the maximum probability, where Hx T mod 2 = 0. The probability x can be given by the product of the probabilities that for each bit position n, X n = x. For a binary codeword, x takes the values 0 and 1, so the probability that x = 1 is equal to one minus the probability that x = 0. In addition, probabilistic values can be represented by logarithmic likelihood ratios. For a binary signal with probability p defined as probability 1, the log-likelihood ratio (LLR) can be given as
LLR(p) = loge((1-p)/p).LLR (p) = log e ((1-p) / p).
При декодировании сумм-произведений выполняется декодирование с использованием значений LLR.When decoding sum-products, decoding is performed using LLR values.
Что касается процесса, связанного с описанным выше изменением значения принятого бита на противоположное, то по сигналу, полученному из канала связи, было принято начальное жесткое решение. Жесткое решение принимается для бита путем отдельной оценки этого бита. При жестком решении для двоичного бита декодер присваивает биту значение 1 или 0, если этот бит меньше или больше фиксированного значения, установленного декодером. Если декодер устанавливает фиксированное значение равным нулю, при жестком решении бит устанавливается равным 1, если принятый сигнал для этого бита является положительным, и устанавливается равным 0, если принятый сигнал отрицательный. В альтернативном варианте при жестком решении бит может устанавливаться равным 1, если принятый сигнал для этого бита отрицательный, и устанавливаться равным 0, если принятый сигнал положительный.As for the process associated with the opposite change in the value of the received bit, the initial hard decision was made based on the signal received from the communication channel. A tough decision is made for a bit by separately evaluating that bit. With a tough decision for a binary bit, the decoder sets the bit to 1 or 0 if that bit is less than or greater than the fixed value set by the decoder. If the decoder sets the fixed value to zero, with a hard decision, the bit is set to 1 if the received signal for this bit is positive, and set to 0 if the received signal is negative. Alternatively, with a hard decision, the bit can be set to 1 if the received signal for this bit is negative, and set to 0 if the received signal is positive.
Мягкое решение - это решение, при котором вероятность того, что бит будет представлять единицу или ноль, учитывается при определении значения бита исходя из принятого сигнала. В декодерах с мягким решением может использоваться информация, относящаяся к степени доверия к принятому сигналу («мягкая» принятая информация), и сведения о свойствах канала для обеспечения вероятностных выражений для принятого сигнала, связанного с переданным сигналом. В то время как жесткое решение для двоичного процесса обеспечивает вектор жесткого решения, где векторные позиции или векторные биты равны единице или нулю, мягкое решение может обеспечить вектор жесткого решения и вектор надежностей или битовых надежностей. Двоичный вектор жесткого решения, обеспечиваемый мягким решением, это вектор, состоящий из единиц и нулей, где каждый бит вектора создается индивидуально в соответствии с фиксированным критерием. Вектор надежностей включает в себя набор битовых надежностей, причем каждая битовая надежность соответствует биту соответствующего вектора жесткого решения. Битовая надежность обеспечивает меру доверия к соответствующему биту в векторе жесткого решения. Битовая надежность может быть выражена в виде вероятности, логарифмического отношения правдоподобия или другого взвешенного коэффициента, коррелированного с каналом связи, по которому передается принимаемое кодовое слово. Битовая надежность может быть непосредственно коррелированна с величиной сигнала, представляющего принятый бит.A soft decision is a decision in which the probability that a bit will represent one or zero is taken into account when determining the value of a bit based on the received signal. Soft decision decoders can use information related to the degree of confidence in the received signal (“soft” received information) and channel property information to provide probabilistic expressions for the received signal associated with the transmitted signal. While a hard decision for a binary process provides a hard decision vector where the vector positions or vector bits are equal to one or zero, a soft decision can provide a hard decision vector and a vector of reliability or bit reliability. The binary vector of a hard decision provided by the soft decision is a vector consisting of ones and zeros, where each bit of the vector is created individually in accordance with a fixed criterion. The reliability vector includes a set of bit reliability, with each bit reliability corresponding to a bit of the corresponding hard decision vector. Bit reliability provides a measure of confidence in the corresponding bit in the hard decision vector. Bit reliability can be expressed as probability, a logarithmic likelihood ratio, or other weighted coefficient correlated with the communication channel over which the received codeword is transmitted. Bit reliability can be directly correlated with the magnitude of the signal representing the received bit.
Как известно специалистам в данной области техники, различные схемы декодирования реализуют схемы мягкого декодирования с использованием вероятностей. По одной схеме в процессах мягкого решения вычисляется апостериорная вероятность для каждого бита кодового слова, которая представляет собой вероятность того, что данный бит равен единице при условии, что все ограничения для контроля четности удовлетворяются. Собственная или априорная вероятность - это битовая вероятность, не зависящая от кодовых ограничений, а «несобственная» вероятность учитывает то, что стало известно. Например, в алгоритме сумм-произведений для декодирования логарифмическое отношение правдоподобия (LLR) принятого сигнала, представляющего один бит, устанавливается на основе сведений о канале. Для канала с шумом типа AWGN и отношением сигнал-шум SNR начальное отношение LLR для этого бита может быть установлено какAs is known to those skilled in the art, various decoding schemes implement soft decoding schemes using probabilities. According to one scheme, a posterior probability is calculated for each bit of a code word in soft decision processes, which is the probability that a given bit is equal to one, provided that all restrictions for parity are satisfied. The intrinsic or a priori probability is a bit probability that does not depend on code constraints, and the "improper" probability takes into account what has become known. For example, in the sum-product algorithm for decoding, the logarithmic likelihood ratio (LLR) of a received signal representing one bit is set based on the channel information. For a channel with AWGN type noise and SNR, the initial LLR for this bit can be set as
где Yi - принятый сигнал, а σ - стандартное отклонение AWGN. Стандартное отклонение может быть определено через SNR для AWGN как , где n - длина кода, k - длина сообщения, а SNR - это SNR на один бит сообщения. LLRi функционально относится к надежности Ri бита i. Надежность - это мера доверия к значению бита. Итеративное декодирование в различных схемах включает в себя обновление надежности, соответствующей принятым битам, и/или обновление надежности, соответствующей ненулевым элементам матрицы H контроля четности. Указанные итеративные процессы включают в себя проверку достоверности обновленного тестового кодового слова посредством соотношения HxT = 0. Если тест не дает достоверное кодовое слово, то итеративный процесс продолжается, пока не будет получено достоверное кодовое слово или пока не будет выполнено максимальное количество итераций.where Y i is the received signal and σ is the standard deviation of AWGN. The standard deviation can be defined through the SNR for AWGN as where n is the code length, k is the message length, and SNR is the SNR per bit of the message. LLR i functionally refers to the reliability of R i bits i. Reliability is a measure of confidence in the value of a bit. Iterative decoding in various schemes includes updating the reliability corresponding to the received bits, and / or updating the reliability corresponding to non-zero elements of the parity check matrix H. These iterative processes include verifying the validity of the updated test codeword using the relation Hx T = 0. If the test does not give a valid codeword, then the iterative process continues until a valid codeword is received or until the maximum number of iterations has been completed.
В одном варианте многопороговый декодер сконструирован для обеспечения алгоритма итеративного декодирования с пониженной сложностью и хорошими характеристиками исправления ошибок для декодирования кодов LDPC из канала с «мягким» выходным результатом. Этот вариант для многопорогового декодера с вычислением надежностей для быстрого декодирования LDPC работает с использованием канала с «мягким» выходным результатом (мягкого решения) для создания вектора жесткого решения и вектора надежностей принятых битов. Битовые надежности используются для вычисления надежностей для контроля четности, а общая надежность контроля четности устанавливается равной минимальному значению битовой надежности для всех битов, которые включены в данную проверку четности. Для повторного вычисления битовых надежностей используется процедура взвешенного голосования для контроля четности, где весами являются надежности контроля четности. В указанных вариантах, если значение веса контроля четности уменьшается, качество декодирования возрастает. Вначале битовой надежности присваивается значение битовой надежности, коррелированной со значением принятого бита. Голосование для контроля четности применяется к текущему вектору жесткого решения. На основе голосования для контроля четности в сравнении с пороговым значением в данной итерации, битовая надежность устанавливается равной вновь вычисленной битовой надежности, которая увеличивается на значение надежности контроля четности; в противном случае, повторно вычисленная битовая надежность уменьшается на значение надежности контроля четности.In one embodiment, a multi-threshold decoder is designed to provide an iterative decoding algorithm with reduced complexity and good error correction characteristics for decoding LDPC codes from a channel with a soft output. This option for a multi-threshold decoder with reliability calculation for fast LDPC decoding works using a channel with a “soft” output (soft decision) to create a hard decision vector and a reliability vector of received bits. Bit reliability is used to calculate the reliability for parity, and the overall reliability of the parity is set to the minimum value of bit reliability for all bits that are included in this parity. To recalculate bit reliability, a weighted voting procedure is used for parity, where the weights are the reliability of the parity. In these options, if the value of the weight of the parity is reduced, the quality of decoding increases. Initially, bit reliability is assigned a value of bit reliability correlated with the value of the received bit. Parity voting applies to the current hard decision vector. Based on the voting for parity compared to the threshold value in this iteration, the bit reliability is set equal to the newly calculated bit reliability, which is increased by the value of the parity reliability; otherwise, the recalculated bit reliability is reduced by the parity reliability value.
Для каждой итерации обеспечиваются пороговые значения, причем эти пороговые значения могут вычисляться в течение одной или более итераций. Пороговые значения используются для получения решений о том, следует ли обновить бит и связанную с ним надежность. Если конкретная надежность меньше порогового значения, то тогда бит жесткого решения, связанный с этой надежностью, изменяет свое значение на противоположное, и абсолютному значению вновь вычисленной надежности присваивается это новое значение. Данная схема декодирования является итеративной, а пороги могут различаться от одной итерации к другой, причем для вычисления во время процесса декодирования обеспечены или запланированы, по меньшей мере, два значения порога. Хотя пороги могут быть вычислены во время итерации, их значения могут также быть определены заранее. В другом варианте на первой итерации порог решения по ошибке устанавливается равным минимальной из битовых надежностей, а затем на всех остальных итерациях порог решения по ошибке устанавливается равным нулю. В этом варианте схема многопорогового декодирования представляет собой схему декодирования с использованием двух порогов. Двухпороговая схема дает увеличение частоты ошибок по битам 0,1-0,4 дБ по сравнению с быстрым декодированием без использования порога, имеющего множество значений.Threshold values are provided for each iteration, and these threshold values can be calculated during one or more iterations. Thresholds are used to make decisions about whether to update the bit and its associated reliability. If a specific reliability is less than a threshold value, then the hard decision bit associated with this reliability changes its value, and this new value is assigned to the absolute value of the newly calculated reliability. This decoding scheme is iterative, and the thresholds can vary from one iteration to another, and at least two threshold values are provided or planned for calculation during the decoding process. Although thresholds can be calculated during the iteration, their values can also be determined in advance. In another embodiment, at the first iteration, the decision threshold by mistake is set equal to the minimum of bit reliability, and then at all other iterations the decision threshold is mistakenly set to zero. In this embodiment, the multi-threshold decoding scheme is a decoding scheme using two thresholds. The two-threshold scheme provides an increase in the error frequency of bits from 0.1 to 0.4 dB compared to fast decoding without using a threshold with many values.
Вариант для новой схемы, который может быть реализован в декодерах LDPC, включает в себя схему многопорогового решения. Использование схемы многопорогового решения означает, что значение порога изменяется на вычисленное значение или заранее определенное значение во время одной или более итераций декодирования. В одном варианте во время первой итерации используется максимальное пороговое значение (абсолютное значение), а в последующих итерациях порог изменяется в сторону уменьшения. Изменение пороговых значений позволяет использовать высокое пороговое значение во время первой итерации, что приводит к исключению или уменьшению распространения ошибок. Таким образом, если декодер исправляет даже небольшое количество ошибок, декодирование на последующих итерациях значительно облегчается. Использование варианта со схемой многопорогового декодирования может привести к уменьшению количества итераций, выполняемых во время декодирования. Эти варианты могут быть реализованы с частотой ошибок по битам при декодировании, близкой к схеме декодирования на основе максимальной апостериорной вероятности.An option for a new circuit that can be implemented in LDPC decoders includes a multi-threshold decision circuit. Using a multi-threshold decision scheme means that the threshold value changes to a calculated value or a predetermined value during one or more decoding iterations. In one embodiment, during the first iteration, the maximum threshold value (absolute value) is used, and in subsequent iterations, the threshold changes downward. Changing the threshold values allows you to use a high threshold value during the first iteration, which eliminates or reduces the spread of errors. Thus, if a decoder corrects even a small number of errors, decoding at subsequent iterations is greatly facilitated. Using a variant with a multi-threshold decoding scheme may lead to a decrease in the number of iterations performed during decoding. These options can be implemented with a bit error rate during decoding close to the decoding scheme based on maximum posterior probability.
В одном варианте многопороговый декодер обеспечивает итеративный декодер, использующий входной вектор мягкого решения для создания жесткого решения и вектора соответствующих надежностей, который описывает абсолютное значение правдоподобия для каждого бита. На каждой итерации декодер вычисляет надежность каждого уравнения контроля четности, используя битовые надежности. Затем для каждого бита и проверки контроля четности, если уравнение контроля четности не удовлетворяется, то соответствующая битовая надежность (которая соответствует уравнению бита или контроля четности) уменьшается; в противном случае эта битовая надежность увеличивается. Когда все уравнения проверены, выполняется жесткое решение с использованием следующего правила: если обновленная битовая надежность больше порогового значения, то бит и его надежность остаются неизменными; в противном случае, значение бита меняется на противоположное (инвертируется), а его надежность изменяется в функции обновленной надежности и порогового значения. Если обновленная надежность меньше 0, но больше порогового значения в этой итерации, то новое значение битовой надежности устанавливается равным 0. Обновление порогового значения планируется, по меньшей мере, один раз в течение процесса декодирования. Процесс повторяется, пока кодовое слово не будет восстановлено, или пока декодер не выполнит максимально допустимое количество итераций.In one embodiment, a multi-threshold decoder provides an iterative decoder using a soft decision input vector to create a hard decision and a corresponding reliability vector that describes the absolute likelihood value for each bit. At each iteration, the decoder calculates the reliability of each parity equation using bit reliability. Then, for each bit and parity check, if the parity equation is not satisfied, the corresponding bit reliability (which corresponds to the bit or parity equation) is reduced; otherwise, this bit reliability is increased. When all equations are checked, a tough decision is made using the following rule: if the updated bit reliability is greater than the threshold value, then the bit and its reliability remain unchanged; otherwise, the bit value is reversed (inverted), and its reliability is changed in the function of the updated reliability and threshold value. If the updated reliability is less than 0 but greater than the threshold value in this iteration, then the new bit reliability value is set to 0. Updating the threshold value is planned at least once during the decoding process. The process is repeated until the codeword is restored, or until the decoder performs the maximum allowable number of iterations.
На фиг. 1 показана блок-схема варианта способа для итеративного декодирования информации, полученной из канала связи. На шаге 110 осуществляется прием кодового слова. Кодовое слово может содержать некоторое количество информационных битов или битов сообщения и несколько битов для использования при обнаружении ошибок и/или их исправлении. На шаге 120 выбирается значение порога. В одном варианте значение для порога выбирается с использованием битовых надежностей, коррелированных с принятым кодовым словом, во время каждой итерации. Такой выбор может проводиться путем вычисления минимальной надежности для сравнения, первоначально сформированной исходя из процесса мягкого решения, выполненного на основе принятого кодового слова, после чего создается вектор жесткого решения и вектор надежностей. Битовые надежности могут быть коррелированы с каналом связи. В одном варианте битовые надежности создаются с использованием известных, вычисленных или оцененных свойств канала связи, таких как, но не только, отношение сигнал-шум, связанное с сигналами, распространяющимися через канал связи. В другом варианте набор битовых надежностей первоначально коррелируется с набором принятых битов, например, но не только, с абсолютным значением сигнала, принятого для каждой битовой позиции. В одном варианте в качестве порогового значение может быть выбрано одно из заранее определенного набора значений, причем этот выбор зависит от структуры данного кода, SNR канала и номера итерации декодирования.In FIG. 1 shows a flowchart of an embodiment of a method for iteratively decoding information received from a communication channel. At 110, a codeword is received. The codeword may contain a number of information bits or message bits and several bits for use in detecting errors and / or correcting them. In step 120, a threshold value is selected. In one embodiment, a threshold value is selected using bit reliabilities correlated with the received codeword during each iteration. Such a choice can be made by calculating the minimum reliability for comparison, originally formed on the basis of the soft decision process made on the basis of the adopted code word, after which a hard decision vector and a reliability vector are created. Bit reliability can be correlated with the communication channel. In one embodiment, bit reliability is created using known, calculated, or estimated properties of a communication channel, such as, but not limited to, the signal-to-noise ratio associated with signals propagating through the communication channel. In another embodiment, the set of bit reliability is initially correlated with the set of received bits, for example, but not only, with the absolute value of the signal received for each bit position. In one embodiment, one of a predetermined set of values may be selected as the threshold value, and this choice depends on the structure of the given code, the SNR of the channel, and the decoding iteration number.
На шаге 130 битовая надежность, созданная исходя из принятого кодового слова, обновляется на основе сравнения с пороговым значением. В различных вариантах набор битовых надежностей может создаваться, сравниваться с порогом и обновляться. На шаге 140 кодовое слово восстанавливается на основе сравнений вычисленных битовых вероятностей с порогом, где вычисленные битовые надежности получают из первоначально созданных битовых надежностей. Если восстановленное кодовое слово не проходит тест на достоверность, то процесс продолжается с другой итерацией. Восстановленное кодовое слово может быть создано путем инвертирования одного или более битов версии кодового слова в данной итерации. На шаге 150 восстановленное кодовое слово обеспечивается в конце процесса итеративного декодирования. Если процесс декодирования оказался успешным, то считается, что восстановленное кодовое слово является кодовым словом, которое было обеспечено в месте передачи на другом конце канала связи. Если в процессе итеративного декодирования не обеспечено достоверное кодовое слово по окончании нескольких итераций, то целесообразно выполнить повторную передачу кодового слова. В одном варианте этот способ используется для декодирования кодового слова LDPC.In step 130, the bit reliability created based on the received codeword is updated based on a comparison with a threshold value. In various embodiments, a set of bit reliability can be created, compared with a threshold and updated. In step 140, the codeword is reconstructed based on comparisons of the calculated bit probabilities with a threshold where the calculated bit reliability is obtained from the originally created bit reliability. If the recovered codeword does not pass the validation test, the process continues with another iteration. The reconstructed codeword can be created by inverting one or more bits of the codeword version in a given iteration. At step 150, the reconstructed codeword is provided at the end of the iterative decoding process. If the decoding process is successful, then it is considered that the reconstructed codeword is a codeword that was provided at the transmission site at the other end of the communication channel. If a valid codeword is not provided during iterative decoding at the end of several iterations, it is advisable to retransmit the codeword. In one embodiment, this method is used to decode the LDPC codeword.
На фиг.2 показан вариант устройства 200 для итеративного декодирования информации, полученной из канала связи. Устройство 200 включает в себя приемник 210, генератор 220 битовых надежностей и блок 230 сравнения. Приемник 210 получает данные из канала связи. В одном варианте полученные данные представлены в виде битов в сигнальном потоке, где указанные биты определяют кодовое слово. В альтернативном варианте приемник 210 может принимать сигнал и преобразовывать принятый сигнал в кодовое слово. Генератор 220 битовых надежностей генерирует одну или более битовых надежностей, связанных с принятым кодовым словом. В одном варианте начальные битовые надежности генерируются на основе принятого кодового слова и отношения правдоподобия, относящегося к вероятностям того, что двоичный сигнал равен единице или нулю. Указанные битовые надежности также могут быть коррелированы с отношением сигнал-шум канала связи, из которого получено принятое кодовое слово. В альтернативном варианте начальные битовые надежности могут генерироваться на основе принятого кодового слова, например, путем установки начальных битовых надежностей равными абсолютному значению принятого кодового слова для каждого бита.2 shows an embodiment of an
Блок 230 сравнения сравнивает битовые надежности, сформированные генератором битовых надежностей, с порогом. Выполнив указанное сравнение, блок 230 сравнения обновляет битовые надежности и биты тестового кодового слова в зависимости от результатов сравнения со значением порога. Блок 230 сравнения использует множество значений для порога в зависимости от текущей итерации в процессе декодирования. Обновленные биты тестового кодового слова оцениваются, чтобы определить, обеспечили ли обновленные биты достоверное кодовое слово. Если генерировано достоверное кодовое слово, то блок 230 сравнения может выдать достоверное кодовое слово или извлечь информационные биты (биты сообщения) из кодового слова и вывести сообщение. Блок 230 сравнения может быть реализован в виде аппаратной конфигурации либо выполнен в виде программной конфигурации. В одном варианте значения для порога, используемые блоком 230 сравнения, устанавливаются в соответствии с итерацией, в которой используется данное значение. Можно использовать таблицу порогов, связывающую заранее определенное значение с номером итерации, заданной для данной структуры кода и данной ситуации в канале, к примеру, соответственно SNR канала. В другом варианте значения для порога, используемые блоком 230 сравнения, устанавливают, используя битовые надежности и результат сравнения с пороговым значением, установленным для той итерации декодирования, в которой работает в данный момент блок 230 сравнения. В одном варианте устройство 200 декодирует кодовое слово LDPC.A
На фиг.3 показана блок-схема варианта способа для кодирования информации с целью передачи кодового слова, представляющего эту информацию, по каналу связи. На шаге 310 информация принимается в кодере в виде информационных битов. На шаге 320 информационные биты кодируются для обеспечения кодового слова. Кодирование реализуется таким образом, что версия кодированного кодового слова после ее приема итеративно декодируется с использованием битовой надежности, обновленной путем сравнения с порогом, где порог обновляется для обеспечения множества значений в ходе итеративного процесса. Если версия кодового слова безошибочно принята на другом конце канала связи, по которому это кодовое слово было передано, то итеративное декодирование может обеспечить кодовое слово без исправления принятой версии кодового слова. Если принятая версия переданного кодового слова содержит ошибки, то процесс итеративного декодирования обеспечивает процесс их исправления, используя множество порогов. На шаге 330 кодовое слово передается по каналу связи. В одном варианте данный способ используется для кодирования кодового слова LDPC.Figure 3 shows a block diagram of a variant of the method for encoding information with the aim of transmitting a codeword representing this information over the communication channel. At
На фиг.4 показан вариант устройства 400 для кодирования информации, которая итеративно декодирована с использованием множества значений для порога на приемном конце канала связи. Устройство 400 включает в себя приемник 410 для получения информации с целью кодирования, кодер 420 и передатчик 430. Приемник 410 получает данные, предоставленные устройству 400 для передачи по каналу связи. Кодер 420 использует эту информацию и создает кодированное слово, содержащее информационные биты (биты сообщения) и биты для исправления ошибок на приемном конце канала передачи. Информация, подаваемая в кодер 420, может быть представлена в виде информационных битов. В альтернативном варианте кодер 420 может использовать предоставленную информацию и сформировать информационные биты. Кодер 420 кодирует информацию, создавая кодовое слово, так что версия этого кодового слова после приема итеративно декодируется с использованием битовой надежности, обновляемой путем сравнения с порогом. Порог обновляется для обеспечения множества значений во время итеративного процесса. Передатчик 430 посылает кодированное кодовое слово по каналу связи.FIG. 4 shows an embodiment of a
Канал связи между устройством, в котором используется вариант способа декодирования с использованием множества порогов, и устройством, где используется вариант способа кодирования, связанного с упомянутым способом декодирования, может включать в себя, но не только: волоконно-оптический канал, проводной канал, канал, считывающий данные, хранящиеся в блоке памяти, или беспроводный канал. Дополнительно, варианты осуществления изобретения для декодирования и кодирования могут быть адаптированы для использования с любым протоколом для передачи по любому каналу связи.A communication channel between a device that uses an embodiment of a decoding method using multiple thresholds and a device where an embodiment of an encoding method associated with said decoding method is used may include, but is not limited to: a fiber optic channel, a wired channel, a channel, reading data stored in a memory unit or a wireless channel. Additionally, embodiments of the invention for decoding and encoding can be adapted for use with any protocol for transmission over any communication channel.
На фиг.5 представлена блок-схема варианта сети 500 связи, содержащей систему 502 для кодирования высоко-избыточного кодового слова с контролем четности и систему 520 для декодирования версии кодированного высоко-избыточного кодового слова с контролем четности, полученного из канала 505 связи между этими двумя системами. Источник информации предоставляет информационные биты LDPC кодеру 510 системы 502. Кодер 510 LDPC включает в себя процедуру 512 кодирования, в которой используется структура 514 H-матрицы для создания кодового слова, передаваемого в канал 505. Структура 514 H-матрицы разработана с использованием параметров 514 кода LDPC, которые предоставляются системе 502 и системе 520.5 is a block diagram of an embodiment of a
Система 520 включает в себя декодер 522 LDPC, который использует параметры 514 кода LDPC. Параметры кода LDPC используются структурой 524 H-матрицы в декодере 522 LDPC. Кодовое слово, принятое из канала 505, подается в блок 526 начального решения для получения мягких решений, дающих в результате жесткие решения 528 и решения 530 по надежности. Жесткими решениями 528 являются начальные двоичные биты для тестового кодового слова, а решениями по надежности являются начальные битовые надежности, связанные с битами тестового кодового слова. В одном варианте жесткими решениями 528 являются двоичные биты, установленные в соответствии со знаком соответствующего бита принятого кодового слова. Принятый бит, имеющий положительное значение, устанавливается равным единице, а принятый бит, имеющий нулевое значение или отрицательное значение, устанавливается равным нулю. В альтернативном варианте, принятый бит, имеющий нулевое значение или положительное значение, устанавливается равным нулю, а принятый бит, имеющий отрицательное значение, устанавливается равным единице. Начальные битовые надежности для каждого бита принятого кодового слова могут быть установлены равными абсолютному значению соответствующего бита принятого кодового слова.
Жесткие решения 528, решения 530 по надежности и структура 524 H-матрицы подаются в многопороговый декодер 532 для выполнения процесса итеративного декодирования с целью обеспечения информационных битов 508 от системы 520. Многопороговый декодер 532 использует пороги 534, с которыми сравниваются расчетные надежности, а битовые надежности и биты для тестового кодового слова обновляются. Расчетные надежности получают из битовых надежностей. В одном варианте расчетные надежности получают из начальных решений по надежности и вычисленных контрольных сумм. Биты для тестового кодового слова создаются из жестких решений 528 с битами, значения которых изменены на противоположные, в соответствии с результатами сравнения со значением порога на каждой итерации. В одном варианте пороги 534 вычисляются на основе сравнения расчетных битовых надежностей и значения порога для данной итерации. В одном варианте вычисляется набор порогов 534 на основе сравнения расчетных битовых надежностей и значения порога для данной итерации, причем эти пороги используются в нескольких других итерациях. Второй набор порогов 534 устанавливается с фиксированным значением, таким как нуль, и используется в нескольких других итерациях. Фиксированное значение для порога используется в группе итераций, образующих последние итерации в процессе декодирования. В альтернативном варианте пороги 354 устанавливаются равными заранее определенным значениям в зависимости от итерации, в которой используется данное значение порога.
Можно реализовать различные варианты для сети 500 связи, системы 502 и системы 520. Сеть 500 связи может представлять собой наземную сеть, использующую оптические волокна, коаксиальный кабель или провода в качестве среды передачи для каналов связи между различными узлами сети 500 связи. Сеть 500 связи может быть реализована в виде беспроводной сети, в которой системы 502 и 520 сконфигурированы как часть узла сети 500 связи или как часть беспроводного приемного устройства, которое принимает сигналы из узлов сети 500 связи. Системы 502 и 520 могут быть сконфигурированы как часть, но не только, сетевых компонент, таких как базовые станции, и могут быть сконфигурированы как часть, но не только, беспроводных приемных устройств, таких как портативные устройства связи, компьютеры и вычислительные устройства типа «лэптоп». Хотя это не показано, системы 502 и 520, сконфигурированные в системе беспроводной связи 500, включают в себя антенны для передачи и приема сигналов, которые содержат одно или несколько кодовых слов. Схемы и устройства декодирования и кодирования не ограничивают тип или конфигурацию таких компонент поддержки, как антенны в системах 502 и 520. В одном варианте используется фактически всенаправленная антенна.Various options may be implemented for
Каждый узел сети 500 связи, сконфигурированной в виде наземной сети или в виде беспроводной сети, может содержать версию системы 502 и/или версию системы 520, либо систему, являющуюся комбинацией системы 502 и системы 520. Дополнительно, процессы декодирования и кодирования, используемые в кодерах и декодерах систем 502 и 520, а также описанные здесь другие варианты для процессов и устройства декодирования и кодирования могут быть адаптированы для стандартов и протоколов связи, используемых в сети 500 связи.Each node of the
На фиг.6 показана блок-схема варианта способа, который можно использовать с декодером LDPC, таким как декодер 522 LDPC, с конфигурацией, показанной на фиг. 5. На шаге 610 строится вектор начального жесткого решения и вектор начальных надежностей. Для принятого кодового слова Y=(Y1, Y2, ..., Yn) положим, что N(m) является набором позиций кодового слова, которые используются в m-й проверке четности: N(m)={n:Hm,n=1}, где H - матрица контроля четности, такая как предусмотрена структурой 524 H-матрицы на фиг. 5, а Hm,n=1 означает, что значение матрицы H в позиции m, n равно единице. Кроме того, положим, что M(n) является набором проверок четности, который включает в себя n-ю позицию кодового слова: M(n)={m:Hm,n=1}.FIG. 6 is a flowchart of an embodiment of a method that can be used with an LDPC decoder, such as
При инициализации, для каждого элемента yi принятого вектора, такого как принятый в декодере 522 LDPC по фиг.5, вычисляются жесткое решение Xi и битовая надежность Ri. Битовая надежность Ri устанавливается равной абсолютному значению Yi. Жесткое решение может установить Xi равным единице, если Yi больше нуля, и Xi равным нулю, если Yi меньше или равно нулю. Для каждого битовая надежность контроля четности определяется как Ymn, где первоначально Ymn = Rn, а соответствующее жесткое решение определяется как Xmn, где первоначально Xmn = Xn. Upon initialization, for each element y i of the received vector, such as that received in the
После инициализации, на шаге 620 итеративный процесс начинается с выполнения вычисления надежностей контроля четности. В одном варианте для каждого n и каждого контрольные суммы Smn вычисляются как:After initialization, at
Σ Xmn' mod 2, где суммирование выполняется по N(m)/n. Выражение N(m)/n означает набор N(m), где исключен бит n. Значение минимума Ymn определяется как: Σ X mn ' mod 2, where the summation is performed over N (m) / n. The expression N (m) / n means the set N (m), where bit n is excluded. The minimum value of Y mn is defined as:
Ymn min = min{Ymn'} для N(m)\n.Y mn min = min {Y mn ' } for N (m) \ n.
На шаге 630 вычисляется порог. В одном варианте порог устанавливается равным минимальному значению по всем n из набора обновленных битовых надежностей, определенных для каждого n какAt
Zn = Rn + Σ (-1)Smn Ymn min для .Z n = R n + Σ (-1) Smn Y mn min for .
Эти обновленные битовые надежности также будут выполнять функцию надежностей для сравнения в процессе декодирования. В одном варианте обеспечивается многозначный порог путем вычисления значения для порога во время каждой итерации процесса декодирования. Такой подход является адаптивным. В одном варианте многозначный порог может быть обеспечен путем вычисления значения для порога во время первой итерации с использованием обновленных битовых надежностей и обеспечивается в виде фиксированного значения, такого как нуль, для остальных итераций. В одном варианте многозначный порог может быть обеспечен путем вычисления значения для порога во время первой итерации с использованием обновленных битовых надежностей и использованием этого значения для первой половины от общего количества итераций и затем с использованием фиксированного значения, например, нуля, для другой половины всех итераций.These updated bit reliability will also serve as reliability for comparison in the decoding process. In one embodiment, a multi-valued threshold is provided by calculating a value for the threshold during each iteration of the decoding process. This approach is adaptive. In one embodiment, a multi-valued threshold can be provided by calculating the value for the threshold during the first iteration using updated bit reliabilities and provided as a fixed value, such as zero, for the remaining iterations. In one embodiment, a multi-valued threshold can be provided by calculating the value for the threshold during the first iteration using updated bit reliabilities and using this value for the first half of the total number of iterations and then using a fixed value, for example, zero, for the other half of all iterations.
В одном варианте многозначный порог может быть обеспечен путем использования заранее определенного набора порогов, где используемое значение коррелируется с номером итерации, в котором оно применяется. В одном варианте заранее определенные значения присваиваются в соответствии с параметрами канала связи, из которого получено принятое кодовое слово. Эти параметры могут включать в себя набор отношений сигнал-шум, набор других канальных параметров или набор стандартных (среднеквадратических) отклонений, коррелированных с канальными параметрами. В одном варианте заранее определенный набор параметров может быть определен посредством процесса моделирования. Один такой процесс может включать в себя моделирование процесса декодирования для обеспечения набора порогов для данного отношения сигнал-шум и установку порога для данного отношения сигнал-шум в виде среднего значения набора моделированных порогов. Этот процесс может выполняться для каждого отношения сигнал-шум в наборе отношений сигнал-шум. Можно реализовать другие статистические вариации в моделированных порогах для процесса декодирования. Эти заранее определенные значения, какой бы вариант ни использовался для обеспечения этих значений, могут быть запомнены в виде таблицы. В дополнение к программной реализации, эти таблицы облегчают аппаратные реализации, путем использования краткой справочной таблицы.In one embodiment, a multi-valued threshold can be provided by using a predetermined set of thresholds where the value used is correlated with the iteration number in which it is applied. In one embodiment, predetermined values are assigned in accordance with the parameters of the communication channel from which the received codeword is derived. These parameters may include a set of signal-to-noise ratios, a set of other channel parameters, or a set of standard (mean square) deviations correlated with channel parameters. In one embodiment, a predetermined set of parameters can be determined through a modeling process. One such process may include modeling a decoding process to provide a set of thresholds for a given signal-to-noise ratio and setting a threshold for a given signal-to-noise ratio as an average of a set of simulated thresholds. This process can be performed for each signal to noise ratio in the set of signal to noise ratios. You can implement other statistical variations in the simulated thresholds for the decoding process. These predefined values, whichever option is used to provide these values, can be stored in a table. In addition to the software implementation, these tables facilitate hardware implementations by using a quick reference table.
В одном варианте пороги выбирают для множества рабочих режимов декодирования. В одном режиме при декодировании исправляется одна или две ошибки. В этом режиме процесс декодирования не вносит дополнительной ошибки в вектор кодового слова. В другом варианте процесс декодирования исправляет более одной ошибки за одну итерацию и может исправить одну или две ошибки в последующей итерации.In one embodiment, thresholds are selected for a plurality of decoding operating modes. In one mode, one or two errors are corrected during decoding. In this mode, the decoding process does not introduce an additional error into the codeword vector. In another embodiment, the decoding process corrects more than one error in one iteration and can correct one or two errors in a subsequent iteration.
Можно использовать различные комбинации для обеспечения множества пороговых значений в ходе процесса итерации в зависимости от допустимой сложности для данного приложения.Various combinations can be used to provide many threshold values during the iteration process, depending on the permissible complexity for a given application.
На шаге 640 выполняется обновление битовой надежности контроля четности. Вычисляется набор надежностей для сравнения исходя из надежностей контроля четности, что может рассматриваться как голосование для контроля четности. Для каждого n и каждого величина Zmn определяется какAt
Zmn = Rn + Σ (-1)Sm'n Ym'n min для N(n)/m.Z mn = R n + Σ (-1) Sm'n Y m'n min for N (n) / m.
Для каждого n битовые надежности контроля четности обновляются как соответствующие жесткие решения Xmn на основе надежностей для сравнения Zmn. Обновление надежности или жесткое решение включает в себя поддержание значения надежности или жесткого решения, если сравнение показывает, что надежность или жесткое решение должно остаться тем же самым. For each n, the parity bit reliability is updated as the corresponding hard decisions X mn based on the reliability for comparison of Z mn . A reliability update or a tough decision includes maintaining a reliability or tough decision if the comparison shows that the reliability or tough decision should remain the same.
На шаге 650 создается новый вектор С жесткого решения на основе надежностей для сравнения или обновленных битовых надежностей Zn в видеIn
Обновление бита включает в себя сохранение значения бита, если сравнение показывает, что бит должен остаться тем же самым. Члены Сi обеспечивают биты тестового кодового слова для определения того, было ли создано достоверное кодовое слово. На шаге 660 выполняется оценка достоверности тестового кодового слова. Если появляется следующее соотношениеUpdating a bit involves storing the bit value if the comparison shows that the bit should remain the same. Members C i provide bits of a test codeword to determine whether a valid codeword has been generated. At
CHТ ≠ 0,CH T ≠ 0,
то итеративный процесс возвращается к шагу 620, используя обновленные значения надежности контроля четности.then the iterative process returns to step 620 using the updated parity reliability values.
Другой вариант способа для итеративного декодирования кодового слова LDPC с использованием порога, имеющего множество значений, включает в себя присвоение порогу только двух значений во время итеративного процесса. Первое значение устанавливается равным минимальной из обновленных надежностей Zn для Zn, созданных в первой итерации до выполнения сравнений решений. Второе значение устанавливается равным нулю для последующих итераций. Указанный вариант обеспечивает выигрыш 0,5 дБ за время декодирования по сравнению с другими известными схемами быстрого декодирования, имеющими фактически аналогичную сложность.Another embodiment of a method for iteratively decoding an LDPC codeword using a threshold having a plurality of values includes assigning to the threshold only two values during an iterative process. The first value is set equal to the minimum of the updated reliability Z n for Z n created in the first iteration before making comparisons of solutions. The second value is set to zero for subsequent iterations. This option provides a gain of 0.5 dB during decoding compared with other known fast decoding schemes having virtually the same complexity.
В вариантах для схем с множеством порогов декодируется любой код LDPC в любой ситуации. Однако, для заранее заданного кода и известных свойств канала пороги могут выбираться более точно. В различных вариантах количество итераций может быть принято равным log2 n, где n - длина кодового слова. Это обеспечивает максимальное количество итераций для выполнения до завершения итерации до восстановления достоверного кодового слова. Эксперименты показывают, что настройка и оптимизация порога обеспечивают увеличение выигрыша по BER, но определение точной зависимости между порогами, структурой кода и свойствами канала зависит от конкретного приложения.In embodiments for multi-threshold schemes, any LDPC code is decoded in any situation. However, for a predetermined code and known channel properties, thresholds can be selected more accurately. In various embodiments, the number of iterations can be taken equal to log 2 n, where n is the length of the code word. This provides the maximum number of iterations to be performed until the completion of the iteration before the restoration of a valid codeword. Experiments show that tuning and optimizing the threshold provides an increase in BER gain, but determining the exact relationship between the thresholds, code structure, and channel properties depends on the particular application.
Различные варианты или комбинации вариантов для устройства и способов для декодирования и кодирования сигналов связи с использованием описанных здесь многопороговых схем можно реализовать аппаратными средствами, программными средствами и комбинациями аппаратных и программных средств. Эти реализации могут включать в себя машиночитаемый носитель, имеющий считываемые компьютером команды для выполнения способа декодирования и/или кодирования с использованием варианта схемы, где применяется множество порогов для итеративного кодирования. Машиночитаемый носитель не ограничивается носителем какого-либо одного типа. Используемый машиночитаемый носитель зависит от приложения, использующего вариант схемы с множеством порогов. В одном варианте процессор, подсоединенный к приемнику и/или передатчику, может использовать различные виды памяти, к которой он подсоединен, и машиночитаемый носитель для управления декодированием и/или кодированием информации для передачи данных. В одном варианте в памяти могут запоминаться параметры, используемые для итеративного декодирования принятого кодового слова.Various variations or combinations of variations for a device and methods for decoding and encoding communication signals using the multi-threshold schemes described herein may be implemented in hardware, software, and combinations of hardware and software. These implementations may include computer-readable media having computer-readable instructions for performing a decoding and / or encoding method using an embodiment of a scheme where multiple thresholds are used for iterative encoding. Machine-readable media is not limited to any one type of media. The computer-readable medium used depends on the application using the multi-threshold scheme option. In one embodiment, a processor connected to a receiver and / or transmitter may use various types of memory to which it is connected and a computer-readable medium for controlling decoding and / or encoding of information for data transmission. In one embodiment, the parameters used to iteratively decode the received codeword may be stored in memory.
Хотя вариант способа с использованием многозначного порога можно использовать с любым кодом LDPC, далее представлен один пример, не являющийся ограничением. Этот пример представляет вариант способа декодирования с использованием декодера с множеством порогов для высоко-избыточного кода с контролем четности на основе кодов Рида-Соломона с двумя информационными символами (код RS-LDPC). Это пример (n, γ, ρ) кода RS-LDPC с n=32, γ=4 и ρ=3, причем скорость R примерно равна 0,4, а матрица контроля четности выглядит следующим образом:Although a multi-valued threshold method variant can be used with any LDPC code, one example is provided below, which is not a limitation. This example represents an embodiment of a decoding method using a multi-threshold decoder for a high redundancy parity check code based on Reed-Solomon codes with two information symbols (RS-LDPC code). This is an example (n, γ, ρ) of the RS-LDPC code with n = 32, γ = 4, and ρ = 3, and the speed R is approximately equal to 0.4, and the parity matrix is as follows:
HRS-LDPC =H RS-LDPC =
Для этого примера принятый вектор Y={Yi} имеет длину кодового слова 32:For this example, the received vector Y = {Y i } has a codeword length of 32:
В этом варианте количество итераций установлено равным log2n, где n - длина кодового слова. Для n = 32 количество итераций составляет 5. Пороги для итераций 1, 2 и 3 устанавливаются по минимальной из обновленных битовых надежностей Zn, вычисленных в первой итерации. Пороги для итераций 4 и 5 установлены в 0.In this embodiment, the number of iterations is set to log 2 n, where n is the codeword length. For n = 32, the number of iterations is 5. Thresholds for iterations 1, 2, and 3 are set according to the minimum of updated bit reliability Z n calculated in the first iteration. Thresholds for iterations 4 and 5 are set to 0.
При инициализации вектора жесткого решения X={Xi} выглядит следующим образом:When initializing the hard decision vector, X = {X i } as follows:
1 1 1 1 0 1 1 0 1 0 1 1 0 0 1 11 1 1 1 0 1 1 0 1 0 1 1 0 0 1 1
1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 11 0 1 0 0 1 1 0 1 0 0 1 0 1 1 1
битовые надежности Ri составляют bit reliability R i are
а надежности контроля четности первоначально установлены в видеand the reliability of the parity is initially set as
Ymn:Y mn :
На первой итерации вычисляются контрольные суммы, а минимальные надежности контроля четности Ymn-min определяются какAt the first iteration, checksums are calculated, and the minimum reliability of the parity control Y mn-min is defined as
контрольные суммы Smn:checksums S mn :
Ymn-min:Y mn-min :
Порог вычисляется в результате первого вычисления обновленных битовых надежностей (битовых надежностей для сравнения) Zn какThe threshold is calculated as a result of the first calculation of the updated bit reliability (bit reliability for comparison) Z n as
Zn:Z n :
Из этих значений Zn определяется, что порог равен -1,04.From these values of Z n it is determined that the threshold is -1.04.
Формируются надежности для сравнения Zmn, и обновляются надежности контроля четности Ymn и соответствующие жесткие решения Xmn следующим образомReliability is formed for comparison Z mn , and the reliability of the parity check Y mn and the corresponding hard decisions X mn are updated as follows
Zmn:Z mn :
Ymn:Y mn :
Xmn:X mn :
Затем формируется тестовое кодовое слово в виде восстановленного кодового словаThen, a test codeword is generated in the form of a reconstructed codeword
C={Ci}:C = {C i }:
0 1 1 1 0 0 1 0 0 0 1 1 0 0 1 10 1 1 1 0 0 1 0 0 0 1 1 0 0 1 1
1 1 1 0 0 1 1 0 1 0 0 1 1 1 1 11 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1
Тестовое кодовое слово С таково, что HCT ≠ 0, и выполняется вторая итерация. Итерация 2 начинается с вычисления новых контрольных сумм и новых минимальных надежностей контроля четности Ymn-min как контрольных сумм Smn:The test codeword C is such that HC T ≠ 0, and the second iteration is performed. Iteration 2 begins with the calculation of new checksums and new minimum reliability parity control Y mn-min as checksums S mn :
Ymn-min:Y mn-min :
Порогу для итераций 1, 2 и 3 присвоено минимальное значение обновленных битовых надежностей (битовые надежности для сравнения) Zn, вычисленных в первой итерации. Таким образом, в этой итерации порог устанавливают равным -1,04, как в первой итерации. Обновленные битовые надежности (битовые надежности для сравнения) Zn для второй итерации определяются как:The threshold for iterations 1, 2, and 3 is assigned the minimum value of the updated bit reliability (bit reliability for comparison) Z n calculated in the first iteration. Thus, in this iteration, the threshold is set to -1.04, as in the first iteration. Updated bit reliability (bit reliability for comparison) Z n for the second iteration are defined as:
Zn:Z n :
Формируются надежности для сравнения Zmn для второй итерации, и надежности контроля четности Ymn для второй итерации и обновляются соответствующие жесткие решения Xmn следующим образом.Reliability is formed for comparison Z mn for the second iteration, and parity reliability Y mn for the second iteration, and the corresponding hard solutions X mn are updated as follows.
Zmn:Z mn :
Ymn:Y mn :
Xmn:X mn :
Затем формируется тестовое кодовое слово в виде восстановленного кодового словаThen, a test codeword is generated in the form of a reconstructed codeword
C ={Ci}:C = {C i }:
0 1 1 1 0 0 1 0 0 0 1 1 0 0 1 10 1 1 1 0 0 1 0 0 0 1 1 0 0 1 1
1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 11 0 1 0 0 1 1 0 1 0 0 1 1 1 1 1
Тестовое кодовое слово С таково, что HCT=0, и декодирование заканчивается, поскольку считается успешным. В этом примере итерации 3-5 не требуются, и итерации завершаются. Хотя было выбрано второе значение, которое планировалось использовать в итерациях 4 и 5, необходимость в нем отпала. Этот пример реализации варианта схемы многопорогового декодирования не следует рассматривать как ограничение для различных вариантов осуществления настоящего изобретения.The test codeword C is such that HC T = 0, and decoding ends because it is considered successful. In this example, iterations 3-5 are not required, and the iterations are completed. Although the second value was chosen, which was planned to be used in iterations 4 and 5, the need for it disappeared. This example implementation of a multi-threshold decoding scheme should not be construed as limiting for various embodiments of the present invention.
Различные варианты декодирования принятого кодового слова с использованием многозначного порога могут быть применены для любого высоко-избыточного кода с контролем четности. В указанных вариантах, когда вес проверки четности уменьшается, качество декодирования возрастает. Эти варианты могут быть применены в способе, не сильно усложняющем схему декодирования. В зависимости от допустимой сложности для данного приложения могут быть использованы различные комбинации для обеспечения множества пороговых значений во время итеративного процесса. Использование вариантов способа многопорогового декодирования обеспечивает дополнительное уменьшение сложности, поскольку эти варианты могут действовать в аппаратных реализациях без чисел с плавающей точкой, что упрощает и удешевляет общее техническое решение. Варианты схемы многопорогового декодирования позволяют выполнять конвейерную и/или параллельную обработку в аппаратных реализациях, поскольку использование многозначного порога может обеспечить схему быстрого декодирования.Various options for decoding a received codeword using a multi-valued threshold can be applied to any high-redundancy parity code. In these embodiments, when the weight of the parity check decreases, the decoding quality increases. These options can be applied in a method that does not greatly complicate the decoding scheme. Depending on the permissible complexity for a given application, various combinations can be used to provide multiple threshold values during an iterative process. The use of variants of the multi-threshold decoding method provides an additional reduction in complexity, since these variants can operate in hardware implementations without floating-point numbers, which simplifies and reduces the cost of the overall technical solution. Variants of a multi-threshold decoding scheme allow pipelining and / or parallel processing in hardware implementations, since the use of a multi-valued threshold can provide a fast decoding scheme.
Варианты схемы многопорогового декодирования можно адаптировать для использования в любой системе, работающей с каналом связи. Канал связи может являться частью наземной сети связи или беспроводной сети связи. Варианты настоящего изобретения действительно могут быть с успехом реализованы как часть любой беспроводной системы, где используются каналы беспроводной связи с несколькими несущими (например, ортогональное мультиплексирование с частотным разделением (OFDM), дискретная многотональная модуляция (DMT), и т.д.), например, могут быть использованы без ограничения в беспроводной персональной сети (WPAN), беспроводной локальной сети (WLAN), беспроводной городской сети WMAN), беспроводной глобальной сети (WWAN), сотовой сети, сети третьего поколения (3G), сети четвертого поколения (4G), универсальной системе мобильной телефонной связи (UMTS) и аналогичных системах связи.Variants of a multi-threshold decoding scheme can be adapted for use in any system operating with a communication channel. The communication channel may be part of a terrestrial communications network or a wireless communications network. Embodiments of the present invention can indeed be successfully implemented as part of any wireless system where multi-carrier wireless communication channels are used (eg, orthogonal frequency division multiplexing (OFDM), discrete multi-tone modulation (DMT), etc.), for example can be used without limitation in wireless personal area network (WPAN), wireless local area network (WLAN), wireless urban network WMAN), wireless wide area network (WWAN), cellular network, third generation network (3G), network fourth generation (4G), universal mobile telephone system (UMTS) and similar communication systems.
Хотя выше показаны и описаны конкретные варианты осуществления изобретения, специалистам в данной области техники должно быть ясно, что представленные конкретные варианты можно заменить любой структурой, которая вычисляется для достижения той же цели. Подразумевается, что данная заявка охватывает любые адаптации или видоизменения вариантов настоящего изобретения. Должно быть ясно, что вышеприведенное описание предназначено для иллюстрации, а не ограничения, и что использованная здесь фразеология или терминология принята в целях описания, а не ограничения. На основе вышеприведенного описания специалисты в данной области техники без труда смогут предложить комбинации вышеописанных вариантов и другие варианты изобретения. Объем настоящего изобретения включает в себя любые иные приложения, в которых используются варианты вышеописанных структур и способов реализации. Объем вариантов осуществления настоящего изобретения следует определять согласно формуле изобретения вместе с полным объемом соответствующих ей эквивалентов.Although specific embodiments of the invention have been shown and described above, it should be apparent to those skilled in the art that the specific embodiments presented can be replaced by any structure that is calculated to achieve the same goal. It is intended that this application cover any adaptations or modifications to the variations of the present invention. It should be clear that the above description is intended to illustrate and not limit, and that the phraseology or terminology used here is adopted for the purpose of description and not limitation. Based on the foregoing description, those skilled in the art will readily be able to propose combinations of the above options and other embodiments of the invention. The scope of the present invention includes any other applications that use variants of the above structures and implementation methods. The scope of embodiments of the present invention should be determined according to the claims, together with the full scope of its equivalents.
Claims (46)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2006138223/09A RU2337478C2 (en) | 2004-03-31 | 2004-03-31 | Decoding of highly excessive code with parity check, using multithreshold message transfer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2006138223/09A RU2337478C2 (en) | 2004-03-31 | 2004-03-31 | Decoding of highly excessive code with parity check, using multithreshold message transfer |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2006138223A RU2006138223A (en) | 2008-05-27 |
RU2337478C2 true RU2337478C2 (en) | 2008-10-27 |
Family
ID=39586047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2006138223/09A RU2337478C2 (en) | 2004-03-31 | 2004-03-31 | Decoding of highly excessive code with parity check, using multithreshold message transfer |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2337478C2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU178755U1 (en) * | 2017-07-04 | 2018-04-18 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Рязанский государственный радиотехнический университет" | LDPC CODE DECODING DEVICE |
RU2699833C1 (en) * | 2018-11-08 | 2019-09-11 | Валерий Владимирович Золотарев | Method of accelerated decoding of a linear code |
RU2747089C2 (en) * | 2016-08-11 | 2021-04-26 | Зебваре Аб | Device and corresponding methodology for encoding and decoding of data for overwrite code |
RU2811072C1 (en) * | 2019-12-30 | 2024-01-11 | Хуавей Текнолоджиз Ко., Лтд. | Decoding method, decoder and decoding device |
-
2004
- 2004-03-31 RU RU2006138223/09A patent/RU2337478C2/en not_active IP Right Cessation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2747089C2 (en) * | 2016-08-11 | 2021-04-26 | Зебваре Аб | Device and corresponding methodology for encoding and decoding of data for overwrite code |
RU178755U1 (en) * | 2017-07-04 | 2018-04-18 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Рязанский государственный радиотехнический университет" | LDPC CODE DECODING DEVICE |
RU2699833C1 (en) * | 2018-11-08 | 2019-09-11 | Валерий Владимирович Золотарев | Method of accelerated decoding of a linear code |
RU2811072C1 (en) * | 2019-12-30 | 2024-01-11 | Хуавей Текнолоджиз Ко., Лтд. | Decoding method, decoder and decoding device |
Also Published As
Publication number | Publication date |
---|---|
RU2006138223A (en) | 2008-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7716561B2 (en) | Multi-threshold reliability decoding of low-density parity check codes | |
US8209579B2 (en) | Generalized multi-threshold decoder for low-density parity check codes | |
US7395495B2 (en) | Method and apparatus for decoding forward error correction codes | |
US8010869B2 (en) | Method and device for controlling the decoding of a LDPC encoded codeword, in particular for DVB-S2 LDPC encoded codewords | |
US8015468B2 (en) | Channel estimation and fixed thresholds for multi-threshold decoding of low-density parity check codes | |
US11728829B2 (en) | Error detection in communication systems using polar coded data transmission | |
CN108282264A (en) | The polarization code coding method of list algorithm is serially eliminated based on bit reversal | |
US8806288B2 (en) | Systems and methods for providing unequal error protection code design from probabilistically fixed composition codes | |
JP2006523985A (en) | Early termination of turbo decoder iterations | |
Jing et al. | Blind recognition of binary cyclic codes | |
US8301983B2 (en) | Modified turbo-decoding message-passing algorithm for low-density parity check codes | |
CN114073024B (en) | Convolutional precoding and decoding of polar codes | |
US20150372695A1 (en) | Method and apparatus of ldpc decoder with lower error floor | |
JP2007512741A (en) | A belief propagation decoder that cancels the exchange of unreliable messages. | |
KR20070084952A (en) | Apparatus and method for receiving signal in a communication system | |
CN112491422A (en) | Gauss optimization-based bit flipping serial elimination list decoding method and system | |
RU2337478C2 (en) | Decoding of highly excessive code with parity check, using multithreshold message transfer | |
US11483012B2 (en) | Decoding system and method for low latency bit-flipping successive cancellation decoding for polar codes | |
US20220337269A1 (en) | Block code encoding and decoding methods, and apparatus therefor | |
EP4205284A1 (en) | Staircase polar encoding and decoding | |
CN112165336A (en) | Sliding window decoding method and system with resynchronization mechanism | |
CN114337684B (en) | Composite decoding method and system | |
JP4900168B2 (en) | Wireless receiver | |
US20240243759A1 (en) | Apparatus and method for generating a frozen set associated with a polar code | |
Ahire et al. | Non-Iterative MSNN Decoder for Image Transmission over AWGN Channel using LDPC |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20110401 |