RU2693190C1 - Method of diagnosing non-binary block codes - Google Patents

Method of diagnosing non-binary block codes Download PDF

Info

Publication number
RU2693190C1
RU2693190C1 RU2018124144A RU2018124144A RU2693190C1 RU 2693190 C1 RU2693190 C1 RU 2693190C1 RU 2018124144 A RU2018124144 A RU 2018124144A RU 2018124144 A RU2018124144 A RU 2018124144A RU 2693190 C1 RU2693190 C1 RU 2693190C1
Authority
RU
Russia
Prior art keywords
polynomial
polynomials
code blocks
blocks
addition
Prior art date
Application number
RU2018124144A
Other languages
Russian (ru)
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 RU2018124144A priority Critical patent/RU2693190C1/en
Application granted granted Critical
Publication of RU2693190C1 publication Critical patent/RU2693190C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/134Non-binary linear block codes not provided for otherwise
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields

Abstract

FIELD: electrical communication engineering.
SUBSTANCE: invention relates to communication engineering and can be used to determine an unknown coding structure of non-binary systematic codes and non-systematic codes based on analysis of the received code sequence. Method comprises steps of: storing N code blocks, extracting pairs of code blocks which are pairwise compared and folded, at that, maximum degrees of members of selected polynomials describing compared code blocks are compared, a lower polynomial is shifted bit by bit, all coefficients of each polynomial are divided by a coefficient of its maximum degree, comparing a larger polynomial with a shifted smaller polynomial, if they are equal, the form of the smaller polynomial before shift is stored, if they are unequal are added, coefficients in the Galois field are added for members with the same degrees of polynomials and returned to comparison of smaller polynomial and obtained result of addition in Galois field, form of obtained polynomials is memorized, maximum number of obtained identical results of comparison and addition is selected.
EFFECT: high noise-immunity of transmitting information.
1 cl, 3 dwg

Description

Способ диагностики недвоичных блоковых кодов относится к технике связи и может быть использован для определения неизвестной структуры кодера недвоичных блоковых систематических кодов, включая коды Рида-Соломона, и несистематических кодов на основе анализа принимаемой кодовой последовательности.A method for diagnosing non-binary block codes relates to communication technology and can be used to determine the unknown coder structure of non-binary block systematic codes, including Reed-Solomon codes, and non-systematic codes based on an analysis of the received code sequence.

Известны различные способы блокового кодирования и декодирования, используемые для исправления возникающих при передаче ошибок, и описанные, например, в книгах: Ипатов В.П., Орлов В.К., Самойлов И.М. Системы мобильной связи - М.: Горячая линия-Телеком, 2003; Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение - М: Техносфера, 2006; Скляр Б. Цифровая связь. Теоретические основы и практическое применение - М: Изд. дом «Вильяме», 2003.There are various methods of block coding and decoding used to correct errors that occur during transmission, and described, for example, in books: V. Ipatov, V. Orlov, I. Samoilov. Mobile communication systems - M .: Hotline-Telecom, 2003; Morelos-Zaragoza R. The art of robust coding. Methods, algorithms, application - M: Technosphere, 2006; Sklyar B. Digital communication. Theoretical foundations and practical application - M: Ed. House "William", 2003.

В них описываются операции получения кодового блока из входной информационной последовательности символов путем осуществления операций свертки определенного количества информационных символов с полиномиальными генераторами (порождающими полиномами) и последовательной передачи подобных кодовых блоков. При этом для реализации несистематического кода группа последовательно идущих исходных информационных символов умножается на порождающий полином, представленный в виде вектора с двоичными элементами. Для реализации систематического кода исходная группа информационных символов сдвигается на определенное количество двоичных разрядов. Далее результат сдвига делится на порождающий полином и частное от деления складывается по модулю 2 со сдвинутой группой символов. После приема последовательность раскодируется одними из возможных методов, при декодировании весь принятый кодовый блок делится на порождающий полином, и результат деления используется для локализации и исправления ошибок.They describe the operations of obtaining a code block from the input information sequence of characters by performing convolution operations of a certain number of information symbols with polynomial generators (generating polynomials) and the sequential transmission of similar code blocks. At the same time, to implement a non-systematic code, the group of consecutive source information symbols is multiplied by the generator polynomial, represented as a vector with binary elements. To implement a systematic code, the original group of information symbols is shifted by a certain number of binary digits. Further, the result of the shift is divided into the generating polynomial and the quotient is added modulo 2 with the shifted group of symbols. After reception, the sequence is decoded by one of the possible methods, when decoding, the entire received code block is divided into the generating polynomial, and the result of the division is used to localize and correct errors.

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

Наиболее близким к заявляемому является способ по патенту РФ №2631142 на «Способ диагностики циклических кодов» по заявке №2016107245, приоритет от 29.02.2016, зарегистрирован в государственном реестре изобретений 19.09.2017, МПК H04L 17/00, авторы Корнеева Н.Н., Полушин П.А., Никитин О.Р.The closest to the claimed is the method according to the patent of the Russian Federation No. 2631142 on "Method for diagnosing cyclic codes" on application No. 2016107245, priority from 02/29/2016, registered in the state register of inventions September 19, 2017, IPC H04L 17/00, authors Korneev N.N. , Polushin PA, Nikitin O.R.

Способ-прототип предназначен для диагностики двоичных блоковых кодов. В способе-прототипе производится запоминание принятых N кодовых блоков, далее извлечение пар кодовых блоков, попарное сравнение и сложение блоков, запоминание вида полиномов и выбор максимального числа результатов, при этом операция попарного сравнения и сложения блоков состоит из последовательных операций сравнения полиномов, поразрядного сдвига полинома, сравнения результата со сдвинутым полиномом и поразрядного сложения по модулю 2.The prototype method is designed to diagnose binary block codes. In the prototype method, the received N code blocks are memorized, further extraction of pairs of code blocks, pairwise comparison and addition of blocks, memorization of the type of polynomials and selection of the maximum number of results, the pairwise comparison and addition of blocks operation consists of sequential polynomial comparison operations, bitwise shift of the polynomial , comparing the result with the shifted polynomial and bitwise addition modulo 2.

С помощью операций способа определяется общий полином для каждой пары анализируемых кодовых блоков и запоминается его вид. После рассмотрения всех кодовых блоков в качестве результата диагностики выбирается полином, запомненный в памяти максимальное число раз.Using the operations of the method, a common polynomial is determined for each pair of code blocks analyzed and its type is remembered. After considering all the code blocks, the polynomial, the maximum number of times stored in memory, is selected as the diagnostic result.

