RU2631142C2 - Method of diagnosing cyclic codes - Google Patents

Method of diagnosing cyclic codes Download PDF

Info

Publication number
RU2631142C2
RU2631142C2 RU2016107245A RU2016107245A RU2631142C2 RU 2631142 C2 RU2631142 C2 RU 2631142C2 RU 2016107245 A RU2016107245 A RU 2016107245A RU 2016107245 A RU2016107245 A RU 2016107245A RU 2631142 C2 RU2631142 C2 RU 2631142C2
Authority
RU
Russia
Prior art keywords
polynomial
polynomials
code blocks
blocks
smaller
Prior art date
Application number
RU2016107245A
Other languages
Russian (ru)
Other versions
RU2016107245A (en
Inventor
Наталья Николаевна Корнеева
Петр Алексеевич Полушин
Олег Рафаилович Никитин
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 RU2016107245A priority Critical patent/RU2631142C2/en
Publication of RU2016107245A publication Critical patent/RU2016107245A/en
Application granted granted Critical
Publication of RU2631142C2 publication Critical patent/RU2631142C2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/02Arrangements for detecting or preventing errors in the information received by diversity reception
    • H04L1/06Arrangements for detecting or preventing errors in the information received by diversity reception using space diversity
    • H04L1/0618Space-time coding

Landscapes

  • Error Detection And Correction (AREA)

Abstract

FIELD: radio engineering, communication.
SUBSTANCE: method of diagnosing cyclic codes involves selecting a certain number of code blocks and analysing different pairs of the code blocks. By means of a cyclically repeated procedure for shifting one of the polynomials describing the code blocks and bitwise addition modulo 2 of the polynomial pair to be processed, it is possible to find the common polynomial of the pair under consideration. The results of each analysis procedure are recorded, and after a sufficient number of procedures is performed, the number of results obtained for each detected type of common polynomials is compared. The desired generating polynomial is common to all code blocks and appears for the largest number of times. This is detected and used as a result of diagnosis.
EFFECT: increasing the noise immunity of information transfer.
2 dwg

Description

Способ диагностики циклических кодов относится к технике связи и может быть использован для определения неизвестной структуры кодера циклических систематических и несистематических кодов на основе анализа принимаемой кодовой последовательности.A method for diagnosing cyclic codes relates to communication technology and can be used to determine the unknown encoder structure of cyclic systematic and unsystematic codes based on an analysis of the received code sequence.

Известны различные способы циклического кодирования и декодирования, используемые для исправления возникающих при передаче ошибок и описанные, например, в книгах: Ипатов В.П., Орлов В.К., Самойлов И.М. Системы мобильной связи - М.: Горячая линия-Телеком, 2003; Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение. - М.: Техносфера, 2006. В них описываются операции получения кодового блока из входной информационной последовательности символов путем осуществления операций свертки определенного количества информационных символов с полиномиальными генераторами (порождающими полиномами) и последовательной передачи подобных кодовых блоков. После приема последовательность раскодируется одними из возможных методов. Однако для успешного раскодирования любым из методов должны быть известны используемые порождающие полиномы, без чего раскодирование невозможно.There are various methods of cyclic coding and decoding used to correct errors that occur during transmission and are described, for example, in the books: Ipatov V.P., Orlov V.K., Samoilov I.M. Mobile communication systems - M .: Hotline-Telecom, 2003; Morelos-Zaragoza R. The art of noise-resistant coding. Methods, algorithms, application. - M .: Technosphere, 2006. They describe the operations of obtaining a code block from the input information sequence of characters by performing operations of convolution of a certain number of information characters with polynomial generators (generating polynomials) and the sequential transmission of such code blocks. After receiving the sequence is decoded by one of the possible methods. However, for successful decoding by any of the methods used generating polynomials must be known, without which decoding is impossible.

Наиболее близким к заявляемому является способ, описанный в кн.: Скляр Б. Цифровая связь. Теоретические основы и практическое применение. - М.: Изд. дом «Вильямс», 2003. При этом для реализации несистематического кода группа последовательно идущих исходных информационных символов умножается по модулю 2 на порождающий полином, представленный в виде вектора с двоичными элементами. Для реализации систематического кода исходная группа информационных символов сдвигается на определенное количество двоичных разрядов. Далее результат сдвига делится на порождающий полином и частное от деления складывается по модулю 2 со сдвинутой группой символов. При декодировании весь принятый кодовый блок делится на порождающий полином, и результат деления используется для локализации и исправления ошибок.Closest to the claimed is the method described in the book: Sklar B. Digital communication. Theoretical foundations and practical application. - M.: Publishing. Williams House, 2003. In this case, to implement a non-systematic code, a group of successive source information symbols is multiplied modulo 2 by a generating polynomial represented as a vector with binary elements. To implement a systematic code, the initial group of information symbols is shifted by a certain number of binary bits. Next, the result of the shift is divided by the generating polynomial and the quotient of the division is added modulo 2 with a shifted group of characters. When decoding, the entire received code block is divided by the generating polynomial, and the division result is used to localize and correct errors.

Недостатком описанного способа является необходимость знания на приемной стороне правильного вида используемого порождающего полинома. Если он неизвестен, например утерян или поврежден, то декодирование с исправлением ошибок невозможно и исправляющая способность кода не может быть реализована. Это приводит к снижению помехоустойчивости передачи информации.The disadvantage of the described method is the need to know on the receiving side the correct form of the used generating polynomial. If it is unknown, for example, lost or damaged, then decoding with error correction is impossible and the correcting ability of the code cannot be realized. This leads to a decrease in noise immunity of information transmission.

Задачей предлагаемого способа диагностики циклических кодов является определение структуры используемого кодера на основе анализа принимаемых кодовых блоков для обеспечения работоспособности декодеров и повышения помехоустойчивости передачи информации.The objective of the proposed method for the diagnosis of cyclic codes is to determine the structure of the used encoder based on the analysis of the received code blocks to ensure the health of the decoders and improve the noise immunity of information transmission.

Поставленная задача решается тем, что в способ диагностики циклических кодов, включающий в себя поразрядный сдвиг полинома и поразрядное сложение по модулю 2, вводят запоминание N кодовых блоков, извлечение пар блоков, запоминание вида полиномов, выбор максимального числа результатов, попарное сравнение и сложение блоков, сравнение полиномов и сравнение результата со сдвинутым полиномом, при этом сначала запоминают N кодовых блоков, затем извлекают пары кодовых блоков, после этого блоки попарно сравнивают и складывают, далее запоминают вид полученных в результате полиномов, после чего выбирают максимальное число полученных результатов, причем при попарном сравнении и сложении блоков сравнивают два выбранных полинома, затем поразрядно сдвигают меньший полином, после чего сравнивают больший полином со сдвинутым меньшим полиномом, в случае их равенства вид меньшего полинома до сдвига запоминается, в случае их неравенства поразрядно складывают по модулю 2 больший полином и сдвинутый меньший полином и возвращаются к сравнению меньшего полинома и полученного результата сложения по модулю 2.The problem is solved in that a method for diagnosing cyclic codes, including bitwise shift of a polynomial and bitwise addition modulo 2, introduces storing N code blocks, retrieving pairs of blocks, remembering the type of polynomials, choosing the maximum number of results, pairwise comparison and addition of blocks, comparing the polynomials and comparing the result with the shifted polynomial, first N code blocks are stored, then pairs of code blocks are extracted, then the blocks are compared and added in pairs, then stored in id of the resulting polynomials, after which the maximum number of results is selected, and when pairwise comparing and adding the blocks, two selected polynomials are compared, then the smaller polynomial is bitwise shifted, after which the larger polynomial is compared with the shifted smaller polynomial, if they are equal, the form of the smaller polynomial to the shift is remembered, in case of their inequality bitwise add modulo 2 larger polynomial and shifted smaller polynomial and return to the comparison of the smaller polynomial and the result obtained Modulo 2.

На чертежах представлены: на фиг. 1 - схематическая последовательность операций заявляемого способа; на фиг. 2 - пример структурной схемы устройства для реализации предлагаемого способа.In the drawings: FIG. 1 is a schematic flowchart of the proposed method; in FIG. 2 - an example of a structural diagram of a device for implementing the proposed method.

На фиг. 1 обозначены операции: 1 - запоминание N кодовых блоков; 2 - извлечение пар блоков; 3 - запоминание вида полиномов; 4 - выбор максимального числа результатов; 5 - сравнение полиномов; 6 - поразрядный сдвиг полинома; 7 - сравнение результата со сдвинутым полиномом; 8 - поразрядное сложение по модулю 2; 9 - попарное сравнение и сложение блоков.In FIG. 1 operations are indicated: 1 - memorization of N code blocks; 2 - extraction of pairs of blocks; 3 - remembering the type of polynomials; 4 - selection of the maximum number of results; 5 - comparison of polynomials; 6 - bitwise shift of the polynomial; 7 - comparison of the result with the shifted polynomial; 8 - bitwise addition modulo 2; 9 - pairwise comparison and addition of blocks.

На фиг. 2 представлены: первый 10 и второй 11 блоки памяти; первый 12, второй 13, третий 14 и четвертый 15 коммутаторы; первый 16 и второй 17 блоки сравнения; первый 18 и второй 19 определители максимальной степени полинома; первый 20, второй 21, третий 22 и четвертый 23 регистры; вычитатель 24; сумматор 25 по модулю 2; блок выделения максимальной суммы 26; блок управления 27; сдвиговый регистр 28.In FIG. 2 presents: the first 10 and second 11 memory blocks; the first 12, second 13, third 14 and fourth 15 switches; first 16 and second 17 comparison blocks; the first 18 and second 19 determinants of the maximum degree of a polynomial; first 20, second 21, third 22 and fourth 23 registers; subtractor 24; adder 25 modulo 2; block allocating the maximum amount of 26; control unit 27; shift register 28.

Операции предлагаемого способа осуществляются следующим образом. Во время операции 1 производится запоминание N пришедших кодовых блоков. При этом имеется возможность далее извлекать из памяти любые из запомненных кодовых блоков. Далее попарно сравниваются различные два кодовых блока из запомненных. При количестве N блоков возможны всего N(N-1)/2 различных сочетаний пар разных блоков. Эти блоки извлекаются из памяти попарно операцией 2 (последовательность извлечения значения не играет) и далее обрабатываются общей операцией 9 попарного сравнения и сложения блоков.The operations of the proposed method are as follows. During operation 1, N received code blocks are stored. Moreover, it is possible to further retrieve from memory any of the stored code blocks. Next, two different code blocks from the stored ones are compared in pairs. With the number of N blocks, only N (N-1) / 2 different combinations of pairs of different blocks are possible. These blocks are extracted from memory in pairs by operation 2 (the sequence of extracting the value does not play) and are further processed by the general operation 9 of pairwise comparison and addition of blocks.

Операция 9 попарного сложения и сравнения блоков состоит из нескольких операций. Как известно (см., например, вышеуказанную книгу Б. Скляра), каждый кодовый блок представляет собой последовательность двоичных символов и может быть описан в виде некоторого полинома, при этом максимальная степень полинома на единицу меньше количества двоичных разрядов кодового блока.Operation 9 pairwise addition and comparison of blocks consists of several operations. As is known (see, for example, the above book by B. Sklyar), each code block is a sequence of binary symbols and can be described as a polynomial, while the maximum degree of a polynomial is one less than the number of binary bits of the code block.

В операции 5 сравнения полиномов сравниваются два выбранных кодовых блока. При этом сравниваются по величине соответствующие полиномы, т.е. определяется, какой из них больше другого и на сколько разрядов. Сравниваемые два кодовых слова y1 и y2 можно описать в виде полиномов:In operation 5, the polynomial comparison compares two selected code blocks. In this case, the corresponding polynomials are compared in magnitude, i.e. it is determined which one is larger than the other and by how many digits. The two codewords y 1 and y 2 compared can be described as polynomials:

y1=anXn+an-1Xn-1+an-2Xn-2+…+а0,y 1 = a n X n + a n-1 X n-1 + a n-2 X n-2 + ... + a 0 ,

y2=bmXm+bm-1Xm-1+bm-2Xm-2+…+b0,y 2 = b m X m + b m-1 X m-1 + b m-2 X m-2 + ... + b 0 ,

где n и m - номера максимальных разрядов в первом и втором сравниваемых кодовых словах, содержащих единицу в двоичной записи кодового слова, считая от первого разряда; X обозначает задержку на один такт (на длительность одного символа); коэффициенты а1 и b1 равны нулю или единице в зависимости от двоичного значения соответствующего разряда кодового слова.where n and m are the numbers of the maximum digits in the first and second compared codewords containing one in the binary entry of the codeword, counting from the first digit; X denotes a delay of one measure (the duration of one character); the coefficients a 1 and b 1 are equal to zero or one, depending on the binary value of the corresponding discharge of the code word.

Операцией 5 определяется, который из полиномов больше и определяются степени n и m. Пусть больше окажется первый полином y1. В операции 6 сдвига меньшего полинома производится сдвиг полинома y2 вверх на определенное количество разрядов. Количество разрядов, на которое производится сдвиг, равно разности их максимальных степеней, т.е. равно n-m. Получается полином Xn-m y2. Таким образом, если n>m, то такой сдвиг производится, если n=m (хотя при этом полиномы различаются), то они не изменяются.Operation 5 determines which of the polynomials is greater and determines the degrees n and m. Let the first polynomial y 1 be larger. In operation 6 of the shift of the smaller polynomial, the polynomial y 2 is shifted upward by a certain number of bits. The number of bits by which the shift is made is equal to the difference of their maximum degrees, i.e. equal to nm. It turns out that the polynomial X nm y 2 . Thus, if n> m, then such a shift is made, if n = m (although the polynomials are different in this case), then they do not change.

Если оба сравниваемых полинома до сдвига точно равны между собой, то операция 5 передает их далее к операции 6 без изменений.If both compared polynomials are exactly equal before the shift, then operation 5 passes them on to operation 6 without changes.

В операции 7 вновь производится сравнение полиномов, но уже большего полинома и меньшего сдвинутого вверх полинома. Если эти полиномы становятся точно равны между собой, т.е. одинаковы, то цикл обработки данной пары кодовых блоков прекращается, и на операцию 3 подается меньший полином до его сдвига. Если они остаются не равными один другому, то операцией 8 производится поразрядное сложение по модулю 2 полиномов (фактически, поразрядное сложение по модулю 2 двух двоичных чисел, описывающих эти полиномы). Складывается больший полином и сдвинутый вверх меньший полином. Поскольку наибольшая степень разрядов у этих полиномов теперь одинакова, то результат сложения всегда имеет меньшую степень, чем складываемые полиномы.In operation 7, the polynomials are compared again, but for a larger polynomial and a smaller polynomial shifted up. If these polynomials become exactly equal to each other, i.e. are the same, the processing cycle of this pair of code blocks is terminated, and a smaller polynomial is fed to operation 3 before it is shifted. If they remain not equal to each other, then operation 8 performs bitwise addition modulo 2 polynomials (in fact, bitwise addition modulo 2 of two binary numbers describing these polynomials). The larger polynomial is added and the smaller polynomial shifted up. Since the largest degree of digits for these polynomials is now the same, the addition result always has a lesser degree than the added polynomials.

После этого обработка возвращается к операции 5, где уже сравниваются другие полиномы. Один из них полином - результат произведенного операцией 8 сложения по модулю 2. Другой сравниваемый полином - меньший полином до его сдвига. Далее вновь повторяются описанные последующие операции. Таким образом, для выбранной пары исходных кодовых блоков в общем случае неоднократно повторяются операции 5-6-7-8. Вид анализируемых полиномов при каждом повторении изменяется. Максимальная степень при каждом повторении или не меняется, но обязательно уменьшаются сами полиномы, или уменьшается и степень максимального полинома. Это происходит до тех пор, пока операция 7 не зафиксирует равенство анализируемых полиномов. После этого полученный вид меньшего полинома до сдвига запоминается операцией 3, и операция 9 в целом переходит к анализу следующей пары кодовых блоков.After that, the processing returns to operation 5, where other polynomials are already compared. One of them is a polynomial - the result of modulo 2 addition performed by operation 8. Another compared polynomial is a smaller polynomial before its shift. Next, the described subsequent operations are repeated. Thus, for a selected pair of source code blocks, in the general case, operations 5-6-7-8 are repeatedly repeated. The type of analyzed polynomials changes with each repetition. The maximum degree at each repetition either does not change, but the polynomials themselves necessarily decrease, or the degree of the maximum polynomial decreases. This happens until operation 7 fixes the equality of the analyzed polynomials. After that, the resulting form of the smaller polynomial before the shift is stored by operation 3, and operation 9 as a whole proceeds to the analysis of the next pair of code blocks.

После каждого завершения в целом операции 9 (попарное сравнение и сложение блоков) в операции 3 (запоминание вида полиномов) производится запоминание результата операции 9. Если уже ранее при предыдущих выполнениях операции 9 был запомнен такой же результат, относящийся к другой паре сравниваемых кодовых блоков, то новый такой же результат суммируется с предыдущими результатами, относящимися к полиному этого полученного вида. Количество поступивших результатов каждого вида подсчитывается.After each completion of the whole operation 9 (pairwise comparison and addition of blocks) in operation 3 (storing the type of polynomials), the result of operation 9 is stored. If the previous result of the previous operations of operation 9 was remembered for the same pair of compared code blocks, then the new same result is summed up with the previous results related to the polynomial of this obtained form. The number of received results of each type is calculated.

Операции 9 попарного сравнения и сложений блоков осуществляется над всеми различающимися N блоками, которые запомнены в операции 1.The operations 9 of pairwise comparison and addition of blocks are carried out on all the differing N blocks that are stored in operation 1.

Число таких попарных обработок равно N(N-1)/2. Когда все эти попарные обработки завершены, то в результате выполнения операции 3 запомненными оказываются все обнаруженные виды общих полиномов у всех сочетаний полиномов в парах. После завершения всех N(N-1)/2 сравнений операция 4 выбора максимального числа результатов определяет наиболее часто запомненные результаты, т.е. полиномов какого вида больше запомнено. (Если например, каждый факт запоминания, производится в форме прибавления единицы к уже имеющейся сумме в ячейке памяти, относящейся к полиному данного вида, то фактически эта операция определяет, какому полиному, из запомненных процедурой 3, соответствует наибольшая запомненная в памяти сумма.) Этот полином представляет собой двоичное число, определяющее тот порождающий полином, который используется в передатчике для кодирования анализируемого сигнала. Он выводится далее, как конечный результат процедуры диагностики.The number of such pairwise treatments is N (N-1) / 2. When all these pairwise processing is completed, as a result of operation 3, all detected types of common polynomials in all combinations of polynomials in pairs are remembered. After completing all N (N-1) / 2 comparisons, step 4 of selecting the maximum number of results determines the most frequently remembered results, i.e. what kind of polynomials is more remembered. (If, for example, each fact of memorization is performed in the form of adding a unit to an already existing sum in a memory cell belonging to a polynomial of a given type, then in fact this operation determines which polynomial, remembered by procedure 3, corresponds to the largest sum memorized in memory.) This a polynomial is a binary number defining that generating polynomial, which is used in the transmitter to encode the analyzed signal. It is displayed below as the final result of the diagnostic procedure.

Блоки устройства на фиг. 2, как пример реализации предлагаемого способа, работают следующим образом. На первый блок памяти 10 поступают принятые кодовые блоки в форме последовательностей двоичных символов. В нем запоминается N различных кодовых блоков. (Последовательность запомненных блоков значения не имеет, это могут быть либо подряд следующие блоки, либо расположенные другим образом.)The device blocks in FIG. 2, as an example of the implementation of the proposed method, work as follows. The first code block 10 receives the received code blocks in the form of sequences of binary symbols. It stores N different code blocks. (The sequence of memorized blocks does not matter, it can be either the following blocks in a row or arranged in another way.)

Из этого блока памяти извлекаются пары различных блоков, один из этих блоков подается на вход первого коммутатора 12, другой блок подается на вход второго коммутатора 13. Последовательность извлечения из памяти пар блоков значения не имеет, текущие номера извлекаемых блоков задаются блоком управления 27. В блоке памяти 10 занесено N кодовых блоков, значит, осуществляя N(N-1)/2 циклов, имеется возможность анализировать N(N-1)/2 различных пар блоков. В каждом цикле производится одинаковый набор действий.Pairs of different blocks are extracted from this memory block, one of these blocks is fed to the input of the first switch 12, the other block is fed to the input of the second switch 13. The sequence of extracting pairs of blocks from the memory does not matter, the current numbers of the blocks to be extracted are set by the control unit 27. In the block memory 10 entered N code blocks, which means that by carrying out N (N-1) / 2 cycles, it is possible to analyze N (N-1) / 2 different pairs of blocks. In each cycle, the same set of actions is performed.

Цикл анализа очередной пары кодовых блоков состоит в следующем. В самом начале цикла первый 12 и второй 13 коммутаторы подключают первый и второй многоканальные выходы первого блока памяти 12 на многоканальные параллельные входы, соответственно, первого 20 и второго 21 регистров, где анализируемая в данный момент пара кодовых блоков записывается в форме двоичного кода.The analysis cycle of the next pair of code blocks is as follows. At the very beginning of the cycle, the first 12 and second 13 switches connect the first and second multi-channel outputs of the first memory block 12 to the multi-channel parallel inputs, respectively, of the first 20 and second 21 registers, where the currently analyzed pair of code blocks is written in the form of a binary code.

В первом блоке сравнения 16 сравнивается величина кодовых блоков, записанных в первом 20 и втором 21 регистрах. Выходной сигнал этого первого блока сравнения управляет третьим коммутатором 14.In the first comparison block 16, the value of the code blocks recorded in the first 20 and second 21 registers is compared. The output of this first comparison unit controls the third switch 14.

Если двоичные полиномы (кодовые блоки), записанные в регистрах 20 и 21, не равны между собой, то первый блок сравнения 16 с помощью третьего коммутатора 14 подает больший кодовый блок входу первого определителя максимальной степени 18 и к параллельному входу третьего регистра 22, а меньший блок подается коммутатором 14 ко входу второго определителя максимальной степени 19 и к параллельному входу четвертого регистра 23. Поступившие сигналы записываются в эти регистры. Полином, записанный в четвертом регистре 23, также перезаписывается в сдвиговый регистр 28.If the binary polynomials (code blocks) recorded in the registers 20 and 21 are not equal to each other, then the first comparison block 16, using the third switch 14, supplies a larger code block to the input of the first determinant of maximum degree 18 and to the parallel input of the third register 22, and the smaller the block is supplied by the switch 14 to the input of the second determinant of maximum degree 19 and to the parallel input of the fourth register 23. The received signals are recorded in these registers. The polynomial recorded in the fourth register 23 is also overwritten in the shift register 28.

Если же окажется, что записанные в регистрах 20 и 21 двоичные полиномы равны между собой, то на оба выхода третьего коммутатора 14 подаются эти одинаковые полиномы.If it turns out that the binary polynomials recorded in registers 20 and 21 are equal to each other, then these same polynomials are fed to both outputs of the third switch 14.

В определителях максимальной степени 18 и 19 определяются порядки полиномов, т.е. максимальные степени y X.The determinants of the maximum degree of 18 and 19 determine the orders of polynomials, i.e. maximum degrees y X.

Далее в вычитателе 24 находится арифметическая разность их порядков (разность максимальных степеней полиномов) и на основе выходного сигнала вычитателя в сдвиговом регистре 28 производится сдвиг всего записанного полинома в сторону увеличения степени на полученную величину этой арифметической разности. Таким образом, после этого сдвига порядки (максимальные степени) полиномов, записанных в третьем регистре 22 и в сдвиговом регистре 28 становятся одинаковыми. Эти полиномы подаются на второй блок сравнения 17 и на блок 25, где производится их поразрядное сложение по модулю 2.Next, the arithmetic difference of their orders (the difference of the maximum degrees of polynomials) is located in the subtractor 24 and, on the basis of the output signal of the subtractor, in the shift register 28, the entire recorded polynomial is shifted in the direction of increasing the degree by the obtained value of this arithmetic difference. Thus, after this shift, the orders (maximum degrees) of the polynomials recorded in the third register 22 and in the shift register 28 become the same. These polynomials are fed to the second comparison unit 17 and to block 25, where they are added bitwise modulo 2.

Во втором блоке сравнения 17 сравниваются полиномы, записанные в регистрах 22 и 28. Если они равны между собой, то второй блок сравнения сообщает об этом блоку управления 27. После чего данный цикл заканчивается, блок управления открывает четвертый коммутатор 15 и сигнал с выхода четвертого регистра 23 подается на второй блок памяти 11. В этом втором блоке памяти каждому возможному виду полиномов соответствует своя ячейка памяти. Первоначально до начала процедуры диагностики все ячейки содержат нули. Когда в очередном цикле определен очередной полином, то в ячейку ему соответствующую прибавляется единица к той сумме, которая там уже была записана ранее.In the second comparison unit 17, the polynomials recorded in the registers 22 and 28 are compared. If they are equal, the second comparison unit reports this to the control unit 27. After this cycle ends, the control unit opens the fourth switch 15 and the signal from the output of the fourth register 23 is supplied to the second memory block 11. In this second memory block, each possible type of polynomial corresponds to its own memory cell. Initially, before the start of the diagnostic procedure, all cells contain zeros. When the next polynomial is defined in the next cycle, then a unit is added to the corresponding unit to the amount that was already recorded there before.

Если второй блок сравнения 17 не зафиксировал равенства полиномов в третьем и четвертом регистрах, результат сложения в блоке 25 подается на другой вход первого коммутатора 12, а на другой вход второго коммутатора 13 подается полином, записанный в четвертом регистре 23. После этого на выходы обоих коммутаторов подключаются не сигналы с первого блока памяти 10, а вновь поступившие сигналы с их других входов. После этого вся последовательность действий повторяется. Работа коммутаторов, регистров и блоков памяти управляется блоком управления 27.If the second comparison unit 17 did not fix polynomial equality in the third and fourth registers, the result of addition in block 25 is fed to the other input of the first switch 12, and the polynomial written in the fourth register 23 is fed to the other input of the second switch 13. After that, the outputs of both switches not signals from the first memory block 10 are connected, but newly received signals from their other inputs. After that, the whole sequence of actions is repeated. The operation of the switches, registers and memory units is controlled by the control unit 27.

Когда перебраны все N(N-1)/2 сочетаний рассматриваемых кодовых блоков, во втором блоке памяти 11 в различные ячейки оказывается записанными разное количество единиц. После этого блок выделения максимальной суммы определяет, в какой ячейке записано максимальное число. Полином, соответствующий этой ячейке, подается на выход, как конечный результат всей процедуры диагностики.When all N (N-1) / 2 combinations of the considered code blocks are sorted, in the second memory block 11, different numbers of units are recorded in different cells. After that, the maximum amount allocation unit determines in which cell the maximum number is written. The polynomial corresponding to this cell is output as the final result of the entire diagnostic procedure.

Рассмотрим операции предлагаемого способа подробнее. Как известно, при несистематическом кодировании каждое i-й кодовый блок может быть описан в виде произведения двух полиномов: yi(X)=mi(X)g(X), где g(X) - порождающий полином используемого кодера, общий для всех кодовых слов; mi(X) - часть i-го кодового слова, содержащая передаваемую в нем информацию. То есть все кодовые блоки имеют как минимум один общий полином g(X). Максимальная степень полинома g(X) равна b. Степень полинома mi(X) зависит от передаваемой в данном блоке информации и может достигать максимальной величины, равной k.Consider the operation of the proposed method in more detail. As is known, in unsystematic coding, each ith code block can be described as a product of two polynomials: y i (X) = m i (X) g (X), where g (X) is the generating polynomial of the encoder used, common to all codewords; m i (X) - part of the i-th code word containing the information transmitted in it. That is, all code blocks have at least one common polynomial g (X). The maximum degree of the polynomial g (X) is b. The degree of the polynomial m i (X) depends on the information transmitted in this block and can reach a maximum value equal to k.

При систематическом циклическом кодировании кодовый блок в кодере формируется по-другому. Для этого исходный двоичный информационный полином mi(Х) первоначально домножается на Xb, что соответствует сдвигу на b разрядов в сторону увеличения. В результате получается полином mi(Х)Xb с максимальной степенью, в общем случае равной n=k+b. Далее он делится на порождающий полином g(X). Максимальная степень образующегося остатка ri(Х) равна b, т.е. равна количеству нулей в записи mi(X)Xb, начиная с первого разряда. После этого остаток ri(Х) складывается с полиномом, образуя передаваемый по каналу передачи кодовый блок yi(X)=mi(X)Xb+ri(X). Таким образом, и в этом случае кодовый блок кратен полиному g(X), т.е. порождающий полином является одним из множителей полинома yi(X), и можно записать yi(X)=Mi(X)g(X). Именно этот факт используется в приемнике для вычисления синдромов ошибок и их исправления.With systematic cyclic coding, the code block in the encoder is formed differently. For this, the initial binary information polynomial m i (X) is initially multiplied by X b , which corresponds to a shift by b digits in the direction of increase. The result is a polynomial m i (X) X b with a maximum degree, in the general case, equal to n = k + b. Then it is divided into the generating polynomial g (X). The maximum degree of the resulting residue r i (X) is equal to b, i.e. equal to the number of zeros in the record m i (X) X b , starting from the first bit. After that, the remainder r i (X) is added up with a polynomial, forming a code block transmitted over the transmission channel y i (X) = m i (X) X b + r i (X). Thus, in this case, the code block is a multiple of the polynomial g (X), i.e. the generating polynomial is one of the factors of the polynomial y i (X), and we can write y i (X) = M i (X) g (X). It is this fact that is used in the receiver to calculate the syndromes of errors and correct them.

Если попарно сравнивать различные кодовые блоки, то хотя и наборы множителей, на которые разлагаются их полиномы, будут различаться, но множитель g(X) будет присутствовать во всех кодовых блоках. Естественно, иногда могут появляться одинаковые множители и в информационной части Mi(X) разных кодовых слов.If we compare different code blocks in pairs, then although the sets of factors into which their polynomials are decomposed will differ, the factor g (X) will be present in all code blocks. Naturally, the same factors can sometimes appear in the information part M i (X) of different codewords.

Обозначим одинаковые множители в информационной части двух сравниваемых кодовых блоков через MC(Х), а различающиеся части через Md1(X) и Md2(X). В другой паре кодовых слов часть MC(X) будет в общем случае отличаться от общей части в первой паре, в третьей паре отличаться от первых двух, и т.д. Таким образом, если сравнивать достаточно большое количество пар, то, несмотря на то что в каждой паре по отдельности кроме полинома g(X) будут общими и другие полиномы, во всей совокупности анализируемых кодовых блоков общим множителем будет только искомый порождающий полином g(X).We denote the same factors in the information part of the two code blocks being compared by M C (X), and the different parts by M d1 (X) and M d2 (X). In another pair of code words, the part M C (X) will generally differ from the common part in the first pair, in the third pair it will differ from the first two, etc. Thus, if we compare a sufficiently large number of pairs, then, in spite of the fact that in each pair separately, apart from the polynomial g (X), other polynomials will be common, in the entire set of analyzed code blocks, only the desired generating polynomial g (X) will be a common factor .

В соответствии с этим операции на фиг. 1 производят следующие действия. В операции 1 запоминается N поступивших на приемник кодовых блоков. Количество N должно быть достаточно большим, например значительно большим, чем общее число n символов в кодовом блоке.Accordingly, the operations of FIG. 1 produce the following actions. In operation 1, N code blocks received at the receiver are stored. The number N must be large enough, for example, significantly larger than the total number n characters in the code block.

Поскольку информационные части разных блоков в подавляющем большинстве случаев различаются, то и появление одинаковых множителей в информационной части также маловероятно, гораздо вероятнее, что общая часть будет состоять только из порождающего полинома. Большое количество N необходимо, чтобы вероятность появления при анализе именно искомого порождающего полинома была значительно больше, чем других результатов анализа. При дальнейшем увеличении N эта вероятность увеличивается, что дает возможность уменьшить ошибку диагностики до требуемых уровней.Since the informational parts of different blocks in the vast majority of cases are different, then the appearance of the same factors in the informational part is also unlikely, it is much more likely that the common part will consist only of a generating polynomial. A large amount of N is necessary so that the probability of occurrence during the analysis of exactly the desired generating polynomial is significantly greater than other analysis results. With a further increase in N, this probability increases, which makes it possible to reduce the diagnostic error to the required levels.

Появление ошибочных символов при передаче по каналу связи лишь приводит к появлению других результатов анализа и запоминанию других видов полиномов. Это негативное явление может быть ослаблено до приемлемого уровня увеличением N. Таким образом, операция 1 обеспечивает запоминание N кодовых слов и попарную их передачу для последующей обработки. Количество пар различающихся кодовых блоков при этом равно N(N-1)/2.The appearance of erroneous characters during transmission over a communication channel only leads to the appearance of other analysis results and the memorization of other types of polynomials. This negative phenomenon can be attenuated to an acceptable level by an increase in N. Thus, operation 1 provides the storage of N codewords and their pairwise transmission for subsequent processing. The number of pairs of different code blocks is N (N-1) / 2.

Операция 9 производит сравнение и сложение подаваемых на нее кодовых блоков. Она состоит из нескольких последовательных операций. В операции 5 производится сравнение полиномов двух анализируемых кодовых блоков, и определяются максимальные степени полиномов обоих блоков. Пусть полином одного из кодовых блоков имеет вид y1(X)=aSXS+aS-1XS-1+aS-2XS-2+…, а второй полином равен y2(Х)=bTXT+bT-1XT-1+bT-2XT-2… и aS=bS=1. Операцией 5 сравниваются величины S и Т.Operation 9 compares and adds the code blocks supplied to it. It consists of several sequential operations. In step 5, the polynomials of the two analyzed code blocks are compared and the maximum degrees of the polynomials of both blocks are determined. Let a polynomial of one of the code blocks have the form y 1 (X) = a S X S + a S-1 X S-1 + a S-2 X S-2 + ..., and the second polynomial is y 2 (X) = b T X T + b T-1 X T-1 + b T-2 X T-2 ... and a S = b S = 1. Operation 5 compares the values of S and T.

Предположим, оказалось, что S>T, т.е. полином y1 больше, чем полином y2. Тогда следующей операцией 6 поразрядного сдвига меньшего полинома производится домножение второго полинома на XS-T, т.е. поразрядный сдвиг в большую сторону на S-T всех его разрядов. Если же второй полином больше первого, то тогда первый полином домножается на необходимую разностную величину, т.е. сдвигается на соответствующее разностное число разрядов. В том случае, если максимальные степени обоих полиномов равны (т.е. S=T), то в операции 6 никакого поразрядного сдвига не производится. Таким образом, после операции 6 максимальные степени обоих полиномов станут совпадать.Suppose it turned out that S> T, i.e. the polynomial y 1 is greater than the polynomial y 2 . Then the next step 6 of the bitwise shift of the smaller polynomial is the multiplication of the second polynomial by X ST , i.e. bitwise shift upward on ST of all its bits. If the second polynomial is greater than the first, then the first polynomial is multiplied by the required difference value, i.e. shifted by the corresponding difference in the number of digits. If the maximum degrees of both polynomials are equal (i.e., S = T), then in operation 6 no bitwise shift is performed. Thus, after operation 6, the maximum degrees of both polynomials will coincide.

Следующей операцией 7 сравнивается величина большего полинома и результата сдвига меньшего полинома. При этом возможны две различные ситуации.The next operation 7 compares the magnitude of the larger polynomial and the result of the shift of the smaller polynomial. In this case, two different situations are possible.

Если в результате сдвига меньший полином становится равным большему полиному, то общая операция 9 попарного сравнения и сложения блоков прекращается. Вид меньшего полинома передается к операции 3 и запоминается.If, as a result of the shift, the smaller polynomial becomes equal to the larger polynomial, then the general operation 9 of pairwise comparison and addition of blocks is terminated. The view of the smaller polynomial is transmitted to operation 3 and stored.

Если же сравниваемые полиномы не равны между собой, то далее производится операция 8. В ней выполняется поразрядное вычитание по модулю 2 обоих полиномов. Поскольку их максимальные степени до этого были выровнены, то после осуществления этой операции максимальная степень разности уменьшается на единицу. После этого вновь осуществляется операция 5 сравнения полиномов, но уже с двумя другими полиномами, из которых один равен упомянутому меньшему полиному до его поразрядного сдвига, а другой - результату сложения по модулю 2 операции 7. После нее вновь выполняются описанные операции, пока операцией 7 не будет установлено равенство обрабатываемых полиномов.If the polynomials being compared are not equal to each other, then step 8 is performed. It performs bitwise subtraction modulo 2 of both polynomials. Since their maximum degrees were equalized before that, after this operation, the maximum degree of difference decreases by one. After this, the operation 5 of comparing the polynomials is again performed, but with two other polynomials, one of which is equal to the smaller polynomial before its bitwise shift, and the other is the result of modulo 2 addition of operation 7. After it, the operations described above are performed again until operation 7 equality of processed polynomials will be established.

Когда процедура, производимая общей операцией 9 сравнения и сложения полиномов, заканчивается, это приводит к тому, что в результате остаются общие для обоих анализируемых в ней кодовых блоков полиномы. Действительно, пусть сравниваемые кодовые блоки описываются полиномами: y1(X)=Md1(X)MC(X)g(X) и y2(X)=Md2(X)MC(X)g(X).When the procedure performed by the general operation 9 of comparing and adding polynomials is completed, this leads to the result that the polynomials common to both code blocks analyzed in it remain. Indeed, let the compared code blocks be described by polynomials: y 1 (X) = M d1 (X) M C (X) g (X) and y 2 (X) = M d2 (X) M C (X) g (X) .

Как известно, поразрядные сложение и вычитание двоичных чисел по модулю 2 являются эквивалентными операциями, т.к. приводят к одинаковым результатам. Поэтому разностный полином y3=y1-y2=(Md1+Md2)MCg=(Md1-Md2)MCg=M3MCg будет содержать те же совпадающие общие множители, что и исходные полиномы до сложения, а изменяются только различающиеся полиномы.As you know, bitwise addition and subtraction of binary numbers modulo 2 are equivalent operations, because lead to the same results. Therefore, the difference polynomial y 3 = y 1 -y 2 = (M d1 + M d2 ) M C g = (M d1- M d2 ) M C g = M 3 M C g will contain the same coincident common factors as the original ones polynomials before addition, and only different polynomials change.

Поскольку перед сложением (вычитанием) максимальный порядок меньшего полинома был временно приравнен к порядку большего, то после этой операции порядок результата сложения всегда уменьшается на единицу по сравнению с порядком максимального из анализируемых полиномов. Если после нее результат оказывается не равен меньшему из текущих полиномов, то вновь повторяется выравнивание порядков двух анализируемых полиномов и их вычитание. Порядок различающейся части (М3) вновь уменьшается на единицу и т.д. Таким образом, после проведения определенного числа повторяющихся операций 5-8 полином М3 становится равным единице. Число повторяющихся операций определяется конкретным видом полиномов Md1 и Md2 и равно порядку максимального их них.Since the maximum order of a smaller polynomial was temporarily equated to the order of a larger one before addition (subtraction), then after this operation the order of the result of addition always decreases by one compared to the order of the maximum of the analyzed polynomials. If after it the result is not equal to the smaller of the current polynomials, then the alignment of the orders of the two analyzed polynomials and their subtraction is repeated again. The order of the different part (M 3 ) again decreases by one, etc. Thus, after a certain number of repeated operations 5-8, the polynomial M 3 becomes equal to one. The number of repeating operations is determined by the specific form of the polynomials M d1 and M d2 and is equal to the order of their maximum.

Для примера рассмотрим подробно данный набор операций с двумя произвольными полиномами, состоящими из общей части g(X) и различающихся частей. Вид различающихся частей значения не имеет, поскольку конечный результат при любых различающихся частях всегда будет равным g(X). В качестве анализируемой пары полиномов выберем: y1=(X4+X+1)g(X) и y2=(X3+X2)g(X).As an example, let us consider in detail this set of operations with two arbitrary polynomials consisting of the common part g (X) and the differing parts. The form of the different parts does not matter, since the final result for any different parts will always be equal to g (X). As the analyzed pair of polynomials, we choose: y 1 = (X 4 + X + 1) g (X) and y 2 = (X 3 + X 2 ) g (X).

Первый полином y1 больше, чем второй полином y2. После первого сравнения этих двух полиномов операция 5 определяет, что второй полином должен быть умножен на Х, т.е. двоичное число его описывающее должно быть сдвинуто вверх на один разряд. После такого сдвига операцией 6 полиномы y1 и y2X остаются не равны, поэтому после сравнения в операции 7 они последующей операцией 8 складываются (вычитаются). Получается полином y3=y1-y2X=(Х4+Х+1)g(X)+X(X3+X2)g(X)=(X4+X+1+X4+X3)g(X)=(X3+X+1)g(X).The first polynomial y 1 is greater than the second polynomial y 2 . After the first comparison of these two polynomials, operation 5 determines that the second polynomial should be multiplied by X, i.e. the binary number describing it should be shifted up one digit. After such a shift by operation 6, the polynomials y 1 and y 2 X remain not equal, therefore, after comparison in operation 7, they are added (subtracted) by the subsequent operation 8. The polynomial y 3 = y 1 -y 2 X = (X 4 + X + 1) g (X) + X (X 3 + X 2 ) g (X) = (X 4 + X + 1 + X 4 + X 3 ) g (X) = (X 3 + X + 1) g (X).

Результат сложения - полином y3=(X3+X+1)g(X) - вновь подается на операцию 5, где он сравнивается с меньшим (до сдвига) полиномом y2=(X3+X2)g(X). Вновь полученный полином y3 меньше, чем исходный меньший полином y2=(X3+X2)g(X), однако порядки их одинаковы (они равны 3). Поэтому операцией 6 поразрядный сдвиг не производится и после сравнения в операции 7 они складываются (вычитаются) операцией 8 без сдвига. В результате получается полином y4=(X3+X2)g(X)+(X3+X+1)g(X)=(X2+X+1)g(X).The result of addition, the polynomial y 3 = (X 3 + X + 1) g (X), is again sent to operation 5, where it is compared with the smaller (before the shift) polynomial y 2 = (X 3 + X 2 ) g (X) . The newly obtained polynomial y 3 is smaller than the original smaller polynomial y 2 = (X 3 + X 2 ) g (X), but their orders are the same (they are equal to 3). Therefore, bitwise shift is not performed by operation 6, and after comparison in operation 7 they are added (subtracted) by operation 8 without shift. As a result, the polynomial y 4 = (X 3 + X 2 ) g (X) + (X 3 + X + 1) g (X) = (X 2 + X + 1) g (X) is obtained.

Теперь операцией 5 вновь сравниваются полиномы y3=(X3+X+1)g(X) и y4=(Х2+X+1)g(X). Поскольку степень первого из них больше на единицу, то полином y4 теперь операцией 6 домножается на X. В результате получается полином Xy4=X(X2+X+1)g(X)=Х32+Х. Он также не равен полиному y3. Поэтому дальше производится операция 8. После вычитания в операции 8 получается полином y5=y3-Xy4=(X3+X+1)g(X)+X(X2+X+1)g(X)=(X2+1)g(X).Now, by operation 5, the polynomials y 3 = (X 3 + X + 1) g (X) and y 4 = (X 2 + X + 1) g (X) are again compared. Since the degree of the first of them is greater by one, the polynomial y 4 is now multiplied by X by X. As a result, the polynomial Xy 4 = X (X 2 + X + 1) g (X) = X 3 + X 2 + X is obtained. It is also not equal to the polynomial y 3 . Therefore, operation 8 is performed further. After subtraction in operation 8, the polynomial y 5 = y 3 -Xy 4 = (X 3 + X + 1) g (X) + X (X 2 + X + 1) g (X) = ( X 2 +1) g (X).

Операция 5 сравнивает его с меньшим из складываемых (до домножения на X) полиномов, т.е. с полиномом y4=(X2+X+1)g(X)).Operation 5 compares it with the smaller of the polynomials that are added up (before multiplying by X), i.e. with the polynomial y 4 = (X 2 + X + 1) g (X)).

