RU2631142C2 - Method of diagnosing cyclic codes - Google Patents
Method of diagnosing cyclic codes Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/02—Arrangements for detecting or preventing errors in the information received by diversity reception
- H04L1/06—Arrangements for detecting or preventing errors in the information received by diversity reception using space diversity
- H04L1/0618—Space-time coding
Landscapes
- Error Detection And Correction (AREA)
Abstract
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
Недостатком описанного способа является необходимость знания на приемной стороне правильного вида используемого порождающего полинома. Если он неизвестен, например утерян или поврежден, то декодирование с исправлением ошибок невозможно и исправляющая способность кода не может быть реализована. Это приводит к снижению помехоустойчивости передачи информации.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
На чертежах представлены: на фиг. 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 -
На фиг. 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;
Операции предлагаемого способа осуществляются следующим образом. Во время операции 1 производится запоминание N пришедших кодовых блоков. При этом имеется возможность далее извлекать из памяти любые из запомненных кодовых блоков. Далее попарно сравниваются различные два кодовых блока из запомненных. При количестве N блоков возможны всего N(N-1)/2 различных сочетаний пар разных блоков. Эти блоки извлекаются из памяти попарно операцией 2 (последовательность извлечения значения не играет) и далее обрабатываются общей операцией 9 попарного сравнения и сложения блоков.The operations of the proposed method are as follows. During
Операция 9 попарного сложения и сравнения блоков состоит из нескольких операций. Как известно (см., например, вышеуказанную книгу Б. Скляра), каждый кодовый блок представляет собой последовательность двоичных символов и может быть описан в виде некоторого полинома, при этом максимальная степень полинома на единицу меньше количества двоичных разрядов кодового блока.
В операции 5 сравнения полиномов сравниваются два выбранных кодовых блока. При этом сравниваются по величине соответствующие полиномы, т.е. определяется, какой из них больше другого и на сколько разрядов. Сравниваемые два кодовых слова y1 и y2 можно описать в виде полиномов:In
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 (хотя при этом полиномы различаются), то они не изменяются.
Если оба сравниваемых полинома до сдвига точно равны между собой, то операция 5 передает их далее к операции 6 без изменений.If both compared polynomials are exactly equal before the shift, then
В операции 7 вновь производится сравнение полиномов, но уже большего полинома и меньшего сдвинутого вверх полинома. Если эти полиномы становятся точно равны между собой, т.е. одинаковы, то цикл обработки данной пары кодовых блоков прекращается, и на операцию 3 подается меньший полином до его сдвига. Если они остаются не равными один другому, то операцией 8 производится поразрядное сложение по модулю 2 полиномов (фактически, поразрядное сложение по модулю 2 двух двоичных чисел, описывающих эти полиномы). Складывается больший полином и сдвинутый вверх меньший полином. Поскольку наибольшая степень разрядов у этих полиномов теперь одинакова, то результат сложения всегда имеет меньшую степень, чем складываемые полиномы.In
После этого обработка возвращается к операции 5, где уже сравниваются другие полиномы. Один из них полином - результат произведенного операцией 8 сложения по модулю 2. Другой сравниваемый полином - меньший полином до его сдвига. Далее вновь повторяются описанные последующие операции. Таким образом, для выбранной пары исходных кодовых блоков в общем случае неоднократно повторяются операции 5-6-7-8. Вид анализируемых полиномов при каждом повторении изменяется. Максимальная степень при каждом повторении или не меняется, но обязательно уменьшаются сами полиномы, или уменьшается и степень максимального полинома. Это происходит до тех пор, пока операция 7 не зафиксирует равенство анализируемых полиномов. После этого полученный вид меньшего полинома до сдвига запоминается операцией 3, и операция 9 в целом переходит к анализу следующей пары кодовых блоков.After that, the processing returns to
После каждого завершения в целом операции 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
Операции 9 попарного сравнения и сложений блоков осуществляется над всеми различающимися N блоками, которые запомнены в операции 1.The
Число таких попарных обработок равно 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
Блоки устройства на фиг. 2, как пример реализации предлагаемого способа, работают следующим образом. На первый блок памяти 10 поступают принятые кодовые блоки в форме последовательностей двоичных символов. В нем запоминается N различных кодовых блоков. (Последовательность запомненных блоков значения не имеет, это могут быть либо подряд следующие блоки, либо расположенные другим образом.)The device blocks in FIG. 2, as an example of the implementation of the proposed method, work as follows. The
Из этого блока памяти извлекаются пары различных блоков, один из этих блоков подается на вход первого коммутатора 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
Цикл анализа очередной пары кодовых блоков состоит в следующем. В самом начале цикла первый 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
В первом блоке сравнения 16 сравнивается величина кодовых блоков, записанных в первом 20 и втором 21 регистрах. Выходной сигнал этого первого блока сравнения управляет третьим коммутатором 14.In the
Если двоичные полиномы (кодовые блоки), записанные в регистрах 20 и 21, не равны между собой, то первый блок сравнения 16 с помощью третьего коммутатора 14 подает больший кодовый блок входу первого определителя максимальной степени 18 и к параллельному входу третьего регистра 22, а меньший блок подается коммутатором 14 ко входу второго определителя максимальной степени 19 и к параллельному входу четвертого регистра 23. Поступившие сигналы записываются в эти регистры. Полином, записанный в четвертом регистре 23, также перезаписывается в сдвиговый регистр 28.If the binary polynomials (code blocks) recorded in the
Если же окажется, что записанные в регистрах 20 и 21 двоичные полиномы равны между собой, то на оба выхода третьего коммутатора 14 подаются эти одинаковые полиномы.If it turns out that the binary polynomials recorded in
В определителях максимальной степени 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
Во втором блоке сравнения 17 сравниваются полиномы, записанные в регистрах 22 и 28. Если они равны между собой, то второй блок сравнения сообщает об этом блоку управления 27. После чего данный цикл заканчивается, блок управления открывает четвертый коммутатор 15 и сигнал с выхода четвертого регистра 23 подается на второй блок памяти 11. В этом втором блоке памяти каждому возможному виду полиномов соответствует своя ячейка памяти. Первоначально до начала процедуры диагностики все ячейки содержат нули. Когда в очередном цикле определен очередной полином, то в ячейку ему соответствующую прибавляется единица к той сумме, которая там уже была записана ранее.In the
Если второй блок сравнения 17 не зафиксировал равенства полиномов в третьем и четвертом регистрах, результат сложения в блоке 25 подается на другой вход первого коммутатора 12, а на другой вход второго коммутатора 13 подается полином, записанный в четвертом регистре 23. После этого на выходы обоих коммутаторов подключаются не сигналы с первого блока памяти 10, а вновь поступившие сигналы с их других входов. После этого вся последовательность действий повторяется. Работа коммутаторов, регистров и блоков памяти управляется блоком управления 27.If the
Когда перебраны все N(N-1)/2 сочетаний рассматриваемых кодовых блоков, во втором блоке памяти 11 в различные ячейки оказывается записанными разное количество единиц. После этого блок выделения максимальной суммы определяет, в какой ячейке записано максимальное число. Полином, соответствующий этой ячейке, подается на выход, как конечный результат всей процедуры диагностики.When all N (N-1) / 2 combinations of the considered code blocks are sorted, in the
Рассмотрим операции предлагаемого способа подробнее. Как известно, при несистематическом кодировании каждое 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
Поскольку информационные части разных блоков в подавляющем большинстве случаев различаются, то и появление одинаковых множителей в информационной части также маловероятно, гораздо вероятнее, что общая часть будет состоять только из порождающего полинома. Большое количество 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,
Операция 9 производит сравнение и сложение подаваемых на нее кодовых блоков. Она состоит из нескольких последовательных операций. В операции 5 производится сравнение полиномов двух анализируемых кодовых блоков, и определяются максимальные степени полиномов обоих блоков. Пусть полином одного из кодовых блоков имеет вид y1(X)=aSXS+aS-1XS-1+aS-2XS-2+…, а второй полином равен y2(Х)=bTXT+bT-1XT-1+bT-2XT-2… и aS=bS=1. Операцией 5 сравниваются величины S и Т.
Предположим, оказалось, что 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
Следующей операцией 7 сравнивается величина большего полинома и результата сдвига меньшего полинома. При этом возможны две различные ситуации.The
Если в результате сдвига меньший полином становится равным большему полиному, то общая операция 9 попарного сравнения и сложения блоков прекращается. Вид меньшего полинома передается к операции 3 и запоминается.If, as a result of the shift, the smaller polynomial becomes equal to the larger polynomial, then the
Если же сравниваемые полиномы не равны между собой, то далее производится операция 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
Когда процедура, производимая общей операцией 9 сравнения и сложения полиномов, заканчивается, это приводит к тому, что в результате остаются общие для обоих анализируемых в ней кодовых блоков полиномы. Действительно, пусть сравниваемые кодовые блоки описываются полиномами: y1(X)=Md1(X)MC(X)g(X) и y2(X)=Md2(X)MC(X)g(X).When the procedure performed by the
Как известно, поразрядные сложение и вычитание двоичных чисел по модулю 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,
Результат сложения - полином 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
Теперь операцией 5 вновь сравниваются полиномы y3=(X3+X+1)g(X) и y4=(Х2+X+1)g(X). Поскольку степень первого из них больше на единицу, то полином y4 теперь операцией 6 домножается на X. В результате получается полином Xy4=X(X2+X+1)g(X)=Х3+Х2+Х. Он также не равен полиному y3. Поэтому дальше производится операция 8. После вычитания в операции 8 получается полином y5=y3-Xy4=(X3+X+1)g(X)+X(X2+X+1)g(X)=(X2+1)g(X).Now, by
Операция 5 сравнивает его с меньшим из складываемых (до домножения на X) полиномов, т.е. с полиномом y4=(X2+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
После этого операция 5 сравнивает его с меньшим из складываемых полиномов, т.е. с полиномом y5=(Х+1)g(X). Степень полученного полинома y6=Xg(X) меньше, чем степень меньшего из складываемых полиномов (имеется в виду полином y5=(Х+1)g(X)), поэтому полином y6=Xg(X) после операций 5 и 6 умножается на X.After this,
После такого умножения и после вычитания в операции 8 получается результат: y7=(X2+1)g(X)+X2g(X)=g(X).After such multiplication and after subtraction in
После этого в операции 5 устанавливается, что степень предыдущего меньшего полинома y6=Xg(X) больше, чем степень полученного результата y7=g(X). Вследствие этого меньший полином y7 в операции 6 домножается на соответствующий множитель, определяемый разностью степеней, т.е. на X. После этого сравниваемые полиномы приобретают вид: y6=-Xg(X) и y7=Xg(X), т.е. становятся равными один другому.After that, in
Факт этого получившегося теперь равенства устанавливается операцией 7, после чего операцией 9 цикл попарного сравнения данной пары кодовых блоков завершается. Вид меньшего до сдвига полинома g(X) передается к операции 3. В ней запоминается полученный при анализе данной пары кодовых блоков результат, т.е. полученное найденное значение общего полинома.The fact of this equality now obtained is established by
Операцией 3 запоминаются найденные в данной паре кодовых блоков значения общего полинома. После анализа всех N(N-1)/2 сочетаний пар кодовых блоков оказываются запомненными все выявленные операцией 3 общие множители для всех пар. Среди них будут случайно присутствовать какие-то полиномы, входящие в информационные части разных пар блоков (разные для различных пар) и общий для всех порождающий полином.
Информационные части разных блоков различаются, и появление одинаковых множителей в информационной части также маловероятно, гораздо вероятнее, что общая часть будет состоять только из порождающего полинома.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,
Для каждой пары кодовых слов производится постепенное циклическое уменьшение порядка соответствующих полиномов до тех пор, пока в паре не останутся только общие полином для каждой пары. Если максимальная степень различающихся частей равна 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)
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)
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)
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 |
-
2016
- 2016-02-29 RU RU2016107245A patent/RU2631142C2/en not_active IP Right Cessation
Patent Citations (5)
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)
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 |