Все задания за 4 курс 7 семестр / Основы теории информации / Примеры решения задач по контрольной работе
.pdfПример: Сообщения передаются в двоичном коде. Время передачи от нуля до одной секунды, r0 = 1 сек, 1−τ1 =5 секунд. Определить скорость передачи информации для случая:
1) Символы равновероятны и независимы.
СП = |
H |
= |
|
|
log 2 2 |
= |
1 |
= 0,33 бит/ сек |
τcp |
|
1 |
(τ0 +τ1 ) |
3 |
||||
|
|
2 |
|
|
|
|||
|
|
|
|
|
|
|||
2) Символы неравновероятны |
p0 = 0,37 |
|
p1 = 0,63 |
||||
|
|
|
|
2 |
|
|
|
H |
|
−∑pi log pi |
|||
CП = |
|
|
= |
i=1 |
|
= 0,27 бит/ сек |
τcp |
2 |
|
||||
|
|
∑τi |
pi |
i=1
Дискретный канал с помехами
Пример: Определить пропускную способность канала связи, способного передавать 100 симв./сек . Каждый символ искажается с вероятностью 0,01.
С =100[1+0,01 log0,01+0,99log0,99]≈92 бит/ сек
Корректирующие коды
того, чтобы определить кодовое расстояние достаточно просуммировать кодовые комбинации по правилам двоичного поля и подсчитать число единиц в полученном результате.
Пример: Для кода 1 |
|
|
А1 = 00 |
0 0 = 0 |
Правила: |
А2 = 01 |
1 0 = 1 |
четн. – 0 |
А3 = 10 |
0 1 = 1 |
нечетн. – 1 |
А4 = 11 |
1 1 = 0 |
|
Определим кодовую комбинацию |
|
|
00 |
|
|
|
10 |
|
А1 А2 |
|
01 |
|
d = 1 |
А3 А4 |
11 |
d = 1 |
Для кода 2 |
01 |
|
|
|
01 |
|
|
|
|
|
|
|
|
||
А1=000 |
А2 А4 |
011 |
|
А3 А2 |
101 |
|
|
А2=011 |
|
|
110 |
d = 2 |
|
011 |
d = 2 |
А3=101 |
|
|
101 |
|
|
110 |
|
А4=110 |
|
|
|
|
|
|
|
Ошибку можно не только обнаружить, но и исправить, если принятая кодовая комбинация ближе к исходной, чем к любой другой разрешённой комбинации.
Пример: Построим код: К коду 2 добавим два символа, повторив первых два символа получим код 3:
Код 2
А1=000 А2=011 А3=101 А4=110
|
|
|
|
|
Код 3 |
|
|
|
|
|
|
|
|
|
||||
|
00 |
|
000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
01 |
|
101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
10 |
|
110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
11 |
|
011 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
информационные разряды |
|
контрольные разряды |
|||||||||||
|
Определим кодовое расстояние между комбинациями |
|||||||||||||||||
|
Строим матрицу кодовых расстояний |
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
А1 |
|
А2 |
|
|
А3 |
|
А4 |
|
||
|
|
|
|
|
А1 |
|
|
0 |
|
3 |
|
3 |
|
4 |
d0 = 3 |
|||
|
|
|
|
|
А2 |
|
|
|
|
|
0 |
|
4 |
|
3 |
|||
|
|
|
|
|
А3 |
|
|
|
|
|
|
|
|
0 |
|
3 |
|
|
|
|
|
|
|
А4 |
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
Пусть передаётся комбинация А3, и она содержит ошибку |
|||||||||||||||||
|
V |
x |
=1011 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
ошибка |
|
|
|
|
|
|
матрица кодовых расстояний |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
А1 |
|
А2 |
|
А3 |
|
А4 |
|
|
|
|
|||
|
Vx |
|
|
|
4 |
3 |
|
1 |
|
2 |
|
|
|
|
vx ближе всего к А3, следовательно посылалась А3 и мы ошибку исправили.
Пример: Требуется передавать, обнаруживающим трёхкратные ошибки, все комбинации пятизначного двоичного кода. Чему равна общая длина кода ?
r– кратность обнаруживающих ошибок.
s– кратность исправляемых ошибок.
nк(3) =1 + log[(nи +1) + log(nи +1)]
nи = 5; nк = 1 + log[6 + log6] = 5 n = nи + nк = 10
Пример: Определить количество информационных разрядов кода длиной в пятнадцать символов, если код исправляет две ошибки.
n=15
п |
= log |
152 |
+15 |
+1 |
= log |
225 |
+15 |
+1 |
= 7 |
к2 |
|
|
2 |
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
nи = n - nк = 15 – 7 = 8
Систематические коды
Пример: Пусть строится код (5,3) с минимальным кодовым расстоянием d0=2. Он позволяет обнаруживать все одиночные ошибки. Составим производящую матрицу G:
|
|
Три строки, т.к. nu = 3, n = 5 – столбцы |
Результат комбинации |
||||||||
|
|
|
|
|
|
|
Комбинации |
||||
|
|
|
|
|
|
|
1) |
Нулевой вектор v1 = 00000 |
|||
|
|
|
|
|
|
|
2) |
|
|
v2 |
= 00011 |
0 |
0 |
0 |
1 |
1 |
3) |
GСтроки матрицы v3 = 01101 |
|||||
|
0 |
1 |
1 |
0 |
1 |
|
4) |
|
|
v4 |
=11010 |
G = |
|
5) |
1 |
+ 2 |
v5 = 01110 |
||||||
|
1 |
1 |
0 |
1 |
0 |
|
|||||
|
|
6) |
2 |
+ 3 |
v6 |
=10111 |
|||||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
7) |
1 |
+ 3 |
v |
=11001 |
|
|
|
|
|
|
|
|
|
|
7 |
|
|
|
|
|
|
|
|
8) |
1 |
+ 2 + 3 |
vj |
=10100 |
Можно было бы построить G из любой другой тройки векторов, кроме сочетаний v2v3v5, v2v4,v1 и т.д. (семь штук), т.к. эти сочетания линейно зависимы, т.е. v2 + v4 + v7 ≠0.
Построим ортогональные векторы u (проверочные).
Составим ∑аibi для векторов v2, v3, v8. Эти вектора имеют минимальное количество
единиц. |
0 b1 + 0 b2 + 0 b3 + 1 b4 + 1 b5 = 0 |
v2 |
|
|
b4 + b5 = 0 |
v3 |
b2 + b3 + b5 = 0 |
v8 |
b1 + b3 = 0 |
Для любого вектора u должно выполняться
b4 =b5b1 =b3b2 =b3 +b5
Перебирая все удовлетворяющие этим условия сочетания, получили:
u1 = 00000 u2 = 01011 u3 = 10111 u4 = 11100
Из этих векторов необходимо составить проверочную матрицу Н
0 |
1 |
0 |
1 |
1 |
- т.к. они линейно независимы |
||
Н |
|
|
|
|
|
|
|
|
1 |
1 |
1 |
0 |
0 |
|
|
|
|
|
Декодирование систематических кодов
1. Декодирование с помощью полной кодовой таблицы. Рассчитаем параметры этой таблицы
N = 25 = 32 – код пяти значений
N0 = 23 = 8 – разрешённая комбинаяция
N - N0=32-8=24 – запрещённая коибинация ( кодовых исправлений 24 ошибки )
Строим полную кодовую таблицу. В качестве первой строки используем разрешенные комбинации v1 – v8
00000 |
00011 |
01101 |
11010 |
01110 |
10111 |
11001 |
10100 |
00001 |
00010 |
01100 |
|
|
… |
|
|
00100 |
00111 |
01001 |
|
|
|
|
|
01000 |
01011 |
00101 |
|
|
|
|
|
Общий метод декодирования состоит в следующем: Приняв некий вектор vx, содержащий ошибку, его отыскивают в полной кодовой таблице и соотносят с тем кодовым вектором, который стоит в верхней строке этого столбца.
Пример: vx=00111, находим в таблице и соотносят с 01 строкой, т.е. v = 00011
Достоинство метода: его универсальность, возможность применять различные стратегии.
Недостаток: громоздкость кода и только 3-и ошибки.
2. Декодирование с проверкой на четность.
Пример: , пусть принят вектор vx = 00110. Он имеет координаты а1 а2 а3 а4 а5. Составим схему проверок.
а2 + а4 + а5 = 0 +1 +0 =1 а1 + а2 + а3 = 0 +0 +1 =1
Если бы ошибок не было бы, то здесь были бы нули.
Возможность кода к исправлению ошибки можно объяснить схемой
|
N символов |
||||
N-проверки |
1 |
2 |
3 |
4 |
5 |
1 |
|
+ |
|
+ |
+ |
1 |
+ |
+ |
+ |
|
|
Следовательно, данный код может исправить во втором бите, обнаружить ошибку четвёртом или пятом бите, обнаружить ошибку в первом и третьем бите.
Для исправления всех ошибок надо, чтобы каждый бит появлялся в оригинальной комбинации строк в таблице проверки, и так будет, когда d0=3 и добавиться ещё одна проверка
3.Декодирование с помощью корректирующего вектора
Пример: Нужно выбрать систему кодирования. Возьмём ту же систему кодов и H. 1. Определение шаблонов корректирующего вектора
Векторы ошибок
|
01011 → u1 |
|
l1 |
= 00001 |
C =10 |
шаблоны |
|
|
l |
|
= 00100 |
C = 01 |
|||
Н |
|
|
2 |
|
|||
|
|
|
|
|
|
|
|
11100 → u2 |
|
l3 |
= 01000 |
C =11 |
|
||
Для вектора e1 построение шаблона. |
|
|
|||||
|
|
|
|
|
|
||
e1: |
e1 u1 = 00001 01011 = 1 |
C1 = 1 |
|
|
|
|
|
|
|
|
|
|
|||
|
e1 u2 = 00001 11100 = 0 |
C2 = 0 |
|
|
|
||
Следовательно, вектору e1 ставится в соответствие вектор С = (10) |
|
||||||
Для e2: |
|
|
|
|
|
|
|
|
e2 u1 = 00100 01011 = 0 |
C1 |
= 0 |
|
|
|
|
|
e2 u2 = 00100 11100 = 1 |
C2 |
= 1 |
|
|
|
|
Для e3: |
|
|
|
|
|
|
|
|
e3 u1 = 01000 01011 = 1 |
C1 |
= 1 |
|
|
|
|
|
e3 u2 = 01000 11100 = 1 |
C2 |
= 1 |
|
|
|
|
Шаблоны известны на приёмной стороне ещё до посылки комбинации
2. Определение корректирующего вектора
Пусть принят вектор vx = 01001
u1vx = 01011 01001 =1 +1 = 0 C1 = 0
u2 vx =11100 01001 =1 |
C2 =1 |
C = 01 |
Сравниваем полученный вектор ошибки с нашим шаблоном и определяем, что это e2.
3) Исправляем ошибку
01001
vx +С = 0110100100 , что соответствует комбинации v3.
Можно строить образующую матрицу достаточно простым способом, например, единичной матрицей nu × ni.
100 01 |
|
|
|
|
010 10 |
|
Эта матрица порождает восемь кодов, которые также позволяют |
G = |
|
||
|
001 11 |
|
|
|
|
|
обнаружить одиночную ошибку. Преимущество кода состоит в том, что его можно легко составить, в исправляющих способностях выйгрыша нет.
|
|
Код Хэминга |
|
Пример: Построить код Хэминга по комбинации |
|
||
0101 |
nu = 4 |
nk = 3 |
nk = log(nu + 1) + log(nu + 1) |
1,2,3 |
|
|
k = 7 2i = 1,3,4,8 |
Контрольные разряды будут занимать позиции 1,2,4. |
|||
Код Хэминга |
|
|
|
а1a2a3a4a5a6a7 |
|
|
|
k1k20 k31 0 1 |
- макет |
|
|
1)a1 + a3 + a5 + a7 = k1 + 0 + 1 + 1 = 0 k1 = 0
2)a2 + a3 + a6 + a7 = k2 + 0 + 0 + 1 = 0 k2 = 1
3)a4 + a5 + a6 + a7 = k3 + 1 + 0 + 1 = 0 k3 = 0
Код Хэминга будет иметь вид 0100101