Полученный полином y5 меньше меньшего из складываемых полиномов y4, но их степени совпадают. В результате теперь в операции 6 поразрядного сдвига не производится но сами полиномы не равны, поэтому операция 7 передает их к операции 8. Далее в операции 8 производится их сложение (вычитание), после чего получается результат: полином: y6=y4-y5=(Х2+Х+1)g(X)+(X2+1)g(X)=Xg(X).The resulting polynomial y 5 is less than the smaller of the added polynomials y 4 , but their degrees coincide. As a result, bitwise shift is not performed in operation 6, but the polynomials themselves are not equal, so operation 7 passes them to operation 8. Then, in operation 8, they are added (subtracted), and then the result is obtained: polynomial: y 6 = y 4 -y 5 = (X 2 + X + 1) g (X) + (X 2 +1) g (X) = Xg (X).

После этого операция 5 сравнивает его с меньшим из складываемых полиномов, т.е. с полиномом y5=(Х+1)g(X). Степень полученного полинома y6=Xg(X) меньше, чем степень меньшего из складываемых полиномов (имеется в виду полином y5=(Х+1)g(X)), поэтому полином y6=Xg(X) после операций 5 и 6 умножается на X.After this, operation 5 compares it with the smaller of the polynomials being added, i.e. with the polynomial y 5 = (X + 1) g (X). The degree of the obtained polynomial y 6 = Xg (X) is less than the degree of the smaller of the added polynomials (we mean the polynomial y 5 = (X + 1) g (X)), therefore, the polynomial y 6 = Xg (X) after operations 5 and 6 times X.

