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

Konspekt_TR_RO

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

2) С помощью матрицы Н : в СЛБК информационные символы слова а входят без изменения в кодовое слово b и занимают в нем первые k позиций, к ним добавляются r n k проверочных символов, правила формирования которых задает проверочная матрица.

Единицы в i -ой строке подматрицы H * указывают, какие информационные символы необходимо просуммировать по модулю два, чтобы получить i -ый проверочный.

Пример 7.8:

Из матрицы H систематического кода Рида-Маллера запишем правила формирования проверочных символов:

b5 a1 a2 a3 , b6 a1 a2 a4 , b7 a1 a3 a4 , b8 a2 a3 a4 .

Тогда для a (1011) b (1011 0010 ) .

Код с четным числом единиц

Это простейший систематический код с параметрами (n, k) (k 1, k) . Он строится добавлением к комбинации из k информационных символов одного проверочного, равного сумме всех информационных символов по модулю два. При этом каждая кодовая комбинация содержит четное число единиц. Если в принятой кодовой комбинации окажется нечетное число единиц, то делается вывод о наличии в ней ошибок.

Порождающая и проверочная матрицы такого кода:

Уравнение кодирования: Этот код имеет d 0

ное число ошибок.

Коды Хэмминга

 

 

 

k

 

 

 

 

 

 

 

1

0

...

0

1

 

 

0

1

...

0

1

 

G

 

... ... ... ... ...

k ,

 

 

 

0

0

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n k 1

H 1 1 ... 1 1 .

bk 1 a1 a2 ... ak .

2 и позволяет обнаруживать любое нечет-

Это линейные блочные коды с параметрами (n, k) (2m 1,2m 1 m) , где m - положительное целое число, r m - число проверочных символов. Для задания кодов Хэмминга обычно используется проверочная матрица. Ее столбцами являются все ненулевые двоичные числа длиной m .

Они обладают кодовым расстоянием d 0 3 и способны исправлять только одну

или обнаруживать две ошибки.

Примеры полных кодов Хэмминга: (7, 4), (15, 11), (31, 26), (63, 57).

Пример 7.9:

Рассмотрим код Хэмминга (7, 4). Проверочная матрица:

71

 

0

0

 

0

1

1

1

1

 

 

 

H

0

1

 

1

0

0

1

1

[Перемещая столбцы, приводим ее к систематической

 

1

0

 

1

0

1

0

1

 

 

 

 

 

 

1

1

1

1

0

0

 

 

 

 

0

 

форме]

1

0

1

1

0

1

0

.

 

 

 

1

1

0

1

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

Порождающая матрица:

 

1

0

0

0

0

1

1

 

G

0

1

0

0

1

0

1

.

 

0

0

1

0

1

1

0

 

 

0

0

0

1

1

1

1

 

 

 

 

 

 

 

 

 

 

Модификациями кодов Хэмминга являются укороченные и удлиненные коды Хэмминга.

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

Удлиненные коды Хэмминга получаются путем введения дополнительной проверки на четность всех символов кодового слова.

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

Линейные циклические блочные коды

Поиск более простых процедур кодирования и декодирования привел к появлению циклических кодов.

Циклические коды – линейные блочные коды, обладающие свойством циклично-

сти: если b (bn 1bn 2 ...b1b0 ) - кодовое слово циклического кода, то его циклическая перестановка b' (bn 2 ...b1b0bn 1 ) также является кодовым словом.

Пример 7.9:

b (1001110 ) b' (0011101 ) b'' (0111010 ) .

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

Все преобразования кодовых слов циклических кодов производятся в виде математических операций над полиномами (многочленами). Для этого кодовые слова представляются в форме полиномов:

b(x) bn 1 x n 1 bn 2 x n 2 ... b1 x b0 ,

где bi {0,1} - коэффициенты полинома;

x - символическая переменная. Пример 7.10:

b (1001110 ) b(x) 1 x6 0 x5 0 x 4 1 x3 1 x 2 1 x1 0 x0 x6 x3 x 2 x .

72

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

Циклические коды задаются с помощью порождающего (образующего) g(x) и проверочного h(x) полиномов.

Любой полином g(x) степени r n k , который делит без остатка полином вида xn 1, называется порождающим полиномом:

g(x) g r x r g r 1 x r 1 ... g1 x g0 ,

где gi {0,1} - коэффициенты полинома.

Полиномы всех кодовых слов делятся без остатка на порождающий полином. Порождающая матрица строится на основе полинома g(x) .

Для несистематического циклического кода:

 

0

...

0

gr

gr 1

...

g1

g0

 

G

...

0

g r

gr 1

...

g1

g0

0

.

... ... ... ...

... ... ... ...

 

gr

g r 1

...

g1

g0

0 ...

0

 

Для систематического циклического кода:

