Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Konspekt_TR_RO

.pdf
Скачиваний:
1
Добавлен:
12.06.2023
Размер:
3.35 Mб
Скачать

где Нотсч ( A) - энтропия отсчета непрерывного сообщения при его преобразова-

нии в цифровую форму;

L - число уровней квантования;a - шаг квантования;

pi p(ai ) a - вероятность появления в квантованном сообщении i -ого уров-

ня;

p(a) - дифференциальная плотность распределения вероятности непрерывной СВ A(t') ;

A(t') - отсчет непрерывного сообщения A(t) в некоторый момент времени t' .

р(a)

 

pi≈р(ai)Δa

 

 

Δa

 

0

ai

a

 

 

Рисунок 6.1 – График p(a) .

Энтропия непрерывного источника бесконечна, т. к. непрерывное сообщение принимает бесконечное число значений как по времени, так и по уровню.

h(a) p(a) log 2 p(a)da - дифференциальная энтропия – часть энтропии непре-

рывного источника, которая зависит от функции p(a) . Является относительной мерой неопределенности непрерывного сообщения, т.е. информационный смысл имеет не сама энтропия, а разность двух дифференциальных энтропий.

Свойства h(A) :

-величина вещественная, ограниченная, может принимать и отрицательные зна-

чения;

-ее значение зависит от выбора единицы измерения СВ:

a1 ka p(a1 ) p(a) / k h(a) p(a) / k log 2 ( p(a) / k)kda h(a) log 2 k ;

- наибольшую энтропию имен величина с нормальным распределением:

h( A) log 2 2e 2 ;

- аддитивна, т.е. дифференциальная энтропия нескольких сечений СП равна сумме их дифференциальных энтропий.

Производительность источника:

H 'н.и. (A) fд Hотсч (A) ,

где f д - частота дискретизации.

Если уровни квантования равновероятны:

H 'н.и. (A) fд log2 L .

61

Информационные характеристики каналов связи

Скорость передачи информации по каналу R – среднее количество информации, получаемое на выходе канала в единицу времени. Размерность: бит/с.

Скорость передачи информации по идеальному (без помех и искажений) каналу вычисляется аналогично производительности источника. При вычислении скорости передачи информации в канале с помехами необходимо учитывать потери информации.

Для дискретного канала с помехами она определяется выражением:

Rд.к. (H (U ) Hпот (U )) / ,

где H (U ) - энтропия передаваемого дискретного первичного сигнала;

H пот (U ) - энтропия потерь в канале для дискретного первичного сигнала;

- длительность дискретного первичного сигнала.

Для непрерывного канала с помехами скорость передачи информации определяется выражением:

Rн.к. 2Fmax (h(U ) hпот (U )) ,

где h(U ) - дифференциальная энтропия передаваемого непрерывного сигнала; hпот (U ) = энтропия потерь в канале для непрерывного первичного сигнала; Fmax - максимальная частота спектра непрерывного первичного сигнала.

Потери информации определяются вероятностью ошибки Pош в дискретном ка-

нале и уровнем помех в непрерывном канале и для практических расчетов скорости передачи информации по каналу их можно не учитывать при Pош 10 3 и отношении

сигнал-помеха больше 20 дБ.

Пропускная способность канала C – наибольшая скорость передачи информации по каналу:

C max R .

Размерность: бит/с.

Пропускная способность дискретного канала вычисляется по формуле:

Cд.к. (1/ )(log2 m p log2 ( p /(m 1)) (1 p) log2 (1 p)) ,

где v 1/ - скорость модуляции, Бод; p - вероятность ошибки в канале.

Пропускная способность непрерывного канала определяется по формуле Шен-

нона:

Cн.к. Fk log2 (1 Pс / Pп ) ,

где Fk - ширина полосы пропускания канала; Pc - средняя мощность сигнала;

Pn - средняя мощность помехи в полосе частот канала.

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

Основная теорема Шеннона

Формулировка теоремы:

Если производительность источника меньше пропускной способности канала

62

H '(A) C ,

то существует способ кодирования (преобразования сообщения в сигнал на входе канала) и декодирования (преобразования сигнала в сообщение на выходе канала), при котором вероятность ошибочного декодирования может быть сколь угодно мала. Если же H '(A) C , то таких способов не существует.

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

63

ОСНОВЫ ТЕОРИИ КОДИРОВАНИЯ СИГНАЛОВ

Кодирование дискретных сообщений

Кодирование – преобразование элементов дискретного сообщения в последовательности кодовых символов. Обратное преобразование – декодирование.

Устройства, осуществляющие эти операции автоматически, называются соответственно кодером и декодером. Кодек – устройство, объединяющее кодер и декодер.

Код – алгоритм (правило), по которому осуществляется кодирование.

Кодовая комбинация (слово) – последовательность кодовых символов, соответствующая одному элементу дискретного сообщения.

Кодовый алфавит – весь набор кодовых символов.

Основание кода m – число символов в кодовом алфавите. Если m=2 код называет-

ся двоичным, m>2 – многопозиционным (недвоичным).

Разряд – значащая позиция кодового слова.

Разрядность (значность) кода n – число символов в кодовой комбинации. Если n=const, то код называется равномерным, n≠const неравномерным.

Кодеры и декодеры легче сделать для равномерных двоичных кодов.

Источник

Кодер

Криптогра

Кодер

Модуля

 

источника

фический

сообщения

канала

тор

 

кодер

 

 

 

 

 

 

 

Помехи

Канал

 

 

 

Перехватчик

связи

 

 

 

 

Получатель

Декодер

Криптогр

Декодер

Демод

афически

канала

сообщения

источника

улятор

й декодер

 

 

 

 

 

Рисунок 7.1 – Структурная схема системы передачи дискретных сообщений.

Источник выдает дискретное сообщение. Для формирования дискретного сообщения из непрерывного используется дискретизация по времени и по уровню.

Кодирование источника (сжатие данных) применяется для снижения технических затрат на хранение и передачу информации.

Криптографическое кодирование (шифрование) применяется для предотвращения несанкционированного доступа к информации.

Кодирование канала (помехоустойчивое кодирование) применяется для повышения достоверности передачи информации по каналу с помехами.

Эффективное статистическое кодирование источников дискретных сообщений. Код Хаффмана.

Сжатие возможно, т.к. данные на выходе источника содержат избыточную и/или плохо различимую информацию.

64

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

Приемы, применяемые в алгоритмах сжатия с потерями:

-использование модели – подбор параметров модели и передача только одних параметров;

-предсказание – предсказание последующего элемента и передача величины ошибки;

-дифференциальное кодирование – передача изменений последующего элемента при сравнении с предыдущим.

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

Приемы, применяемые в алгоритмах сжатия без потерь:

-кодирование длин последовательностей – передача числа повторяющихся элементов;

-кодирование словаря – использование ссылок на переданные ранее последовательности, а не их повторение;

-неравномерное кодирование – более вероятным символам присваиваются более короткие кодовые слова.

Кодирование словаря

Позволяет уменьшить избыточность, вызванную зависимостью между символами. Идея кодирования словаря состоит в замене часто встречающихся последовательностей символов ссылками на образцы, хранящиеся в специально создаваемой таблице (словаре). Данный подход основан на алгоритме LZ, описанном в работах израильских исследователей Зива и Лемпеля.

Неравномерное кодирование

Позволяет уменьшить избыточность, вызванную неравной вероятностью символов. Идея неравномерного кодирования состоит в использовании коротких кодовых слов для часто встречающихся символов и длинных – для редко возникающих. Данный подход основан на алгоритмах Шеннона-Фано и Хаффмана.

Коды Шеннона-Фано и Хаффмана являются префиксными. Префиксный код – код, обладающий тем свойством, что никакое более короткое слово не является началом (префиксом) другого более длинного слова. Такой код всегда однозначно декодируем. Обратное неверно.

Код Шеннона-Фано строится следующим образом. Символы источника выписываются в порядке убывания вероятностей (частот) их появления. Затем эти символы разбиваются на две части, верхнюю и нижнюю, так, чтобы суммарные вероятности этих частей были по возможности одинаковыми. Для символов верхней части в качестве первого символа кодового слова используется 1, а нижней – 0. Затем каждая из этих частей делится еще раз пополам и записывается второй символ кодового слова. Процесс повторяется до тех пор, пока в каждой из полученных частей не останется по одному символу.

65

Пример 7.1:

Таблица 7.1 – Построение кода Шеннона-Фано.

Символ

Вероятность

Этапы разбиения

Код

 

 

1

2

3

4

 

а1

0,40

1

 

 

 

1

а2

0,35

0

1

 

 

01

а3

0,10

0

0

1

 

001

а4

0,10

0

0

0

1

0001

а5

0,05

0

0

0

0

0000

Алгоритм Шеннона-Фано не всегда приводит к построению однозначного кода с наименьшей средней длиной кодового слова. От отмеченных недостатков свободен алгоритм Хаффмана.

Код Хаффмана строится следующим образом. Символы источника располагают в порядке убывания вероятностей (частот) их появления. Два самых последних символа объединяют в один вспомогательный, которому приписывают суммарную вероятность. Полученные символы вновь располагают в порядке убывания вероятностей, а два последних объединяют. Процесс продолжается до тех пор, пока не останется единственный вспомогательный символ с вероятностью 1. Для нахождения кодовых комбинаций строится кодовое дерево. Из точки, соответствующей вероятности 1, направляются две ветви. Ветви с большей вероятностью присваивается символ 1, с меньшей – 0. Такое ветвление продолжается до достижения вероятности каждого символа. Двигаясь по кодовому дереву сверху вниз, записывают для каждого символа кодовую комбинацию.

Пример 7.2:

Таблица 7.2 – Построение кода Хаффмана.

Символ

Вероятность

Объединение симво-

Код

 

 

 

лов

 

 

а1

0,40

0,40

0,40

0,60

1,00

0

а2

0,35

0,35

0,35

0,40

 

11

а3

0,10

0,15

0,25

 

 

100

а4

0,10

0,10

 

 

 

1011

а5

0,05

 

 

 

 

1010

 

 

 

 

 

1,00

 

 

0,06

 

«1»

 

«0»

0,04

 

 

 

 

 

0,35

«1»

 

«0»

0,25

 

а1

 

 

 

 

 

а2

0,15

«1»

«0»

0,10

 

 

 

 

 

 

0,10

«1» «0» 0,05

а3

 

 

а4

 

а5

 

 

 

 

Рисунок 7.2 – Кодовое дерево для кода Хаффмана.

66

Помехоустойчивое (корректирующее) кодирование

Помехоустойчивое кодирование используется в различных системах связи, в сетях ЭВМ, в бытовой и профессиональной аудио- и видеотехнике.

Любой помехоустойчивый код является избыточным.

Избыточные коды – коды, в которых для передачи информации используются не все возможные кодовые слова. Используемые кодовые слова называются разрешенными. Их число – мощность кода М . Неиспользуемые кодовые слова считаются за-

прещенными.

Пример 7.3:

Рассмотрим трехразрядный (n=3) двоичный (m=2) код.

Безызбыточный код

Избыточный код

 

 

 

 

Разрешенные ко-

Запрещенные ко-

 

 

 

 

довые слова

 

довые слова

 

 

000

 

000

 

 

 

 

 

 

001

 

 

 

 

 

001

 

 

010

 

010

 

 

 

 

 

 

011

 

 

 

 

 

011

 

 

100

 

100

 

 

 

 

 

 

101

 

 

 

 

 

101

 

 

110

 

110

 

 

 

 

 

 

111

 

 

 

 

 

111

М

безыззб .

mn 23

8

М

изб .

4 М

безыззб .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

На вход канала поступают только разрешенные кодовые слова. Под воздействием помех возможно искажение кодовых слов. Говорят, что в канале произошла ошибка кратности t , если t символов кодового слова принято ошибочно. Для контроля за ошибками используется переход разрешенных кодовых слов в запрещенные.

Пример 7.4:

Безызбыточный код

Избыточный код

010

Канал

011*

010

Канал

011*

Разрешенное

 

Разрешенное

Разрешенное

 

Запрещенное

слово

t=1

слово

t=1

слово

слово

 

 

Нет возможности контролировать

Есть возможность контролировать

 

ошибки.

 

 

ошибки.

 

Корректирующая способность кода – способность кода контролировать (обнаруживать и исправлять) ошибки. Она определяется кодовым расстоянием.

Кодовое расстояние – минимальное расстояние Хэмминга для заданного кода:

d0 min d X .

Расстояние Хэмминга – степень различия между i -ым и j -ым кодовыми словами:

d X dist (bi , b j ) .

Определяется числом несовпадающих в них разрядов. Методы декодирования помехоустойчивых кодов:

67

-декодирование с обнаружением ошибок – обеспечивает стирание или особую отметку той части сообщения, в которой обнаружены ошибки;

-декодирование с исправлением ошибок – позволяет получить верное сообщение, несмотря на наличие искажений отдельных символов.

Существует также смешанное декодирование. Один и тот же код можно использовать при различных методах декодирования.

Правила для определения корректирующей способности кодов:

1.Для обнаружения ошибок кратности to кодовое расстояние должно удовлетво-

рять соотношению:

d0 to 1 .

2. Для исправления ошибок кратности tи и одновременного обнаружения ошибок кратности to ( to tи ) кодовое расстояние должно удовлетворять соотношению:

d0 to tи 1.

Задача 7.1:

Определить корректирующую способность кода, имеющего d 0 3 . То же для кода

с d0 4 .

Решение:

Формулы для определения обнаруживающей и исправляющей способности кода: to d0 1,

tи (d0 1(2)) / 2 .

Для кода с d 0

3

to

2

3 1 1 1).

 

 

 

Для кода с d0

4

to

3

4 1 2 1).

 

 

 