После такого умножения и после вычитания в операции 8 получается результат: y7=(X2+1)g(X)+X2g(X)=g(X).After such multiplication and after subtraction in operation 8, the result is obtained: y 7 = (X 2 +1) g (X) + X 2 g (X) = g (X).

После этого в операции 5 устанавливается, что степень предыдущего меньшего полинома y6=Xg(X) больше, чем степень полученного результата y7=g(X). Вследствие этого меньший полином y7 в операции 6 домножается на соответствующий множитель, определяемый разностью степеней, т.е. на X. После этого сравниваемые полиномы приобретают вид: y6=-Xg(X) и y7=Xg(X), т.е. становятся равными один другому.After that, in step 5 it is established that the degree of the previous smaller polynomial y 6 = Xg (X) is greater than the degree of the result y 7 = g (X). As a result, the smaller polynomial y 7 in operation 6 is multiplied by the corresponding factor determined by the difference of degrees, i.e. on X. After that, the compared polynomials take the form: y 6 = -Xg (X) and y 7 = Xg (X), i.e. become equal to each other.

Факт этого получившегося теперь равенства устанавливается операцией 7, после чего операцией 9 цикл попарного сравнения данной пары кодовых блоков завершается. Вид меньшего до сдвига полинома g(X) передается к операции 3. В ней запоминается полученный при анализе данной пары кодовых блоков результат, т.е. полученное найденное значение общего полинома.The fact of this equality now obtained is established by operation 7, after which operation 9 completes the pairwise comparison cycle of this pair of code blocks. The form of the smaller polynomial g (X) before the shift is passed to operation 3. It stores the result obtained by analyzing this pair of code blocks, i.e. the obtained found value of the general polynomial.