G I k R ,

где R - прямоугольная подматрица k r , строками которой являются коэффициенты полинома остатка от деления xn i на полином g(x) , где i - номер строки.

Пример 7.11:

 

 

 

Показать,

что полином g(x) x4 x3 x2 1 является порождающим для 7-

разрядного циклического кода. Записать матрицу G .

 

x7

1

 

 

 

x 4 x3 x 2 1

 

 

 

 

 

x7

x6

x5

x3

 

 

x3 x 2 1

 

 

x6

x5

x3

1

 

 

x6

x5 x 4

x 2

x 4 x3 x 2 1 x 4 x3 x 2 1

0

Для несистематического кода:

 

0

0

1

1

1

0

1

 

G

0

1

1

1

0

1

0

.

 

1

1

1

0

1

0

0

 

 

 

 

 

 

 

 

 

 

Для систематического кода:

x6

 

 

 

x 4 x3 x 2 1

x5

 

 

x 4 x3 x 2 1

x6

x5

x 4

x 2

x 2 x

x5

x 4

x3 x

x 1

 

x5

x 4

x 2

 

 

x 4

x3 x

 

 

x5

x 4

x3 x

 

x 4

x3 x 2 1

 

 

x3 x 2

x 1110;

 

 

x 2 x

1 0111;

73

x 4

 

 

 

 

 

 

 

x 4 x3 x 2 1

x 4

x3 x 2

1

 

 

1

 

 

 

 

x3 x 2

1 1101;

 

 

 

 

0

0

1

1

1

0

 

 

 

1

 

G

0

1

0

0

1

1

1

.

 

 

0

0

1

1

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

Результат деления полинома вида xn 1 на порождающий полином называется

проверочным полиномом:

h(x) (x n 1) / g(x) hk x k hk 1 x k 1 ... h1 x h0 ,

где hi {0,1} - коэффициенты полинома.

При отсутствии ошибок в принятом кодовом слове b * остаток от деления произведения b * (x)h(x) на полином вида xn 1 равен нулю:

b * (x)h(x) mod(xn 1) 0 .

Проверочная матрица строится на основе полинома h(x) . Для несистематического циклического кода:

 

h0

h1

... hk 1

hk

0

...

0

 

H

0

h0

h1 ...

hk 1

hk

0 ...

.

... ... ... ... ... ... ... ...

 

0 ...

0 h0

h1

...

hk 1

hk

 

Для систематического циклического кода:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H

RT I r

.

 

 

 

 

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

 

 

 

 

 

 

 

 

 

Существует два способа кодирования:

 

 

 

 

 

 

- несистематическое кодирование:

 

 

 

 

 

 

 

 

 

 

 

b(x) a(x)g(x) ,

 

 

 

где a(x) - полином информационного слова,

 

 

 

 

 

 

b(x) - полином кодового слова;

 

 

 

 

 

 

 

 

- систематическое кодирование:

 

 

 

 

 

 

 

 

 

 

 

b(x) a(x)xr r(x) ,

 

 

 

где r(x) - остаток от деления произведения a(x)x r

на полином g(x) .

Пример 7.12:

Закодировать слово a (010) циклическим кодом из примера 4.3. Несистематическое кодирование:

b(x) a(x)g(x) x(x 4 x3 x 2 1) x5 x 4 x3 x b (0111010 ) .

Систематическое кодирование:

1) a(x)xr x x4 x5 ;

74

 

a(x)x r / g(x) x5

 

x 4 x3 x 2 1

 

x5 x 4

x3 x

x 1

2)

x 4

x3 x

;

 

x 4 x3 x 2

1

 

 

x 2 x 1 r(x)

 

 

 

 

3)

b(x) a(x)x r r(x) x5 x 2 x 1 b (0100111 ) .

Кодирующие устройства

Их основу составляют схемы умножения и деления полиномов, основными элементами которых являются триггерная ячейка, сумматор по модулю два, умножитель на скаляр.

Правила построения схем умножения и деления:

- число ячеек памяти равно старшей степени полинома g(x) . Ячейка для старшей степени отсутствует;

- число сумматоров на единицу меньше веса полинома g(x) : при умножении отбрасывается сумматор для младшей степени; при делении – для старшей. Сумматоры устанавливают перед ячейками памяти для соответствующих степеней; - при умножении множимое подается одновременно на вход и на все сумматоры, при

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

a(x)

 

g

gr-1

g0

1

 

x1

xr-1

x0

1

2

r

gr

a( x)b(x)

Рисунок 7.3 – Кодер несистематического циклического кода.

Кодер реализует алгоритм b(x) a(x)g(x) . В течение первых k

тактов на вход по-

ступают информационные символы, после этого за r

последующих тактов при отсут-

ствии информационных символов на входе происходит очищение ячеек регистра. При

