RU2420870C1 - Method of encoding-decoding multistage code structure in data transmission systems - Google Patents

Method of encoding-decoding multistage code structure in data transmission systems Download PDF

Info

Publication number
RU2420870C1
RU2420870C1 RU2009149001/09A RU2009149001A RU2420870C1 RU 2420870 C1 RU2420870 C1 RU 2420870C1 RU 2009149001/09 A RU2009149001/09 A RU 2009149001/09A RU 2009149001 A RU2009149001 A RU 2009149001A RU 2420870 C1 RU2420870 C1 RU 2420870C1
Authority
RU
Russia
Prior art keywords
code
decoded
words
internal
code words
Prior art date
Application number
RU2009149001/09A
Other languages
Russian (ru)
Inventor
Андрей Николаевич Мингалев (RU)
Андрей Николаевич Мингалев
Александр Борисович Парамонов (RU)
Александр Борисович Парамонов
Владимир Викторович Егоров (RU)
Владимир Викторович Егоров
Александр Евгеньевич Тимофеев (RU)
Александр Евгеньевич Тимофеев
Елена Федоровна Щеглова (RU)
Елена Федоровна Щеглова
Original Assignee
Открытое акционерное общество "Российский институт мощного радиостроения"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Открытое акционерное общество "Российский институт мощного радиостроения" filed Critical Открытое акционерное общество "Российский институт мощного радиостроения"
Priority to RU2009149001/09A priority Critical patent/RU2420870C1/en
Application granted granted Critical
Publication of RU2420870C1 publication Critical patent/RU2420870C1/en

Links

Landscapes

  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

FIELD: information technology. ^ SUBSTANCE: at the transmitting side, cyclic redundancy check (CRC) is added to the initial information and the obtained block is encoded by an external code in the GF(q) field and an internal code. At the receiving side, the information block is decoded by an internal code. Sequences of the decoded code words, uncorrectable code words and deleted code words are recorded. Further, an array of decoded code words of the internal code is decoded by an external code and the CRC is calculated and checked. In case of positive result, the information is sent to a message recipient; otherwise the sequence of deleted code words is restored: contenders for restoration are calculated, while inverting each bit in each uncorrectable code word, code words with inverted bits are decoded by an internal code, the obtained code combination is checked for coincidence with code combinations obtained earlier. If such a code combination has not existed before, the deleted code words are replaced with decoded words, the obtained array of decoded code words is decoded once more with an external code and the CRC is recalculated and re-checked until a positive result is obtained. ^ EFFECT: possibility of using various code structures in a data transmission system and adaptive alteration thereof depending on the signal-noise environment, cutting on the required amount of memory.

Description

Изобретение относится к технике связи и может быть использовано в системах передачи данных для осуществления помехоустойчивого кодирования и декодирования информации каскадным кодом.The invention relates to communication technology and can be used in data transmission systems for the implementation of error-correcting coding and decoding of information by a cascade code.

Известен способ кодирования-декодирования информации, описанный в патенте США №6374382 "Сокращенный блочный код для систем каскадного кодирования". Данная система передачи данных использует каскадный код, внешний код которого - код Рида-Соломона (PC), формирующий внешнюю кодовую последовательность на основе исходных данных, внутренний код - сокращенный блочный код (n, k,), причем k=8×i, где i - небольшое целое число, выбираемое для того, чтобы избежать перемежения между внутренним и внешним кодами. Внутренний код (12, 8, 3) представляет собой модифицированный код Хэмминга (15, 11).A known method of encoding-decoding information described in US patent No. 6374382 "Abbreviated block code for cascading coding systems." This data transmission system uses a cascade code, the external code of which is the Reed-Solomon (PC) code, which forms the external code sequence based on the source data, the internal code is the abbreviated block code (n, k,), where k = 8 × i, where i is a small integer selected in order to avoid alternating between internal and external codes. The internal code (12, 8, 3) is a modified Hamming code (15, 11).

Данный внутренний код позволяет исправлять однократные ошибки, но при наличии в принятых словах двух и более ошибок на выходе декодера появляются ошибочные и стертые символы. Внешний код - код Рида-Соломона с минимальным кодовым расстоянием d позволяет декодировать любую конфигурацию, содержащую ν ошибок и р стираний при условии, что d≥2ν+р+1. В случае невыполнения этого неравенства декодер PC не сможет правильно декодировать информационную последовательность, что в системах передачи данных без обратной связи приведет к потере информации, а в системах с обратной связью - к переспросу переданного блока данных и, следовательно, к снижению информационной скорости передачи.This internal code allows correcting one-time errors, but if there are two or more errors in the received words, errored and erased characters appear at the decoder output. External code - Reed-Solomon code with a minimum code distance d allows you to decode any configuration containing ν errors and p erasures, provided that d≥2ν + p + 1. If this inequality is not fulfilled, the PC decoder will not be able to correctly decode the information sequence, which in data transfer systems without feedback will lead to loss of information, and in feedback systems, it will re-ask the transmitted data block and, consequently, reduce the information transfer speed.