Операцией 3 запоминаются найденные в данной паре кодовых блоков значения общего полинома. После анализа всех N(N-1)/2 сочетаний пар кодовых блоков оказываются запомненными все выявленные операцией 3 общие множители для всех пар. Среди них будут случайно присутствовать какие-то полиномы, входящие в информационные части разных пар блоков (разные для различных пар) и общий для всех порождающий полином.Operation 3 remembers the values of the common polynomial found in this pair of code blocks. After analyzing all N (N-1) / 2 combinations of code block pairs, all common factors identified by operation 3 are found to be common for all pairs. Among them, randomly occurring polynomials that are part of the information parts of different pairs of blocks (different for different pairs) and a generic polynomial for all.

Информационные части разных блоков различаются, и появление одинаковых множителей в информационной части также маловероятно, гораздо вероятнее, что общая часть будет состоять только из порождающего полинома.The information parts of different blocks are different, and the appearance of identical factors in the information part is also unlikely, it is much more likely that the common part will consist only of a generating polynomial.

После завершения данного анализа всех сочетания кодовых блоков операция 4 (выбор максимального числа результатов) определяет максимальное число общих полиномов-множителей, выявленных при сравнении всех пар.After completing this analysis of all combinations of code blocks, operation 4 (choosing the maximum number of results) determines the maximum number of common polynomial-factors identified by comparing all pairs.