этом на выходе, на каждом из n

тактов появляется очередной коэффициент произве-

дения.

 

 

 

 

 

 

 

 

К2

В ход

 

g

gr-1

 

 

 

g0

1

 

 

 

 

x0

x1

x r-1

 

 

 

1

 

 

 

 

 

Выход

 

1

2

r

К1

 

 

Рисунок 7.4 – Кодер систематического циклического кода.

 

Кодер реализует алгоритм b(x) a(x)xr r(x) . Вначале ключ К1 находится в положении 1, а ключ K2 замкнут. Информационные символы, подаваемые на вход, через

75

2

ключ К1 поступают на выход, а через ключ К 2 - в кодирующее устройство, где через k тактов образуется r проверочных символов, представляющих собой остаток от деления произведения a(x)x r на полином g(x) . Затем ключ К1 переводится в положение 2, а ключ K2 размыкается. Регистр делает r тактов, выдавая проверочные символы на выход.

Декодирование помехоустойчивых кодов

Существует три основных метода декодирования линейных кодов:

-декодирование по максимуму правдоподобия (по минимуму расстояния);

-мажоритарное декодирование (по большинству проверок);

-декодирование по синдрому.

Декодирование по максимуму правдоподобия

Правило декодирования:

В качестве переданного слова b следует выбирать слово, которое ближе всего по Хэммингу к принятому b *.

b*

УСр 1

УСр 2

b

РУ

УСр М

b1

b 2

b M

ГКС

Рисунок 7.4 – Структурная схема декодера по минимуму расстояния.

На рисунке: УСр – устройство сравнения; ГКС – генератор кодовых слов; РУ – решающее устройство.

Данный метод используется, когда число информационных символов k мало

( r k ).

Мажоритарное декодирование

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

Существует три способа построения систем проверочных уравнений для декодирования символа:

- системы с разделенными проверками – символ, относительно которого разделяется система, входит во все уравнения. Любой другой символ входит не более, чем в одно уравнение. Для коррекции t ошибок необходимо 2t 1 уравнений в системе;

76

2 t 1

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

- системы с квазиразделенными проверками – система разделима относительно некоторой суммы символов. На первом этапе она разрешается относительно суммы символов, а на втором – относительно конкретного символа.

b*=(b 1 *b 2 *…bn *)

a1

1

МЭ

a k

k

МЭ

Рисунок 7.5 – Структурная схема мажоритарного декодера.

На рисунке: 1…k – устройства, реализующие проверки для соответствующей системы; МЭ – мажоритарный элемент, принимающий решение о значении символа по большинству результатов проверок.

Пример 7.12:

Код (8,4) задан матрицей:

 

1

1

0

0

1

0

0

0

 

H

0

1

1

0

0

1

0

0

.

 

0

0

1

1

0

0

1

0

 

 

1

0

0

1

0

0

0

1

 

 

 

 

 

 

 

 

 

 

 

Система уравнений по матрице Н:

b1 b2

b5 0,

 

b3

b6

0,

b2

 

b4

b7

0,

b3

b

b

b

0.

1

4

8

 

Система проверочных уравнений для a1 :

a1 b2 * b5 *,a1 b4 * b8 *,a1 b1 *.

Система проверочных уравнений для a2 :

a2 b1 * b5 *,a2 b3 * b6 *,a2 b2 *.

Система проверочных уравнений для a3 :

77

a3a3a3

b2 * b6 *,

b4 * b7 *,

b3 *.

Система проверочных уравнений для a4 :

a4 b3 * b7 *,a4 b1 * b8 *,a4 b4 *.

 

 

 

 

 

 

 

 

Пусть b * (10110000 ) .

 

 

 

 

 

a 0 0 0,

 

a

1 0 1,

 

a

0 0 0,

1

 

 

 

1;

2

 

1;

3

1 0 1, a3 1;

a1 1 0 1, a1

a2 1 0 1, a2

a3

a 1.

 

a

0.

 

a

1.

1

 

 

 

 

2

 

 

3

 

a4

1 0 1,

 

 

 

 

 

 

 

1 0 1, a4

1.

 

 

 

 

 

a4

 

 

 

 

 

 

1.

 

 

 

 

 

 

a4

 

 

 

 

 

 

Результат декодирования: a (a1a2 a3 a4 ) (1111) .

Декодирование по синдрому

Основано на стандартной таблице – таблице всех возможных принятых из канала слов, организованной таким образом, что может быть найдено ближайшее к принятому кодовое слово. Она содержит N 2r строк и M 1 2k 1 столбцов.

Таблица – Стандартная таблица.

s1=(0…0)

b1=(0…0)

b2

bM

r

n

 

 

 

s2

e2

b2+e2

bM+e2

sN

eN

b2+eN

bM+eN

bi – кодовые слова;