(из

правила

1:

3 2 1) или

tи

1 и

tо

1 (из правила

2:

(из

правила

1:

4 3 1) или

tи

1 и

to

2 (из правила

2:

Классификация помехоустойчивых кодов

Помехоустойчивые коды

Блочные коды

Равномерные коды

Разделимые коды

Линейные коды

Систематические коды

Непрерывные коды

Неравномерные коды

Неразделимые коды

Нелинейные коды

Несистематические коды

По способу кодирования различают блочные (каждый блок из n символов на выходе кодера зависит только от текущего блока из k символов на его входе и не зависит

68

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

(n, k) .

Для коррекции ошибок неравномерные коды почти не применяют.

По структуре кодовых последовательностей различают разделимые (кодовые символы можно разделить на информационные и проверочные (контрольные)) и неразделимые коды (такое разделение провести нельзя).

По алгоритму формирования проверочных символов различают линейные (прове-

рочные символы формируются путем суммирования по модулю два информационных символов) и нелинейные коды (используется суммирование по модулю отличному от два).

По способу передачи кодовых символов различают систематические (в канал связи первоначально передаются информационные символы, а затем – проверочные) и несистематические коды (в канал связи кодовые символы передаются по «псевдослучайному» закону).

Код с постоянным весом

Это неразделимый блочный код, каждая кодовая комбинация которого имеет одинаковое число единиц (одинаковый вес).

Если вес принятой кодовой комбинации отличается от заданного, то выносится решение об ошибке. Данный код обладает d0 2 и обнаруживает все ошибки нечетной

кратности и часть ошибок четной кратности (не обнаруживаются только ошибки смещения, когда число искаженных единиц равно числу искаженных нулей).

Таким кодом является код МТК-3 – семиразрядный код, каждая кодовая комбинация которого содержит три единицы.

Групповые систематические линейные блочные коды

Линейные коды – коды, для которых поразрядная сумма по модулю два любых разрешенных кодовых комбинаций также является разрешенной кодовой комбинацией. Линейные коды называют также групповыми.

Они задаются с помощью порождающей G и проверочной H матриц, которые связаны основным уравнением кодирования:

G H T 0 ,

где H T - транспонированная проверочная матрица (строки H переписаны в столбцы

H T );

0 - нулевая матрица.

Матрица G содержит k строк и n столбцов, ее элементами являются нули и единицы. Строками матрицы G являются любые ненулевые линейно независимые векторы, отстоящие друг от друга не менее, чем на заданное кодовое расстояние. Понятие линейно независимые означает, что каким бы образом мы не суммировали по модулю два различные строки матрицы, мы не получим суммы, равной нулю.

С помощью матрицы G можно создавать линейный код: суммируя в различном сочетании строки матрицы G , получают все (кроме нулевой) комбинации кода. Полученный код содержит M 2k кодовых слов длины n .

Если две порождающие матрицы различаются только порядком расположения столбцов, то определяемые ими коды называются эквивалентными. Они имеют одина-

69

r n k

ковые кодовые расстояния и, следовательно, одинаковые способности обнаруживать и исправлять ошибки.

Пример 7.5:

Код Рида-Маллера (8, 4) задается следующей порождающей матрицей:

 

1

1

1

1

1

1

1

1

 

G

0

1

0

1

0

1

0

1

.

 

0

0

1

1

0

0

1

1

 

 

0

0

0

0

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

Матрица H содержит строк и n столбцов. Единицы в каждой строке этой матрицы показывают, какие символы кодовой комбинации нужно сложить по модулю два, чтобы получить нуль. Используется для проверки правильности приема.

Чаще всего применяют систематические линейные коды. Такие коды задаются матрицами в систематической (приведено-ступенчатой или канонической) форме:

 

 

 

 

 

G

I k

 

G*

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H

H *

I

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где I k , I r - единичные подматрицы размерностью k k

и r r соответственно;

G* H *T

- прямоугольная подматрица размерностью k r ;

H * G*T

- прямоугольная подматрица размерностью r k .

Пример 7.6:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Систематический код Рида-Маллера (8, 4) задается порождающей матрицей:

 

 

 

 

0

0

0

1

1

1

0

 

 

 

 

 

1

 

 

 

G*

 

 

0 1 0 0 1 1 0

1

.

 

G

I 4

 

 

 

 

 

 

 

0

0

1

0

1

0

1

1

 

 

 

 

 

 

 

 

 

0

0

0

1

0

1

1

1

 

Найдем проверочную матрицу:

 

 

 

 

1

1

1

0

1

0

0

0

 

 

 

 

1

1

0

1

0

1

0

0

.

H

G*T

I 4

 

 

 

 

 

1

0

1

1

0

0

1

0

 

 

 

 

 

 

 

 

 

0

1

1

1

0

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кодирование информации

1) С помощью матрицы G : операция кодирования заключается в умножении информационного вектора a на порождающую матрицу G , т.е.

b a G ,

где b - кодовый вектор. Пример 7.7:

Рассмотрим кодирование информационного слова a (1011) кодом Рида-Маллера

(8, 4):

 

 

1

1

1

1

1

1

1

0

 

 

 

0

1

0

1

0

1

0

1

 

b (1011)

=(11000011).

 

 

0

0

1

1

0

0

1

1

 

 

 

0

0

0

0

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

70