Вероятность появления в каждом цикле анализа только порождающего полинома g(X) гораздо выше, то именно он будет определен максимальное число раз, а все другие результаты, появляющиеся случайно, будут зафиксированы меньшее число раз. Поэтому операция 4 определит именно полином g(X), являющийся искомым результатом диагностики.The probability of occurrence in each analysis cycle of only the generating polynomial g (X) is much higher, then it will be determined the maximum number of times, and all other results that appear randomly will be recorded a smaller number of times. Therefore, operation 4 determines precisely the polynomial g (X), which is the desired diagnostic result.

Для каждой пары кодовых слов производится постепенное циклическое уменьшение порядка соответствующих полиномов до тех пор, пока в паре не останутся только общие полином для каждой пары. Если максимальная степень различающихся частей равна k, то в общем случае общий полином будет получен максимум за k повторений описанного набора операций.For each pair of codewords, a gradual cyclic decrease in the order of the corresponding polynomials is performed until only the common polynomials for each pair remain in the pair. If the maximum degree of the different parts is equal to k, then in the general case the general polynomial will be obtained for a maximum of k repetitions of the described set of operations.

Таким образом, заявляемый способ позволяет определять структуру используемого кодера без предварительной информации о ней и обеспечивать эффективную работу декодера по исправлению ошибок, тем самым повышая помехоустойчивость передачи информации.Thus, the claimed method allows to determine the structure of the encoder used without preliminary information about it and to ensure the effective operation of the decoder for error correction, thereby increasing the noise immunity of the transmission of information.

