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

Системы и сети мобильной связи. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Глава 3
БЛОЧНОЕ И СВЕРТОЧНОЕ КОДИРОВАНИЕ
Канальное помехоустойчивое кодирование представляет собой способ преобразования информации источника путем введения из­быточности, который позволяет обнаруживать и исправлять ошиб­ки, возникающие в канале связи. Коды, обнаруживающие ошибки (коды контроля четности – Cyclic Redundancy Check (CRC)), обычно используются вместе с методами повторного запроса информации от источника (например, ARQ). Прямая коррекция ошибок (Forward Error Correction (FEC)) – другая технология кодирования, позволя­ющая обнаруживающих ошибки, исправление ошибок требует введения существенно большей избыточности в передаваемые данные, что снижает производительность системы связи. В то же время приме­нение технологии ARQ (и кодов обнаружения ошибок) приводит к определенным потерям пропускной способности из-за повторных передач данных и некоторого объема управляющей В настоящее время существует огромное разнообразие методов и очень хорошо развитая теория канального кодирования. Использо­вание как технологии FEC, так и кодов, обнаруживающих ошибки (CRC) в системах мобильной связи, является обоснованным, по­скольку их каналы подвержены различного рода помехам и замира­ниям.
сверточного кодирования движной связи. Исследуется влияние кодирования сигналов на ве­роятность ошибок, возникающих при прохождении сигналов через АБГШ-канал.
исправлять ошибки методом упреждения. В отличие от кодов,
информации.
Содержание настоящей главы посвящено изучению блочного и
сигналов, используемых в системах по-
51
3.1. Некоторые теоретические положения
R
E
p
3.1.1. Блочное систематическое кодирование
Источник информации вырабатывает последовательность символов сообщения со скоростью блоки длиной добавляется
k символов (информационное слово). В каждый блок
nkпроверочных символов. Таким образом формирует-
ся кодовое слово длиной довой скоростью, а ()/
nk k
кода записывается как (,) пользования кодирования является случай передачи дискретных сооб-
щений в реальном времени при фиксированной мощности передатчи­ка. В этом случае
n символов кодового слова должны быть переданы
за тот же временной интервал, что и Это приводит к увеличению скорости передачи в / ствие, к уменьшению отношения
ладает корректирующей способностью, потери, связанные с увеличе­нием вероятности символьной ошибки, не только «отыгрываются» проверочными символами, но и обеспечивается дополнительный вы­игрыш – снижение вероятности ошибочного принятия кодового слова по сравнению со случаем отсутствия кодирования (выигрыш кодиро-
вания). Вероятности ошибки для информационного
P слов определяются выражениями
го
wc
PCpp
где
и q – соответственно вероятности битовой ошибки при кодиро-
вании и в отсутствие кодирования; правляемой данным кодом (
стояние Хемминга, характерное для данного кода); ный коэффициент. В линейном блочном коде
ва представляет собой линейную комбинацию
симв/с. Эти символы группируются в
n символов. Величина /kn называется ко-
– избыточностью. Структура блочного
nk . Наиболее характерной ситуацией ис-
k информационных символов.
nk раз и, как след-
/
N . Вследствие того что код об-
0
b
P и кодово-
wu
1(1 ),
Pq
 
wu
n

wc n
ii ni
1

it
k
(3.1)
(1 ) ,
t – кратность битовой ошибки, ис-
(1)/2td;
min
d – минимальное рас-
min
i
С – биномиаль-
n
i-й символ кодового сло-
информационных
k
52
символов:
X
H

Z
дит так:
yxg xg xg
11 22
ii ikki
....
YXG
. В матричной форме это выгля-
, (3.2)
где матрица (
k
– информационное слово (вектор-строка); G – порождающая
kn). Для систематического кода первые (или последние)
символов кодового слова являются информационными. Поэтому по-
рождающая матрица такого кода выглядит следующим образом:

gg g
11 1 2 1
kk n

 
gg g
21 2 2 2
kk n
Здесь

GPI
I
– единичная матрица размером kk; P – проверочная мат-
k
рица размером ()knk


... ... ... ...
 
gg g

12

kk kk kn
. С порождающей матрицей линейного блоч-
ного кода связана проверочная матрица
...
...
1 0 ... 0
0 1 ... 0
... ... ... ...
0 ... ... 1
Эта матрица строится сле-
.

. (3.3)
k
дующим образом:
1 0 ... 0
 
0 1 ... 0

... ... ... ...
 
0 0 ... 1
H


gg g
11 1 2 1
kk n

 
gg g
21 2 2 2
kk n


... ... ... ...

...
...

I
nk
. (3.4)
P

gg g


11
kk kk kn

