КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Декодирование принимаемой кодовой комбинации. 1 страница
Существуют различные методы декодирования кодов БЧХ. В настоящей лабораторной работе рассматривается алгебраический метод, основанный на использовании алгоритма Питерсона-Горенстейна-Цирлера [2]. Предположим, что при прохождении по каналу связи сформированная в п.4.2 комбинация вследствие воздействия помех превратилась в принимаемую кодовую комбинацию 1) , т.е. произошла одна ошибка в 22-м разряде (если считать первым−младший, крайний справа разряд), что соответствует полиному ошибок ; 2) , т.е. произошло две ошибки в 29-м и 5-м разрядах, что соответствует полиному ошибок . (Отметим, что в реальной ситуации, моделируемой в лабораторной работе, переданная комбинация и вид многочлена ошибок неизвестны.) Процедуре определения количества ошибок и их исправления предшествует процесс вычисления синдрома принятой кодовой комбинации. Как известно [2], код синдрома состоит из элементов , которые могут быть рассчитаны в расширении поля как , (5) где − многочлен над полем , соответствующий принимаемой кодовой комбинации ; − значение -го разряда () кода ; − примитивный элемент поля . Вычисления по формуле (5) удобно выполнить, используя возможности, представляемые пакетом Matlab. Для этого необходимо: 1) в командном окне системы Matlab задать полином над полем , соответствующий принимаемой комбинации . Для двух рассматриваемых нами случаев приёма и (при ) это можно сделать с использованием команд 2) задать вектор набора степеней примитивного элемента расширения поля , которые в соответствии с (5) представляют собой значения аргументов при вычислении элементов синдрома . При этом следует использовать десятичные представления элементов (см. Табл. П.3, и П.4). В рассматриваемом примере (при , ) этот вектор задаётся командой 3) с использованием команды , вычислить вектор элементов синдрома. Команда , позволяет оценить значение многочлена в расширении поля , которому принадлежат задаваемые в качестве аргумента значения . В нашем примере для расчёта векторов элементов синдрома и в командном окне системы Matlab следует записать: ; ; Выполнение этих команд даёт следующие результаты: ; (6) . (7) Каждое из полученных чисел отражает собой десятичное представление значения соответствующего элемента синдрома в поле , т.е. . Отметим, что, если принятая комбинация не содержит ошибок, вектор синдрома будет содержать одни нули. В этом можно убедиться, вычислив синдром сформированной ранее передаваемой кодовой комбинации , выполнив команды . Первая из этих команд позволяет по полученному ранее многочлену над полем сформировать соответствующий ему многочлен над расширением поля , а вторая − оценить значение этого многочлена при заданном векторе входных аргументов . В результате этого оценивания получается нулевой синдром , т.е. = 0. Поскольку вектор элементов синдрома мы определяли как , а , причём = 0, то должно выполняться следующее соотношение: (8) где − (8a) многочлен ошибок, содержащий слагаемых вида , каждое из которых соответствует наличию ошибки на позиции , имеющей ненулевое значение (индекс обозначает номер ошибки, а индекс −расположение -й ошибки в кодовом слове); −количество ошибок в принятой кодовой комбинации. При этом выражение, определяющее вычисленный ранее (с использованием ), например, первый элемент синдрома на основании (8) с учётом (8a) можно записать как результат вычисления значения полинома при : . (9) Вводя в рассмотрение величины локаторов ошибок и новые обозначения для величин ошибок соотношение (9) можно представить в виде: . Аналогичным образом, вычисляя значения при , получаем выражения, определяющие остальные элементы синдрома, например, и т.д. Совокупность этих выражений можно рассматривать как систему, содержащую нелинейных уравнений с неизвестными и . Решение этой системы, т.е. определение значений и , и составляет проблему декодирования принятой комбинации с исправлением присутствующих в ней ошибок. Вместе с тем нелинейность входящих в состав системы уравнений делает эту задачу весьма сложной. Рассмотрим способ её решения, называемый алгоритмом Питерсона-Горенстейна-Цирлера. В соответствии с этим алгоритмом вводится в рассмотрение полином локаторов ошибок , определяемый следующим образом: . (10) Как видно из первого из равенств (10), корнями многочлена будут величины , обратные значениям локаторов ошибок , определяющих позиции расположения ошибок в полиноме . Определение коэффициентов полинома (10) осуществляется на основе авторегрессионной техники моделирования[2,4], в соответствии с которой составляется матричное уравнение, связывающее предшествующие значений элементов синдрома с последующим. В общем виде это уравнение выглядит так: (11) Поскольку для элементов конечных полей справедливо равенство при любых и , знаком «−» в правой части соотношения (11) можно пренебречь. Соотношение (11) записано в предположении, что число ошибок , присутствующих в анализируемой кодовой комбинации, равно исправляющей способности кода . При этом определитель матрицы должен быть отличен от нуля. В случае, если , матричное уравнение (11) не имеет решения. Это говорит о том, что порядок полинома локаторов (а, следовательно, и число ошибок) . В такой ситуации следует уменьшить на 1 число строк и столбцов квадратной матрицы (убрать последние строку и столбец), сократив соответствующим образом и размерность двух других присутствующих в (11) матриц (векторов-столбцов). В итоге соотношение (11) трансформируется к виду: . Данную процедуру следует выполнять до тех пор, пока определитель преобразованной матрицы не станет отличным от нуля. При этом зафиксированное в этом случае количество строк (или столбцов) этой матрицы и определяет число ошибок в анализируемой комбинации. Возвращаясь к рассматриваемым примерам, в которых для кода (31,21), на основании (11) можно записать: . (12) После подстановки в (12) найденных ранее значений элементов синдрома (6) в первом рассматриваемом примере это уравнение принимает вид: 1) . (13) Напомним, что фигурирующие в выражении (13) числа отражают десятичное представление элементов поля . Для вычисления определителя матрицы воспользуемся возможностями системы Matlab, записав следующие команды: ; . Первая из этих команд задаёт матрицу в поле , а вторая − вычисляет её определитель и возвращает в рассматриваемом примере значение da, равное 0. Это позволяет сделать вывод о том, что в анализируемой кодовой комбинации присутствует менее двух ошибок, т.е. одна ошибка. (О её наличии говорит тот факт, что синдром (6) данного блока кода является ненулевым вектором). В соответствии с приведёнными выше рекомендациями преобразуем соотношение (13) к виду: , откуда с использованием таблицы П.4 получаем: . Найденное значение позволяет записать полином локаторов ошибок в виде: или . Корень этого полинома (значение , при котором ) нетрудно определить из уравнения , откуда . Данному корню соответствует значение локатора ошибок , который указывает, что единственная ошибка в кодовой комбинации находится на позиции, соответствующей в многочлене . Поскольку рассматриваемый код является двоичным, для исправления этой ошибки достаточно изменить значение 22-го разряда (если считать первым−младший, крайний справа разряд) комбинации с 1 на 0. При этом принимаемый кодовый блок превращается в переданную комбинацию . Во втором из рассматриваемых примеров после подстановки в (12) найденных ранее значений элементов синдрома (7) это уравнение принимает вид: 2) (14) В данном случае матрица , вводимая в командном окне системы Matlab оператором ; (15) имеет ненулевой определитель , вычисляемый по команде . Это говорит о том, что матричное уравнение (14) имеет решение и в исследуемой комбинации присутствует ошибки. Для решения уравнения (14) нужно обе его части умножить слева на матрицу , обратную матрице . При этом получим: , (16) откуда могут быть определены значения и . Процедуры обращения матрицы и матричного умножения в поле целесообразно выполнить с использованием возможностей системы Matlab. Поскольку матрица была уже введена оператором (15), для её обращения (т.е. получения матрицы ) достаточно выполнить команду . Затем необходимо ввести значение второго сомножителя правой части выражения (16) и выполнить перемножение матриц. Это делается с использованием следующих операторов: ; . В результате их выполнения получаем: . Подставляя этот результат в выражение (16), имеем: , откуда имеем и . Найденные значения и позволяют записать полином локаторов ошибок в виде: . В отличие от первого примера в данном случае порядок этого полинома равен 2, поэтому процедура определения его корней в поле является более сложной. Для её выполнения необходимо поочерёдно вычислять значения полинома, подставляя вместо все ненулевые значения элементов поля до тех пор, пока при двух из них (которые и являются корнями) не получим . Удобнее эту операцию выполнить с использованием возможностей системы Matlab, записав следующие команды: ; . В результате их выполнения получаем: .Для нахождения значений локаторов ошибок и необходимо вычислить величины, обратные значениям найденных корней. Это нетрудно сделать, воспользовавшись данными табл. П.3 или с помощью команды Matlab . В результате её выполнения выводятся значения , которые в степенном представлении (см. табл.П.3) соответствуют значениям и . Это указывает на то, что ошибки в кодовой комбинации находится на позициях, соответствующих и в многочлене . Поскольку рассматриваемый код является двоичным, для исправления этих ошибок достаточно изменить значения 29-го и 5-го разрядов (если считать первым−младший, крайний справа разряд) комбинации с 1 на 0. При этом принимаемый кодовый блок превращается в переданную комбинацию . 4.4. Краткое описание алгоритма моделирующей программы и методики работы с ней. Блок-схема алгоритма моделирующей программы остаётся такой же, как и в лабораторной работе №1 и представлена на рис.1.1. методических указаний к работе №1. Методика работы с программой также остаётся прежней (изложенной в п.4.4 методических указаний к работе №1) за исключением того, что в отличие от работы 1 в данном случае в ответ на запрос “Введите значение исправляющей спосбности t =” следует вводить различные значения , указанные в таблице П.1.2 в соответствии с вариантом задания.
Контрольные вопросы
1. Изложите методику определения порождающего многочлена кода БЧХ. 2. Изложите методику кодирования с использованием кода БЧХ. 3. Поясните назначение и методику определения многочлена при кодировании с использованием кода БЧХ. 4. Что такое синдром? 5. Изложите методику определения синдрома. 6. Поясните правило определения десятичного представления элементов расширения поля . 7. Поясните идею составления системы, содержащей нелинейных уравнений с неизвестными и , решаемую методом Питерсона-Горенстейна-Цирлера. 8. Что такое многочлен локаторов ошибок? 9. Как определяются коэффициенты многочлена локаторов ошибок? 10. Как определяется число ошибок в принятой кодовой комбинации? 11. Как определяется местонахождение ошибок в принятой кодовой комбинации и как они исправляются? 12. Какими параметрами задаётся код БЧХ? 13. Как построена моделирующая программа (привести ее алгоритм)? 14. Как оценивается вероятность ошибки в дискретном канале (без кодека)? 15. Как оценивается вероятность ошибки в системе с кодеком? 16. Как зависит вероятность ошибки в системе с кодеком от исправляющей способности и скорости кода? Литература 1.Конспект лекций по ПДС. 2. Блейхут Р. Теория и практика кодов, контролирующих ошибки.− М. «Мир», 1986 г. 3. Султанов Б.В., Иванов А.П. Геращенко С.М. Математические основы построения помехоустойчивых блочных кодов. Учебное пособие. ПГУ, 2006 4. Скляр Б. Цифровая связь. Теоретические основы и практическое применение. М.: Издательский дом «Вильямс», 2003 г.
Приложение Таблица П.1.1. Варианты заданий к п. 2 − 4 лабораторной работы 2.
Дата добавления: 2015-07-02; Просмотров: 729; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |