ПРЕОБРАЗОВАТЕЛЬ УГОЛ-КОД
ANGLE-TO-DIGITAL CONVERTER

Изобретение относится к области приборостроения, в частности к аналого-цифровому преобразованию, а именно к преобразователям угла поворота вала в код.
n
Известен преобразователь угол-код [1], содержащий кодовый диск с информационной дорожкой, выполненной в виде градаций псевдослучайной двоичной последовательности максимальной длины периода M=2-1, построенной посредством примитивного многочлена h(x) степени n, где n - разрядность преобразователя, n считывающих элементов, n дополнительных считывающих элементов, сумматор по модулю два, n-1 сумматоров по модулю два на три входа, n-1 элементов НЕ, n-1 элементов И, n сумматоров по модулю два на два входа.
Недостатками известного преобразователя угол-код являются невысокая информационная надежность, поскольку в преобразователе не обеспечена возможность обнаружения двойных ошибок, а также его сложность, поскольку в нем исправление одиночных ошибок достигается за счет использования избыточного числа дополнительных считывающих элементов.
Наиболее близкими по техническому решению являются псевдослучайная кодовая шкала [2] и преобразователь угол-код [3].
n
Псевдослучайная кодовая шкала [2] содержит информационную дорожку, выполненную в виде градаций псевдослучайной двоичной последовательности максимальной длины периода M=2-1, построенной посредством примитивного многочлена h(x) степени n, где n - разрядность шкалы, n информационных считывающих элементов, размещенных вдоль информационной дорожки с угловыми шагами, кратными величине кванта шкалы δ=360°/M, с возможностью получения с них М различных n разрядных кодовых комбинаций, k корректирующих считывающих элементов, размещенных вдоль информационной дорожки с возможностью получения с них совместно с n информационными считывающими элементами М различных (n+k) - разрядных кодовых комбинаций, представляющих собой код Хемминга с обнаружением и исправлением одиночной ошибки, контрольный считывающий элемент, размещенный вдоль информационной дорожки с возможностью получения с него совместно с (n+k) считывающими элементами М различных (n+k+1)-разрядных кодовых комбинаций, представляющих собой код Хемминга с исправлением одиночной и обнаружением двойной ошибки, выходы n информационных считывающих элементов, выходы k корректирующих считывающих элементов и выход контрольного считывающего элемента являются выходами псевдослучайной кодовой шкалы.
n
2
2
Преобразователь угол-код [3] содержит кодовый диск с информационной дорожкой, выполненной в виде градаций псевдослучайной двоичной последовательности максимальной длины периода М=2-1, построенной посредством примитивного многочлена h(x) степени n, где n - разрядность преобразователя, n считывающих элементов, размещенных вдоль информационной дорожки с постоянным угловым шагом, кратным величине кванта преобразователя δ=360°/М, k дополнительных считывающих элементов, где k=]log{(n+1)+]log(n+1)[}[, а знак]…[ означает округление до ближайшего большего целого, k дополнительных считывающих элементов размещены вдоль информационной дорожки с возможностью получения с них совместно с n считывающими элементами М различных n+k-разрядных кодовых комбинаций, представляющих собой код Хемминга, выходы m считывающих элементов, представляющие собой i-е подмножество из выходов n считывающих элементов, полученное посредством проверочных уравнений кода Хемминга, i=1, 2, …, k, соединены с соответствующими входами i-го сумматора по модулю два, n сумматоров по модулю два на два входа, выходы n считывающих элементов соединены с первыми входами n сумматоров по модулю два на два входа, k сумматоров по модулю два, выходы k дополнительных считывающих элементов соединены с первыми входами k сумматоров по модулю два, дешифратор, осуществляющий преобразование обыкновенного двоичного кода в унитарный код, i-й вход которого соединен с выходом i-го сумматора по модулю два, j-й выход которого соединен со вторым входом j-го сумматора по модулю два на два входа, j=1, 2, …, n, выходы которых являются выходами преобразователя.
Псевдослучайная кодовая шкала [2] позволяет формировать на своих выходах корректирующий код Хемминга с возможностью исправления одиночной и обнаружения двойной ошибки. Однако она самостоятельно без схемы обработки информации со своих выходов не позволяет сформировать сигналы, вызванные выходом из строя одного считывающего элемента, и не вырабатывает сигнала, свидетельствующего о выходе из строя двух считывающих элементов. Таким образом, псевдослучайная кодовая шкала может быть использована только как кодированный элемент в составе преобразователя угол-код.
Недостатком преобразователя угол-код [3] является невысокая информационная надежность, поскольку в нем отсутствует информация, свидетельствующая о двойной ошибке, вызванной выходом из строя одновременно двух считывающих элементов.
Преобразователь угол-код [3] выбран авторами за прототип.
В предлагаемом изобретении решается задача повышения информационной надежности преобразователя угол-код за счет выработки сигнала, свидетельствующего о выходе из строя одновременно двух считывающих элементов, при сохранении возможности исправления одиночных ошибок, вызванных выходом из строя одного любого информационного считывающего элемента.
n
l
l
Для достижения технического результата преобразователь угол-код, содержащий псевдослучайную кодовую шкалу с информационной дорожкой, выполненной в виде градаций псевдослучайной двоичной последовательности максимальной длины периода М=2-1, построенной посредством примитивного многочлена h(x) степени n, где n - разрядность преобразователя (шкалы), n информационных считывающих элементов, размещенных вдоль информационной дорожки с угловыми шагами, кратными величине кванта шкалы δ=360°/М, с возможностью получения с них М различных n разрядных кодовых комбинаций, k корректирующих (дополнительных) считывающих элементов, размещенных вдоль информационной дорожки с возможностью получения с них совместно с n информационными считывающими элементами М различных (n+k)-разрядных кодовых комбинаций, представляющих собой код Хемминга с обнаружением и исправлением одиночной ошибки, контрольный считывающий элемент, размещенный вдоль информационной дорожки с возможностью получения с него совместно с (n+k) считывающими элементами М различных (n+k+1)-разрядных кодовых комбинаций, представляющих собой код Хемминга с исправлением одиночной и обнаружением двойной ошибки, n сумматоров по модулю два на два входа, выходы n считывающих элементов соединены с первыми входами n сумматоров по модулю два на два входа, k сумматоров по модулю два, выходы k корректирующих считывающих элементов соединены с первыми входами k сумматоров по модулю два, выходы m считывающих элементов, представляющие собой i-е подмножество выходов n считывающих элементов, полученное посредством проверочных уравнений кода Хемминга с исправлением одиночной ошибки, i=1, 2, …, k, соединены с соответствующими входами i-го сумматора по модулю два, дешифратор, осуществляющий преобразование обыкновенного двоичного кода в унитарный код, i-й вход которого соединен с выходом i-го сумматора по модулю два, j-й выход которого, где j=3, 5, 6, 7, …, исключая j=2, l=0, 1, 2, …, соединен со вторым входом соответствующего сумматора по модулю два на два входа, выходы которых являются информационными выходами преобразователя, снабжен сумматором по модулю два, (n+k+1) входов которого соединены с выходами n считывающих элементов, выходами k корректирующих считывающих элементов и выходом контрольного считывающего элемента, элементом ИЛИ-НЕ, первый вход которого соединен с выходом (n+k+1) входового сумматора по модулю два, а второй вход соединен с нулевым выходом дешифратора, j-е выходы которого, где j=2, l=0, 1, 2, …, и выход элемента ИЛИ-НЕ являются служебными выходами преобразователя.
l
Новым в предлагаемом изобретении является снабжение преобразователя угол-код сумматором по модулю два на (n+k+1) входов и двухвходовым элементом ИЛИ-НЕ, выходной сигнал которого свидетельствует о выходе из строя одновременно двух считывающих элементов, а также формирование c j-х выходов дешифратора, где j=2, l=0, 1, 2, … сигналов, свидетельствующих о выходе из строя корректирующих считывающих элементов, что повышает информационную надежность преобразователя угол-код при использовании псевдослучайной кодовой шкалы с возможностью формирования с нее кода Хемминга с исправлением одиночных и обнаружением двойных ошибок.
Совокупность существенных признаков в предлагаемом изобретении позволила повысить информационную надежность преобразователя угол-код.
В результате этого можно сделать вывод о том, что предлагаемое изобретение обладает изобретательским уровнем и позволяет получить технический результат.
Изобретение является новым, так как из уровня техники по доступным источникам информации не выявлено аналогов с подобной совокупностью признаков.
Изобретение является промышленно применимым, так как может быть использовано во всех областях, где требуется высокоточное позиционное определение углового положения объекта с использованием преобразователей угол-код повышенной информационной надежности.
Предлагаемое изобретение поясняется чертежом, где показана линейная развертка круговой четырехрядной псевдослучайной кодовой шкалы с одной информационной дорожкой, а также функциональная схема преобразователя угол-код для n=4.
Заявляемый преобразователь угол-код содержит псевдослучайную кодовую шкалу с информационной дорожкой 1, информационные считывающие элементы 2, 3, 4, 5 (n=4), корректирующие считывающие элементы 6, 7, 8 (k=3) и контрольный считывающий элемент 9, сумматоры по модулю два на четыре входа 10, 11, 12, сумматор по модулю два на восемь входов 13, дешифратор 14 на три входа и восемь выходов, двухвходовой элемент ИЛИ-НЕ 15, четыре двухвходовых сумматора по модулю два 16, 17, 18, 19, четыре информационных выхода 20 преобразователя угол-код и четыре служебных выхода 21 преобразователя угол-код.
Для пояснения сути изобретения приведем некоторые теоретические предпосылки.
а
а
а
a
0
1
M-1
n
В [4] рассмотрены использованные в изобретении кодовые шкалы, получившие название псевдослучайные (ПСКШ), и строящиеся на основе теории М-последовательностей. ПСКШ имеют всего одну информационную кодовую дорожку, выполненную в соответствии с символами М-последовательности =… и n информационных считывающих элементов (СЭ), размещенных вдоль дорожки. Считывающие элементы дают возможность получить при полном обороте шкалы М=2-1 различных n-разрядных кодовых комбинаций, что обеспечивает разрешающую способность ПСКШ δ=360°/М. В общем виде задача размещения информационных СЭ на ПСКШ решена в [5].
n
Для генерации М-последовательности с периодом М=2-1 используется примитивный неприводимый многочлен h(x) степени n с коэффициентами поля Галуа GF(2) [6], т.е.
<mrow><mi>h</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mi>n</mi></munderover><mrow><msub><mi>h</mi><mi>i</mi></msub><msup><mi>x</mi><mi>i</mi></msup><mo>,</mo><mtext> </mtext><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></mstyle></mrow>
0
n
i
где h=h=1, а h=0,1 при 0<i<n.
a
n+j
Символы М-последовательности  удовлетворяют рекуррентному выражению:
<mrow><msub><mi>a</mi><mrow><mi>n</mi><mo>+</mo><mi>j</mi></mrow></msub><mo>=</mo><munderover><mi>Ξ</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></munderover><msub><mi>a</mi><mrow><mi>i</mi><mo>+</mo><mi>j</mi></mrow></msub><msub><mi>h</mi><mi>i</mi></msub><mo>,</mo><mtext> </mtext><mi>j</mi><mo>=</mo><mn>0,1,</mn><mo>…</mo><mo>,</mo><mtext> </mtext><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>
a
a
a
а
а
a
0
1
n-1
0
1
M-1
где знак Ξ означает суммирование по модулю два, а индексы при символах М-последовательности берутся по модулю М. Начальные значения символов М-последовательности … могут выбираться произвольно, за исключением нулевой комбинации. Для определенности при построении круговой ПСКШ символы М-последовательности … отображаются на информационной дорожке по ходу часовой стрелки.
M
n
М-последовательности относятся к классу циклических кодов и могут задаваться с помощью порождающего многочлена g(x)=(x+1)/h(х), где h(x) определяется в соответствии с выражением (1), М=2-1.
j
Для каждой М-последовательности периода М существует ровно М различных циклических сдвигов, которые могут быть получены путем умножения порождающего многочлена g(x) на x, где j=0, 1, …, М-1.
m
jm
Поскольку ПСКШ строятся в соответствии с символами М-последовательности, можно путем циклических сдвигов определить порядок размещения на шкале n информационных считывающих элементов, т.е. m-му СЭ, m=1, 2, …, n, ставится в соответствие j-й циклический сдвиг xg(x) М-последовательности.
Тогда многочлен, определяющий порядок размещения n информационных СЭ на шкале, имеет вид:
<mrow><mi>r</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mrow><msup><mi>x</mi><mrow><msub><mi>j</mi><mi>m</mi></msub></mrow></msup><mo>,</mo><mtext> </mtext><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></mstyle></mrow>
m
1
2
3
n
где j∈{0, 1, …, М-1}. Положив j=0, согласно полинома (3), получим положения 2-го, 3-го, …, n-го информационных СЭ, смещенные относительно первого СЭ на j, j, …, jквантов информационной дорожки шкалы соответственно.
В табл.1 приведены многочлены h(x) до n=12 включительно, которые могут быть использованы для генерации соответствующих М-последовательностей [6].
Таблица 1
n
h(x)
М=2<sup>n</sup>-1
1
x+1
1
2
x<sup>2</sup>+x+1
3
3
x<sup>3</sup>+x+1
7
4
x<sup>4</sup>+x+1
15
5
x<sup>5</sup>+x<sup>2</sup>+1
31
6
x<sup>6</sup>+x+1
63
7
x<sup>7</sup>+x+1
127
8
х<sup>8</sup>+х<sup>6</sup>+x<sup>5</sup>+x+1
255
9
х<sup>9</sup>+х<sup>4</sup>+1
511
10
x<sup>10</sup>+х<sup>3</sup>+1
1023
11
х<sup>11</sup>+х<sup>2</sup>+1
2047
12
х<sup>12</sup>+x<sup>7</sup>+x<sup>4</sup>+х<sup>3</sup>+1
4095
Поясним вариант построения ПСКШ, приведенной на чертеже.
4
4
2
3
0
1
4
2
3
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
0
1
1
3
4+j
1+j
j
1
2
3
4
а
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
а
a
a
a
a
а
a
В примере для простоты принято n=4 и соответственно из табл.1 выбран примитивный неприводимый многочлен h(x)=x+x+1, где h=h=h=1, h=h=0. Здесь период М-последовательности М=2-1=15, а сама М-последовательность ==000100110101111. При начальных значениях М-последовательности ===0, =l остальные символы последовательности получены в соответствии с рекуррентным соотношением (2), которое в данном примере имеет вид =⊕, j=0, 1, …, 10. Размещение четырех информационных считывающих элементов СЭ (на чертеже позиция 2), СЭ (на чертеже позиция 3), СЭ (на чертеже позиция 4) и СЭ (на чертеже позиция 5) вдоль информационной дорожки шкалы задано согласно (3) многочленом r(х)=1+х+х+х.
n
При построении информационной дорожки 1 М-последовательность с периодом М=15 должна быть нанесена на шкалу в виде пассивных (нули М-последовательности) и активных (единицы М-последовательности) участков информационной дорожки, например, по ходу часовой стрелки, причем на информационную дорожку шкалы наносится только один период М-последовательности. М-последовательность с периодом М=2-1 определяет число квантов информационной дорожки шкалы, которое в данном примере равно М=15. Отсюда величина кванта δ=360°/М=360°/15=24°. Информационные считывающие элементы, числом 4, должны быть размещены вдоль информационной дорожки согласно r(х) с шагом, равным величине одного кванта шкалы δ, например, по ходу часовой стрелки. Отметим, что возможны и другие варианты размещения информационных СЭ вдоль информационной дорожки шкалы [5].
Последовательно фиксируя информационными СЭ четырехразрядную кодовую комбинацию при перемещении шкалы на один квант против хода часовой стрелки, получаем 15 различных четырехразрядных кодовых комбинаций. Эти кодовые комбинации, соответствующие 15 различным угловым положениям ПСКШ, приведены в табл.2.
Таблица 2
№ положения ПСКШ
СЭ<sub>1</sub>
СЭ<sub>2</sub>
СЭ<sub>3</sub>
СЭ<sub>4</sub>
Десятичный эквивалент кода
0
0
0
0
1
1
1
0
0
1
0
2
2
0
1
0
0
4
3
1
0
0
1
9
4
0
0
1
1
3
5
0
1
1
0
6
6
1
1
0
1
13
7
1
0
1
0
10
8
0
1
0
1
5
9
1
0
1
1
11
10
0
1
1
1
7
11
1
1
1
1
15
12
1
1
1
0
14
13
1
1
0
0
12
14
1
0
0
0
8
Поскольку технический результат изобретения достигается при использовании корректирующих кодов Хемминга с исправлением одиночных и обнаружением двойных ошибок, покажем, как такой код должен быть реализован в предлагаемом изобретении. В рассматриваемом изобретении под ошибками будем понимать неправильную работу считывающих элементов (например, их выход из строя).
В разработке и создании ряда помехоустойчивых кодов существенная роль отводится различным способам проверки на четность принимаемых кодовых комбинаций. В начале 50-х годов Хеммингом [7] был предложен код, в котором контрольные символы размещались в кодовой комбинации не произвольно, а на строго определенных местах, что, естественно, облегчало декодирование.
Была разработана система проведения проверок правильности переданного кодированного сообщения, включающая алгоритм определения синдрома ошибки, указывающего не только на наличие ошибки, но и номер искаженной кодовой позиции.
Наибольшее распространение получили две модели кода Хемминга: код с обнаружением и исправлением одиночной ошибки (минимальное кодовое расстояние d=3) и код с исправлением одиночной ошибки и обнаружением двойной (d=4).
Для синтеза кода Хемминга необходимо решить следующие задачи.
1. Определить число контрольных символов, обеспечивающих заданные требования по помехозащищенности.
2. Установить, на каких позициях кодовой комбинации следует разместить контрольные символы и какие позиции займут информационные символы.
3. Собрав макет кодовой комбинации, определить значение каждого контрольного символа.
4. Составить кодовые комбинации, включающие как контрольные, так и информационные символы.
5. Дать алгоритм проверок, позволяющий установить наличие и место ошибки.
Вначале, применительно к изобретению, рассмотрим синтез кода Хемминга с d=3.
Число корректирующих СЭ k равно числу контрольных символов в коде Хемминга и определяется из соотношения:
<mrow><mi>k</mi><mo>=</mo><mo stretchy="false">]</mo><msub><mrow><mi>log</mi></mrow><mn>2</mn></msub><mo>{</mo><mo stretchy="false">(</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo><mo>+</mo><mo stretchy="false">]</mo><msub><mrow><mi>log</mi></mrow><mn>2</mn></msub><mo stretchy="false">(</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo><mo stretchy="false">[</mo><mo>}</mo><mo stretchy="false">[</mo><mo>,</mo><mtext> </mtext><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>
где n - число информационных СЭ, равное числу информационных символов в коде Хемминга, а знак ]…[ означает округление до ближайшего большего целого.
Используя выражение (4), рассчитаем число корректирующих СЭ k для n=4, …, 12. Соответствующие расчеты представлены в табл.3.
Таблица 3
Число информационных СЭ
n
4
5
6
7
8
9
10
11
12
Число корректирующих СЭ
k
3
4
4
4
4
4
4
4
5
Далее определяются места, на которых в общей кодовой комбинации должны располагаться контрольные разряды. Контрольные символы должны составить двоичное число (синдром ошибки), которое бы указывало номер ошибочной позиции. В результате первой частной проверки на четность получается символ первого (младшего) разряда синдрома, в результате второй проверки - символ второго и т.д. Итак, если синдром ошибки представить в виде двоичного числа, а рядом записать соответствующие десятичные эквиваленты, то получим табл.4.
Таблица 4
Синдром ошибки
Десятичный эквивалент
Синдром ошибки
Десятичный эквивалент
00001
1
01010
10
00010
2
01011
11
00011
3
01100
12
00100
4
01101
13
00101
5
01110
14
00110
6
01111
15
00111
7
10000
16
01000
8
10001
17
01001
9
Далее последовательно выписываются номера позиций, участвующих в каждой проверке на четность.
В первой проверке должны участвовать те позиции, которые содержат единицу в младшем разряде. Исходя из табл.3, это будут 1, 3, 5, 7, 9, 11, 13, 15, 17.
Во второй проверке должны участвовать те позиции, которые содержат единицу во втором разряде. По табл.3 это будут 2, 3, 6, 7, 10, 11, 14, 15.
В третьей проверке должны участвовать - 4, 5, 6, 7, 12, 13, 14, 15 позиции.
В четвертой проверке должны участвовать - 8, 9, 10, 11, 12, 13, 14, 15 позиции.
В пятой проверке должны участвовать - 16, 17 позиции.
В результате получаем табл.5.
Таблица 5
Номер проверки
Номера позиций, охватываемых этой проверкой
Первая
1
3
5
7
9
11
13
15
17
Вторая
2
3
6
7
10
11
14
15
Третья
4
5
6
7
12
13
14
15
Четвертая
8
9
10
11
12
13
14
15
Пятая
16
17
Анализируя табл.4, можно заключить, что контрольные символы Km должны размещаться на следующих позициях:
1
0
K на позиции 1, т.е. 2;
2
1
К на позиции 2, т.е. 2;
3
2
К на позиции 4, т.е. 2;
4
3
К на позиции 8, т.е. 2;
5
4
K на позиции 16, т.е. 2.
11
10
9
8
7
6
5
4
3
2
1
0
Позиции 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17 должны занять соответственно информационные символы И, И, И, И, И, И, И, И, И, И, И, И.
Применительно к изобретению этот результат необходимо применить следующим образом.
0
1
11
1
2
5
С первого информационного СЭ должны формироваться символы И, со второго - И, …, с двенадцатого - И, с первого корректирующего СЭ должны формироваться символы K, со второго - символы К, …, с пятого - символы К.
В соответствии с вышеизложенным макет кода Хемминга для d=3 должен выглядеть следующим образом.
№ позиции
1
2
3
4
5
б
7
8
9
10
11
12
13
14
15
16
17
Символ
К<sub>1</sub>
К<sub>2</sub>
И<sub>11</sub>
К<sub>3</sub>
И<sub>10</sub>
И<sub>9</sub>
И<sub>8</sub>
К<sub>4</sub>
И<sub>7</sub>
И<sub>6</sub>
И<sub>5</sub>
И<sub>4</sub>
И<sub>3</sub>
И<sub>2</sub>
И<sub>1</sub>
К<sub>5</sub>
И<sub>0</sub>
Определение значений каждого контрольного символа определяется по следующим выражениям.
1
11
10
8
7
5
3
1
0
K=И⊕И⊕И⊕И⊕И⊕И⊕И⊕И;
2
11
9
8
6
5
2
1
К=И⊕И⊕И⊕И⊕И⊕И⊕И;
3
10
9
8
4
3
2
1
К=И⊕И⊕И⊕И⊕И⊕И⊕И;
4
7
6
5
4
3
2
1
К=И⊕И⊕И⊕И⊕И⊕И⊕И;
5
0
К=И.
Поясним приведенные выше теоретические рассуждения на примере четырехразрядной псевдослучайной кодовой шкалы.
Из табл.3 для n=4, находим k=3.
Из табл.5 имеем номера позиций, участвовавших в каждой проверке на четность.
№ проверки
№№ позиций, охватываемых этой проверкой
1
1, 3, 5, 7
2
2, 3, 6, 7
3
4, 5, 6, 7
1
2
3
3
2
1
0
Контрольные символы должны размещаться на следующих позициях: K - на позиции 1, К - на позиции 2, К - на позиции 4. Позиции 3, 5, 6, 7 займут соответственно информационные символы И, И, И, И.
Макет кода Хемминга в этом случае будет выглядеть следующим образом.
№ позиции
1
2
3
4
5
6
7
Символ
К<sub>1</sub>
К<sub>2</sub>
И<sub>3</sub>
К<sub>3</sub>
И<sub>2</sub>
И<sub>1</sub>
И<sub>0</sub>
0
1
2
3
1
2
3
С первого информационного СЭ должны формироваться символы И, со второго - И, с третьего - И, с четвертого - И, с первого корректирующего СЭ должны формироваться символы K, со второго - символы К, с третьего - символы К.
Для получения со шкалы семиразрядного кода Хемминга определим позиции размещения вдоль информационной дорожки трех корректирующих СЭ.
1
3
2
0
2
3
1
0
3
2
1
0
2
3
Исходными данными для расчета являются выражения для определения контрольных символов K=И⊕И⊕И, К=И⊕И⊕И, К=И⊕И⊕И, а также многочлен, определяющий размещение вдоль информационной дорожки кодового диска четырех информационных СЭ r(х)=1+х+х+х.
1
1
2
3
4
Для определения позиции первого корректирующего СЭ по выражению для K с учетом r(х) сформируем многочлен, который будет иметь вид r(x)=1+x+х. Далее разделим этот многочлен по модулю два со стороны младших степеней на примитивный многочлен h(x)=x+x+1 до получения остатка в виде одночлена, причем степень одночлена берется по модулю М=15, т.е.
.
Степень одночлена определяет позицию размещения на шкале первого корректирующего СЭ, причем он должен быть смещен относительно первого информационного СЭ на 13 квантов шкалы δ по ходу часовой стрелки.
2
2
3
4
Для определения позиции второго корректирующего СЭ по выражению для К c учетом r(х) сформируем многочлен, который будет иметь вид r(x)=1+x+x. Далее разделим этот многочлен по модулю два со стороны младших степеней на примитивный многочлен h(x)=х+х+1 до получения остатка в виде одночлена, причем степень одночлена берется по модулю М=15, т.е.
.
Степень одночлена определяет позицию размещения на шкале второго корректирующего СЭ, причем он должен быть смещен относительно первого информационного СЭ на 7 квантов шкалы δ по ходу часовой стрелки.
3
3
2
Для определения позиции третьего корректирующего СЭ по выражению для К с учетом r(х) сформируем многочлен, который будет иметь вид r(х)=1+х+x.
4
Далее разделим этот многочлен по модулю два со стороны младших степеней на примитивный многочлен h(x)=х+х+1 до получения остатка в виде одночлена, причем степень одночлена берется по модулю М=15, т.е.
.
Степень одночлена определяет позицию размещения на шкале третьего корректирующего СЭ, причем он должен быть смещен относительно первого информационного СЭ на 10 квантов шкалы δ по ходу часовой стрелки.
1
2
3
4
1
2
3
совм
коррект
2
3
7
10
13
Теперь совместное размещение четырех информационных считывающих элементов СЭ, СЭ, СЭ, СЭ и трех корректирующих считывающих элементов КСЭ, КСЭ, КСЭ (на чертеже позиции 6, 7 и 8 соответственно) вдоль информационной дорожки шкалы будет определяться многочленом r(x)=r(х)+r(х)=1+х+х+х+х+х+х.
Последовательно фиксируя СЭ семиразрядную кодовую комбинацию при перемещении шкалы на один квант против хода часовой стрелки, получаем 15 различных семиразрядных комбинаций кода Хемминга с минимальным кодовым расстоянием d=3. Известно [7], что такой код позволяет исправлять одиночную ошибку. Эти кодовые комбинации, соответствующие 15 различным угловым положениям ПСКШ, а также соответствия между информационными СЭ и информационными символами, корректирующими СЭ и контрольными символами кода Хемминга, приведены в табл.6.
Таблица 6
№ положения ПСКШ
КСЭ<sub>1</sub>
КСЭ<sub>2</sub>
СЭ<sub>4</sub>
КСЭ<sub>3</sub>
СЭ<sub>3</sub>
СЭ<sub>2</sub>
СЭ<sub>1</sub>
K<sub>1</sub>
K<sub>2</sub>
И<sub>3</sub>
К<sub>3</sub>
И<sub>2</sub>
И<sub>1</sub>
И<sub>0</sub>
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
2
0
1
0
1
0
1
0
3
0
0
1
1
0
0
1
4
0
1
1
1
1
0
0
5
1
1
0
0
1
1
0
6
0
1
1
0
0
1
1
7
0
1
0
0
1
0
1
8
1
0
1
1
0
1
0
9
1
0
1
0
1
0
1
10
0
0
1
0
1
1
0
11
1
1
1
1
1
1
1
12
0
0
0
1
1
1
1
13
1
0
0
0
0
1
1
14
1
1
0
1
0
0
1
Покажем, каким образом в предлагаемом изобретении обеспечивается возможность повышения информационной надежности преобразователя угол-код с псевдослучайной кодовой шкалой при формировании с нее корректирующего кода Хемминга с обнаружением двойных ошибок при сохранении возможности исправления одиночных ошибок.
d=4
d=3
На примере полученного кода Хемминга с d=3 покажем, как строится код Хемминга с d=4, позволяющий обнаруживать двойные ошибки. Число контрольных символов в таком коде должно быть на единицу больше, т.е. для k=k+1.
Принцип получения такого кода следующий:
- к каждой кодовой комбинации добавляется еще один дополнительный контрольный символ, позволяющий осуществить общую проверку на четность;
- значение дополнительного контрольного символа определяется исходя из наличия в каждой комбинации кода Хемминга (т.е. учитывая и контрольные символы) четного числа единиц.
В соответствии с вышеизложенным макет кода Хемминга для d=4 должен выглядеть следующим образом:
№ позиции
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Символ
К<sub>1</sub>
К<sub>2</sub>
И<sub>11</sub>
К<sub>3</sub>
И<sub>10</sub>
И<sub>9</sub>
И<sub>8</sub>
К<sub>4</sub>
И<sub>7</sub>
И<sub>6</sub>
И<sub>5</sub>
И<sub>4</sub>
И<sub>3</sub>
И<sub>2</sub>
И<sub>1</sub>
К<sub>5</sub>
И<sub>0</sub>
К<sub>д</sub>
Определение значения дополнительного контрольного символа определяется по следующему выражению:
д
1
11
3
10
9
8
4
7
6
5
5
4
3
2
1
5
0
К=К⊕И⊕К⊕И⊕И⊕И⊕К⊕И⊕И⊕И⊕И⊕И⊕И⊕И⊕И⊕К⊕И.
Для рассматриваемо примера макет кода Хемминга будет выглядеть следующим образом:
№ позиции
1
2
3
4
5
6
7
8
Символ
К<sub>1</sub>
К<sub>2</sub>
И<sub>3</sub>
К<sub>3</sub>
И<sub>2</sub>
И<sub>1</sub>
И<sub>0</sub>
К<sub>д</sub>
При этом определение значения дополнительного контрольного символа определяется по следующему выражению
д
1
2
3
3
2
1
0
К=K⊕К⊕И⊕К⊕И⊕И⊕И.
д
Таким образом, с контрольного СЭ должны формироваться символы К. Для получения со шкалы восьмиразрядного кода Хемминга определим позицию размещения вдоль информационной дорожки контрольного СЭ.
д
1
2
3
3
2
1
0
совм
коррект
2
3
7
10
13
Исходными данными для расчета являются выражения для определения контрольного символа К=К⊕К⊕И⊕К⊕И⊕И⊕И, а также многочлен, определяющий размещение вдоль информационной дорожки шкалы четырех информационных и трех корректирующих СЭ, т.е. r(x)=r(х)+r(х)=1+х+х+х+х+х+х.
совм
4
Далее разделим многочлен r(х) по модулю два со стороны младших степеней на примитивный многочлен h(x)=x+x+1 до получения остатка в виде одночлена, причем степень одночлена берется по модулю М=15, т.е.
Степень одночлена определяет позицию размещения на шкале контрольного СЭ, причем он должен быть смещен относительно первого информационного СЭ на 11 квантов шкалы δ по ходу часовой стрелки.
1
2
3
4
1
2
3
Теперь совместное размещение четырех информационных считывающих элементов СЭ, СЭ, СЭ, СЭ, трех корректирующих считывающих элементов КСЭ, КСЭ, КСЭ и контрольного СЭ (позиция 9) вдоль информационной дорожки шкалы будет определяться многочленом:
<mrow><msubsup><mi>r</mi><mrow><mi>с</mi><mi>о</mi><mi>в</mi><mi>м</mi></mrow><mo>*</mo></msubsup><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mi>r</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>r</mi><mrow><mi>к</mi><mi>о</mi><mi>р</mi><mi>р</mi><mi>е</mi><mi>к</mi><mi>т</mi></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>r</mi><mrow><mi>к</mi><mi>о</mi><mi>н</mi><mi>т</mi><mi>р</mi></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mn>1</mn><mo>+</mo><mi>x</mi><mo>+</mo><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>x</mi><mn>3</mn></msup><mo>+</mo><msup><mi>x</mi><mn>7</mn></msup><mo>+</mo><msup><mi>x</mi><mrow><mn>10</mn></mrow></msup><mo>+</mo><msup><mi>x</mi><mrow><mn>11</mn></mrow></msup><mo>+</mo><msup><mi>x</mi><mrow><mn>13</mn></mrow></msup></mrow>
.
Последовательно фиксируя СЭ восьмиразрядную кодовую комбинацию при перемещении шкалы на один квант против хода часовой стрелки, получаем 15 различных восьмиразрядных комбинаций кода Хемминга с минимальным кодовым расстоянием d=4. Известно [7], что такой код позволяет исправлять одиночную ошибку и обнаруживать двойную. Эти кодовые комбинации, соответствующие 15 различным угловым положениям ПСКШ, а также соответствия между информационными СЭ и информационными символами, корректирующими СЭ и контрольными символами кода Хемминга, контрольным СЭ и дополнительным контрольным символом кода Хемминга, приведены в табл.7.
В табл.6 приведены все возможные комбинации кода Хемминга с d=3, а в табл.7 - все возможные комбинации кода Хемминга с d=4, включающие как корректирующие (контрольные), так и информационные символы, для n=4, когда ошибки в работе преобразователя отсутствуют. В нашем случае под ошибкой мы будем понимать выход из строя любого СЭ.
Таблица 7
№ положения ПСКШ
КСЭ<sub>1</sub>
КСЭ<sub>2</sub>
СЭ<sub>4</sub>
КСЭ<sub>3</sub>
СЭ<sub>3</sub>
СЭ<sub>2</sub>
СЭ<sub>1</sub>
Контр. СЭ
К<sub>1</sub>
К<sub>2</sub>
И<sub>3</sub>
К<sub>3</sub>
И<sub>2</sub>
И<sub>1</sub>
И<sub>0</sub>
К<sub>д</sub>
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
2
0
1
0
1
0
1
0
1
3
0
0
1
1
0
0
1
1
4
0
1
1
1
1
0
0
0
5
1
1
0
0
1
1
0
0
6
0
1
1
0
0
1
1
0
7
0
1
0
0
1
0
1
1
8
1
0
1
1
0
1
0
0
9
1
0
1
0
1
0
1
0
10
0
0
1
0
1
1
0
1
11
1
1
1
1
1
1
1
1
12
0
0
0
1
1
1
1
0
13
1
0
0
0
0
1
1
1
14
1
1
0
1
0
0
1
0
Таким образом, в предлагаемом изобретении обеспечено повышение информационной надежности преобразователя угол-код при использовании в нем псевдослучайной кодовой шкалы с возможностью формирования с нее корректирующих кодов с обнаружением двойных ошибок при сохранении возможности исправления одиночных ошибок.
Рассмотрим алгоритм на основе проверочных уравнений Хемминга, позволяющий установить наличие и место одиночной ошибки, а также обнаруживать в работе преобразователя наличие двойной ошибки. При этом возможны следующие случаи.
1. Ошибки в работе преобразователя отсутствуют, т.е. все СЭ - исправны и мы имеем табл.7.
Проверим считанную со шкалы кодовую комбинацию на отсутствие ошибок. Допустим, была считана шестая кодовая комбинация: 01100110.
Сначала считанная кодовая комбинация проверяется на общую четность, т.е.
<mrow><msub><mi>К</mi><mn>1</mn></msub><mo>⊕</mo><msub><mi>К</mi><mn>2</mn></msub><mo>⊕</mo><msub><mi>И</mi><mn>3</mn></msub><mo>⊕</mo><msub><mi>К</mi><mn>3</mn></msub><mo>⊕</mo><msub><mi>И</mi><mn>2</mn></msub><mo>⊕</mo><msub><mi>И</mi><mn>1</mn></msub><mo>⊕</mo><msub><mi>И</mi><mn>0</mn></msub><mo>⊕</mo><msub><mi>К</mi><mi>д</mi></msub><mo>=</mo><mn>0</mn><mo>⊕</mo><mn>1</mn><mo>⊕</mo><mn>1</mn><mo>⊕</mo><mn>0</mn><mo>⊕</mo><mn>0</mn><mo>⊕</mo><mn>1</mn><mo>⊕</mo><mn>1</mn><mo>⊕</mo><mn>0</mn><mo>=</mo><mn>0.</mn><mtext> </mtext><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>
Мы видим, что проверка на общую четность дала нулевое значение. Технически соотношение (5) реализуется посредством восьмивходового сумматора по модулю два, обозначенного на чертеже позицией 13. В данном примере на его выходе будет сформирован сигнал, соответствующий уровню логического нуля, который поступает на первый вход элемента ИЛИ-НЕ 15.
Затем вычисляется синдром (при этом дополнительный контрольный символ не учитывается). В нашем случае:
1-я проверка охватывает позиции 1, 3, 5, 7, следовательно, младший разряд синдрома
<mrow><msub><mi>К</mi><mn>1</mn></msub><mo>⊕</mo><msub><mi>И</mi><mn>3</mn></msub><mo>⊕</mo><msub><mi>И</mi><mn>2</mn></msub><mo>⊕</mo><msub><mi>И</mi><mn>0</mn></msub><mo>=</mo><mn>0</mn><mo>⊕</mo><mn>1</mn><mo>⊕</mo><mn>0</mn><mo>⊕</mo><mn>1</mn><mo>=</mo><mn>0</mn><mo>;</mo><mtext> </mtext><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>
2-я проверка охватывает позиции 2, 3, 6, 7, тогда второй разряд синдрома
<mrow><msub><mi>К</mi><mn>2</mn></msub><mo>⊕</mo><msub><mi>И</mi><mn>3</mn></msub><mo>⊕</mo><msub><mi>И</mi><mn>1</mn></msub><mo>⊕</mo><msub><mi>И</mi><mn>0</mn></msub><mo>=</mo><mn>1</mn><mo>⊕</mo><mn>1</mn><mo>⊕</mo><mn>1</mn><mo>⊕</mo><mn>1</mn><mo>=</mo><mn>0</mn><mo>;</mo><mtext> </mtext><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>
3-я проверка охватывает позиции 4, 5, 6, 7, и третий разряд синдрома
<mrow><msub><mi>К</mi><mn>3</mn></msub><mo>⊕</mo><msub><mi>И</mi><mn>2</mn></msub><mo>⊕</mo><msub><mi>И</mi><mn>1</mn></msub><mo>⊕</mo><msub><mi>И</mi><mn>0</mn></msub><mo>=</mo><mn>0</mn><mo>⊕</mo><mn>0</mn><mo>⊕</mo><mn>1</mn><mo>⊕</mo><mn>1</mn><mo>=</mo><mn>0.</mn><mtext> </mtext><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>
Таким образом, мы убедились, что синдром имеет нулевое значение, что и свидетельствует об отсутствии в работе преобразователя ошибок, т.е. все СЭ исправны. При отсутствии в работе преобразователя ошибок вычисление синдрома для любой кодовой комбинации даст тот же результат - нулевой синдром ошибки.
Технически соотношения (6), (7) и (8) реализуются посредством трех- и четырехвходовых сумматоров по модулю два, обозначенных на чертеже позициями 10, 11 и 12 соответственно.
4
3
2
1
При нулевом синдроме на выходах этих сумматоров формируются сигналы, соответствующие уровню логического нуля. Далее эти сигналы поступают на соответствующие входы дешифратора 14. При таком сочетании сигналов на его входе на его нулевом выходе формируется сигнал, соответствующий уровню логической единицы, который поступает на второй вход элемента ИЛИ-НЕ 15, а на остальных выходах дешифратора 14 формируются сигналы, соответствующие уровню логического нуля. Сигналы, соответствующие уровню логического нуля, с выходов дешифратора 3, 5, 6 и 7 поступают на вторые входы соответствующих сумматоров по модулю два на два входа 19, 18, 17, 16, на первые входы которых поступают сигналы со считывающих элементов СЭ, СЭ, СЭ, СЭ, которые без изменения проходят на выход преобразователя (20). Сигналы уровня логического нуля на выходах дешифратора 1, 2 и 4, а также на выходе элемента ИЛИ-НЕ 15 свидетельствуют об отсутствии в работе преобразователя ошибок.
2
1
2. В работе преобразователя наблюдаются одиночные ошибки, например вышел из строя СЭ, с которого формируются информационные символы И. В макете кода Хемминга этот символ занимает шестую позицию.
2
Проанализируем считанную со шкалы кодовую комбинацию на наличие ошибок. Допустим, была считана шестая кодовая комбинация 01100010. СЭ в данной комбинации вместо 1 считывает 0 (см. табл.7).
Сначала считанная кодовая комбинация проверяется на общую четность, т.е.
1
2
3
3
2
1
0
д
К⊕К⊕И⊕К⊕И⊕И⊕И⊕К=0⊕1⊕1⊕0⊕0⊕0⊕1⊕0=1.
Мы видим, что проверка на общую четность дала единичное значение. В данном примере на выходе восьмивходового сумматора по модулю два, обозначенного на чертеже позицией 13, будет сформирован сигнал, соответствующий уровню логической единицы, который поступает на первый вход элемента ИЛИ-НЕ 15.
Затем вычисляется синдром (при этом дополнительный контрольный символ не учитывается). В нашем случае:
1-я проверка охватывает позиции 1, 3, 5, 7, следовательно, младший разряд синдрома
1
3
2
0
K⊕И⊕И⊕И=0⊕1⊕0⊕1=0;
2-я проверка охватывает позиции 2, 3, 6, 7, тогда второй разряд синдрома
2
3
1
0
K⊕И⊕И⊕И=1⊕1⊕0⊕1=1;
3-я проверка охватывает позиции 4, 5, 6, 7, и третий разряд синдрома
3
2
1
0
К⊕И⊕И⊕И=0⊕0⊕0⊕1=1.
2
10
2
1
4
3
1
2
Таким образом, мы имеем синдром ошибки, равный 110=6, который указывает на номер ошибочной позиции в коде Хемминга. Это, в свою очередь, свидетельствует о том, что не правильно работает СЭ, с которого формируются информационные символы И. При синдроме ошибки, равном 110, на выходе сумматора 10 формируется сигнал, соответствующий уровню логического нуля, а на выходах сумматоров 11 и 12 - сигналы, соответствующие уровню логической единицы. Далее эти сигналы поступают на соответствующие входы дешифратора 14. При таком сочетании сигналов на его входе, на его шестом выходе формируется сигнал, соответствующий уровню логической единицы, который свидетельствует о наличии в работе преобразователя ошибки, причем на остальных его выходах формируются сигналы, соответствующие уровню логического нуля. Сигналы, соответствующие уровню логического нуля, с выходов дешифратора 3, 5 и 7 поступают на вторые входы соответствующих сумматоров по модулю два на два входа 19, 18 и 16, на первые входы которых поступают сигналы со считывающих элементов СЭ, СЭ и СЭ, которые без изменения проходят на выходы 20 преобразователя. Сигнал, соответствующий уровню логической единицы, с выхода 6 дешифратора 14 поступает на второй вход соответствующего сумматора по модулю два на два входа 17, на первый вход которого поступает сигнал со считывающего элемента СЭ, который корректируется (инвертируется) и проходит на соответствующий выход 20 преобразователя.
При выходе из строя любого другого информационного СЭ коррекция результирующих выходных сигналов осуществляется аналогично.
В данном случае сигнал, соответствующий уровню логического нуля, с нулевого выхода дешифратора 14 поступает на второй вход элемента ИЛИ-НЕ 15.
Сигналы уровня логического нуля на выходах 1, 2 и 4 дешифратора 14 свидетельствуют о правильной работе все трех корректирующих СЭ, а на выходе элемента ИЛИ-НЕ 15 свидетельствуют об отсутствии в работе преобразователя двойных ошибок.
3
3
3. Вышел из строя третий корректирующий СЭ (КСЭ), с которого формируются контрольные символы К. В макете кода Хемминга этот символ занимает четвертую позицию.
3
Проанализируем считанную со шкалы кодовую комбинацию на наличие ошибок. Допустим, была считана нулевая кодовая комбинация 11110001. КСЭ в данной комбинации вместо 0 считывает 1 (см. табл.7).
Сначала считанная кодовая комбинация проверяется на общую четность, т.е.
1
2
3
3
2
1
0
д
К⊕K⊕И⊕K⊕И⊕И⊕И⊕К=1⊕1⊕1⊕1⊕0⊕0⊕0⊕1=1.
Мы видим, что проверка на общую четность дала единичное значение. В данном примере на выходе восьмивходового сумматора по модулю два, обозначенного на чертеже позицией 13, будет сформирован сигнал, соответствующий уровню логической единицы, который поступает на первый вход элемента ИЛИ-НЕ 15.
Затем вычисляется синдром (при этом дополнительный контрольный символ не учитывается). В нашем случае:
1-я проверка охватывает позиции 1, 3, 5, 7, следовательно, младший разряд синдрома
1
3
2
0
К⊕И⊕И⊕И=1⊕1⊕0⊕0=0;
2-я проверка охватывает позиции 2, 3, 6, 7, тогда второй разряд синдрома
2
3
1
0
К⊕И⊕И⊕И=1⊕1⊕0⊕0=0;
3-я проверка охватывает позиции 4, 5, 6, 7, и третий разряд синдрома
3
2
1
0
К⊕И⊕И⊕И=1⊕0⊕0⊕0=1.
2
10
3
3
4
3
2
1
Таким образом, мы имеем синдром ошибки, равный 100=4, который указывает на номер ошибочной позиции в коде Хемминга. Это, в свою очередь, свидетельствует о том, что не правильно работает КСЭ, с которого формируются контрольные символы К. При синдроме ошибки, равном 100, на выходе сумматора 12 формируется сигнал, соответствующий уровню логической единицы, а на выходах сумматоров 10 и 11 - сигналы, соответствующие уровню логического нуля. Далее эти сигналы поступают на соответствующие входы дешифратора 14. При таком сочетании сигналов на его входе, на его четвертом выходе формируется сигнал, соответствующий уровню логической единицы, который свидетельствует о наличии в работе преобразователя ошибки, причем на остальных его выходах формируются сигналы, соответствующие уровню логического нуля. Сигналы, соответствующие уровню логического нуля, с выходов дешифратора 3, 5, 6 и 7 поступают на вторые входы соответствующих сумматоров по модулю два на два входа 19, 18, 17, 16, на первые входы которых поступают сигналы со считывающих элементов СЭ, СЭ, СЭ, СЭ, которые без изменения проходят на выходы 20 преобразователя.
3
Сигнал на четвертом выходе дешифратора 14, соответствующий уровню логической единицы, свидетельствует о выходе из строя КСЭ. Заметим, что выход из строя корректирующего СЭ не влияет негативно на работу преобразователя в целом.
При выходе из строя любого другого корректирующего СЭ анализ считываемых кодовых комбинаций рассматривается аналогично.
В данном случае сигнал, соответствующий уровню логического нуля, с нулевого выхода дешифратора 14 поступает на второй вход элемента ИЛИ-НЕ 15.
Сигнал уровня логического нуля на выходе элемента ИЛИ-НЕ 15 свидетельствуют об отсутствии в работе преобразователя двойных ошибок.
2
4
1
4. В работе преобразователя наблюдаются двойные ошибки, например вышли из два СЭ - СЭ и СЭ, с которых формируются информационные символы И и Из. В макете кода Хемминга эти символы занимают шестую и третью позиции соответственно.
2
4
Проанализируем считанную со шкалы кодовую комбинацию на наличие ошибок. Допустим, была считана седьмая кодовая комбинация 01101111. СЭ и СЭ в данной комбинации вместо 0 считывают 1 (см. табл.7).
Сначала считанная кодовая комбинация проверяется на общую четность, т.е.
1
2
3
3
2
1
0
д
К⊕К⊕И⊕К⊕И⊕И⊕И⊕К=0⊕1⊕1⊕0⊕1⊕1⊕1⊕1=0.
Мы видим, что проверка на общую четность дала нулевое значение. В данном примере на выходе восьмивходового сумматора по модулю два, обозначенного на чертеже позицией 13, будет сформирован сигнал, соответствующий уровню логического нуля, который поступает на первый вход элемента ИЛИ-НЕ 15. Проверка на общую четность показывает, что ошибка не фиксируется.
Затем вычисляется синдром (при этом дополнительный контрольный символ не учитывается). В нашем случае:
1-я проверка охватывает позиции 1, 3, 5, 7, следовательно, младший разряд синдрома
1
3
2
0
К⊕И⊕И⊕И=0⊕1⊕1⊕1=1;
2-я проверка охватывает позиции 2, 3, 6, 7, тогда второй разряд синдрома
2
3
1
0
К⊕И⊕И⊕И=1⊕1⊕1⊕1=0;
3-я проверка охватывает позиции 4, 5, 6, 7, и третий разряд синдрома
3
2
1
0
К⊕И⊕И⊕И=0⊕1⊕1⊕1=1.
2
10
В данном примере мы имеем синдром ошибки, равный 101=5. Таким образом, частные проверки на четность фиксируют наличие ошибки. Она, якобы, имела место на пятой позиции.
При синдроме ошибки, равном 101, на выходе сумматора 11 формируется сигнал, соответствующий уровню логического нуля, а на выходах сумматоров 10 и 12 - сигналы, соответствующие уровню логической единицы. Далее эти сигналы поступают на соответствующие входы дешифратора 14. При таком сочетании сигналов на его входе на его пятом выходе формируется сигнал, соответствующий уровню логической единицы, который свидетельствует о том, что в работе преобразователя, якобы, имеет место одиночная ошибка, причем на остальных его выходах формируются сигналы, соответствующие уровню логического нуля. В данном случае сигнал, соответствующий уровню логического нуля, с нулевого выхода дешифратора 14 поступает на второй вход элемента ИЛИ-НЕ 15.
При таком сочетании сигналов на входе элемента ИЛИ-НЕ 15 (оба 0) на его выходе формируется сигнал, соответствующий уровню логической единицы, что свидетельствует о наличии в работе преобразователя двойной ошибки.
Таким образом, в предлагаемом изобретении решена задача повышения информационной надежности преобразователя угол-код за счет выработки сигнала, свидетельствующего о выходе из строя одновременно двух считывающих элементов, при сохранении возможности исправления одиночных ошибок, вызванных выходом из строя одного любого информационного считывающего элемента.
Сигналы, свидетельствующие о выходе из строя корректирующих СЭ, получаемые с соответствующих выходов дешифратора, а также сигнал с выхода элемента ИЛИ-НЕ могут быть использованы при проведении профилактических работ или тестировании преобразователя.
Особо отметим, что рассмотренный в данном изобретении преобразователь угол-код наиболее целесообразно использовать в различных системах управления летательными аппаратами или технике специального назначения, где обеспечение надежности их работы является первостепенным требованием.
Литература
1. А.С. СССР №1534748, дата приоритета 28.07.87, МПК H03M 1/22, публ. 07.01.1990 г.
2. Заявка на изобретение RU 2012146022, приоритет от 29.10.2012.
3. Патент на полезную модель RU 79360 U1, приоритет от 28.07.2008.
4. Ожиганов А.А. Псевдослучайные кодовые шкалы // Изв. Вузов. Приборостроение, 1987. Т.30. №.2. С.40-43.
5. Ожиганов А.А. Алгоритм размещения считывающих элементов на псевдослучайной кодовой шкале // Приборостроение, 1994. Т.37. N 2. С.22-27.
6. Макуильямс Ф.Д., Слоан Н.Д. Псевдослучайные последовательности и таблицы // ТИИЭР. 1976. Т.64. №12. С.80-95.
7. Хемминг Р.В. Теория кодирования и теория информации: Пер. с англ. - М.: Радио и связь, 1983. - 176 с., ил.