<< Предыдущая

стр. 40
(из 50 стр.)

ОГЛАВЛЕНИЕ

Следующая >>

Выберем импульсный отклик системы, равный

{Я[п]} = {1,0,1,1}. (4.2)

Для входной последовательности

{u[n]} = {1,0,1} (4.3)

получим свертку
з
v[n) = g\n] © и[п] = ^ ^ з["г]5[п — m]. (4.4)
m=0

Найдем элементы v[n]

дЩ 0 u[0] = i © i = i
Щ =
(fl[0]©u[l])®( f l [l]©u[l]) =
v[l] =


"й = (s[O]©u[2])©(fl[ll©u[l])©(S[2]0u[O]) =
= (1©1)Ф(О0О)Ф(101) = 1фО©1 = О (4.5)
= №]©«[2])®( f f [2]© u [l])
v[3]
= (о©1)ф(1©о)е(1©1) =
(5[2]©«[2])ф(з[3]©«[1])
v[A] =
= (1©1)Ф(1©О) = 1ФО =
= g[3]©u[2] = 1 0 1 = 1.
v[5]
4-2. Кодер и импульсный отклик

Обратим внимание на подробное обозначение операций в GF(2). В
дальнейшем такое обозначение может быть опущено, если смысл опе-
раций следует из контекста.
Рассмотрим теперь.реальную схему кодера сверточного кода.
Пример: Кодер сверточного (2,1,3)-кода.
Изображенный на рис. 4.2 кодер имеет п = 2 выходов, к = 1 вхо-
дов и ггс = 3 (так как регистр кодера содержит три разряда so, si, S2).
С точки зрения теории цифровой обработки сигналов - это нерекур-
сивная система с удвоением.




Вход




Р и с . 4.2. Кодер сверточного (2,1,3)-кода.

Две выходные последовательности v\]n\ и г>2[п] можно генериро-
вать с помощью двух фильтров с конечными импульсными откли-
ками ,7i [п] и д2[п] из входной последовательности и[п}. Импульсные
отклики gi[n] и д2\р\ можно получить непосредственно из рис. 4.2.
Учитывая, что при отсутствии связи между двоичными разрядами
регистра и выходами кодера соответствующие коэффициенты равны
нулю, имеем

(4.6)
= (1.0,1,1} и {92[п]} = {1,1,1,1},

что эквивалентно двум многочленам третьей степени.Задержка в ре-
гистре сдвига кодера также равна трем.
На выходе кодера две последовательности vi[n] и г»гН объединя-
ются в кодовую последовательность vfa]. Разность в обозначениях
временных нормированных переменных п и п г объясняется удвое-
нием частоты кодовой последовательности по сравнению с частотой
информационной последовательности.
Работу схемы кодера объясним на следующем примере. Пусть

(4.7)
= {1,0,1},
Глава 4- Сверточные коды

тогда
{w,[n]} = {1,0,0,1,1,1} (4.8)
и
{«2[п]} = {1,1,0,1,1}. • (4.9)
Объединяя эти последовательности между собой, на выходе кодера
получим
{«[п2]} = {1,1,0,1,0,0,1,0,1,1,1,1}. (4.10)
Рассматривая схему кодера в общем случае определим важней-
шие параметры сверточных кодов. Так как в основе любого кодера
лежит регистр сдвига, то один бит входной информации оказывает
влияние на процесс кодирования на протяжении нескольких тактов.
Здесь возникают такие понятия, как память кодера и длина кодового
ограничения.
Так как в общем случае кодер может иметь несколько входов, то
память кодера определяется как

т = max m,. (4-П)
i=l,...,k

Кодовое ограничение является производным от памяти и опреде-
ляет ширину области кодового слова, на которую влияет один вход-
ной бит, то есть
пс = п{т + 1). (4.12)
Как будет показано далее, параметры т и пс оказывают реша-
ющее влияние на корректирующую способность кода и сложность
алгоритма декодирования.
Следующим важнейшим параметром является скорость кода R.
Так как в общем случае к входным битам соответствуют h выходных, то

Д=-. (4.13)
п
Как правило, число входов к невелико, поэтому, типичным явля-
ются кодовые скорости от 1/3 до 7/8.
В современных сетях связи режимы обмена информацией очень
сильно зависят от ее характера, поэтому, необходимо учитывать,
что отдельные реальные сообщения могут иметь различные конеч-
ные длины. В связи с этим, в некоторых случаях реальные кодо-
вые скорости могут быть существенно меньшими, чем R из (4.13).
Это вызвано тем обстоятельством, что для сохранения корректиру-
ющей способности кода мы вынуждены добавлять в конце сообщения
4-3. Полиномиальное представление 225J

«хвост» из т нулей. Таким образом, если длина сообщения состав-
ляет L бит, то реальная (блоковая) скорость равна

kL
R
B = -7Г˜, 7 « Д Для L > т . (4.14)
n(L + m)
Для сообщений небольшой длины приходится считаться с относи-
тельной потерей скорости, равной


