71698

ТЕХНОЛОГИЯ ПОМЕХОУСТОЙЧИВОГО КОДИРОВАНИЯ

Лабораторная работа

Коммуникация, связь, радиоэлектроника и цифровые приборы

Разработка методов помехоустойчивого кодирования, была инициирована основанной теоремой Шеннона для дискретного канала с шумом, указывающей на существование практически безошибочного метода передачи информации по такому каналу со скоростью, не превышающей пропускную способность этого канала.

Русский

2014-11-10

54.12 KB

1 чел.

Министерство образования Республики Беларусь

Учреждение образования

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Кафедра ИТАС

Лабораторная работа №8

«ТЕХНОЛОГИЯ ПОМЕХОУСТОЙЧИВОГО КОДИРОВАНИЯ»

Выполнил

студент гр. 120604

Урбанович П.К.

Проверил:

Стригалев Л.С.

                                                       Минск 2013

  1.  Цель работы

Изучение свойств помехоустойчивого  кодирования на примере групповых кодов.

  1.  Общие сведения

2.1. Общие принципы помехоустойчивого кодирования 

Разработка методов помехоустойчивого кодирования, была инициирована основанной теоремой Шеннона для дискретного канала с шумом, указывающей на существование практически безошибочного метода передачи информации по такому каналу со скоростью, не превышающей пропускную способность этого канала. Названный метод передачи информации предполагает использование корректирующего кода, основанного на введении специально организованной избыточности.  

Корректирующие коды подразделяются на блочные и непрерывные. В блочных кодах каждому передаваемому сообщению (кодовому вектору, состоящему из m символов) сопоставляется блок из n символов (n > m). В непрерывных (рекуррентных или цепных) кодах символы, не подразделяются на блоки и представляют собой непрерывную последовательность. И блочные и непрерывные коды делятся на разделимые, и неразделимые. У разделимых кодов информационные и проверочные символы имеют определенные позиции, неразделимые же коды таким свойством не обладают.

Разделимые блочные коды подразделяются, на  линейные и  нелинейные. Линейные коды составляют небольшой, но практически важный подкласс блоковых кодов. Линейные коды часто называют групповыми кодами, поскольку кодовые вектора этих кодов состоят из элементов поля, состоящего из двух абелевых групп. Важнейшей в практическом плане разновидностью таких кодов являются двоичные групповые коды, алфавит которых состоит из двух символов: "0" и "1", образующих поле с двумя абелевыми группами: группу по двоичному умножению и группу по операции сложения по модулю 2 (именно таким кодам и посвящена настоящая лабораторная работа). Наиболее лаконичной формой записи данных кодов является матричная форма, которая и используется далее.

Групповой двоичный код образуется следующим образом. Пусть – последовательность, состоящая из L двоичных символов на  входе кодирующего устройства, а – последовательность, состоящая из N (N > L)  двоичных символов, на  его выходе. Групповой  (N, L)-код  формируется следующим образом

                ,                                                  (1)

где – порождающая матрица группового двоичного кода (при  этом операции умножения и  сложения  в  (1) образуют поле с двумя упомянутыми выше  абелевыми группами).

Вектор в (1) обладает таким свойством, что для любого  справедливо

       ,                                                            (2)

где – проверочная  матрица группового двоичного кода.

При передаче информации (в пространстве или во времени) имеет место     

          ,

где  – вектор ошибки, знак – обозначает суммирование по модулю 2.

Рассмотрим следующее матричное произведение

                                            .                                                    (3)

Вектор в (3), называемый синдромом будет равен вектору нуль () только в двух случаях: либо ошибки нет (), либо имеет место так называемая не обнаруживаемая ошибка. Общее количество таких не обнаруживаемых ошибок (при общем количество возможных ошибочных передач  ) для каждого составит .

Таким образом, на все множество ошибок (– множество передаваемых сообщений)  синдром "откликнется"  лишь значениями. Отсюда следует, что если помеховая среда однородна (характеризуется простой и стабильной статистикой ошибок), то поставив синдромы  в соответствие с наиболее вероятные ошибки, можно существенно повысить качество передачи информации, если же помеховая среда не стабильна, то эффект может оказаться обратным.

  1.  Ход работы.

Пусть L=4, а N=8. Выберем   вектор u, равный:

u=[1,0,0,0]  

u =

    1     0     0     0  

Порождающая матрица для кода (8,4) будет иметь вид:

G=[1,0,0,0,0,1,1,1;0,1,0,0,1,0,1,1;0,0,1,0,1,1,0,1;0,0,0,1,1,1,1,0]  