Основным недостатком прототипа является то, что в недвоичных кодах каждый символ представлен не единственным битом, а нескольким битами (m битами), и описывается не двоичным числом, а специальными коэффициентами - объектами конечной алгебры полей Галуа (см., например, упомянутые книги Б. Скляра или Р. Морелоса-Сарагосы). К этим коэффициентам неприменимы правила обычной двоичной Булевой алгебры, а операции сложения, умножения и т.д., хотя и базируются на логической обработке групп двоичных бит, составляющих каждый символ, но должны выполняться на основе специальных правил, вырабатываемых с использованием т.наз. примитивных полиномов. Таким образом, все операции прототипа, выполняемые на основе Булевой алгебры, непригодны для обработки недвоичных символов.The main disadvantage of the prototype is that in non-binary codes each character is represented not by a single bit, but by several bits (m bits), and is described not by a binary number, but by special coefficients — objects of a finite Galois field algebra (see, for example, the books mentioned B. Sklyara or R. Morelos-Zaragoza). The rules of ordinary binary Boolean algebra are not applicable to these coefficients, and the operations of addition, multiplication, etc., although they are based on the logical processing of groups of binary bits that make up each character, but must be performed on the basis of special rules generated using the so-called. primitive polynomials. Thus, all prototype operations performed on the basis of Boolean algebra are unsuitable for processing non-binary characters.

Кроме этого, когда для операции попарного сложения по модулю 2 выровнены старшие степени двоичных полиномов, то в способе-прототипе всегда старшие члены полиномов вычитаются и пропадают, и максимальная степень полиномов уменьшается. В случае недвоичных полиномов коэффициенты при старшем полиноме могут иметь не два допустимых значения (0 и 1), а гораздо больше возможных значений. Поэтому в общем случае непосредственное вычитание полиномов не может уменьшить максимальной степени полинома, и принцип, реализуемый в способе-прототипе, для недвоичных кодов реализован быть не может.In addition, when the higher degrees of binary polynomials are aligned for the operation of pairwise addition modulo 2, then in the method of the prototype the highest terms of the polynomials are always subtracted and disappear, and the maximum degree of polynomials decreases. In the case of nonbinary polynomials, the coefficients of the higher polynomial can have not two valid values (0 and 1), but much more than possible values. Therefore, in the general case, direct subtraction of polynomials cannot reduce the maximum degree of a polynomial, and the principle implemented in the prototype method cannot be realized for non-binary codes.

Требуемый уровень помехоустойчивости передачи информации с использованием исправляющих способностей декодеров в отсутствие информации о кодере не обеспечивается, поскольку работоспособность декодеров нарушается.The required level of noise immunity of information transmission using the correcting capabilities of decoders in the absence of information about the encoder is not ensured, since the performance of decoders is impaired.

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

Поставленная задача решается тем, что в способ диагностики недвоичных блоковых кодов, включающий в себя запоминание N кодовых блоков, извлечение пар блоков, попарное сравнение и сложение блоков, поразрядный сдвиг полинома, запоминание вида полинома и выбор максимального числа результатов, вводят сравнение степеней полиномов, деление на коэффициенты при старшей степени полинома, определение равенства полиномов и сложение полиномов в поле Галуа, при этом сначала запоминают N кодовых блоков, затем извлекают пары кодовых блоков, после этого кодовые блоки попарно сравнивают и складывают, далее запоминают вид полученных в результате сравнения и сложения полиномов, после чего выбирают максимальное число полученных одинаковых результатов сравнения и сложения, причем при попарном сравнении и сложении кодовых блоков сравнивают максимальные степени членов выбранных полиномов, описывающих сравниваемые кодовые блоки, затем поразрядно сдвигают меньший полином, после чего делят все коэффициенты каждого полинома на коэффициент при его члене максимальной степени, далее сравнивают больший полином со сдвинутым меньшим полиномом, в случае их равенства вид меньшего полинома до сдвига запоминают, в случае их неравенства складывают в поле Галуа коэффициенты при членах с одинаковыми степенями полиномов и возвращаются к сравнению меньшего полинома и полученного результата сложения в поле Галуа.The problem is solved in that a method for diagnosing non-binary block codes, including storing N code blocks, extracting pairs of blocks, pairwise comparison and addition of blocks, a bitwise polynomial shift, remembering the type of polynomial and choosing the maximum number of results, introduces a comparison of the degrees of polynomials, division the coefficients at the highest degree of a polynomial, the definition of equality of polynomials and the addition of polynomials in the Galois field, while first remember N code blocks, then remove pairs of code blocks, then code blocks are compared and put in pairs, then the type of polynomials obtained as a result of comparison and addition is memorized, after which the maximum number of identical results of comparison and addition obtained is chosen, and when pairwise comparison and addition of code blocks, the maximum powers of the members of the selected polynomials describing the compared code blocks are compared, then shift the smaller polynomial bitwise, then divide all the coefficients of each polynomial by the coefficient of its member of the maximum degree, then I compare greater shifted polynomial by polynomial smaller, in case of equality of the polynomial to form a smaller shear stored, in case of inequality is folded in the Galois field coefficients of the terms of the same degrees of polynomials and to return smaller than the polynomial and the result of addition in the Galois field.

На чертежах представлены: на фиг. 1 - схематическая последовательность операций заявляемого способа; на фиг. 2 - пример структурной схемы устройства для реализации предлагаемого способа; на фиг. 3 - пример реализации регистров для запоминания символов кодового слова.The drawings show: in FIG. 1 is a schematic sequence of operations of the proposed method; in fig. 2 is an example of a block diagram of a device for implementing the proposed method; in fig. 3 shows an example of the implementation of registers for storing codeword symbols.

На фиг. 1 обозначены: 1 - запоминание N кодовых блоков; 2 - извлечение пар блоков; 3 - запоминание вида полиномов; 4 - выбор максимального числа результатов; 5 - сравнение степеней полиномов; 6 - поразрядный сдвиг полинома; 7 - деление на коэффициенты при старшей степени полинома; 8 - определение равенства полиномов; 9 - сложение полиномов в поле Галуа; 10 - попарное сложение и сравнение блоков.FIG. 1 are designated: 1 - storing 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 the degrees of polynomials; 6 - bitwise polynomial shift; 7 - division by coefficients at the highest degree of the polynomial; 8 - definition of equality of polynomials; 9 - addition of polynomials in the Galois field; 10 - pairwise addition and comparison of blocks.

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

На фиг. 3 представлены: регистр 32 для запоминания символов кодового слова; двоичные ячейки 33 для запоминания битов, составляющих символы кодового слова.FIG. 3 presents: a register 32 for storing codeword symbols; binary cells 33 for storing the bits constituting the codeword symbols.

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

Операция 10 попарного сложения и сравнения блоков состоит из нескольких операций. Как известно, каждый кодовый блок представляет собой последовательность из n символов, каждый символ состоит из m двоичных бит, где m - выбранное при кодировании целое число. Кодовый блок может быть описан в виде некоторого полинома,