Claims (1)

Способ диагностики циклических кодов, включающий в себя поразрядный сдвиг полинома и поразрядное сложение по модулю 2, отличающийся тем, что в него вводят запоминание N кодовых блоков, извлечение пар кодовых блоков, запоминание вида полиномов, описывающих кодовые блоки, выбор максимального числа результатов, попарное сравнение и сложение кодовых блоков, сравнение полиномов и сравнение результата со сдвинутым полиномом, при этом сначала запоминают N кодовых блоков, затем извлекают пары кодовых блоков, после этого кодовые блоки попарно сравнивают и складывают, далее запоминают вид полученных в результате сравнения и сложения полиномов, после чего выбирают максимальное число полученных одинаковых результатов сравнения и сложения, причем при попарном сравнении и сложении кодовых блоков сравнивают два выбранных полинома, описывающих сравниваемые кодовые блоки, затем поразрядно сдвигают меньший полином, после чего сравнивают больший полином со сдвинутым меньшим полиномом, в случае их равенства вид меньшего полинома до сдвига запоминается, в случае их неравенства поразрядно складывают по модулю 2 больший полином и сдвинутый меньший полином и возвращаются к сравнению меньшего полинома и полученного результата сложения по модулю 2.A method for diagnosing cyclic codes, including bitwise shift of a polynomial and bitwise addition modulo 2, characterized in that they store N code blocks, extract pairs of code blocks, remember the type of polynomials describing code blocks, select the maximum number of results, pairwise comparison and adding code blocks, comparing polynomials and comparing the result with the shifted polynomial, first remember N code blocks, then retrieve pairs of code blocks, then code blocks are paired with fold and add, then remember the type of polynomials obtained by comparison and addition, then select the maximum number of identical results of comparison and addition, and when pairwise comparing and adding code blocks, two selected polynomials describing the code blocks being compared are compared, then the smaller polynomial is shifted bitwise , after which the larger polynomial is compared with the shifted smaller polynomial, if they are equal, the form of the smaller polynomial before the shift is remembered, in case of their inequality, the bit but add modulo 2 larger polynomial and shifted smaller polynomial and return to the comparison of the smaller polynomial and the obtained result of addition modulo 2.
RU2016107245A 2016-02-29 2016-02-29 Method of diagnosing cyclic codes RU2631142C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2016107245A RU2631142C2 (en) 2016-02-29 2016-02-29 Method of diagnosing cyclic codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2016107245A RU2631142C2 (en) 2016-02-29 2016-02-29 Method of diagnosing cyclic codes