ej – векторы ошибок – образцы ошибок минимального веса; bi+ej – слова, не являющиеся кодовыми;

si=ei∙HT – синдромы – векторы размерностью r, указывающие на наличие и расположение ошибок в принятом слове.

Правило декодирования:

1. Вычисляется синдром s по принятому слову b *: s b * H T .

Если s 0 , то b * является кодовым словом. В противном случае ( s 0 ) b * содержит ошибки.

2.По s находится наиболее правдоподобный вектор ошибки e .

3.Ближайшее к принятому кодовое слово b получается в результате суммирования b * и e :

b b * e .

78

b*

s

e

БВС

С

 

 

b*

b

 

Б

К

Рисунок 7.6 – Структурная схема декодера по синдрому.

На рисунке: Б – буфер хранения принятого слова; БВС – блок вычисления синдрома; С – селектор (дешифратор) синдрома; К – корректор.

Данный метод используется, когда число проверочных символов r n k мало

(<10).

Пример 7.13:

Составить стандартную таблицу для систематического кода (5,2) с порождающей матрицей:

 

 

 

G

1

0

1

0

1

.

 

 

 

 

 

 

0

1

0

1

1

 

 

 

Таблица должна содержать

N 2r 25 2

8

строк и M 1 2k 1 22 1 5 столб-

цов.

 

 

 

 

 

 

 

 

 

 

 

Таблица – Стандартная таблица.

 

 

 

 

 

 

 

 

 

b1=(00000)

b2=(01011)

 

b3=(10101)

 

b4=(11110)

s1=(000)

 

e2=(00001)

b2+e2=(01010)

b3+e2=(10100)

b4+e2=(11111)

s2=e2∙HT=(001)

 

e3=(00010)

b2+e3=(01001)

b3+e3=(10111)

b4+e2=(11100)

s3=e3HT=(010)

 

e4=(00100)

b2+e4=(01111)

b3+e4=(10001)

b4+e2=(11010)

s4=e4∙HT=(100)

 

e5=(01000)

b2+e5=(00011)

b3+e5=(11101)

b4+e2=(10110)

s5=e5∙HT=(011)

 

e6=(10000)

b2+e6=(11011)

b3+e6=(00101)

b4+e2=(01110)

s6=e6∙HT=(101)

 

e7=(01100)

b2+e7=(00111)

b3+e7=(11001)

b4+e2=(10010)

s7=e7∙HT=(111)

 

e8=(11000)

b2+e8=(10011)

b3+e8=(01101)

b4+e2=(00110)

s8=e8∙HT=(110)

 

Пусть b * (10111). Проведем декодирование.

1.s b * H T (010) 0 ;

2.e (00010 ) ;

3.b b * e (10101) .

79

ГЕНЕРИРОВАНИЕ КОЛЕБАНИЙ

Генераторы с внешним возбуждением. Умножение частоты

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

Классификация генераторов

1)По способу возбуждения различают генераторы с внешним возбуждением (ГВВ) и автогенераторы (АГ).

ГВВ – устройство, работающее в вынужденном режиме, т.е. колебания на его выходе наблюдаются только при наличии колебаний от внешнего источника на его входе. ГВВ предназначены для усиления мощности, умножения частоты колебаний, осуществления АМ и ЧМ.

АГ – устройство, работающее в автоколебательном режиме, т.е. колебания на его выходе возникают без внешнего источника сигнала. Являются первоисточниками электрических сигналов различной формы.

2)По форме генерируемых колебаний различают АГ гармонических и негармонических (релаксационных или импульсных) колебаний.

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

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

3)По частоте генерируемых колебаний различают инфранизкочастотные (менее 10 Гц), низкочастотные (от 10 Гц до 100 кГц), высокочастотные (от 100 кГц до 100 МГц) и сверхвысокочастотные (свыше 100 МГц) генераторы.

4)По выходной мощности различают маломощные (менее 1 Вт), средней мощности (ниже 100 Вт) и мощные (свыше 100 Вт) генераторы.

5)По типу используемых активных элементов различают генераторы ламповые, транзисторные, на операционных усилителях, на туннельных диодах, на динисторах.

6)По виду частотно-избирательной цепи различают генераторы LC -, RC - и RL -

типа.

7)По виду обратной связи различают генераторы с внутренней (с отрицательным сопротивлением) и с внешней (специально созданной) обратной связью.

8)По схеме питания различают генераторы последовательного (транзистор и колебательный контур включены последовательно по отношению к источнику питания)

ипараллельного (транзистор и колебательный контур включены параллельно по отношению к источнику питания) питания.

9)По способу подключения нагрузки (по числу точек, в которых колебательный контур соединен с активным элементом) различают двухточечные и трехточечные генераторы.

Использование ГВВ для умножения частоты

80