Figure 00000001
, где через X обозначается сдвиг по времени на длительность одного символа, через X2 сдвиг по времени на длительность двух символов, через X3 - трех символов, и т.д., при этом максимальная степень полинома на единицу меньше количества двоичных разрядов кодового блока. Коэффициенты a i при членах полинома различных степеней являются элементами поля Галуа, и действия над ними подчиняются правилам конечной алгебры (см., например, упомянутые книги Б. Скляра или Р. Морелоса-Сарагосы).Operation 10 pairwise addition and comparison of blocks consists of several operations. As you know, each code block is a sequence of n characters, each character consists of m binary bits, where m is an integer selected during encoding. A code block can be described as a polynomial,
Figure 00000001
where X denotes the time shift for the duration of one character, X 2 for time duration for two characters, X 3 for three characters, etc., with the maximum degree of the polynomial one less than the number of binary digits of the code block . The coefficients a i with terms of polynomials of different degrees are elements of the Galois field, and the actions over them obey the rules of finite algebra (see, for example, the books mentioned by B. Sklyar or R. Morelos-Zaragoza).

В операции 5 сравнения полиномов сравниваются максимальные степени при старших членах полиномов, описывающих два выбранных кодовых блока. При этом определяется, какой из них больше другого (максимальная степень которого блока больше) и на сколько разрядов. Сравниваемые два кодовых слова y1 и y2 можно описать в виде полиномов:In operation 5 of the comparison of polynomials, the maximum degrees are compared with the higher terms of the polynomials describing the two selected code blocks. At the same time, it is determined which of them is larger than the other (the maximum degree of which is greater than the block) and by how many digits. The compared two code words y 1 and y 2 can be described as polynomials:

Figure 00000002
Figure 00000002

Figure 00000003
Figure 00000003

где n и m - номера максимальных разрядов в первом и втором сравниваемых кодовых словах, содержащих единицу в двоичной записи кодового слова, считая от первого разряда; X обозначает задержку на один такт (на длительность одного символа); коэффициенты a i и bi являются элементами поля Галуа и могут принимать значения в интервале от нуля до 2m-1.where n and m are the numbers of maximum digits in the first and second compared code words containing one in the binary record of the code word, counting from the first digit; X denotes a delay per clock (for the duration of one character); the coefficients a i and b i are elements of the Galois field and can take values in the range from zero to 2 m -1.

Операцией 5 определяются степени n и m. Пусть больше окажется первый полином y1. В операции 6 поразрядного сдвига меньшего полинома производится сдвиг полинома y2 вверх на определенное количество разрядов. Количество разрядов, на которое производится сдвиг, равно разности их максимальных степеней, т.е. равно n-m. В результате сдвига получается полином Xn-m y2. Таким образом, если m>m, то такой сдвиг производится, если n=m, (хотя при этом полиномы различаются), то они не сдвигаются. После такого сдвига второй полином приобретает вид

Figure 00000004
.Operation 5 determines the degrees n and m. Let the first polynomial y 1 be greater. In operation 6 of the bitwise shift of the smaller polynomial, the polynomial y 2 is shifted upward by a certain number of digits. The number of digits for which the shift is made is equal to the difference of their maximum degrees, i.e. equals nm. As a result of the shift, the polynomial X nm y 2 is obtained. Thus, if m> m, then such a shift is made, if n = m, (although the polynomials are different), they do not shift. After such a shift, the second polynomial takes the form
Figure 00000004
.

В операции 7 все коэффициенты при членах обоих полиномов меньших степеней делятся на коэффициенты при их старших степенях, т.е. у полинома y1 на a n, у полинома y2 на bm. После этого старшие члены обоих полиномов становятся одинаковыми и равными Xn.In operation 7, all coefficients with terms of both polynomials of smaller degrees are divided into coefficients with their highest powers, i.e. for the polynomial y 1 at a n , for the polynomial y 2 for b m . After that, the higher terms of both polynomials become the same and equal to X n .

В следующей операции 8 определяется, не стали ли полиномы полностью равны после предыдущей операции 7. Если эти полиномы становятся точно равны между собой (равны все коэффициенты при членах всех степеней), т.е. одинаковы, то цикл обработки данной пары кодовых блоков прекращается, и на операцию 3 подается меньший полином до его сдвига. Если они остаются не равными один другому, то операцией 9 производится поразрядное сложение полиномов в поле Галуа по правилам конечной алгебры (сложение коэффициентов при членах с одинаковыми степенями). Согласно правилам конечной алгебры сложение полиномов равнозначно вычитанию коэффициентов при членах одинаковых степеней. Таким образом, после операции 9 старшие члены обоих полиномов исчезают, и результат сложения всегда имеет меньшую степень, чем складываемые полиномы.In the next operation 8, it is determined whether the polynomials have become completely equal after the previous operation 7. If these polynomials become exactly equal to each other (all coefficients with members of all degrees are equal), i.e. are the same, then the processing cycle of this pair of code blocks is terminated, and at operation 3 a smaller polynomial is supplied before its shift. If they remain not equal to each other, then operation 9 produces the bitwise addition of polynomials in the Galois field according to the rules of finite algebra (the addition of coefficients with terms with the same powers). According to the rules of finite algebra, the addition of polynomials is equivalent to the subtraction of coefficients for members of the same degree. Thus, after operation 9, the higher terms of both polynomials disappear, and the result of addition always has a lesser degree than the added polynomials.

После этого обработка возвращается к операции 5, где уже сравниваются другие полиномы. Один из них полином - результат произведенного операцией 9 сложения в поле Галуа (вычитания старших членов полиномов). Другой сравниваемый полином - меньший полином до его сдвига. Далее вновь повторяются описанные последующие операции. Таким образом, для выбранной пары исходных кодовых блоков в общем случае неоднократно повторяются операции 5-6-7-8-9. Вид анализируемых полиномов при каждом повторении изменяется. При каждом повторении обязательно уменьшаются сами полиномы, уменьшается и степень максимального полинома. Это происходит до тех пор, пока операция 8 не зафиксирует равенство анализируемых полиномов. После этого полученный до сдвига вид меньшего полинома запоминается операцией 3, и операция 10 в целом переходит к анализу следующей пары кодовых блоков.After this, the processing returns to operation 5, where other polynomials are already compared. One of them is a polynomial - the result of the addition made in the Galois field by the operation 9 (subtraction of the higher terms of the polynomials). Another comparable polynomial is the smaller polynomial before its shift. Then follow the described operations again. Thus, for the selected pair of source code blocks, in the general case, the operations 5-6-7-8-9 are repeated several times. The type of polynomials being analyzed changes with each repetition. With each repetition, the polynomials themselves necessarily decrease, and the degree of the maximum polynomial decreases. This happens until operation 8 fixes the equality of the polynomials being analyzed. After that, the smaller polynomial obtained before the shift is remembered by operation 3, and operation 10 as a whole proceeds to the analysis of the next pair of code blocks.