Наиболее близким к предлагаемому техническому решению является способ, описанный в патенте РФ №2310273 "Способ кодирования-декодирования информации в системах передачи данных". Способ может быть реализован в системах передачи данных, у которых на передающей стороне осуществляют кодирование информации внешним кодом Рида-Соломона и внутренним кодом, а на приемной стороне - декодирование с обнаружением и исправлением ошибок. При этом выполняют следующие операции. На передающей стороне к блоку исходной информации добавляют циклическую контрольную сумму, полученный блок кодируют внешним кодом и затем внутренним кодом, в качестве которого используют расширенный код Голея (24, 12, 8), позволяющий исправлять все векторы ошибок веса 3 или меньшего, а также часть ошибок веса 4. Затем на приемной стороне производят декодирование принятого блока информации, для чего сначала выполняют декодирование внутренним кодом, запоминают последовательность декодированных кодовых слов внутреннего кода в массиве декодированных кодовых слов внутреннего кода, запоминают последовательность некорректируемых кодовых слов внутреннего кода в массиве некорректируемых кодовых слов внутреннего кода. При этом одновременно запоминают последовательность стертых кодовых слов вместо некорректируемых кодовых слов в массиве декодированных кодовых слов внутреннего кода. Далее осуществляют декодирование внешним кодом последовательности всех кодовых слов (декодированных и стертых) массива декодированных кодовых слов внутреннего кода, в отношении результата декодирования выполняют вычисление и проверку циклической контрольной суммы (CRC). В случае положительного результата, когда проверка по CRC не выявила наличия искажения кодового блока, информацию отдают получателю сообщений, а в случае отрицательного результата, когда проверка по CRC обнаружила искажение кодового блока, производят восстановление последовательности стертых кодовых слов массива декодированных кодовых слов внутреннего кода. Для этого по заранее созданной таблице для каждого некорректируемого кодового слова массива некорректируемых кодовых слов внутреннего кода находят по шесть кандидатов и дополняют ими массив некорректируемых кодовых слов внутреннего кода. Затем для каждого некорректируемого кодового слова производят выбор кандидата в массиве некорректируемых кодовых слов внутреннего кода, заменяют стертые кодовые слова массива декодированных кодовых слов внутреннего кода выбранными кандидатами, после чего повторяют декодирование внешним кодом вновь полученной последовательности массива декодированных кодовых слов внутреннего кода. Процедуры восстановления стертых кодовых слов внутреннего кода и декодирования внешним кодом повторяют до тех пор, пока проверка циклической контрольной суммы не даст положительный результат.Closest to the proposed technical solution is the method described in RF patent No. 2310273 "Method for encoding-decoding information in data transmission systems." The method can be implemented in data transmission systems in which information is encoded on the transmitting side with an external Reed-Solomon code and internal code, and on the receiving side, decoding is performed with error detection and correction. The following operations are performed. On the transmitting side, a cyclic checksum is added to the source information block, the resulting block is encoded with an external code and then with an internal code, which uses the extended Golei code (24, 12, 8), which allows correcting all error vectors of weight 3 or less, as well as part errors of weight 4. Then, on the receiving side, the received block of information is decoded, for which first decoding is performed by the internal code, the sequence of decoded code words of the internal code is stored in the decoder array code of the internal code, remember the sequence of non-correctable code words of the internal code in the array of non-correctable code words of the internal code. At the same time, the sequence of erased codewords is stored at the same time instead of non-correctable codewords in the array of decoded codewords of the internal code. Next, the external code is decoded for the sequence of all codewords (decoded and erased) of the array of decoded codewords of the internal code, and the cyclic checksum (CRC) is calculated and verified with respect to the decoding result. In the case of a positive result, when the CRC check did not reveal the presence of a code block distortion, information is given to the message recipient, and in the case of a negative result, when the CRC check revealed a code block distortion, the sequence of erased codewords of the array of decoded codewords of the internal code is restored. To do this, according to a pre-created table, for each non-correctable codeword of an array of non-correctable codewords of the internal code, six candidates are found and supplement them with an array of non-correctable codewords of the internal code. Then, for each non-correctable codeword, a candidate is selected in the array of non-correctable codewords of the internal code, the erased codewords of the array of decoded codewords of the internal code are replaced by the selected candidates, after which the external code decodes the newly received sequence of the array of decoded codewords of the internal code. The procedures for recovering erased codewords of the internal code and decoding with the external code are repeated until the verification of the cyclic checksum yields a positive result.

Описанный способ предполагает хранение таблицы из слов кода Голея, находящихся на расстоянии Хэмминга, равному, четырем от разрешенных кодовых слов (разрешенными являются слова на выходе кода Голея, напрямую соответствующие всем возможным входным словам), и для каждого из них - таблицы из шести ближайших разрешенных кодовых слов Голея, находящихся на одинаковом расстоянии Хэмминга от этих слов. Расчеты показывают, что общее количество всех возможных кодовых комбинаций составляет Vall=224 (так как слово на выходе кодера Голея состоит из 24 бит), из них разрешенных кодовых слов - 212 (так как слово на входе кодера Голея состоит из 12 бит). Количество исправляемых кодом Голея комбинаций, т.е. комбинаций, находящихся на расстоянии Хэмминга ≥3 от разрешенных кодовых слов, составляет

