Konspekt_TR_RO
.pdf2) С помощью матрицы Н : в СЛБК информационные символы слова а входят без изменения в кодовое слово 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
- системы с -связанными проверками – символ, относительно которого разрешается система, входит во все уравнения. Любой другой символ входит не более, чем в уравнений. Для коррекции 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=e3∙HT=(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