...
Декодирование осуществляется в результате умножения принятого кодового слова
на проверочную матрицу. Полученный вектор S
размером nk элементов называется синдромом
.SZH
(3.5)
53
Если синдром нулевой, то это значит, что ошибки в кодовом слове
Z
E
нет (либо ошибка привела к преобразованию одного кодового слова в другое); если же вектор синдрома ненулевой, то это значит, что приня­тый кодовый вектор – результат суммы по модулю 2 переданного ко­дового слова и вектора ошибки Е:
YE
(3.6)
.
Существует однозначное соответствие между синдромом и векто­ром ошибки. Таким образом, располагая синдромом, можно найти век­тор ошибки
и скорректировать принятое кодовое слово с целью
устранения ошибки:
.YZ E
(3.7)
3.1.2. Сверточное кодирование
В отличие от блочного, в сверточном кодере информационные символы не группируются в блоки. Кодовое слово получается в ре­зультате свертки информационного слова с импульсной характеристи­кой кодера. Обычно сверточный кодер строится на основе K разряд­ного регистра сдвига, набора из n сумматоров по модулю 2 и коммута­тора, обеспечивающего подключение выходов сумматоров шине (рис. 3.1).
K – разрядный регистр сдвига Информационные символы
сумматоров
n
Коммутатор
Кодовые символы
R1 R2 R3 ……………….. Rk-1 Rk
+ + + + +
Рис. 3.1. Сверточный кодер
к выходной
54
Каждый входной символ порождает n выходных символов (ответв-
ленное кодовое слово), поэтому кодовая скорость составляет 1/n . Кодо­вые скорости выше 1 / 2 могут быть получены в результате продвижения
k информационных символов в регистре сдвига в промежутках времени
между коммутациями. В этом случае получается скорость ный код описывается тремя целыми числами
и .K Число k пока-
k, n
. Сверточ-
/kn
зывает, на сколько символов за такт продвигается в регистре информаци­онное слово, n – разрядность ответвленного кодового слова. Число K называется длиной кодового ограничения и определяет память кодера. Ответвленное кодовое слово определяется не только текущим входным символом, но и 1K
предыдущими символами. Обычно используются кодеры, в которых входное информационное слово посимвольно продви­гается в регистре сдвига (т. е. 1k
), и распространенными кодовыми скоростями являются скорости 1/2, 1/3. Конкретный вид кода определяет­ся конфигурацией соединений разрядов регистра сдвига и сумматоров – векторами соединений g1, g2, g3… Обычно конфигурация соединений для каждого сумматора задается двоичным вектором соединений, в кото­ром единица означает наличие соединения сумматора с данным разрядом регистра, а нуль – его отсутствие. Наиболее распространенным способом представления ма. Пример решетчатой диаграммы для кодера с 3K
111g и
1
работы сверточного кодера является решетчатая диаграм-
, 2n, 1k,
101g показан на рис. 3.2.
2
Рис. 3.2. Решетчатая диаграмма (кодер)
55
На рис. 3.2 моменты времени обозначены как
X
Z
, ,..., tt t
12 6
; узлы
решетки a, b, c, d – состояние кодера перед подачей очередного ин­формационного бита (содержимое первой и второй ячеек регистра сдвига). Переходам между состояниями кодера соответствуют ответв­ленные слова (показаны как метки около ветвей решетки). Эффектив­ной реализацией декодирования по методу максимального правдопо­добия является алгоритм Витерби. Алгоритм включает в
себя вычис-
ление меры подобия (хеммингова расстояния) между сигналом, полу­ченным в момент времени
t , и всеми путями решетки, входящими в
i
каждое состояние к данному моменту времени. В алгоритме Витерби не рассматриваются те пути, которые согласно принципу максималь­ного правдоподобия заведомо не могут быть оптимальными. Если в одно и то же состояние входят два пути, то выбирается тот, который имеет меньшую метрику. Такой путь называется «
выжившим». Отбор выживших путей выполняется для каждого состояния. Таким образом, декодер углубляется в решетку путем исключения менее вероятных путей. Пример декодирования информационной последовательности
[11011]X с использованием решетчатой диаграммы показан на
рис. 3.3.
: 1 1 0 1 1
Y : 11 01 01 00 01
: 11 01 01 10 01
Рис. 3.3. Процесс декодирования
56
[11011]X – информационная последовательность;
K
K
K
f
[11010100 01]Y – последовательность на выходе сверточного
кодера;
[11010110 01]Z – искаженная последовательность на входе де-
кодера;
 – метрики «выживших» путей для каждого из со-
