Автор работы: Пользователь скрыл имя, 26 Декабря 2012 в 19:21, курсовая работа
Аналитический обзор по помехоустойчивому кодированию. Классификация помехоустойчивых кодов и сравнение характеристик методов коррекции ошибок.
История кодирования, контролирующего ошибки 2
Приложения 5
Общие сведения о кодах и системах кодированной связи 7
Мешающие влияния в каналах связи 13
Основные принципы помехоустойчивого кодирования 18
Пример. 21
Краткая классификация 23
Практика кодирования 31
Код Хэмминга 40
Оглавление
История кодирования, контролирующего ошибки 2
Приложения 5
Общие сведения о кодах и системах кодированной связи 7
Мешающие влияния в каналах связи 13
Основные принципы помехоустойчивого кодирования 18
Пример. 21
Краткая классификация 23
Практика кодирования 31
Код Хэмминга 40
Помехоустойчивое кодирование
Когда мы передаем сообщение от источника к приемнику, при передаче данных может произойти ошибка (помехи, неисправность оборудования и пр.). Чтобы обнаружить и исправить ошибку, применяют помехоустойчивое кодирование, т.е. кодируют сообщение таким образом, чтобы принимающая сторона знала, произошла ошибка или нет, и при могла исправить ошибки в случае их возникновения.
По сути, помехоустойчивое кодирование — это добавление к исходной информации дополнительной, проверочной, информации. Для кодирования на передающей стороне используются кодер, а на принимающей стороне — используют декодер для получения исходного сообщения.
История кодирования, контролирующего ошибки, началась в 1948 г. публикацией знаменитой статьи Клода Шеннона. Шеннон показал, что с каждым каналом связано измеряемое в битах в секунду и называемое пропускной способностью канала число С, имеющее следующее значение. Если требуемая от системы связи скорость передачи информации R (измеряемая в битах в секунду) меньше С, то, используя коды, контролирующие ошибки, для данного канала можно построить такую систему связи, что вероятность ошибки на выходе будет сколь угодно мала. В самом деле, из шенноновской теории информации следует тот важный вывод, что построение слишком хороших каналов является расточительством; экономически выгоднее использовать кодирование. Фактически в работе Шеннона утверждается, что мощность сигнала, шум в канале и полоса частот ограничивают лишь скорость передачи, а не ее точность. Шеннон, однако, не указал, как найти подходящие коды, а лишь доказал их существование. В пятидесятые годы много усилий было потрачено на попытки построения в явном виде классов кодов, позволяющих получить обещанную сколь угодно малую вероятность ошибки, но результаты были скудными. В следующем десятилетии решению этой увлекательной задачи уделялось меньше внимания; вместо этого исследователи кодов предприняли длительную атаку по двум основным направлениям.
Первое направление носило чисто алгебраический характер и преимущественно рассматривало блоковые коды. Первые блоковые коды были введены в 1950 г., когда Хэмминг описал класс блоковых кодов, исправляющих одиночные ошибки. Коды Хэмминга были разочаровывающе слабы по сравнению с обещанными Шенноном гораздо более сильными кодами. Несмотря на усиленные исследования, до конца пятидесятых годов не было построено лучшего класса кодов. В течение этого периода без какой-либо общей теории были найдены многие коды с малой длиной блока. Основной сдвиг произошел, когда Боуз и Рой-Чоудхури [1960] и Хоквингем [1959] нашли большой класс кодов, исправляющих кратные ошибки (коды БЧХ), а Рид и Соломон [1960] нашли связанный с кодами БЧХ класс кодов для недвоичных каналов. Хотя эти коды остаются среди наиболее важных классов кодов, общая теория блоковых кодов, контролирующих ошибки, с тех пор успешно развивалась.
Открытие кодов БЧХ привело к поиску практических методов построения жестких или мягких реализации кодеров и декодеров. Первый хороший алгоритм был предложен Питерсоном. Впоследствии мощный алгоритм выполнения описанных Питерсоном вычислений был предложен Берлекэмпом и Месси, и их реализация вошла в практику как только стала доступной новая цифровая техника. Второе направление исследований по кодированию носило скорее вероятностный характер. Ранние исследования были свя-заны с оценками вероятностей ошибки для лучших семейств блоковых кодов, несмотря на то, что эти лучшие коды не были известны. С этими исследованиями были связаны попытки понять кодирование и декодирование с вероятностной точки зрения, и эти попытки привели к появлению последовательного декодирования. В последовательном декодировании вводится класс неблоковых кодов бесконечной длины, которые можно описать деревом и декодировать с помощью алгоритмов поиска по дереву. Наиболее полезными древовидными кодами являются коды с тонкой структурой, известные под названием сверточных кодов. Эти коды можно генерировать с помощью цепей линейных регистров сдвига, выполняющих операцию свертки информационной последовательности. В конце 50-х годов для сверточных кодов были успешно разработаны алгоритмы последовательного декодирования. Интересно, что наиболее простой алгоритм декодирования - алгоритм Витерби - не был разработан для этих кодов до 1967 г. Применительно к сверточным кодам умеренной сложности алгоритм Витерби пользуется широкой популярностью, но для более мощных сверточных кодов он не практичен.
В 70-х годах эти два
направления исследований опять
стали переплетаться. Теорией сверточных
кодов занялись алгебраисты, представившие
ее в новом свете. В теории блоковых кодов
за это время удалось приблизиться к кодам,
обещанным Шенноном: были предложены две
различные схемы кодирования (одна Юстесеном,
а другая Гоппой), позволяющие строить
семейства кодов, которые одновременно
могут иметь очень большую длину блока
и очень хорошие характеристики. Обе схемы,
однако, имеют практические ограничения.
Между тем к началу 80-х годов кодеры и декодеры
начали появляться в конструкциях цифровых
систем связи и цифровых систем памяти.
Так как развитие кодов, контролирующих ошибки, первоначально стимулировалось задачами связи, терминология теории кодирования проистекает из теории связи. Построенные коды, однако, имеют много других приложений. Коды используются для защиты данных в памяти вычислительных устройств и на цифровых лентах и дисках, а также для защиты от неправильного функционирования или шумов в цифровых логических цепях. Коды используются также для сжатия данных, и теория кодирования тесно связана с теорией планирования статистических экспериментов.
Приложения к задачам связи
носят самый различный
Во многих системах связи имеется ограничение на передаваемую мощность. Например, в системах ретрансляции через спутники увеличение мощности обходится очень дорого. Коды, контролирующие ошибки, являются замечательным средством снижения необходимой мощности, так как с их помощью можно правильно восстановить полученные ослабленные сообщения. Передача в вычислительных системах обычно чувствительна даже к очень малой доле ошибок, так как одиночная ошибка может нарушить программу вычисления. Кодирование, контролирующее ошибки, становится в этих приложениях весьма важным. Для некоторых носителей вычислительной памяти использование кодов, контролирующих ошибки, позволяет добиться более плотной упаковки битов. Другим типом систем связи является система с многими поль-зователями и разделением по времени, в которой каждому из данного числа пользователей заранее предписаны некоторые временные окна (интервалы), в которых ему разрешается передача. Длинные двоичные сообщения разделяются на пакеты, и один пакет передается в отведенное временное окно. Из-за нарушения синхронизации или дисциплины обслуживания некоторые пакеты могут быть утеряны. Подходящие коды, контролирующие ошибки, защищают от таких потерь, так как утерянные пакеты можно восстановить по известным пакетам.
Связь важна также внутри одной
системы. В современных сложных
цифровых системах могут возникнуть
большие потоки данных между подсистемами.
Цифровые автопилоты, цифровые системы
управления процессами, цифровые переключательные
системы и цифровые системы обработки
радарных сигналов - все это системы,
содержащие большие массивы цифровых
данных, которые должны быть распределены
между многими взаимно
Код есть форма представления сообщения, не зависящая от его физической сути. Это отличает код от сигнала, который определяет физическое представление сообщения (и кода) в системе связи. На практике, однако, часто связывают абстрактную (символьную) форму кода с физическими сигналами, называя код частотным, временным, фазовым, амплитудным. Код представляют совокупностью (кодовых) символов; помехоустойчивый код позволяет обнаруживать или исправлять ошибки в совокупности кодовых символов.
Если сообщения обладают
внутренними корреляционными
Рис. 1 — Схема
системы связи:
ИИ - источник информации; БУ - блок уплотнения сообщений;КДШ, КДВ - кодеры внешний, внутренний; ПРШ, ПРВ - перемежители внешний, внутренний; М - модулятор; ПД - передатчик; ЛС - линия связи; ПР - приемник; Д - демодулятор; АЦП - аналого-цифровой преобразователь; БДС, БПС, БЛС - блоки додетекторного, последетекторного, логического сложения; ДПШ, ДПВ - деперемежители внешний, внутренний; ДКШ, ДКВ - декодер внешний, внутренний; БР-блок разуплотнения сообщений; ПИ-получатель информации; КОС - канал обратной связи.
Если скорости поступления
сообщений от источников асинхронны
по отношению к собственной
Перемеженная
В системах с линиями радиосвязи для борьбы с замираниями и узкополосными помехами, действующими в части частотного диапазона, применяют программную (или, как ее иногда называют, псевдослучайную) перестройку рабочих частот (ППРЧ); соответствующие устройства входят в состав передатчика и приемника.
Сложение сигналов в разнесенных ветвях на стороне приема может производиться как на входе демодулятора (додетекторное сложение), так и на его выходе (последетекторное сложение). В частности, если сигналы в ветвях некогерентны, последетекторное сложение называют квадратичным. Сравнительно недавно в системах связи с кодированными сигналами стали применять логическое объединение ветвей разнесения, реализующее последетекторный автовыбор ветви с наименьшим числом ошибок. Демодулятор (Д) производит оптимальную обработку элемента сигнала, заканчивающуюся обычно интегрированием со сбросом интегратора в определенный тактовый момент времени. Тем самым демодулятор дискретизирует во времени смесь огибающей сигнала с шумом. Формирование тактовых импульсов осуществляют устройства тактовой синхронизации, входящие в состав демодулятора. Аналого-цифровой преобразователь (АЦП) на выходе демодулятора дискретизирует (квантует) смесь огибающей сигнала с шумом по уровню. При квантовании на два уровня декодируется двоичный сигнал. Максимальное число уровней квантования, как правило, не превышает 16. Обычно число уровней равно 2, 4, 8 или 16. Декодер, работающий с двоичным сигналом, называют жестким, с недвоичным - мягким. Для работы декодера необходимы специфические (групповые) тактовые импульсы, формируемые в тракте групповой синхронизации, входящем в состав декодера. Назначение декодера состоит в уменьшении числа ошибок в сообщениях, выдаваемых системой связи, путем использования избыточности, заложенной в символьный поток кодером. Часть системы связи, включающая линию (радио- или проводную), называется каналом. Часть системы от выхода модулятора до входа АЦП образует канал передачи-приема сигнала, непрерывного по уровню (но дискретного по времени). Часть системы от выхода модулятора до выхода АЦП образует канал с входным сигналом, непрерывным по уровню и времени, и с выходным дискретным сигналом. От входа модулятора до выхода АЦП имеем дискретный (по времени и уровню) канал. В двунаправленной системе связи обычно создают канал обратной связи, по которому осуществляют управление работой системы.