Figure 00000001
, где C
Figure 00000002
- количество сочетаний. Тогда количество стертых кодовых слов составит Vall-Vdecoded=16777216-9523200=7254016. Количество некорректируемых слов равно количеству стертых. Для каждого некорректируемого кодового слова необходимо хранить таблицу из шести ближайших разрешенных кодовых слов Голея. Суммарное количество некорректируемых и шести разрешенных кодовых слов для каждого из них составит 7×7254016=50778112. Так как каждое кодовое слово кода Голея состоит из 24 бит (трех байт), то общий объем памяти, необходимой для хранения таблицы, составит 152334336 байт (145,2773 Мбайт).The described method involves storing a table of Golei code words located at a Hamming distance equal to four from the allowed code words (the words at the output of the Golei code that directly correspond to all possible input words are allowed), and for each of them - the table of the six closest allowed Goley's code words that are at the same Hamming distance from these words. Calculations show that the total number of all possible code combinations is V all = 2 24 (since the word at the output of the Goley encoder consists of 24 bits), of which allowed code words is 2 12 (since the word at the input of the Goley encoder consists of 12 bits ) The number of combinations corrected by the Golei code, i.e. combinations located at a Hamming distance ≥3 from the permitted codewords is
Figure 00000001
where c
Figure 00000002
- the number of combinations. Then the number of erased codewords is V all -V decoded = 16777216-9523200 = 7254016. The number of uncorrectable words is equal to the number of erased. For each uncorrectable codeword, you must store a table of the six nearest allowed Golei codewords. The total number of uncorrectable and six permitted codewords for each of them will be 7 × 7254016 = 50778112. Since each codeword of the Golei code consists of 24 bits (three bytes), the total amount of memory required to store the table will be 152,334,336 bytes (145.2773 MB).

Передача данных по каналам с быстро изменяющимися параметрами (например, по коротковолновому радиоканалу) требует постоянного контроля за состоянием канала и своевременного реагирования на изменившиеся условия распространения сигнала. Таким образом, требуется постоянно в режиме реального времени подстраивать параметры системы передачи данных под текущие условия распространения сигнала. Существует множество способов подстройки параметров системы передачи данных - изменение вида и параметров модуляции, изменение энергетических характеристик передачи, изменение частоты передачи. Одним из важных способов является также и изменение вида и параметров кодовой конструкции. Оценку параметров канала связи необходимо производить после каждого принятого блока данных. Кроме того, по каналу обратной связи необходимо сообщать передающей стороне о качестве канала связи и о необходимости внесения соответствующих изменений в параметры системы передачи данных. После получения такого служебного сообщения передающей стороне необходимо передавать следующий блок данных с измененными параметрами. Тенденции развития современных систем передачи данных таковы, что время между получением очередного блока данных и началом передачи по обратному каналу ответного служебного сообщения составляет десятки миллисекунд. За это время необходимо обработать принятый блок, произвести оценку параметров канала и сформировать служебное сообщение. При этом обработку принятого блока данных необходимо производить не только с теми параметрами, которые были указаны в последнем служебном сообщении, но и с предыдущими, поскольку последнее служебное сообщение могло быть не принято на передающей стороне. Таким образом, время, затрачиваемое на смену параметров кода, должно быть не более 10÷20 миллисекунд. Объем оперативной памяти, требуемой для функционирования описанного в патенте РФ №2310273 способа, составляет 145,2773 Мбайт, что исключает возможность загрузки за указанное время необходимой таблицы из внешних источников. В то же время современные микропроцессорные устройства не имеют достаточного объема оперативной памяти для одновременного хранения таких таблиц с большим количеством различных кодовых конструкций. Это не позволяет адаптивно менять кодовую конструкцию в процессе передачи данных в зависимости от текущей помеховой обстановки.Data transmission on channels with rapidly changing parameters (for example, on a short-wave radio channel) requires constant monitoring of the channel condition and timely response to changing signal propagation conditions. Thus, it is required to constantly adjust in real time the parameters of the data transmission system to the current conditions of signal propagation. There are many ways to fine-tune the parameters of a data transmission system — changing the type and modulation parameters, changing the energy characteristics of a transmission, changing a transmission frequency. One of the important ways is also changing the type and parameters of the code structure. The evaluation of the parameters of the communication channel must be made after each received data block. In addition, through the feedback channel, it is necessary to inform the transmitting side of the quality of the communication channel and the need to make appropriate changes to the parameters of the data transmission system. After receiving such an overhead message, it is necessary for the transmitting side to transmit the next data block with the changed parameters. The development trends of modern data transmission systems are such that the time between receiving the next data block and the beginning of the transmission of the response service message on the return channel is tens of milliseconds. During this time, it is necessary to process the received block, evaluate the channel parameters and form a service message. In this case, the processing of the received data block must be performed not only with those parameters that were indicated in the last service message, but also with the previous ones, since the last service message could not be received on the transmitting side. Thus, the time spent on changing the code parameters should be no more than 10 ÷ 20 milliseconds. The amount of RAM required for the operation of the method described in RF patent No. 2310273 is 145.2773 MB, which excludes the possibility of downloading the necessary table from external sources for the specified time. At the same time, modern microprocessor devices do not have enough RAM for the simultaneous storage of such tables with a large number of different code structures. This does not allow adaptively changing the code structure during data transfer, depending on the current interference environment.

Задачей изобретения является возможность адаптивно изменять вид и параметры каскадного кода с восстановлением стертых кодовых слов.The objective of the invention is the ability to adaptively change the appearance and parameters of cascading code with the restoration of erased code words.