<"5>
Замечание. Для очень коротких сообщений имеет смысл использо-
вать при декодировании алгоритм «нейтрализации хвоста». Этот
алгоритм при незначительном снижении корректирующей способ-
ности кода позволяет полностью избежать вставки т нулей в
конце информационных блоков.


4.3. Полиномиальное представление
Аналогично блоковым кодам (глава 3), сверточные коды могут быть
описаны с помощью многочленов. При этом становятся очевидными
не только сходство этих кодов, но и их различия.
Будем рассматривать импульсные отклики кодеров сверточных
кодов как порождающие многочлены степени mi

+ XmK " (4.16)
9ji(X) = gjifi + gjitiX + •••+ 9ji,mi

Переменная Х здесь играет роль «указателя сдвига» и никакой
смысловой нагрузки больше не несет, Хп означает гг-кратный сдвиг
относительно некоторой точки отсчета (например, начала входной
последовательности).
Замечание. В литературе вместо переменной X очень часто ис-
пользуют переменную D (от слова delay задержка - англ.).

Так как мы по прежнему рассматриваем только двоичные коды,
все коэффициенты многочленов принадлежат GF(2) и все операции
над многочленами выполняются по правилам арифметики по моду-
лю 2.
Аналогично блоковым кодам, процесс кодирования сверточных
кодов может быть описан с помощью порождающих многочленов
(4.16). Если входная последовательность имеет конечную длину, то
^226 Глава 4- Сверточные коды

мы фактически имеем дело с блоковым кодированием, поэтому, j-ю
выходную последовательность можно представить в виде .,
к
(4.17)
Vj(X) = 52gji{X)ui(X).
г=1

Так как имеется п выходов и кодовый многочлен образуется их пе-
ремешиванием, удобно записать
п
v(X) = Y,XJ˜\(Xn)- (4-18)

В этом случае

п к
v(X) = Y,X>- ^9ц(Хп)щ{Хп).
1
(4.19)


Поясним сказанное на примере сверточного (2,1,3)-кода.
П р и м е р : Представление сверточного (2,1,3)-кода в виде много-
члена.

В соответствии с рис. 4.2, имеем

дх = 1 + X2 + X3 и да = 1 + X + X2 + Xs. (4.20)

В качестве информационной последовательности выберем

{u|n]} = {1,0,1,1,1}. (4.21)

Этой последовательности соответствует многочлен

и{Х) = 1 + X2 + Хг + Х\ (4.22)

поэтому,

i»i(X) = (4.23)
u(X)-gi(X)=
2 3 4 2 3 7
= (1 + Х +Х + Х )(1 + Х + Х ) = 1+ Х
3
+ Х* + Х5 + Х7.
= и{Х) - 5 2 = 1 + Х + Х
v2(X)

Согласно (4.8), кодовый многочлен определяется как

vx{X2) + Xv2(X2) = (4.24)
v{X) =
+ Хи+ХЫ+ Х15,
4-3. Полиномиальное представление

что соответствует кодовому слову
{«[п2]} = {1,1,0,1,0,0,0,1,0,1,0,1,0,0,1,1}. (4-25)
Для того, чтобы показать связь между блоковыми и сверточными
кодами, представим процесс кодирования сверточных кодов в виде
произведения информационного вектора и = (ui,« 2 , Щ • • •) И а п о "
рождающую матрицу G

/G0Gi G2-- Gm О О О О •Л
0 G0Gi Gm_i G m 0 0 0
V= U0G : (4.26)
0 0 Go G m _ 2Gm_i G m О О


Так как информационный вектор может иметь бесконечную длину,
матрица G не ограничена справа и снизу, поэтому, ее часто назы-
вают полубесконечной. Если вектор и конечен, то мы имеем дело с
несколько специфичным блоковым кодом.
Порождающая матрица G составлена из регулярных подматриц
Go,Gi,-- , G m , каждая из которых определяется импульсным от-
кликом кодера

9u,i 921,1 9nl,l
912,1 922,1 9n2,l
(4.27)
G, =

9nk,l
\ 9lk,l 92k,l
Рассмотрим построение матрицы G на примере сверточного (2,1,3)-
кода.
Пример: Порождающая матрица сверточного (2,1,3)-кода.
Рассмотрим уже знакомый нам сверточный код с параметрами
к = 1,п = 2, т = 3, импульсные отклики которого равны

Ы " ] } = {1,0,1,1} и Ы " ] } = {1,1,1,1}. (4-28)
Этот код имеет т + 1 = 4 внутренних подматриц, которые опреде-
лены как

Go = (</п,о 521,0) = (1 1)
(4.29)
G i = (#п,1 <?2i,i) = (0 1)
G2 = (ffll,2 #21,2) = (1 1)
G3 = (311,3 521,з) = (1 !)•
Глава 4- Свершенные коды

Тогда порождающая матрица равна

/110111110000
001101111100
(4.30)
000011011111

<< Предыдущая

стр. 40
(из 50 стр.)

ОГЛАВЛЕНИЕ

Следующая >>