После каждого завершения в целом операции 10 (попарное сравнение и сложение блоков) в операции 3 (запоминание вида полиномов) производится запоминание результата операции 10. Если уже ранее при предыдущих выполнениях операции 10 был запомнен такой же результат (такой же полином), относящийся к другой паре сравниваемых кодовых блоков, то этот факт запоминается и увеличивает сумму, накопленную предыдущими результатами, относящимися к полиному этого полученного вида. Количество поступивших результатов каждого вида подсчитывается.After each completion of operation 10 as a whole (pairwise comparison and addition of blocks) in operation 3 (memorizing the type of polynomials), the result of operation 10 is memorized. If the previous result of operation 10 previously remembered the same result (the same polynomial) related to another a pair of compared code blocks, this fact is remembered and increases the amount accumulated by the previous results related to the polynomial of this obtained type. The number of received results of each type is calculated.

Операции 10 попарного сравнения и сложений блоков осуществляется над всеми различающимися N блоками, которые запомнены в операции 1.Operations 10 pairwise comparison and addition of blocks is performed on all the different N blocks, which 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 pairings are completed, as a result of performing operation 3, all detected types of common polynomials in all combinations of polynomials in pairs turn out to be remembered. After completing all N (N-1) / 2 comparisons, operation 4 of selecting the maximum number of results determines the most frequently memorized results, i.e. what kind of polynomials are more memorized. (If, for example, every fact of memorization is done in the form of adding one to the already available amount in a memory cell related to a polynomial of this type, then in fact, this operation determines which polynomial memorized by procedure 3 corresponds to the largest memorized amount.) This polynomial is a set of coefficients for polynomial terms of different degrees, which determines the generator polynomial that is used in the transmitter to encode the analyzed signal. It is displayed further as the final result of the diagnostic procedure.

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

Из этого блока памяти извлекаются пары различных блоков, один из этих блоков подается на вход первого коммутатора 12, другой блок подается на вход второго коммутатора 13. Последовательность извлечения из памяти пар блоков значения не имеет, текущие номера извлекаемых блоков задаются блоком управления 25. В блоке памяти 30 занесено N кодовых блоков, значит, осуществляя N(N-1)/2 циклов, имеется возможность анализировать N(N-1)/2 различных пар блоков. В каждом цикле производится одинаковый набор действий.Different blocks are extracted from this memory block, one of these blocks is fed to the input of the first switch 12, another block is fed to the input of the second switch 13. The sequence of extracting pairs of blocks from the memory has no value, the current numbers of the blocks to be extracted are set by the control unit 25. In the block Memory 30 is loaded with N code blocks, so by performing N (N-1) / 2 cycles, it is possible to analyze N (N-1) / 2 different pairs of blocks. Each cycle produces the same set of actions.

Цикл анализа очередной пары кодовых блоков состоит в следующем. В самом начале цикла первый 12 и второй 13 коммутаторы подключают первый и второй многоканальные выходы первого блока памяти 30 на многоканальные параллельные входы, соответственно, первого 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 multichannel outputs of the first memory block 30 to the multichannel parallel inputs, respectively, of the first 20 and second 21 registers, where the pair of code blocks currently being analyzed is written in the form of a sequence of characters, each of which consists of t bits.

В первом блоке сравнения 16 сравнивается степени при старшем члене полинома каждого кодового блока (старшие степени) записанных в первом 20 и втором 21 регистрах. Выходной сигнал этого первого блока сравнения управляет третьим коммутатором 14.In the first comparison block 16, the degrees are compared with the highest term of the polynomial of each code block (senior degrees) recorded in the first 20 and second 21 registers. The output of this first comparison unit controls the third switch 14.

Если старшие степени полиномов кодовых блоков, записанные в регистрах 20 и 21, не равны между собой, то первый блок сравнения 16 с помощью третьего коммутатора 14 подает кодовый блок с большей старшей степенью ко входу первого определителя максимальной степени 18 и к параллельному входу третьего регистра 22, а кодовый блок с меньшей старшей степенью подается коммутатором 14 ко входу второго определителя максимальной степени 19 и к параллельному входу четвертого регистра 23. Поступившие на регистры сигналы записываются в эти регистры. Полином, записанный в четвертом регистре 23, также перезаписывается в сдвиговый регистр 27.If the higher degrees of the polynomials of code blocks recorded in registers 20 and 21 are not equal to each other, then the first comparison block 16 uses the third switch 14 to supply the code block with a higher higher power to the input of the first determinant of the maximum degree 18 and to the parallel input of the third register 22 , and the code block with a lower high power 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 signals received by the registers are written to these registers. The polynomial recorded in the fourth register 23 is also overwritten in the shift register 27.

Если же окажется, что старшие степени записанных в регистрах 20 и 21 полиномов равны между собой, то с помощью третьего коммутатора 14 на вход первого определителя максимальной степени полинома 18 подается сигнал с выхода первого регистра 20, а на вход второго определителя максимальной степени полинома 19 подается сигнал с выхода второго регистра 21.If it turns out that the highest powers written in registers 20 and 21 polynomials are equal to each other, then using the third switch 14, the input of the first determinant of the maximum degree of the polynomial 18 sends a signal from the output of the first register 20, and the input of the second determinant of the maximum degree of the polynomial 19 the signal from the output of the second register 21.

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

Далее в вычитателе 24 находится арифметическая разность их порядков (разность максимальных степеней полиномов), и на основе выходного сигнала вычитателя в сдвиговом регистре 27 производится сдвиг всего записанного в четвертом регистре 23 полинома в сторону увеличения степени на полученную величину этой арифметической разности. Таким образом, после этого сдвига, порядки (максимальные степени) полиномов, записанных в третьем регистре 22 и в сдвиговом регистре 27 становятся одинаковыми.Next, in the subtractor 24, the arithmetic difference of their orders (the difference of the maximum degrees of the polynomials) is found, and based on the output of the subtractor in the shift register 27, the entire polynomial recorded in the fourth register 23 is shifted towards an increase in the degree by the resulting 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 27 become the same.

Далее в первом 28 делителе производится деление всех коэффициентов при членах первого полинома на коэффициент при старшей степени этого полинома, и во втором 29 делителе производится деление всех коэффициентов при членах второго полинома на коэффициент при старшей степени этого полинома. Эти полиномы подаются на второй блок сравнения 17 и на блок 11, где производится сложение коэффициентов при одинаковых степенях полиномов в поле Галуа по правилам конечной алгебры.Further, in the first 28 divisor, all coefficients are divided at the members of the first polynomial by the coefficient for the highest power of this polynomial, and in the second 29 divider, all coefficients are divided for the terms of the second polynomial by the coefficient for the highest power of this polynomial. These polynomials are fed to the second comparison block 17 and to block 11, where coefficients are added for the same degrees of polynomials in the Galois field according to the rules of finite algebra.