Поставленная задача решена при реализации способа кодирования-декодирования каскадной кодовой конструкции в системах передачи данных, согласно которому на передающей стороне к блоку исходной информации добавляют циклическую контрольную сумму, полученный блок кодируют внешним кодом в поле GF(q) и внутренним кодом, на приемной стороне осуществляют декодирование принятого блока информации с обнаружением и исправлением ошибок. При этом сначала выполняют декодирование внутреннего кода, запоминают последовательность декодированных кодовых слов в массиве декодированных кодовых слов внутреннего кода, запоминают последовательность некорректируемых кодовых слов в массиве некорректируемых кодовых слов внутреннего кода. Одновременно запоминают последовательность стертых кодовых слов вместо некорректируемых кодовых слов в массиве декодированных кодовых слов внутреннего кода. Далее осуществляют декодирование внешним кодом последовательности декодированных кодовых слов массива декодированных кодовых слов внутреннего кода. В отношении результата декодирования внешнего кода выполняют вычисление и проверку циклической контрольной суммы и в случае положительного результата информацию отдают получателю сообщений, а в случае отрицательного результата производят восстановление последовательности стертых кодовых слов массива декодированных кодовых слов внутреннего кода. Для восстановления последовательности стертых кодовых слов инвертируют по одному биту в каждом некорректируемом кодовом слове, тем самым изменяют расстояния по Хэммингу упомянутых кодовых слов от ближайших разрешенных кодовых слов до r, где r - максимальный радиус непересекающихся сфер вокруг разрешенных кодовых слов. Далее декодируют слова с инвертированными битами внутренним кодом, при этом осуществляют проверку на первое появление полученной кодовой комбинации и, если проверка обнаруживает, что такая кодовая комбинация была ранее, то процедуру вычисления кандидатов на восстановление выполняют снова. Если же такой кодовой комбинации не было, то заменяют стертые кодовые слова декодированными словами, выполняют декодирование внешним кодом вновь полученного массива декодированных кодовых слов внутреннего кода и повторяют вычисление и проверку циклической контрольной суммы. Если при проверке обнаруживают искажение кодового блока, то процедуру вычисления кандидатов на восстановление выполняют заново. Для этого изменяют комбинацию инвертированных бит в некорректируемых кодовых словах, вновь декодируют слова с инвертированными битами внутренним кодом, проверяют результат декодирования на первое появление такой кодовой комбинации. Затем декодируют массив декодированных кодовых слов внутреннего кода внешним кодом и выполняют проверку циклической контрольной суммы. При этом операции вычисления кандидатов на восстановление, декодирования внутренним и внешним кодами повторяют до тех пор, пока проверка циклической контрольной суммы не даст положительный результат.The problem is solved in the implementation of the coding-decoding encoding-decoding method in data transmission systems, according to which a cyclic checksum is added to the source information block on the transmitting side, the received block is encoded with an external code in the GF (q) field and an internal code is carried out on the receiving side decoding the received block of information with the detection and correction of errors. In this case, the decoding of the internal code is first performed, the sequence of decoded codewords in the array of decoded codewords of the internal code is stored, the sequence of non-correctable codewords in the array of non-correctable codewords of the internal code is stored. At the same time, a sequence of erased codewords is stored instead of non-correctable codewords in an array of decoded codewords of the internal code. Next, the external code is decoded for the sequence of decoded codewords of the array of decoded codewords of the internal code. With regard to the result of decoding the external code, the cyclic checksum is calculated and verified, and if the result is positive, the information is sent to the message recipient, and if the result is negative, the sequence of erased codewords of the decoded codeword array of the internal code is restored. To restore the sequence of erased codewords, one bit is inverted in each non-correctable codeword, thereby changing the Hamming distance of the mentioned codewords from the nearest allowed codewords to r, where r is the maximum radius of disjoint spheres around the allowed codewords. Next, the words with inverted bits are decoded by the internal code, while checking for the first occurrence of the received code combination and, if the check detects that such a code combination was earlier, then the procedure for calculating candidates for recovery is performed again. If there was no such code combination, then the erased code words are replaced with decoded words, the external code is decoded by the newly received array of decoded code words of the internal code, and the calculation and verification of the cyclic checksum is repeated. If, during verification, a code block is found to be distorted, then the procedure for calculating candidates for restoration is performed anew. To do this, change the combination of inverted bits in non-correctable code words, re-decode the words with inverted bits with an internal code, check the decoding result for the first occurrence of such a code combination. An array of decoded codewords of the internal code is then decoded by the external code, and a cyclic checksum is checked. In this case, the operations of calculating candidates for restoration, decoding by internal and external codes are repeated until the verification of the cyclic checksum gives a positive result.

Техническим результатом является возможность использовать в системе передачи данных множество различных кодовых конструкций и адаптивно изменять их в зависимости от сигнально-помеховой обстановки за счет вычисления кандидатов на восстановление стертых символов непосредственно в процессе передачи данных, а не хранения их в заранее созданной таблице, занимающей значительный объем оперативной памяти.The technical result is the ability to use many different code structures in the data transmission system and adaptively change them depending on the signal-noise situation by calculating candidates for the restoration of erased characters directly during data transfer, rather than storing them in a pre-created table, which occupies a significant amount random access memory.

Функциональная схема системы связи, реализующей предложенный способ, поясняется чертежом.Functional diagram of a communication system that implements the proposed method is illustrated in the drawing.