Publications (2)

Publication Number Publication Date
RU2016107245A RU2016107245A (en) 2017-08-30
RU2631142C2 true RU2631142C2 (en) 2017-09-19

Family

ID=59798848

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2016107245A RU2631142C2 (en) 2016-02-29 2016-02-29 Method of diagnosing cyclic codes

Country Status (1)

Country Link
RU (1) RU2631142C2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2693190C1 (en) * 2018-07-02 2019-07-01 Федеральное государственное бюджетное образовательное учреждение высшего образования "Владимирский Государственный Университет имени Александра Григорьевича и Николая Григорьевича Столетовых" (ВлГУ) Method of diagnosing non-binary block codes
RU226603U1 (en) * 2024-03-12 2024-06-11 Федеральное государственное бюджетное образовательное учреждение образования "Владимирский Государственный Университет имени Александра Григорьевича и Николая Григорьевича Столетовых" (ВлГУ) Device for diagnosing signal-code structures

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU603138A1 (en) * 1976-05-17 1978-04-15 Ленинградский Институт Авиационного Приборостроения Linear cyclic code decoder
SU613515A2 (en) * 1976-10-05 1978-06-30 Войсковая часть 60130 Cyclic code decoder
US4320511A (en) * 1979-03-13 1982-03-16 Kokusai Denshin Denwa Co., Ltd. Method and device for conversion between a cyclic and a general code sequence by the use of dummy zero bit series
US20080012745A1 (en) * 2006-07-13 2008-01-17 Baek Youngseok Apparatus for generating ranging binary code sequence at high-speed, and method thereof
RU2448417C2 (en) * 2007-08-14 2012-04-20 Эл Джи Электроникс Инк. Data transmission method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU603138A1 (en) * 1976-05-17 1978-04-15 Ленинградский Институт Авиационного Приборостроения Linear cyclic code decoder
SU613515A2 (en) * 1976-10-05 1978-06-30 Войсковая часть 60130 Cyclic code decoder
US4320511A (en) * 1979-03-13 1982-03-16 Kokusai Denshin Denwa Co., Ltd. Method and device for conversion between a cyclic and a general code sequence by the use of dummy zero bit series
US20080012745A1 (en) * 2006-07-13 2008-01-17 Baek Youngseok Apparatus for generating ranging binary code sequence at high-speed, and method thereof
RU2448417C2 (en) * 2007-08-14 2012-04-20 Эл Джи Электроникс Инк. Data transmission method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2693190C1 (en) * 2018-07-02 2019-07-01 Федеральное государственное бюджетное образовательное учреждение высшего образования "Владимирский Государственный Университет имени Александра Григорьевича и Николая Григорьевича Столетовых" (ВлГУ) Method of diagnosing non-binary block codes
RU226603U1 (en) * 2024-03-12 2024-06-11 Федеральное государственное бюджетное образовательное учреждение образования "Владимирский Государственный Университет имени Александра Григорьевича и Николая Григорьевича Столетовых" (ВлГУ) Device for diagnosing signal-code structures