Во втором блоке сравнения 17 сравниваются полиномы, записанные в регистрах 22 и 28. Если они полностью равны между собой (т.е. одинаковы), то второй блок сравнения сообщает об этом блоку управления 25. После чего данный цикл заканчивается, блок управления открывает четвертый коммутатор 15 и сигнал с выхода четвертого регистра 23 подается на второй блок памяти 31. В этом втором блоке памяти каждому возможному виду полиномов соответствует своя ячейка памяти. Первоначально до начала процедуры диагностики все ячейки содержат нули. Когда в очередном цикле определен очередной полином, то в ячейку, ему соответствующую, прибавляется единица к той сумме, которая там уже была записана ранее.In the second comparison block 17, the polynomials recorded in registers 22 and 28 are compared. If they are completely equal to each other (ie, they are the same), the second comparison block reports this to the control unit 25. Then this cycle ends, the control block opens the fourth the switch 15 and the signal from the output of the fourth register 23 is supplied to the second memory block 31. 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 polynom is defined in the next cycle, then in the cell corresponding to it, one is added to the amount that was already written there.

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

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

Регистр 32 на фиг. 3 состоит из n групп, в которых находятся последовательно расположенные m ячеек 33 для запоминания m бит, составляющих символ кодового слова. Регистры 20-23 допускают параллельный ввод и вывод информации по группам. Сдвиговый регистр 27 осуществляет сдвиг содержимого ячеек группами по m бит.Register 32 in FIG. 3 consists of n groups in which there are successively located m cells 33 for storing m bits constituting the symbol of the code word. Registers 20-23 allow parallel input and output of information on groups. The shift register 27 shifts the contents of the cells in groups of m bits.