Способ может быть реализован в системе кодирования-декодирования информации, которая содержит последовательно соединенные блок 1 вычисления и добавления циклической контрольной суммы, блок 2 кодирования внешним кодом, блок 3 кодирования внутренним кодом, модулятор 4, канал связи 5, демодулятор 6, блок 7 декодирования внутреннего кода, блок памяти 8 декодированных кодовых слов внутреннего кода, блок 9 декодирования внешнего кода, блок 10 вычисления и проверки циклической контрольной суммы. Система кодирования-декодирования информации содержит также блок памяти 11 некорректируемых кодовых слов внутреннего кода, блок 12 вычисления кандидатов на восстановление и блок 13 проверки на первое появление кодовой комбинации. При этом второй выход блока 10 соединен со вторым входом блока 12, выход которого подключен ко второму входу блока 7, второй выход которого через блок памяти 11 соединен с первым входом блока 12. Второй вход блока памяти 8 соединен с первым выходом блока 13, второй выход которого соединен с третьим входом блока 12, а третий выход блока 7 подключен к входу блока 13.The method can be implemented in an information encoding-decoding system, which contains a series-connected block 1 for calculating and adding a cyclic checksum, an external code encoding unit 2, an internal code encoding unit 3, a modulator 4, a communication channel 5, a demodulator 6, an internal decoding unit 7 code, a memory unit 8 of decoded codewords of the internal code, an external code decoding unit 9, a cyclic checksum calculation and verification unit 10. The information encoding-decoding system also contains a memory unit 11 of non-correctable codewords of the internal code, a block 12 for calculating candidates for restoration, and a block 13 for checking for the first occurrence of the code combination. The second output of block 10 is connected to the second input of block 12, the output of which is connected to the second input of block 7, the second output of which through the memory block 11 is connected to the first input of block 12. The second input of memory block 8 is connected to the first output of block 13, the second output which is connected to the third input of block 12, and the third output of block 7 is connected to the input of block 13.

Предлагаемая система обеспечивает кодирование информации каскадным кодом, состоящим из двух кодов - внутреннего (n, k) и внешнего (N, К), где:The proposed system provides coding of information with a cascade code consisting of two codes - internal (n, k) and external (N, K), where:

n и N - количество символов на выходе внутреннего и внешнего кодов соответственно;n and N are the number of characters at the output of the internal and external codes, respectively;

k и K - количество символов на входе внутреннего и внешнего кодов соответственно.k and K are the number of characters at the input of the internal and external codes, respectively.

В качестве внешнего кода могут быть использованы любые коды, исправляющие стирания. В качестве внутреннего кода можно использовать любой код, допускающий стирания. Это означает, что все сферы радиуса r вокруг разрешенных кодовых слов (то есть множества всех слов на расстоянии Хэмминга r от кодовых слов) не пересекаются, но каждое из слов находится на расстоянии, не превышающем (r+1) хотя бы от одного разрешенного кодового слова. Такой код позволяет исправлять все векторы ошибок веса г или меньшего и дает возможность исправлять ошибки веса (r+1). Ошибки веса, большего или равного (r+2), не исправляются никогда. Вследствие чего ошибки веса (r+1) исправляют с помощью перебора кодовых слов, находящихся на расстоянии Хэмминга, равном (r+1) от некорректируемого кодового слова.As an external code, any codes correcting erasure can be used. You can use any erasable code as the internal code. This means that all spheres of radius r around the allowed codewords (i.e., the sets of all words at a Hamming distance r from the codewords) do not intersect, but each of the words is at a distance not exceeding (r + 1) from at least one allowed codeword the words. Such a code makes it possible to correct all error vectors of weight g or less and makes it possible to correct weight errors (r + 1). Errors of weight greater than or equal to (r + 2) are never corrected. As a result, weight errors (r + 1) are corrected by enumerating codewords located at a Hamming distance equal to (r + 1) from the uncorrected codeword.

Для вычисления циклической контрольной суммы в предлагаемой системе используют алгоритм циклических избыточных кодов - Cyclic Redundancy Codes (CRC). Этот алгоритм представляет собой высокоэффективное средство обнаружения ошибок. Благодаря вычислению циклической контрольной суммы возможно определение искажений данных, так как изменение данных приводит к изменению циклической контрольной суммы. Основным свойством алгоритма является то, что циклическая контрольная сумма изменяется как при искажении одного, так и более битов информационной последовательности. Для уменьшения вероятности ложного набора при вычислении циклической контрольной суммы увеличивают порядок порождающего полинома кода CRC.To calculate the cyclic checksum in the proposed system using the algorithm of cyclic redundancy codes - Cyclic Redundancy Codes (CRC). This algorithm is a highly efficient error detection tool. Thanks to the calculation of the cyclic checksum, it is possible to determine data distortions, since changing the data leads to a change in the cyclic checksum. The main property of the algorithm is that the cyclic checksum changes when one or more bits of the information sequence are distorted. To reduce the likelihood of a false set, when calculating a cyclic checksum, the order of the generating polynomial of the CRC code is increased.

Операции кодирования и декодирования информации внешним и внутренним кодами осуществляют программно. Проверку достоверности декодированного блока данных по CRC также осуществляют программно.The operations of encoding and decoding information by external and internal codes are carried out programmatically. The validation of the decoded data block by CRC is also carried out programmatically.