G =

    1     0     0     0     0     1     1     1

    0     1     0     0     1     0     1     1

    0     0     1     0     1     1     0     1

    0     0     0     1     1     1     1     0  

Теперь найдем вектор :

x=mod(u*G,2)  

x =

    1     0     0     0     0     1     1     1  

Проверочная матрица будет иметь вид:

H=[0,1,1,1;1,0,1,1;1,1,0,1;1,1,1,0;1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1]  

H =

    0     1     1     1

    1     0     1     1

    1     1     0     1

    1     1     1     0

    1     0     0     0

    0     1     0     0

    0     0     1     0

    0     0     0     1  

Проверим    условие:

z=mod(x*H,2)  

z =

    0     0     0     0  

Найдем ,    выбрав    е=(0, 1, 0, 0, 0, 0,0,0)

e=[0 1 0 0 0 0 0 0]  

e =

    0     1     0     0     0     0     0     0  

y=mod(x+e, 2)  

y =

    1     1     0     0     0     1     1     1  

Найдем синдром :

s= mod(y*H, 2)  

s =

    1     0     1     1  

Теперь найдем синдром ошибки :

s= mod(e*H, 2)  

s =

    1     0     1     1  

Делаем вывод, что это  бернулиева помеха (символы искажаются независимо друг от друга). Для её исправления к вектору y, получаемому по формуле и имеющем вид:

y =

    1     1     0     0     0     1     1     1  

Прибавим вектор ошибки e, соответствующий найденному синдрому и равный:

e =

    0     1     0     0     0     0     0     0  

Получаем вектор x, равный:

x=mod(y+e, 2)  

x =

    1     0     0     0     0     1     1     1  

Не трудно заметить, что ошибка полностью скомпенсирована.

Выводы:

В ходе лабораторной работы был построен двоичный групповой код по  заданному (N,L) коду. Были построены проверочная и порождающая матрицы, вектор ошибок и синдром. А также проведен анализ помехоустойчивости (N,L) кода.  


 

А также другие работы, которые могут Вас заинтересовать

69750. Параметри-змінні 25 KB
  Для того, щоб результат обчислень у тілі процедури зручно було використати в програмі, треба не фіксувати змінну, якій присвоюється одержане значення, а зробити її також параметром. Позначимо цю змінну, наприклад, res і введемо її в список формальних параметрів процедури.
69751. Принцип локалізації 38 KB
  Метод покрокової деталізації та апарат процедур якраз і дають змогу вести таку паралельну розробку програм. Створені часткові алгоритми подають у вигляді досить автономних частин програми - описів процедур, які потім достатньо вставити в розділ опису процедур і функцій програми.
69752. Параметри-процедури і параметри-функції 28.5 KB
  Як формальні параметри в мові Паскаль, крім параметрів-значень і параметрів-змінних, використовують також імена процедур і функцій. Параметри-процедури в списку формальних параметрів в авторській версії Паскаль зазначають після службового слова procedure.
69753. Перетворення типів 28.5 KB
  Однак Турбо Паскаль допускає в певних межах такі перетворення які треба задавати в явному вигляді. Є три способи задавати перетворення типів: неявні перетворення використання стандартних функцій і явні перетворення.
69754. Вставляння заданого елемента 27.5 KB
  Заданий елемент у рядок вставлятимемо за вказівкою на ланку, після якої він повинен бути. Нехай початковий динамічний рядок має вигляд, показаний на рис. 11.3. Після В треба вставити D. Цей випадок схематично зображено на рис...
69755. Шукання елемента списку 22.5 KB
  Алгоритм шукання елемента в списку аналогічний до шукання в динамічному рядку. Тому для списку теж складемо логічну функцію, побічним ефектом якої є інформація про першу за порядком ланку, яка містить шуканий елемент.
69756. Поняття про графи і дерева 39 KB
  Графом називають скінченну множину точок - вершин графа, для деяких пар якої налагоджені зв’язки - ребра графа. Розглянемо використання графів для зображення динамічних структур. Нехай є деяка структура, що складається з записів, пов’язаних між собою системою вказівок...
69757. Особливості використання динамічних змінних 26.5 KB
  3 доступ до динамічних змінних відбувається за допомогою змінних з вказівником. Множина операцій над змінними з вказівником визначена типом цих динамічних змінних. Зрозуміло що для реалізації цього алгоритму можна було б не використовувати вказівних змінних і динамічних структур...
69758. Технології передавання повідомлень 38 KB
  Сокет це абстрактна кінцева точка з’єднання через яку процес може відсилати або отримувати повідомлення. Під час обміну даними із використанням сокетів зазвичай застосовується технологія клієнтсервер коли один процес сервер очікує з’єднання а інший клієнт з’єднують із ним.