Рассмотрим операции предлагаемого способа подробнее. Как известно, (см. указанные выше книги) при несистематическом кодировании каждое i-тый кодовый блок может быть описан в виде произведения двух полиномов: yi(X)=mi(X)g(X), где g(X) - порождающий полином (полиномиальный генератор) используемого кодера, общий для всех кодовых слов; mi(Х) - часть i-го кодового слова, содержащая передаваемую в нем информацию. То есть, все кодовые блоки имеют как минимум один общий полином g(X). Максимальная степень полинома g(X) равна b. Степень полинома mj(X) зависит от передаваемой в данном блоке информации и может достигать максимальной величины, равной k.Consider the operation of the proposed method in more detail. As you know, with the non-systematic coding, each i-th code block can be described as a product of two polynomials (y i (X) = m i (X) g (X), where g (X) - generator polynomial (polynomial generator) of the used encoder, common to all code words; m i (X) is the 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 j (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(Х)=mi(Х)Xb+ri(Х). Таким образом, и в этом случае кодовый блок кратен полиному g(X), т.е. полиномиальный генератор является одним из множителей полинома yi(Х), и можно записать yi(X)=Mi(X)g(X). Именно этот факт используется в приемнике для вычисления синдромов ошибок и их исправления.With systematic 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 to b bits upwards. The result is a polynomial m i (X) X b with a maximum degree, in general, equal to n = k + b. Further, it is divided into the polynomial generator 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 with the first digit. After that, the remainder r i (X) is added to the polynomial, forming the code block transmitted by the transmission channel y i (X) = m i (X) X b + r i (X). Thus, in this case, too, the code block is a multiple of the polynomial g (X), i.e. the polynomial generator is one of the factors of the polynomial y i (X), and you can write y i (X) = Mi (X) g (X). It is this fact that is used in the receiver to calculate error syndromes and correct them.

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

Обозначим одинаковые множители в информационной части двух сравниваемых кодовых блоков через MC(Х), а различающиеся части через Md1(Х) и Md2(X). В другой паре кодовых слов часть MC(Х) будет в общем случае отличаться от общей части в первой паре, в третьей паре отличаться от первых двух, и т.д. Таким образом, если сравнивать достаточно большое количество пар, то, несмотря на то, что в каждой паре по отдельности кроме полинома g(X) могут быть общими и другие полиномы-множители, но во всей совокупности анализируемых кодовых блоков общим множителем будет только искомый порождающий полиномиальный генератор g(X).Denote the same factors in the information part of the two compared code blocks 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 differ from the first two, and so on. Thus, if we compare a sufficiently large number of pairs, despite the fact that in each pair, apart from the polynomial g (X), there may be common polynomials and other polynomials, but in the totality of the code blocks being analyzed, only the sought generator will be the common factor polynomial generator g (x).

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

Поскольку информационные части разных блоков в подавляющем большинстве случаев различаются, то и появление одинаковых множителей в информационной части также маловероятно, гораздо вероятнее, что общая часть будет состоять только из полиномиального генератора. Большое количество N необходимо, чтобы вероятность появления при анализе именно искомого порождающего полинома была значительно больше, чем других результатов анализа. При дальнейшем увеличении N эта вероятность увеличивается, что дает возможность уменьшить ошибку диагностики до требуемых уровней.Since the information parts of different blocks in the vast majority of cases are different, then 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 polynomial generator. A large number of N is necessary so that the probability of the appearance of the required generating polynomial in the analysis is significantly greater than other analysis results. With 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 symbols 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 ensures that N codewords are memorized and their pairwise transmission for subsequent processing. The number of pairs of different code blocks is N (N-1) / 2.

Операция 10 в целом производит сравнение и сложение подаваемых на нее кодовых блоков. Она состоит из нескольких последовательных операций. В операции 5 производится сравнение полиномов двух анализируемых кодовых блоков, и определяются максимальные степени полиномов обоих блоков. Пусть полином одного из кодовых блоков имеет вид

Figure 00000005
, а второй полином равен
Figure 00000006
, где a S÷a 0 и bS÷b0 - некоторые коэффициенты при членах полиномов, являющиеся элементами поля Галуа. Операцией 5 сравниваются величины старших степеней S и Т.Operation 10 as a whole compares and adds the code blocks fed to it. It consists of several successive operations. In operation 5, the polynomials of the two analyzed code blocks are compared, and the maximum degrees of the polynomials of both blocks are determined. Let the polynomial of one of the code blocks be
Figure 00000005
and the second polynom is
Figure 00000006
, where a S ÷ a 0 and b S ÷ b 0 are some coefficients for the terms of the polynomials that are elements of the Galois field. Operation 5 compares the values of the higher degrees S and T.

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

Следующей операцией 7 производится деление всех коэффициентов первого полинома на величину a S и деление всех коэффициентов второго полинома на величину bT. Предположим, что S>T, т.е. старшая степень второго полинома была меньше. Тогда полиномы после деления приобретают вид:

Figure 00000007
,
Figure 00000008
, где AS-1=a S-1/a S, AS-2=a S-2/AS, …, BS-1=bS-1/bS, BS-2=bS-2/bS и т.д. Коэффициенты при членах старших степеней становятся одинаковыми и равными единице.The next operation 7 is the division of all the coefficients of the first polynomial by the value of a S and the division of all the coefficients of the second polynomial by the value of b T. Suppose that S> T, i.e. the higher degree of the second polynomial was less. Then the polynomials after division take the form:
Figure 00000007
,
Figure 00000008
where A S-1 = a S-1 / a S , A S-2 = a S-2 / A S , ..., B S-1 = b S-1 / b S , B S-2 = b S -2 / b S etc. The coefficients at the members of the senior degrees become the same and equal to one.

Далее в операции 8 определения равенства полиномов проверяется, не стали ли полностью равны y1(Х) и y2(Х), т.е. сравнивается величина большего полинома и результата сдвига меньшего полинома. Если в результате сдвига меньший полином становится полностью равным большему полиному, то общая операция 10 попарного сравнения и сложения блоков прекращается. Вид меньшего полинома передается к операции 3 и запоминается.Further, in operation 8 for determining the equality of polynomials, it is checked whether y 1 (X) and y 2 (X) are completely equal, i.e. compares the magnitude of the larger polynomial and the result of the shift of the smaller polynomial. If, as a result of the shift, the smaller polynomial becomes completely equal to the larger polynomial, then the general operation 10 of pairwise comparison and addition of blocks is terminated. The form of the smaller polynomial is transmitted to operation 3 and is remembered.

Если же сравниваемые полиномы не равны между собой, то далее производится операция 9. В ней выполняется в соответствие с правилами конечной алгебры сложение в поле Галуа коэффициентов при членах одинаковых степеней обоих полиномов. Операция сложения эквивалентна операции вычитания, и поскольку их члены максимальных степеней стали одинаковыми, то после осуществления этой операции максимальная степень разности уменьшается на единицу. Естественно, изменяются и значения коэффициентов при членах других степеней. После этого вновь осуществляется операция 5 сравнения полиномов, но уже с двумя другими полиномами, из которых один равен упомянутому полиному меньшей старшей степени до его поразрядного сдвига, а другой - результату сложения в поле Галуа операции 9. После нее вновь выполняются описанные операции, пока операцией 8 не будет установлено равенство обрабатываемых полиномов.If the compared polynomials are not equal to each other, then operation 9 is performed there. In accordance with the rules of finite algebra, the addition of coefficients in the Galois field with terms of the same powers of both polynomials is performed. The operation of addition is equivalent to the operation of subtraction, and since their terms of the maximum degrees become the same, after the implementation of this operation, the maximum degree of difference decreases by one. Naturally, the values of the coefficients change for terms of other degrees. After this, operation 5 compares the polynomials again, but with two other polynomials, one of which is equal to the mentioned lower polynomial before its bitwise shift, and the other is the result of addition in the Galois field of operation 9. After it, the described operations are performed again, until the operation 8 the equality of the polynomials being processed will not be established.

Когда процедура, производимая общей операцией 10 сравнения и сложения полиномов, заканчивается, это приводит к тому, что в результате остаются общие для обоих анализируемых в ней кодовых блоков полиномы. Действительно, пусть сравниваемые кодовые блоки описываются полиномами: y1(Х)=Md1(Х)MC(Х)g(Х) и y2(X)=Md2(X)MC(X)g(X).When the procedure performed by the general operation 10 of comparing and adding polynomials ends, this results in the result that the polynomials that are 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) .

Как указывалось известно, сложение и вычитание в поле Галуа являются эквивалентными операциями, т.к. приводят к одинаковым результатам. Поэтому разностный полином y3=y1-y2=(Md1+Md2)MCg=(Md1-Md2)MCg=M3MCg, будет содержать те же совпадающие общие множители, что и исходные полиномы до сложения, а изменяются только различающиеся в y1 и y2 части полиномов.As mentioned, addition and subtraction in the Galois field are equivalent operations, since 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 common factors as the original polynomials before addition, and only the parts of the polynomials that differ in y 1 and y 2 change.

Поскольку перед сложением (вычитанием) старшая степень меньшего полинома был временно приравнена к старшей большего, то после этой операции старшая степень результата сложения всегда уменьшается на единицу по сравнению с порядком максимального из анализируемых полиномов. Если после нее результат оказывается не равен меньшему из текущих полиномов, то вновь повторяется выравнивание старших степеней двух анализируемых полиномов и их вычитание. Порядок различающейся части (М3) вновь уменьшается на единицу, и т.д. Таким образом, после проведения определенного числа повторяющихся операций 5-9 полином М3 становится равным единице. Число повторяющихся операций определяется конкретным видом полиномов Md1 и Md2 и равно порядку максимального их них.Since before the addition (subtraction) the highest degree of the smaller polynomial was temporarily equated to the highest higher, after this operation the highest degree of the result of addition is always reduced by one compared to the maximum order of the polynomials being analyzed. If after it the result is not equal to the smaller of the current polynomials, then the alignment of the higher powers of the two analyzed polynomials and their subtraction are repeated. The order of the differing part (M 3 ) is again reduced by one, and so on. Thus, after conducting a certain number of repetitive operations, 5–9 polynomial M 3 becomes equal to unity. The number of repetitive operations is determined by the specific type of polynomials M d1 and M d2 and is equal to the order of their maximum.

Продемонстрируем данную процедуру определения одинаковых делителей у пары кодовых блоков на конкретном примере. Как известно, коэффициенты в поле Галуа могут быть пронумерованы по-разному. В указанных выше книгах применяется нумерация в форме степеней базового элемента а. Для удобства конкретных вычислений также применяется нумерация в форме индексов при базовом элементе а, например, в вычислительной среде Matlab (где а 0=0, а 1=1).Let us demonstrate this procedure for determining identical divisors for a pair of code blocks using a specific example. As is known, the coefficients in the Galois field can be numbered differently. In the above books, numbering is applied in the form of the degrees of the base element a . For the convenience of specific calculations, index numbering is also used for the base element a , for example, in the Matlab computing environment (where a 0 = 0 and 1 = 1).

Пусть в рассмотренном примере конкретном примере применения предложенного способа длина кодовых блоков составляет n=7, символы содержат три бита (m=3), количество элементов поля Галуа равно восьми (а 0÷a 7). Общий полином (полиномиальный генератор) образован многочленом g(X)=a 1X+a 6. При этом исходные выражения для первого и второго в паре выбранных кодовых блоков пусть имеют вид, соответственно:Suppose that in the considered example of a specific example of the application of the proposed method, the length of the code blocks is n = 7, the characters contain three bits (m = 3), the number of elements of the Galois field is eight ( a 0 ÷ a 7 ). The common polynomial (polynomial generator) is formed by the polynomial g (X) = a 1 X + a 6 . At the same time, the initial expressions for the first and second in a pair of selected code blocks are given the form, respectively:

Figure 00000009
Figure 00000009

иand

Figure 00000010
Figure 00000010

где

Figure 00000011
и
Figure 00000012
- информационные (различающиеся) части первого и второго кодовых слов.Where
Figure 00000011
and
Figure 00000012
- informational (different) parts of the first and second code words.

Старшие степени полиномов пока одинаковы и операциии 5 и 6 оставляют их без изменений. В операции 7 нормируются оба кодовых блока таким образом, чтобы коэффициент при старшей степени стал равным единице, т.е. делятся все коэффициенты первого полинома на а 3 и второго полинома на а 5. Тогда (с учетом того, что а 1=1):Higher degrees of polynomials are still the same and operations 5 and 6 leave them unchanged. In operation 7, both code blocks are normalized so that the coefficient for the highest power becomes equal to unity, i.e. all the coefficients of the first polynomial are divided by a 3 and the second polynomial by a 5 . Then (given that a 1 = 1):

Figure 00000013
Figure 00000013

Полиномы в текущем состоянии не равны один другому, поэтому операция 8 оставляет из без изменений.The polynomials in the current state are not equal to one another, so operation 8 leaves out.

С помощью операции 9 находим разностное выражение:Using operation 9, we find the differential expression:

Figure 00000014
Figure 00000014

После нормировки (деления на коэффициент а 2) оно станет равным:After normalization (dividing by the coefficient a 2 ) it becomes equal to:

Figure 00000015
Figure 00000015

В результате операций данного шага исчез член полинома первого кодового блока со старшей степенью, равной шести, количество членов в полиноме уменьшилось на один. После этого повторяется последовательность аналогичных операций, в результате уменьшается полином второго кодового блока. Для этого временно умножим полином y1 (1)(Х) на I и вычтем из полинома y2 (0)(Х):As a result of the operations of this step, the member of the polynomial of the first code block with the highest power of six disappeared, the number of members in the polynomial decreased by one. After this, a sequence of similar operations is repeated, as a result, the polynomial of the second code block is reduced. To do this, temporarily multiply the polynomial y 1 (1) (X) by I and subtract from the polynomial y 2 (0) (X):

Figure 00000016
Figure 00000016

После нормировки:After normalization:

Figure 00000017
Figure 00000017

Теперь и во втором кодовом блоке исчез член полинома со старшей степенью, равной шести, количество членов в полиноме также уменьшилось на один. Далее с полученными полиномами и проделываем аналогичные операции, в результате чего получаем еще более укороченные полиномы вида (без нормировки по коэффициенту при старшей степени):Now, in the second code block, the polynomial member with the highest power of six has disappeared, the number of terms in the polynomial has also decreased by one. Further, with the obtained polynomials, we perform similar operations, as a result of which we obtain even more shortened polynomials of the form (without normalization with respect to the coefficient of the highest power):

Figure 00000018
Figure 00000018

После нормировки:After normalization:

Figure 00000019
Figure 00000019

Старшая степень вновь уменьшилась на единицу, уменьшилось и количество членов в полиномах. Продолжая аналогичные действия, получаем:The senior degree again decreased by one, the number of terms in the polynomials also decreased. Continuing similar actions, we get:

Figure 00000020
Figure 00000020

После нормировки:After normalization:

Figure 00000021
Figure 00000021

После их вычитания степень полинома уменьшилась сразу на две единицы (что обусловлено получившимся сочетанием коэффициентов), т.е.:

Figure 00000022
. После нормировки
Figure 00000023
.After subtracting them, the degree of the polynomial decreased immediately by two units (due to the resulting combination of coefficients), i.e .:
Figure 00000022
. After normalization
Figure 00000023
.

В результате для формирования второго полинома при вычитании yR4 его нужно домножать не на X, а на X2, т.е.:As a result, to form the second polynomial when subtracting y R4, it must be multiplied not by X, but by X 2 , i.e .:

Figure 00000024
Figure 00000024

После нормировки:After normalization:

Figure 00000025
Figure 00000025

Далее получаем разность (повторно умножая полином

Figure 00000026
, но теперь на величину X):
Figure 00000027
. Проводя нормировку, получаем выражение
Figure 00000028
. Операцией 8 определяется, что полиномы стали равны. Полином стал равным оставшемуся первому полиному
Figure 00000029
, т.е. выражение для общего полинома g(X) выводится к операции 3 и запоминается.Next, we obtain the difference (repeatedly multiplying the polynomial
Figure 00000026
, but now on the value of X):
Figure 00000027
. By normalizing, we get the expression
Figure 00000028
. Operation 8 determines that the polynomials are equal. Polynom became equal to the remaining polynom
Figure 00000029
i.e. the expression for the general polynomial g (X) is output to operation 3 and is remembered.

После анализа всех отобранных пар блоков операцией 4 выводится тот полином, который был заполнен наибольшее число раз. Поскольку полиномиальный генератор присутствует во всех кодовых блоках, то он будет встречаться максимальное число раз и выведется, как результат диагностической процедуры. Информационные части разных блоков различаются, и появление одинаковых множителей в информационной части маловероятно, гораздо вероятнее, что общая часть будет состоять только из порождающего полинома.After analyzing all the selected pairs of blocks by operation 4, the polynomial that was filled the most times is displayed. Since the polynomial generator is present in all code blocks, it will occur the maximum number of times and will be output as a result of the diagnostic procedure. The information parts of different blocks are different, and the appearance of the same factors in the information part is unlikely, it is much more likely that the common part will consist only of the generating polynomial.

Вероятность появления в каждом цикле анализа только порождающего полинома g(X) гораздо выше, и именно он будет определен максимальное число раз, а все другие результаты, появляющиеся случайно, будут зафиксированы меньшее число раз. Поэтому операция 4 определит именно полином g(X), являющийся искомым результатом диагностики. Для каждой пары кодовых слов производится постепенное циклическое уменьшение порядка соответствующих полиномов до тех пор, пока в паре не останутся только общий полином для каждой пары. Если максимальная степень различающихся частей равна k, то в общем случае общий полином будет получен максимум за к повторений описанного набора операций.The probability of occurrence in each analysis cycle of only the generating polynomial g (X) is much higher, and it will be determined the maximum number of times, and all other results appearing randomly will be recorded fewer times. Therefore, operation 4 determines exactly the polynomial g (X), which is the desired result of the diagnosis. For each pair of code words, a gradual cyclic reduction of the order of the corresponding polynomials is performed until only a common polynomial for each pair remains in the pair. If the maximum degree of differing parts is equal to k, then in the general case the general polynomial will receive a maximum in k repetitions of the described set of operations.

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

Claims (1)

Способ диагностики недвоичных блоковых кодов, включающий в себя запоминание N кодовых блоков, извлечение пар блоков, попарное сравнение и сложение блоков, поразрядный сдвиг полинома, запоминание вида полинома и выбор максимального числа результатов, отличающийся тем, что в него вводят сравнение степеней полиномов, деление на коэффициенты при старшей степени полинома, определение равенства полиномов и сложение полиномов в поле Галуа, при этом сначала запоминают N кодовых блоков, затем извлекают пары кодовых блоков, после этого кодовые блоки попарно сравнивают и складывают, далее запоминают вид полученных в результате сравнения и сложения полиномов, после чего выбирают максимальное число полученных одинаковых результатов сравнения и сложения, причем при попарном сравнении и сложении кодовых блоков сравнивают максимальные степени членов выбранных полиномов, описывающих сравниваемые кодовые блоки, затем поразрядно сдвигают меньший полином, после чего делят все коэффициенты каждого полинома на коэффициент при его члене максимальной степени, далее сравнивают больший полином со сдвинутым меньшим полиномом, в случае их равенства вид меньшего полинома до сдвига запоминают, в случае их неравенства складывают в поле Галуа коэффициенты при членах с одинаковыми степенями полиномов и возвращаются к сравнению меньшего полинома и полученного результата сложения в поле Галуа.A method for diagnosing non-binary block codes, which includes memorizing N code blocks, extracting pairs of blocks, pairwise comparison and addition of blocks, a bitwise shift of the polynomial, memorizing the type of polynomial, and choosing the maximum number of results, characterized by the comparison of polynomial degrees, division by the coefficients in the highest degree of a polynomial, the determination of the equality of polynomials and the addition of polynomials in the Galois field, in this case, first memorize N code blocks, then remove pairs of code blocks, then the code blocks they are compared and folded in pairs, then the type of the polynomials obtained as a result of the comparison and addition is memorized, and then the maximum number of identical results of the comparison and addition obtained is chosen, and when pairwise comparing and adding code blocks, the maximum powers of the members of the selected polynomials that describe the compared code blocks are compared, shift the smaller polynomial bitwise, then divide all the coefficients of each polynomial by the coefficient with its member of the maximum degree, then compare the larger a line with a shifted lower polynomial, in the case of their equality, the form of the smaller polynomial is stored before the shift;
RU2018124144A 2018-07-02 2018-07-02 Method of diagnosing non-binary block codes RU2693190C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2018124144A RU2693190C1 (en) 2018-07-02 2018-07-02 Method of diagnosing non-binary block codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2018124144A RU2693190C1 (en) 2018-07-02 2018-07-02 Method of diagnosing non-binary block codes

Publications (1)

Publication Number Publication Date
RU2693190C1 true RU2693190C1 (en) 2019-07-01

Family

ID=67252197

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2018124144A RU2693190C1 (en) 2018-07-02 2018-07-02 Method of diagnosing non-binary block codes

Country Status (1)

Country Link
RU (1) RU2693190C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2761903C1 (en) * 2021-01-28 2021-12-13 федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное орденов Жукова и Октябрьской Революции Краснознаменное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации Method for two-dimensional interference-resistant information encoding in spatial parallel radio channels of robotic complexes

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009171540A (en) * 2007-12-21 2009-07-30 Sony Corp Transmission apparatus and method, reception device and method, and program
RU2616180C1 (en) * 2015-11-30 2017-04-12 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых" (ВлГУ) Method for diagnosing convolutional codes
US20170170849A1 (en) * 2015-12-14 2017-06-15 International Business Machines Corporation Post-decoding error check with diagnostics for product codes
RU2631142C2 (en) * 2016-02-29 2017-09-19 Федеральное государственное бюджетное образовательное учреждение высшего образования "Владимирский Государственный Университет имени Александра Григорьевича и Николая Григорьевича Столетовых" (ВлГУ) Method of diagnosing cyclic codes
US20180138926A1 (en) * 2015-07-31 2018-05-17 Fujian Landi Commercial Equipment Co., Ltd. Rs error correction decoding method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009171540A (en) * 2007-12-21 2009-07-30 Sony Corp Transmission apparatus and method, reception device and method, and program
US20180138926A1 (en) * 2015-07-31 2018-05-17 Fujian Landi Commercial Equipment Co., Ltd. Rs error correction decoding method
RU2616180C1 (en) * 2015-11-30 2017-04-12 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых" (ВлГУ) Method for diagnosing convolutional codes
US20170170849A1 (en) * 2015-12-14 2017-06-15 International Business Machines Corporation Post-decoding error check with diagnostics for product codes
RU2631142C2 (en) * 2016-02-29 2017-09-19 Федеральное государственное бюджетное образовательное учреждение высшего образования "Владимирский Государственный Университет имени Александра Григорьевича и Николая Григорьевича Столетовых" (ВлГУ) Method of diagnosing cyclic codes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2761903C1 (en) * 2021-01-28 2021-12-13 федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное орденов Жукова и Октябрьской Революции Краснознаменное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации Method for two-dimensional interference-resistant information encoding in spatial parallel radio channels of robotic complexes

Similar Documents

Publication Publication Date Title
Massey Threshold decoding
US4928280A (en) Fast processor for multi-bit error correction codes
US4649541A (en) Reed-Solomon decoder
US4873688A (en) High-speed real-time Reed-Solomon decoder
US5440570A (en) Real-time binary BCH decoder
US5343481A (en) BCH error-location polynomial decoder
US10763896B2 (en) Construction method for (n,n(n-1),n-1) permutation group code based on coset partition and codebook generator thereof
JPS60204125A (en) Decoding device
WO1995012850A1 (en) Reed-solomon decoder
JPH07312560A (en) Error correction coder, error correction decoder, data transmission system with error correction code and decoding method for error correction code
US20190108093A1 (en) Encoding and decoding of permuted cyclic codes
US8103943B2 (en) Symbol reconstruction in Reed-Solomon codes
WO2013189274A1 (en) Circuit, encoder and method for parallel bch coding
US3571795A (en) Random and burst error-correcting systems utilizing self-orthogonal convolution codes
RU2693190C1 (en) Method of diagnosing non-binary block codes
KR100322739B1 (en) Finite Field Computation Method and Its Apparatus
WO2009146517A1 (en) Method of encoding and/or decoding multidimensional and a system comprising such method
EP1947796A2 (en) Method and apparatus for dividing information bit string
US6735737B2 (en) Error correction structures and methods
JP3245290B2 (en) Decoding method and device
US4298981A (en) Decoding shortened cyclic block codes
RU2631142C2 (en) Method of diagnosing cyclic codes
KR102353983B1 (en) How to arrange an algorithm in Cyclic Redundancy Check (CRC)
CN117254823B (en) Parallel RS encoding method, device and system and computer storage medium
TWI523437B (en) Encoding and syndrome computing co-design circuit for bch code and method for deciding the same

Legal Events

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

Effective date: 20200703