Предлагаемый способ кодирования-декодирования каскадной кодовой конструкции в системах передачи данных может быть реализован в системе передачи данных, блок-схема которой представлена на чертеже. Рассмотрим работу данной системы на примере каскадной кодовой конструкции, в которой в качестве внешнего кода используют код Рида-Соломона (PC) над полем GF (212), а в качестве внутреннего - код Голея (24, 12, 8).The proposed method of encoding-decoding a cascade code structure in data transmission systems can be implemented in a data transmission system, a block diagram of which is shown in the drawing. Let us consider the operation of this system by the example of a cascade code construction in which the Reed-Solomon code (PC) over the GF field (2 12 ) is used as the external code, and the Golay code (24, 12, 8) as the internal code.

На передающей стороне к исходной информационной последовательности, поступающей от источника сообщений, добавляют циклическую контрольную сумму (блок 1). Полученную последовательность (исходная информация вместе с добавленной к ней циклической контрольной суммой) кодируют внешним кодом (блок 2) и затем внутренним кодом (блок 3). Далее закодированную последовательность модулируют (блок 4) и передают в канал связи (блок 5), откуда она поступает на демодулятор (блок 6). После демодулятора принятая последовательность поступает на декодер внутреннего кода (блок 7), который может исправить не более r ошибок (для кода Голея - 3). Если в кодовом слове внутреннего кода было более r+1 ошибки (для кода Голея - 4), то результат декодирования будет ошибочным, но декодер не сможет обнаружить наличие ошибки. В этих случаях кодовые слова с выхода декодера запоминают в массиве декодированных кодовых слов внутреннего кода с помощью блока памяти 8. Если же в кодовом слове внутреннего кода была r+1 ошибка, то декодирование такого слова будет невозможно, и это некорректируемое кодовое слово сохраняют в массиве некорректируемых кодовых слов внутреннего кода (блок памяти 11), а в массив декодированных кодовых слов внутреннего кода (блок памяти 8) записывают вместо него последовательность нулей, длина которой согласуется с параметрами кода. Эта последовательность называется стертым кодовым словом. Для кода Голея (24, 12, 8) длина последовательности нулей будет равна двенадцати. Декодирование внутренним кодом продолжают до тех пор, пока не будет набрано необходимое количество символов внешнего кода. Далее декодируют внешним кодом (блок 9) последовательность декодированных и стертых кодовых слов внутреннего кода, хранящуюся в блоке памяти 8. Затем вычисляют и проверяют циклическую контрольную сумму полученной информационной последовательности (в блоке 10). При положительном результате проверки по CRC информацию выдают получателю сообщений (первый выход блока 10). При отрицательном результате проверки производят восстановление стертых слов массива декодированных кодовых слов внутреннего кода (второй выход блока 10). Для этого вычисляют кандидатов на восстановление стертых кодовых слов (блок 12), инвертируя по одному биту в каждом из некорректируемых кодовых слов внутреннего кода, хранящихся в блоке памяти 11. Тем самым изменяют расстояние по Хэммингу от этого кодового слова до одного из разрешенных кодовых слов до r (для кода Голея 3). Затем производят декодирование внутренним кодом вычисленных кандидатов на восстановление (выход блока 12 - второй вход блока 7). Для сокращения вычислительных затрат при проверке гипотез перед дальнейшим декодированием необходимо проверить, не было ли уже такой комбинации кандидатов на восстановление стертых слов на выходе декодера внутреннего кода (третий выход блока 7 - вход блока 13). Если такая комбинация уже была, то вычисляют следующую комбинацию кандидатов на восстановление (второй выход блока 13 - третий вход блока 12). Если же такой комбинации на выходе декодера внутреннего кода 7 не было (первый выход блока 13), то ее записывают вместо стертых символов в блок памяти 8. Затем заново производят декодирование внешним кодом (блок 9) и выполняют проверку по CRC (блок 10). Если ошибку удалось исправить, то информацию отдают получателю сообщений (первый выход блока 10). Если же проверка по CRC опять указала на наличие ошибки (второй выход блока 10), то снова повторяют вычисление очередной комбинации кандидатов на восстановление (второй выход блока 10 - второй вход блока 12). Таким образом, можно перебрать все возможные комбинации для исправления стертых символов. Выбор очередного кандидата на восстановление стертых символов и декодирование выполняют до тех пор, пока CRC не будет равна остатку информационной последовательности, содержащему циклическую контрольную сумму. Таким образом, принятая кодовая последовательность будет полностью декодирована.On the transmitting side, a cyclic checksum is added to the original information sequence coming from the message source (block 1). The resulting sequence (source information along with the added cyclic checksum) is encoded with an external code (block 2) and then with an internal code (block 3). Next, the encoded sequence is modulated (block 4) and transmitted to the communication channel (block 5), from where it arrives at the demodulator (block 6). After the demodulator, the received sequence arrives at the internal code decoder (block 7), which can correct no more than r errors (for the Golei code - 3). If there were more than r + 1 errors in the codeword of the internal code (for the Golei code - 4), then the decoding result will be erroneous, but the decoder will not be able to detect the presence of an error. In these cases, the code words from the output of the decoder are stored in the array of decoded code words of the internal code using memory block 8. If there was r + 1 error in the code word of the internal code, then decoding of such a word will be impossible, and this unadjusted code word is stored in the array non-correctable codewords of the internal code (memory block 11), and instead of an array of decoded codewords of the internal code (memory block 8), a sequence of zeros is written in its place, the length of which is consistent with the code parameters. This sequence is called the erased codeword. For the Golay code (24, 12, 8), the length of the sequence of zeros will be twelve. Decoding by the internal code is continued until the required number of characters of the external code is typed. Next, the sequence of decoded and erased codewords of the internal code stored in the memory unit 8 is decoded with an external code (block 9). Then, the cyclic checksum of the obtained information sequence is calculated and checked (in block 10). If the result of the CRC check is positive, the information is issued to the message recipient (first output of block 10). If the test result is negative, the erased words are restored from the array of decoded code words of the internal code (second output of block 10). For this, candidates for recovering erased codewords are calculated (block 12), by inverting one bit in each of the uncorrectable codewords of the internal code stored in the memory block 11. Thus, the Hamming distance from this codeword to one of the allowed codewords is changed to r (for the Golei code 3). Then, the internal candidates are decoded for the calculated recovery candidates (block 12 output — second block 7 input). To reduce computational costs when testing hypotheses before further decoding, it is necessary to check whether there was already such a combination of candidates for recovering erased words at the output of the internal code decoder (the third output of block 7 is the input of block 13). If such a combination already existed, then the next combination of candidates for restoration is calculated (the second output of block 13 is the third input of block 12). If there was no such combination at the output of the decoder of the internal code 7 (the first output of block 13), then it is written down instead of the erased characters in the memory block 8. Then, decoding is performed again with the external code (block 9) and a CRC check is performed (block 10). If the error can be corrected, then the information is given to the message recipient (the first output of block 10). If the CRC check again indicated the presence of an error (second output of block 10), then the calculation of the next combination of candidates for restoration is repeated again (second output of block 10 is the second input of block 12). Thus, it is possible to sort out all possible combinations to correct erased characters. The selection of the next candidate for erased character recovery and decoding is performed until the CRC is equal to the remainder of the information sequence containing the cyclic checksum. Thus, the received code sequence will be fully decoded.

Вместо хранения таблицы с шестью кандидатами для каждого стертого кодового слова Голея используют описанный способ вычисления кандидатов на восстановление стертых символов. Это освобождает значительный объем оперативной памяти и позволяет использовать способ восстановления стертых символов на специализированных вычислительных устройствах. Данный способ особо эффективен тем, что подходит для применения к любому внутреннему коду, допускающему стирания, и к любому внешнему коду, операция декодирования которого позволяет учитывать наличие стертых символов. Тем самым решена задача изобретения, то есть получена возможность адаптивно изменять вид и параметры каскадного кода.Instead of storing a table with six candidates for each erased Golei codeword, the described method for calculating candidates for recovering erased characters is used. This frees up a significant amount of RAM and allows you to use the method of recovering erased characters on specialized computing devices. This method is particularly effective in that it is suitable for use with any internal code that can be erased, and with any external code whose decoding operation allows for the presence of erased characters. Thereby, the problem of the invention is solved, that is, it is possible to adaptively change the appearance and parameters of cascading code.

Claims (1)

Способ кодирования-декодирования каскадной кодовой конструкции в системах передачи данных, согласно которому на передающей стороне к блоку исходной информации добавляют циклическую контрольную сумму, полученный блок кодируют внешним кодом в поле GF(q) (q - алфавит кода) и внутренним кодом, на приемной стороне осуществляют декодирование принятого блока информации с обнаружением и исправлением ошибок, при этом сначала выполняют декодирование внутреннего кода, запоминают последовательность декодированных кодовых слов в массиве декодированных кодовых слов внутреннего кода, запоминают последовательность некорректируемых кодовых слов в массиве некорректируемых кодовых слов внутреннего кода, при этом одновременно запоминают последовательность стертых кодовых слов вместо некорректируемых кодовых слов в массиве декодированных кодовых слов внутреннего кода, далее осуществляют декодирование внешним кодом последовательности декодированных кодовых слов массива декодированных кодовых слов внутреннего кода, в отношении результата декодирования внешнего кода выполняют вычисление и проверку циклической контрольной суммы и в случае положительного результата информацию отдают получателю сообщений, а в случае отрицательного результата производят восстановление последовательности стертых кодовых слов массива декодированных кодовых слов внутреннего кода, отличающийся тем, что для восстановления последовательности стертых кодовых слов вычисляют кандидатов на восстановление, для чего инвертируют по одному биту в каждом некорректируемом кодовом слове, тем самым изменяют расстояния по Хэммингу упомянутых кодовых слов от ближайших разрешенных кодовых слов до r, где r - максимальный радиус непересекающихся сфер вокруг разрешенных кодовых слов, после чего декодируют кодовые слова с инвертированными битами внутренним кодом, при этом осуществляют проверку на первое появление полученной кодовой комбинации, и если проверка обнаруживает, что такая кодовая комбинация была ранее, то процедуру вычисления кандидатов на восстановление выполняют снова, а если такой кодовой комбинации не было, то заменяют стертые кодовые слова декодированными словами, затем выполняют декодирование внешним кодом вновь полученного массива декодированных кодовых слов внутреннего кода и повторяют вычисление и проверку циклической контрольной суммы, и если при проверке обнаруживают искажение кодового блока, то процедуру вычисления кандидатов на восстановление выполняют заново, для этого изменяют комбинацию инвертированных бит в некорректируемых кодовых словах, вновь декодируют кодовые слова с инвертированными битами внутренним кодом, проверяют результат декодирования на первое появление вновь полученной кодовой комбинации, затем декодируют массив декодированных кодовых слов внутреннего кода внешним кодом и выполняют проверку циклической контрольной суммы, при этом операции вычисления кандидатов на восстановление, декодирования внутренним и внешним кодами повторяют до тех пор, пока проверка циклической контрольной суммы не даст положительный результат. The coding-decoding method of cascading code structure in data transmission systems, according to which a cyclic checksum is added to the source information block on the transmitting side, the received block is encoded with an external code in the GF (q) field (q is the code alphabet) and an internal code on the receiving side decode the received block of information with the detection and correction of errors, while first they decode the internal code, remember the sequence of decoded code words in the array of decoders code words of the internal code, remember the sequence of non-correctable code words in the array of non-correctable code words of the internal code, while simultaneously remembering the sequence of erased code words instead of the non-correctable code words in the array of decoded code words of the internal code, then the external code decodes the sequence of decoded code words of the array of decoded code words of the inner code, in relation to the result of decoding the outer code is performed in the numeration and verification of the cyclic checksum, and in the case of a positive result, the information is transmitted to the message recipient, and in the case of a negative result, the sequence of erased codewords of the array of decoded codewords of the internal code is restored, characterized in that the recovery candidates are calculated to restore the sequence of erased codewords, for which invert one bit in each non-correctable codeword, thereby changing the Hamming distance mentioned x code words from the nearest allowed code words to r, where r is the maximum radius of disjoint spheres around the allowed code words, then code words with inverted bits are decoded by the internal code, and the code is checked for the first occurrence, and if the check detects, that such a code combination was previously, then the procedure for calculating the candidates for restoration is performed again, and if there was no such code combination, then the erased code words are replaced with decoded words and then the external code is decoded for the newly received array of decoded code words of the internal code and the calculation and verification of the cyclic checksum is repeated, and if the code block is distorted during the verification, the procedure for calculating recovery candidates is performed again, for this, the combination of inverted bits is changed to non-correctable codewords, codewords with inverted bits are again decoded by the internal code, the decoding result is checked for the first occurrence again by radiation codeword is then decoded array decoded codewords inner code and outer code is performed by a cyclic checksum, wherein the step of calculating the candidates for recovery, the inner and outer code decoding is repeated until the check ring until the check sum will not give a positive result.
RU2009149001/09A 2009-12-28 2009-12-28 Method of encoding-decoding multistage code structure in data transmission systems RU2420870C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2009149001/09A RU2420870C1 (en) 2009-12-28 2009-12-28 Method of encoding-decoding multistage code structure in data transmission systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2009149001/09A RU2420870C1 (en) 2009-12-28 2009-12-28 Method of encoding-decoding multistage code structure in data transmission systems

