Пред.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
11.9. Регистры сдвига для кодированияТеория алгебраических кодов приводилась в терминах многочленов, поскольку при этом легко можно описать программную или аппаратурную реализацию таких кодов. Кажущаяся сложность описанного выше процесса деления для модулярного представления многочленов в действительности достаточно просто преодолима с помощью регистров сдвига с обратной связью. Предположим, что рассматривается код длины 7, описанный в разд. 11.8, и требуется закодировать сообщение
(звездочка означает, что соответствующий коэффициент подлежит определению), который должен делиться на многочлен-основание Сначала неизвестные коэффициенты полагаются равными нулю и, как и ранее, производится деление на многочлен-основание для получения остатка. После сложения остатка Как практически производится деление? Рассмотрим регистр сдвига, показанный на рис. 11.9.1. Предполагается, что символы сообщения поступают справа, начиная с символа, соответствующего самой большой степени; в конце вводятся три нулевых символа. Стрелки под регистром сдвига указывают направление обратной связи. Если в старшем разряде содержится символ 1, то он добавляется (или вычитается) к указанным стрелкам и символам. Детали процесса показаны на рис. 11.9.2, на котором опущены первые несколько шагов, поскольку в течение первых четырех шагов, пока первая цифра не дойдет до крайнего левого положения, не происходит ничего интересного. Таблицу на рис. 11.9.2 нужно рассматривать, начиная с верхней строки. Во второй строке показаны символы, возвращаемые обратной связью, а в третьей строке (непосредственно над двойной линией) содержится результат сложения. (Для того чтобы процесс в точности соответствовал процессу деления, показано прибавление 1 в крайней левой позиции; на практике этот символ не возвращается.) Двойная линия указывает на сдвиг, и под этой линией приводятся сдвинутые символы. В трех строках между двойными линиями отображено происходящее между двумя сдвигами. В этом примере имеется всего четыре множества по три строки.
Рис. 11.9.1. Регистр сдвига с обратной связью
Рис. 11.9.2. Результаты работы регистра В последней строке записан остаток. Непосредственное сравнение показывает, что регистр сдвига делает то же самое, что и процесс деления углом. На рис. 11.9.3 дана схема кодирующего устройства. Символы сообщения по-прежнему поступают справа, однако теперь они выходят слева через переключатель (пунктирные линии).
Рис. 11.9.3. Кодер После вычисления остатка осуществляется выдача всех символов первоначального сообщения, а затем переключатель ставится в такое положение, при котором происходит выдача сдвинутого остатка, что позволяет сформировать все закодированное сообщение (кроме первого символа, равного 0). Процесс кодирования является очень простым! Практически построить регистр сдвига достаточно легко, даже учитывая необходимость осуществлять сложение по модулю 2 в каждой позиции. Столь же проста аппаратурная реализация остальных частей кодера. Нетрудно написать соответствующую программу для ЭВМ. Для этого нужно проверить, равен ли единице крайний левый символ, и если это так, произвести логическое сложение с набором символов, соответствующих линиям обратной связи (т. е. многочлену-основанию). Затем произвести сдвиг, и всю процедуру повторить. Нетрудно описать все это подробно. Таким образом, процедура кодирования является достаточно простой. Перейдем теперь к декодированию. Задача11.9.1. Напишите программу для кодирования сообщения по схеме, представленной в этом разделе.
|
1 |
Оглавление
|