Also Published As

Publication number Publication date
RU2016107245A (en) 2017-08-30

Similar Documents

Publication Publication Date Title
CN102694625B (en) Polarization code decoding method for cyclic redundancy check assistance
US9203438B2 (en) Error correction by symbol reconstruction in binary and multi-valued cyclic codes
CN110071727B (en) Encoding method, decoding method, error correction method and device
CN104218957B (en) A kind of RS decoders of low hardware complexity
CN105099467B (en) The coding method of QC-LDPC code and code device
RU2631142C2 (en) Method of diagnosing cyclic codes
CN101702625A (en) Optical communication real-time error correction circuit based on RS (255, 239) algorithm
CN101834616B (en) Implementation method of Reed-Solomon decoder
RU2693190C1 (en) Method of diagnosing non-binary block codes
US9191029B2 (en) Additional error correction apparatus and method
US11552732B2 (en) Polar coding system and parallel computation method for polar coding system
CN100578945C (en) Decoder device for LDPC code, and decoding method
EP1947796A2 (en) Method and apparatus for dividing information bit string
CN101409565A (en) Method and apparatus for decoding, and encoding/decoding method
US4298981A (en) Decoding shortened cyclic block codes
EP0991196B1 (en) Method of correcting lost data and circuit thereof
EP1443655A1 (en) Method for transmitting a digital message and system for carrying out said method
JPH07202720A (en) Communication method and its equipment
JPS6336614A (en) Apparatus for converting data expressing residue number into data projecting mixed basic number
US20030052802A1 (en) Method and apparatus for huffman decoding technique
RU2616180C1 (en) Method for diagnosing convolutional codes
RU2340091C2 (en) Method of decoding serial cascade code (versions)
CN101436864A (en) Method and apparatus for decoding low density parity check code
CN117254823B (en) Parallel RS encoding method, device and system and computer storage medium
CN111245445B (en) Blind identification method of (n, 1, v) convolution code generating polynomial

Legal Events

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

Effective date: 20180301