Publications (1)

Publication Number Publication Date
RU2420870C1 true RU2420870C1 (en) 2011-06-10

Family

ID=44736811

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2009149001/09A RU2420870C1 (en) 2009-12-28 2009-12-28 Method of encoding-decoding multistage code structure in data transmission systems

Country Status (1)

Country Link
RU (1) RU2420870C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2562435C1 (en) * 2014-02-18 2015-09-10 Открытое акционерное общество "Научно-производственное объединение "Импульс" (ОАО "НПО "Импульс") Method of information encoding-decoding in data transmission systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2562435C1 (en) * 2014-02-18 2015-09-10 Открытое акционерное общество "Научно-производственное объединение "Импульс" (ОАО "НПО "Импульс") Method of information encoding-decoding in data transmission systems

Similar Documents

Publication Publication Date Title
US7293222B2 (en) Systems and processes for fast encoding of hamming codes
RU2310273C2 (en) Method for encoding/decoding information in data transmission networks
US6044482A (en) Digital transmission system for encoding and decoding attribute data into error checking symbols of main data
US8032812B1 (en) Error correction decoding methods and apparatus
US20060085726A1 (en) Apparatus and method for decoding Reed-Solomon code
US10992416B2 (en) Forward error correction with compression coding
Thommesen et al. Bounds on distances and error exponents of unit memory codes
TWI557747B (en) Memory control module and method thereof and error correcting code encode/decode circuit and method thereof
CN111597072B (en) Error control coding ECC system and memory device including the same
CN1756090B (en) Channel encoding apparatus and method
US6895546B2 (en) System and method for encoding and decoding data utilizing modified reed-solomon codes
CN110233698B (en) Method for encoding and decoding polarization code, transmitting device, receiving device, and medium
KR101314232B1 (en) Coding and decoding method and codec of error correction code
US11050440B2 (en) Encoder, decoder, encoding method and decoding method based on low-density parity-check code
RU2379841C1 (en) Decoder with erasure correction
RU2420870C1 (en) Method of encoding-decoding multistage code structure in data transmission systems
JPH08293802A (en) Interleaving type error correction method
RU2562435C1 (en) Method of information encoding-decoding in data transmission systems
CN111277830B (en) Encoding method, decoding method and device
EP4109765A1 (en) Error-correction encoding device, error-correction decoding device, control circuit, storage medium, error-correction encoding method, and error-correction decoding method
TWI645683B (en) Partial concatenated coding system using algebraic code and ldpc code
JP3252477B2 (en) Error correction code decoding method, error correction code decoding device, error correction decoding device
RU2812043C1 (en) Method for soft decoding of noise-resistant code
JP3256006B2 (en) Error correction code decoding method and error correction code decoding device
RU2710911C1 (en) Method of transmitting multi-unit messages in telecode communication systems

Legal Events

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

Effective date: 20191229