Пред.
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 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
3.2.4. Метод случайного выбораВместо того чтобы заранее выбирать множество покрытий, гарантирующих исправление всех Алгоритм случайного выбора для групповых кодов был предложен Омурой [18] в 1969 г. Выполнение этого алгоритма начинается со случайно выбранного проверочного множества и соответствующей проверочной матрицы. На первом шаге вычитается синдром и делается предположение, что фактическая комбинация ошибок совпадает с синдромом на проверочных позициях и равна 0 на информационных. Следующий шаг заключается в изменении проверочного множества, состоящем в замене одного из его элементов каким-нибудь элементом информационного множества. Эта замена всегда производится так, чтобы вес нового синдрома не превышал веса существующего. После этого рассматривается новое решение, основанное на новом синдроме. Таким образом, изменение веса синдрома используется в качестве градиентной функции при поиске истинного решения. К сожалению, несмотря на то, что требуемое решение действительно является решением с минимальным весом, попытка минимизировать вес синдрома при каждой итерации не гарантирует минимизации числа шагов, приводящих к истинному решению. В некоторых случаях такая процедура действительно оказывается неэффективной. Используя моделирование на ЭВМ, можно показать, что алгоритм Омуры аналогичен алгоритму, согласно которому позиции переставляются случайным образом. Однако при возникновении некоторых случайных событий можно получить дополнительную информацию о положении ошибок, которая приведет к более быстрому завершению поиска решения. В подразд. 3.2.4.1-3.2.4.3 мы прежде всего подробно обсудим алгоритм Омуры. Вначале рассмотрим вычислительную сложность алгоритма, единственное отличие которого от алгоритма Омуры состоит в том, что перестановки производятся без всякого привлечения информации о положении ошибок. Эту модель будем использовать в качестве стандарта, с которым будем сравнивать результаты моделирования алгоритма Омуры. Наконец, рассмотрим модификацию алгоритма Омуры, которая в некоторых случаях позволяет сократить число вычислений. Для большей конкретизации рассмотрим декодирование квадратично-вычетного 3.2.4.1. Некоторые детали, относящиеся к алгоритму Омуры. Основные шаги алгоритма Омуры таковы: 1. Начинаем с принятой последовательности матрица в канонической форме, отвечающая проверочному множеству 2. Вычисляем синдром Заметим, что если
то
3. Находим такой элемент информационного множества, при перестановке которого с некоторым элементом проверочного множества вес нового синдрома 4. Производим соответствующую перестановку, вычисляем новую матрицу Н с помощью элементарных операций над строками и выбираем новый вектор ошибок 5. Если вес Все описанные шаги являются понятными, кроме шага 3. Для того чтобы проделать шаг 3, нужно исследовать влияние возможной ошибки на каждой из позиций данного информационного множества. Другими словами, нужно определить, какая комбинация ошибок в проверочном множестве вместе с заданной ошибкой приводит к имеющемуся синдрому. Это можно сделать, добавляя столбец проверочной матрицы, соответствующий заданной ошибке, к имеющемуся синдрому. Если вес новой комбинации ошибок (включая заданную ошибку в информационном множестве) будет меньше веса имеющейся комбинации ошибок, то полученная комбинация явится более хорошим решением. Таким образом, на шаге 3 находится наилучшее решение проверочных уравнений в предположении, что вне проверочного множества имеется ровно одна ошибка. Чтобы найти новое проверочное множество и новую матрицу Н, совместимые с этим наилучшим решением, нужно выбрать элемент проверочного множества, который: 1) можно переставить с данным элементом информационного множества, 2) равен 1 в имеющемся векторе ошибок. Необходимость последнего требования сразу вытекает из того, что синдром, соответствующий данному вектору ошибок, получается сложением тем столбцов матрицы Н, которые соответствуют ошибкам. Старый вектор ошибок будет по-прежнему решением проверочных уравнений, соответствующих модифицированной матрице Н. Таким образом, выбранный столбец информационного множества может изменить синдром только в том случае, если он будет согласован с существующей ошибкой. Может, конечно, оказаться, что ни одно из возможных изменений не приводит к синдрому меньшего веса. В этом случае можно либо взять один из новых векторов, если он имеет тот же вес, либо сохранить имеющееся решение. Чтобы сохранить имеющееся решение, нужно лишь произвести любую допустимую перестановку, в результате которой элемент текущего проверочного множества не будет согласовываться с единичным элементом текущей комбинации ошибок. Рассмотрим, например,
Проверим столбец 1:
Проверим столбец 2:
Проверим столбец 3:
Проверим столбец 4: (см. скан) Любая перестановка увеличивает вес ошибки. Поэтому мы переставляем любой из четырех столбцов и столбец, соответствующий нулевому элементу текущего синдрома. Если выбрать столбцы (1) и (7), новые проверочные соотношения становятся такими: (см. скан) Проверим столбец 2: (см. скан) Проверим столбец 3: (см. скан) Проверим столбец 4: (см. скан) Проверим столбец 7: (см. скан) Вновь ни один из вариантов выбора не является приемлемым. Следующим шагом логично было бы переставить столбцы 2 и 8. Если сделать это, то можно убедиться, что не получится комбинации ошибок меньшего веса. Для экономии места рассмотрим перестановку столбцов 4 и 8. Она дает (см. скан) Проверим столбец 2: (см. скан) Проверим столбец 4:
Это дает решение с минимальным весом, и поиск заканчивается. 3.2.4.2. Свойства полностью случайного алгоритма декодирования. Рассматривая полностью случайный алгоритм декодирования, можно глубже понять процесс сходимости алгоритма Омуры к истинной комбинации ошибок. При таком рассмотрении случайный алгоритм является стандартом, с которым можно сравнивать поведение алгоритма Омуры. Для большей конкретности рассмотрим Декодер может находиться в одном из шести состояний, в зависимости от числа ошибок в проверочном и информационном множествах. Назовем нулевым состояние, при котором в проверочном множестве не содержится ни одной ошибки, а в информационном множестве их пять, первым — состояние, при котором в проверочном множестве содержится одна ошибка, а в информационном — четыре и т. д. Цель алгоритма декодирования состоит в том, чтобы достичь состояния 5. Процесс декодирования можно описать, задав начальные вероятности нахождения в каждом из состояний и переходные вероятности, указывающие вероятность перехода из одного состояния в другое. Эти вероятности легко вычислить следующим образом. Начальная вероятность состояния
Вероятность состоянии 2, то две ошибки покрыты, а три — нет. Чтобы осуществить переход в состояние 3, нужно выбрать безошибочную позицию из проверочного множества и поменять ее местами с ошибочной позицией информационного множества. Используя такие рассуждения, переходные вероятности можно рассчитать как
а в частных случаях
Все остальные вероятности
Рис. 3.8. Диаграмма состояний случайного декодера при декодировании комбинации пяти ошибок в функция
где Таким образом, вероятность успешного декодирования за
а среднее число необходимых для декодирования операций
Эти величины легко вычисляются с помощью
Рис. 3.9. Зависимость от Моделируя на ЭВМ алгоритм Омуры и используя его для декодирования большого числа комбинаций ошибок веса 5, можно получить, что требуемое число вычисления почти точно задается кривой, изображенной на рис. 3.9. Отсюда можно сделать вывод, что попытка минимизировать вес синдрома не увеличивает скорости сходимости алгоритма к минимальному значению. Причина такого явления, возможно, состоит в том, что не существует механизма, с помощью которого минимизация веса 3.2.4.3. Модифицированный алгоритм Омуры. Существует метод, позволяющий увеличить скорость, с которой декодер находит ошибку минимального веса. Заметим прежде всего, что если в процессе декодирования Одна из возникающих при этом проблем состоит в том, что в реальной ситуации, в которой нужно производить декодирование, априори неизвестно, что вес минимальной комбинации действительно равен 5. Эту сложность можно преодолеть, предположив, что найденная комбинация ошибок наименьшего веса указывает на свободные от ошибок позиции, и построив работу декодера в соответствии с этим предположением. Если в дальнейшем будет найдена комбинация ошибок меньшего веса, то она займет место предыдущей комбинации и все действия, основанные на этом предположении, отменятся. Основываясь на упомянутом наблюдении и на экспериментальных данных, указывающих на несущественность порождения при каждой итерации синдрома минимального веса, можно предложить следующую процедуру поиска. 1. Начинаем с матрицы Н в канонической форме, соответствующей синдрому 2. Принимаем вектор ошибки, основанный на текущем синдроме. Если вес этого вектора не превышает 3. Последовательно добавляем каждый столбец проверочной матрицы, соответствующий позиции из информационного множества 4. После просмотра всего информационного множества выбираем (если возможно) два элемента, которые можно переставить таким образом, чтобы один из элементов лежал в множествах и 5. Используя элементарные операции над строками, порождаем новую матрицу Н, соответствующую новым информационному и проверочному множествам. Вычисляем новый синдром и переходим к шагу 3. 6. Если после некоторого определенного числа шагов работа согласно алгоритму не прекращается, то текущий вектор ошибки принимаем в качестве наилучшего решения. Шаги 4 и 5 описанного алгоритма можно объединить. Для этого вначале нужно взять данный столбец Н и добавить его к текущему Улучшение, достигаемое при использовании данного алгоритма по сравнению с алгоритмом Омуры, зависит от того, насколько часто удается найти комбинацию минимального веса, которая приводит к правильному, «свободному от ошибок», множеству. Распределение числа перестановок, необходимых для декодирования большого числа комбинаций ошибок веса 5 в
Рис. 3.10. Зависимость от быстро, что приводит к нахождению комбинации наименьшего веса за небольшое число итераций. B заметном числе случаев истинная комбинация ошибок была найдена даже без нахождения комбинации веса 7. Хотя иногда такое событие оказывается чисто случайным, для некоторого вектора ошибок веса 5, по-видимому, нельзя найти кодовое слово веса 12, которое в сумме с этой комбинацией ошибок дает слово веса 7. Для сравнения интересно вычислить диаграмму переходов между состояниями, аналогичную изображенной на рис. 3.8, в случае, когда ошибка, однажды включенная в проверочное множество, не может быть в дальнейшем из него исключена. Такое правило удаляет из диаграммы все переходы вниз и несколько меняет вероятности остальных переходов. При вычислении числа итераций для этой диаграммы получается результат, близкий к тому, который соответствует модифицированному алгоритму. Конечно, после того, как удается найти комбинацию ошибок веса 7, модифицированный алгоритм «ведет себя» именно таким образом. Это позволяет считать, что ошибки веса 7 встречаются достаточно часто, для того чтобы новая диаграмма переходов хорошо моделировала поведение модифицированного алгоритма. Методы случайного поиска являются примерами алгоритмов с переменным временем декодирования. Распределение числа итераций, показанное на рис. 3.9 и 3.10, справедливо лишь для комбинаций из пяти ошибок. Аналогичные распределения для других комбинаций ошибок можно вычислить такими же методами, и требуемый объем вычислений существенно уменьшается для комбинаций малой кратности. Можно вычислить среднее распределение числа итераций, усредняя все распределения с весами, равными вероятностям появления ошибок данной кратности (которые являются функциями вероятности ошибок в канале). В типичных случаях среднее распределение числа итераций будет существенно лучшим, чем показанное на рис. 3.9, 3.10. Непостоянство числа итераций, необходимых для декодирования кодового слова, может оказаться серьезной проблемой при построении декодера. (Аналогичным является поведение последовательных декодеров сверточных кодов, которое будет подробно рассматриваться в гл. 7.) Ясно, что декодер должен по крайней мере удовлетворять некоторым усредненным ограничениям на скорость вычислений. Однако ввиду непостоянства числа итераций вычислительные возможности декодера должны существенно превышать требования на объем вычислений. Влияние непостоянства может быть уменьшено введением буфера, длина которого в несколько раз превышает длину кодового слова. При заданном качестве декодирования имеется связь между емкостью буфера и скоростью вычислений декодера.
|
1 |
Оглавление
|