, , ,
abcd
t
стояний решетки к моменту
.
6
На рис. 3.3 метки около ветвей решетки показывают одношаговые
метрики. Для момента времени выжившего пути для каждого из
t показаны результирующие метрики
6
1
2
состояний. Выбор из двух схо-
дящихся путей одного гарантирует, что у нас никогда не будет путей
1
2
больше, чем состояний (т. е.
). Для осуществления декодирования
алгоритм должен хранить историю выживших путей, длительность которой называется глубиной декодирования. С высокой вероятностью
при превышении глубины декодирования все
1
2
пути (при движе-
нии назад) ведут к одной общей ветви. Поэтому самые первые биты выживших путей одинаковы. Простой декодер имеет фиксированный объем истории путей и выдает ранние биты произвольного пути каж­дый раз, когда продвигается на один уровень в глубь решетки. Обычно глубина декодирования выбирается как (4...5)K .
Для оценки корректирующих
«минимальный просвет»
d – это минимальная сумма одношаговых
свойств кода используется понятие
метрик, вычисляемых с момента ответвления от нулевого пути до мо­мента слияния с ним (рис. 3.4).
Рис. 3.4. Минимальный просвет
57
Минимальный просвет, соответствующий ответвлению от нулевого пути (это ответвление на рис. 3.4 показано утолщенными линиями), равен 5 (2 + 1 + 2). В отличие от блочного кодирования, где принято описывать корректирующие свойства кода, оперируя кратностью ошибки на блок, в сверточных кодах говорят о возможности исправления t ошибок в преде­лах нескольких (3…5) длин кодового ограничения. Кратность ошибки, которая
/2
может быть исправлена, вычисляется следующим образом:
td. (3.8)
f
3.2. Указания по использованию пакета Simulink для создания модели кодера и декодера
Процедуры кодирования/декодирования могут быть исследованы с
помощью модели, представленной на рис. 3.5.
Рис. 3.5. Модель для исследования процедур кодирования и декодирования
Применение блочного или сверточного кода означает замену бло­ков кодирования/декодирования модели. В частности, схема, изобра­женная на рис. 3.5, предполагает использование линейного блочного систематического кода.
3.2.1. Модель блочного кодирования
Для изучения свойств кода необходимо воспользоваться блоками «линейный блочный кодер/декодер» (рис. 3.6).
Рис. 3.6. Линейный блочный кодер и декодер
58
Параметры линейного блочного кодера выбираются следующим образом.
Generator matrix (binary K-by-N matrix) – генераторная матрица –
записывается для двух вариантов линейных блочных кодеров: [[110;011;111;101]eye(4)] и [[001111;111100]eye(2)].
Параметры декодера выбираются следующим образом:
Generator matrix (binary K-by-N matrix) – генераторная матрица –
записывается для двух вариантов декодеров: [[110;011;111;101]eye(4)] и [[001111;111100]eye(2)].
Decoding table (0 for table corresponding to Generator matrix) = 0 –
таблица декодирования (соответствует генераторной матрице).
Для исследования влияния канальных оши­бок на работу декодера можно воспользоваться блоком «Бинарный симметричный канал» (рис. 3.7), указав следующие параметры.
Error probability – вероятность битовой
ошибки. Работа декодера исследуется для не­скольких вероятностей битовой ошибки
234

(
10 , 10 , 10
Initial seed = 12345 – «затравка» для гене-
) .
Рис. 3.7. Бинарный
симметричный канал
ратора случайных чисел.
Output error vector – если этот селектор установлен, то формиру-
ется дополнительный выход, позволяющий контролировать местопо­ложение двоичных символов в последовательности, в которых про­изошла ошибка. Данный селектор должен быть установлен.
В качестве информационной последовательности можно восполь­зоваться блоком «Генератор случайных двоичных чисел» (см. рис. 2.8.). Необходимо настроить этот генератор на формирование информаци­онных блоков
заданной длины. Например, чтобы настроить генератор на формирование информационного блока из четырех двоичных символов, параметры генератора должны быть выбраны следующим образом:
Probability of a zero = [0.5 0.5 0.5 0.5] – вероятность нуля; Initial seed = [12345 5678 91234 4567] – «затравка» для генерато-
ра случайных чисел;
Sample time = 1e-3 – период взятия отсчетов (с);
Frame-based outputs – селектор, позволяющий выбрать одну из
двух схем формирования выходного сигнала: а) либо каждый разряд четырехразрядного сигнала подается по отдельному проводу; б) разря-
59
ды сигнала передаются последовательно во времени по одному прово­ду. Этот селектор должен быть сброшен;
Interpret vector parameters as 1-D – интерпретировать вектор па-
раметров как одномерный вектор. Этот селектор также должен быть сброшен.
3.2.2. Модель сверточного кодирования
Для изучения свойств кода необходимо воспользоваться блоками
«Сверточный кодер» и «декодер Витерби» (рис. 3.8).
Рис. 3.8. Сверточный кодер и декодер Витерби
Блок параметров модели сверточного кодера содержит следующие
пункты.
Trellis structure – структура, задающая параметры сверточного
кодера. Эта структура создается с помощью функции poly2trellis(). Первым параметром функции poly2trellis() является длина кодового ограничения ,K вторым – массив записанных в восьмеричном коде
векторов соединений сумматоров единения
111 7 , а вектор
28
g , 2g , (3g ). Поскольку вектор со-
1
101 5, то для первого сверточного
28
кодера в данном поле должно быть записано следующее: poly2trellis(3,[7 5]) (либо poly2trellis(3,[7 5 7]) – для второго кодера).
Reset – сброс кодера. Это поле должно быть установлено в None.
Блок параметров модели декодера Витерби содержит следующие
пункты.
Trellis structure – структура, задающая параметры декодера Ви-
терби. Это поле должно быть заполнено по аналогии с соответствую­щим полем сверточного кодера.
Decision type = Hard Decision – тип принятия решения. Должно
быть выбрано жесткое правило принятия решений.
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]