
- •Основы теории систем и средств связи с подвижными объектами
- •1. Показатели качества системы связи. Информационная, энергетическая и спектральная эффективность. Осш.
- •6. Основы передачи сигналов по каналу с ограниченной полосой. Фильтр Найквиста. Фильтр типа «Приподнятого косинуса». Глазковая диаграмма.
- •7. Фазовая манипуляция. Многофазовая манипуляция. Основные принципы. Зависимость вероятности ошибки от осш и плоскость «Полоса-эффективность».
- •8. Комплексная огибающая. Модуляция qpsk. Модуляция oqpsk. Модуляция р/4-dqpsk.
- •9. Частотная манипуляция. Обнаружение чм-сигналов. Расстояние между тонами. Вероятность ошибки. Плоскость «Полоса-эффективность». Манипуляция с минимальным сдвигом. Модемы gmsk.
- •10. Системы модуляции с расширенным спектром. Основные положения. Прямое расширение спектра. Программная перестройка частоты. Псевдослучайные последовательности.
- •12. Модели предсказания уровня принимаемого сигнала. Модели Окамуры, Окамуры-Хата. Модель Ли «от зоны к зоне». Влияние дополнительных факторов. Модель для коротких трасс.
- •13. Разнесенный прием. Классификация. Пространственное, поляризационное, угловое разнесение. Частотное разнесение. Временное разнесение и перемежение.
- •15. Канальное кодирование. Классификация. Типы защиты от ошибок. Модели каналов. Компромиссы, достигаемые за счет кодирования.
- •17. Сверточное кодирование. Представление сверточного кодера. Представление связи. Реакция кодера на импульсное возмущение. Полиномиальное представление. Диаграмма состояний. Древовидная диаграмма.
- •Систематический сверточный код.
- •Катастрофическая ошибка.
- •19.Тактовая и фазовая синхронизация: определения и назначение. Синхронизация: оценивание параметров сигнала, оценивание фазы несущей.
- •20.Синхронизация: Модель замкнутой фап. Влияние аддитивного шума на оценку фазы.
- •21. Синхронизация: автоподстройка по модулированному сигналу, петли управляемые и не управляемые решениями.
- •23. Перспективные методы модуляции: классификация, многочастотная модуляция (dmt). Модуляция с ортогональным частотным мультиплексированием (ofdm). Субполосное мультиплексирование (sdm).
- •24. Перспективные методы модуляции: mimo системы.
15. Канальное кодирование. Классификация. Типы защиты от ошибок. Модели каналов. Компромиссы, достигаемые за счет кодирования.
Канальное кодирование – это класс преобразования сигнала, выполняемое для повышения качества связи. Это способ приведения параметров системы к желаемому компромиссу между достоверностью передачи, шириной полосы и мощностью.
Классификация
Канальное кодирование условно делится на 2 вида:
Канальное
Кодирование
Кодирование Структурированные
формы сигнала последовательности
- М-арная передача сигнала - Блочное кодирование
- антиподные сигналы - сверточные коды
- ортогональные сигналы - турбокоды.
- решетчатое кодирование
Антиподные сигналы – противоположны друг другу по знаку или имеют сдвиг 180° или является зеркальным отображением друг друга.
Ортогональные сигналы удовлетворяют выражению:
М – арная передача( MPSK, MFSK) может рассматриваться как процедура кодирования формы сигнала.
Решетчатое кодирование (TCM- trellis coded mod)
Схема преобразования сигнала, в которой модуляция объединена с кодированием для улучшения пространственных характеристик сигналов.
Блочное кодирование подразумевает разбиение информационной последовательности на блоки и добавление к каждому блоку служебных бит используемых для контроля достоверности передачи данного блока и исправления ошибок.
Сверточное кодирование – кодирование формирует блок закодированных данных не только на основе текущего информационного блока, но и с использованием предыдущей информации.
Турбокодирование – это комбинирование 2-х или более кодов в результате которого, возможна коррекция ошибки в значительно более длинных последовательностях, а также возможно декодирование средней сложности
Типы защиты от ошибок.
Существует 2 основных метода:
- обнаружение ошибок и повторная передача(ARQ-automatic repeat request).
- прямое исправление ошибок(FEC-forward error correction).
Обнаружение ошибок:
Запрос ARQ с остановками.
ACK ACK NAK
1
3
ошибка
ACK - aсknowlegement
NAK – negativeaknowlegement
Непрерывный запрос ARQ с возвратом.
1
3
4
5
4
2ativeaknowlegement
ошибка
4
3
6
2
2
6
2
56
2
7
ACK NAK
ACK
7
1
2
2
3
4
5
4
2ativeaknowlegement
ошибка
6
2
3
4
56
2
Непрерывный запрос ARQ с выборочным повторением.
1
3
4
5
4
2ativeaknowlegement
ошибка
84
3
6
2
2
956
2
7
ACK NAK
ACK
7
1
3
4
5
4
2ativeaknowlegement
ошибка
6
2
3
84
956
2
Главное преимущество схем ARQ перед схемами FEC заключается в том, что обнаружение ошибок требует более простого декодирующего устройства и меньшей избыточности, чем при коррекции ошибок.
Метод FEC может оказаться более приемлемым по следующим причинам:
- Обратный канал недоступен или задержки при использовании ARQ слишком велики.
- Алгоритм повторной передачи нельзя реализовать удобным образом.
- При ожидаемом количестве ошибок потребуется слишком много повторных передач.
Модели каналов.
Дискретный
канал без памяти характеризуется
дискретным входным алфавитом, дискретным
выходным алфавитом и набором вероятностей
.
z¡ - элемент выходной последовательности канала.
u¡ - элемент входной последовательности.
Так как канал без памяти, то каждый выходной символ канала зависит от соответствующего входного символа и условная вероятность приема сообщения z при условии передачи u
Если бы канал имел память, то есть в пакете данных имеются ошибки, или канал подвержен замираниям, то условная вероятность приема z следует выражать через совместную вероятность всех элементов последовательности.
Частным случаем данного канала является двоичный симметричный канал.
Так как на выход демодулятора поступают дискретные элементы, то говорят, что демодулятор принимает жесткое решение. Если декодер работает на основе жестких решений (определенных демодулятором) декодирование в двоичном симметричном канале называется жестким декодированием..
Гауссовский канал: с дискретным входом и непрерывным выходным алфавитом лежащим в диапазоне от -∞ до ∞ - добавляет шум ко всем передаваемым символам, результирующая функция плотности вероятности принятой случайной величины z при условии передачи символа uk определяемым выражением:
Компромиссы достигаемые за счет кодирования.
Компромиссы:
1.Достоверность – полоса пропускания.
Пусть разработана система с рабочей точкой А. Повышение достоверности передачи возможно либо смещением в точку В(повышением мощности ). Либо смещением в точку С на кривую для системы с кодированием помимо усложнения системы это приводит к расширению полосы передачи (так как кодирование с коррекцией ошибок требует избыточности).
2. Мощность – полоса пропускания.
Пусть
разработана система с рабочей точкой
D
требуется снизить требования к
,
без
ухудшения качества связи, для этого
можно перейти к системе с кодированием
(точка E)
за счет увеличения полосы передачи.
3.Скорость – полоса пропускания.
Пусть разработана система с рабочей точкой D ( система без кодирования ), при неизменном качестве связи и мощности передачи. Требуется увеличить скорость передачи данных R согласно формуле:
,
Pr
– вся принятая мощность.
Увеличение R приводит к уменьшению и ухудшению достоверности связи. Введение кодирования позволит улучшить достоверность связи за счет расширения полосы.
4.Пропускная способность – ширина полосы.
При CDMA каждый абонент является источником помех для других пользователей в той же ячейки, поэтому пропускная способность (максимальное число абонентов в ячейки) обратно пропорционально . Снижение этой величины дает в итоге увеличение пропускной способности. Кодирование позволяет снизить мощность, используемую каждым абонентом, что приводит к увеличению максимально возможного их числа.
Увеличение полосы пропускания из-за кодирования незначительно по сравнению с расширением спектра для CDMA.
16. Линейные блочные коды. Основные понятия. Систематические линейные блочные коды. Проверочная матрица. Синдром. Нормальная матрица. Процедура декодирования. Весовой коэффициент и расстояние Хэмминга. Возможность определения и исправления ошибки. Циклические коды.
Линейные блочные коды. Основные понятия.
Линейные блочные коды- это класс кодов с контрольной четностью. Код можно описать парой чисел (n,k), что означает, что блок из k символов сообщения преобразуется в больший блок из n символов.
k-информационная часть.
n-число бит.
n-k-биты четности.
(n-k)/k-избыточность кода.
k/n-степень кодирования.
k-битовое сообщение формирует набор из 2k последовательностей, которые называют k-картежами.
Кодирование заключается во взаимно однозначное сопоставление каждого из 2k k-картежей с одним из 2n n-картежей. Отображение производится согласно таблице соответствия, является линейным. Множество из 2k n-картежей является линейным блочным кодом, если оно является подпространством векторного пространства Vn всех n-картежей.
Подмножество S векторного пространства V является подпространством, если выполняется условие:
Множеству S нулевой вектор,
Сумма любых двух векторов в S также принадлежит S.
Для двоичных векторов сложение осуществляется по модулю два. Основная задача выбора кода аналогична выбору семейства модулированных сигналов
Требуется использовать как можно больше кодовых слов из Vn чтобы минимизировать избыточность.
Требуется выбрать максимально удаленные друг от друга слова, чтобы максимизировать помехоустойчивость.
При больших k таблица соответствия кодера становиться слишком большой, однако необходимые кодовые слова можно генерировать. Для этого используется матрица-генератор. Всегда можно найти такое множество n-картежей с числом элементов <2k, которое может сгенерировать все 2k слова подпространства.
Наименьшее, линейное, независимое множество, охватывающее подпространство называется базисным, а число элементов такого множества-размерностью.
Пусть V1, V2, V3 … Vk-базис подпространства, тогда любое слово U из этого подпространства может быть сформировано как линейная комбинация векторов:
U=m1V1+m2V2+…+mkVk,
где mi-цифры сообщения.
Матрица генератора тогда записывается в виде:
U=mG.
Систематические линейные блочные коды.
(n,k)-код это отображение k-мерного вектора сообщений в n-элементное кодовое слово, при которой часть генерированной последовательности совмещается с k символами сообщения, остальные биты n-k четности.
Наиболее удобным и наглядным способом описания линейных блочных кодов является их задание с использованием порождающей матрицы, являющейся компактной формой представления системы проверочных уравнений:
|
1 0 0 … 0 |
P00 P01 . . . . P0, n- k- 1 |
|
G = |
0 1 0 … 0 |
P10 P11 . . . . P1, n- k- 1 |
|
|
……… |
……………… |
. |
|
0 0 0 … 1 |
Pk- 1, 0 Pk- 1, 1 . . . . Pk- 1, n- k- 1 |
|
|
единичная матрица I k*k |
матрица Р k*(n- k) |
|
Определение. Линейный блочный систематический (n,k)-код полностью определяется матрицей G размером k * n с двоичными матричными элементами. При этом каждое кодовое слово является линейной комбинацией строк матрицы G, а каждая линейная комбинация строк G - кодовым словом.
Пусть m = (m0 , m1 ,. . . , mk -1) будет тем блоком-сообщением, который необходимо закодировать с использованием данного кода.
Тогда соответствующим ему кодовым словом U будет
U = m× G .
С учетом структуры матрицы G символы кодового слова U будут такими:
для i = 0, 1, 2,. . . , k- 1
Ui = mi ;
для i = k, k+1,. . . , n
Ui = m0× P0j + m1× P1j + m2× P2j +…+ mk- 1× Pk- 1, j .
Иными словами, k крайних левых символов кодового слова совпадает с символами кодируемой информационной последовательности, а остальные (n - к) символов являются линейными комбинациями символов информационной последовательности.
Определенный таким образом код называется линейным блочным систематическим (n,k)-кодом с обобщенными проверками на четность, а задающая его матрица G называется порождающей матрицей кода.
Проверочная матрица.
Линейный систематический блочный код может быть определен также с использованием так называемой проверочной матрицы H, обладающей следующим свойством:
- если некоторая последовательность U является кодовым словом, то
U* HT = 0.
Другими словами, проверочная матрица H ортогональна любой кодовой последовательности данного кода.
Проверочная матрица имеет размерность (n-k)*n и следующую структуру :
|
P00 |
P10 |
… |
Pk-1, 0 |
1 |
0 |
0 |
… |
0 |
|
|
P01 |
P11 |
… |
Pk-1, 1 |
0 |
1 |
0 |
… |
0 |
|
H = |
P22 |
P12 |
… |
Pk-1, 2 |
0 |
0 |
1 |
… |
0 |
, |
|
… |
… |
… |
… |
… |
… |
… |
… |
… |
|
|
P0, n-k-1 |
P1, n-k-1 |
… |
Pk-1, n-k-1 |
0 |
0 |
0 |
… |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
PT |
I1(n-k)´(n-k) |
|
где PT - транспонированная подматрица P из порождающей матрицы G ;
I1(n-k)´(n-k) - единичная матрица соответствующего размера.
Видно, что единичная и проверочная подматрицы в G и H поменялись местами, кроме того, изменился их размер.
Для рассматриваемого в качестве примера (7,4)-кода Хемминга проверочная матрица H имеет вид
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
|
H(7,4)= |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
. |
|
0 |
1 |
1 |
1 |
0 |
0 |
1 |
|
Проверочная матрица позволяет легко определить, является ли принятая последовательность кодовым словом данного кода.
Пусть, к примеру, принята последовательность символов c = (1011001), тогда
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
T |
c* HT = (1011001) |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
= (1 1 0) ¹ 0 . |
|
0 |
1 |
1 |
1 |
0 |
0 |
1 |
|
Отсюда можно сделать вывод, что последовательность c = (1011001) не является кодовым словом данного кода.
Рассмотрим другой пример. Допустим, принята последовательность d = (0010111), тогда
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
T |
d × HT = (0010111) |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
= (0 0 0) ¹ 0 , |
|
0 |
1 |
1 |
1 |
0 |
0 |
1 |
|
то есть двоичная последовательность d принадлежит коду с проверочной матрицей H
Существует две важных свойства проверочной матрицы
Она не может содержать нулевых столбцов, иначе ошибка не будет обнаружена.
Все столбцы должны быть различными, чтобы ошибки в различных позициях были различны.
Рассматривая матрицы G и H, можно сделать следующие интересные выводы. Каждая из них содержит множество линейно независимых векторов, то есть каждая из матриц может рассматриваться как базис некоторого линейного пространства. Кроме того, каждое из этих пространств является подпространством векторного пространства, состоящего из всех наборов двоичных символов длиной n.
Скалярное произведение каждой строки матрицы G на каждую строку матрицы H равно нулю, то есть
H× GT = 0 и G× HT = 0 .
Следовательно, можно "поменять ролями" эти две матрицы и использовать Н как порождающую матрицу, а G как проверочную матрицу некоторого другого кода.
Синдром. Нормальная матрица
Чтобы проверить, является ли принятый вектор кодовым словом, декодер вычисляет (n-k)-последовательность, определяемую следующим образом :
S = ( S0 , S1 , … , Sn-k-1 ) = r HT.
При этом r является кодовым словом тогда, и только тогда, когда S = (00..0), и не является кодовым словом данного кода, если S 0. Следовательно, S используется для обнаружения ошибок, ненулевое значение S служит признаком наличия ошибок в принятой последовательности. Поэтому вектор S называется синдромом принятого вектора r.
Покажем, как можно использовать синдром принятого вектора не только для обнаружения, но и для исправления ошибок.
Пусть U = ( U0 , U1 , …, Un-1 ), e = ( е0 , е1, …, еn-1 ) и r = ( r0 , r1, r2 , …, rn-1) являются передаваемым кодовым словом, вектором-ошибкой и принятым вектором соответственно. Тогда
r = U + e
и синдром
S = rHT = (U + e ) HT = U HT + e HT = 0 + e HT = e HT ,
поскольку для любого кодового слова U HT = 0.
Таким образом, синдром принятой последовательности r зависит только от ошибки, имеющей место в этой последовательности, и совершенно не зависит от переданного кодового слова. Задача декодера, используя эту зависимость, определить элементы (координаты) вектора ошибок. Найдя вектор ошибки можно восстановить кодовое слово как
U* = r + e .
Нормальная матрица.
Нормальная матрица- матрица, состоящая из всех 2 картежей, верхняя строка состоит из всех кодовых слов, начиная с нулевого, а левый столбец из ошибочных комбинаций.
000000 |
110100 |
101001 |
011010 |
110011 |
011101 |
101110 |
000111 |
000001 |
110101 |
101000 |
011011 |
110010 |
011100 |
101111 |
000110 |
000010 |
110110 |
101011 |
011000 |
110001 |
011111 |
101100 |
000101 |
000100 |
110000 |
101101 |
011110 |
110111 |
011001 |
101010 |
000011 |
001000 |
111100 |
100001 |
010010 |
111011 |
010101 |
100110 |
001111 |
010000 |
100100 |
111001 |
001010 |
100011 |
001101 |
111110 |
010111 |
100000 |
010100 |
001001 |
111010 |
010011 |
111101 |
001110 |
100111 |
010001 |
100101 |
111000 |
001011 |
100010 |
001100 |
111111 |
010110 |
Получается таблица синдромов.
Каждая строка-класс смежности. Декодирование будет правильным только тогда, когда ошибочная комбинация введенная каналом будет одним из образующих элементов класса смежности.
Систематические линейные блочные коды.
(n,k)-код это отображение k-мерного вектора сообщений в n-элементное кодовое слово, при которой часть генерированной последовательности совмещается с k символами сообщения, остальные биты n-k четности.
Наиболее удобным и наглядным способом описания линейных блочных кодов является их задание с использованием порождающей матрицы, являющейся компактной формой представления системы проверочных уравнений:
|
1 0 0 … 0 |
P00 P01 . . . . P0, n- k- 1 |
|
G = |
0 1 0 … 0 |
P10 P11 . . . . P1, n- k- 1 |
|
|
……… |
……………… |
. |
|
0 0 0 … 1 |
Pk- 1, 0 Pk- 1, 1 . . . . Pk- 1, n- k- 1 |
|
|
единичная матрица I k*k |
матрица Р k*(n- k) |
|
Определение. Линейный блочный систематический (n,k)-код полностью определяется матрицей G размером k * n с двоичными матричными элементами. При этом каждое кодовое слово является линейной комбинацией строк матрицы G, а каждая линейная комбинация строк G - кодовым словом.
Пусть m = (m0 , m1 ,. . . , mk -1) будет тем блоком-сообщением, который необходимо закодировать с использованием данного кода.
Тогда соответствующим ему кодовым словом U будет
U = m× G .
С учетом структуры матрицы G символы кодового слова U будут такими:
для i = 0, 1, 2,. . . , k- 1
Ui = mi ;
для i = k, k+1,. . . , n
Ui = m0× P0j + m1× P1j + m2× P2j +…+ mk- 1× Pk- 1, j .
Иными словами, k крайних левых символов кодового слова совпадает с символами кодируемой информационной последовательности, а остальные (n - к) символов являются линейными комбинациями символов информационной последовательности.
Определенный таким образом код называется линейным блочным систематическим (n,k)-кодом с обобщенными проверками на четность, а задающая его матрица G называется порождающей матрицей кода.
Декодирование.
Сама процедура декодирования состоит из трех процедур:
Вычисление синдрома.
Определение вектора ошибки.
Исправление кодового слова U* = r + e .
Возможность определять исправлять ошибки.
Рассмотрим, чем определяется способность блочного кода обнаруживать и исправлять ошибки, возникшие при передаче.
Пусть U = (U0, U1, U2, ...Un-1) - двоичная последовательность длиной n.
Весовой коэффициент.
Число единиц (ненулевых компонент) в этой последовательности называется весом Хемминга вектора U и обозначается w(U).
Например, вес Хемминга вектора U = ( 1001011 ) равен четырем, для вектора U = ( 1111111 ) величина w(U) составит 7 и т.д.
Таким образом, чем больше единиц в двоичной последовательности, тем больше ее вес Хемминга.
Расстояние Хемминга.
Далее, пусть U и V будут двоичными последовательностями длиной n.
Число разрядов, в которых эти последовательности различаются, называется расстоянием Хемминга между U и V и обозначается d( U, V).
Например, если U = ( 1001011 ), а V = ( 0100011 ), то d( U, V) = 3.
Задав линейный код, то есть определив все 2k его кодовых слов, можно вычислить расстояние между всеми возможными парами кодовых слов. Минимальное из них называется минимальным кодовым расстоянием кода и обозначается dmin.
В общем случае если блочный код имеет минимальное расстояние dmin, то он может обнаруживать любые сочетания ошибок при их числе, меньшем или равном dmin - 1, поскольку никакое сочетание ошибок при их числе, меньшем, чем dmin - 1, не может перевести одно кодовое слово в другое.
Но ошибки могут иметь кратность и большую, чем dmin- 1, и тогда они останутся необнаруженными.
Способность кода к исправлению ошибок определяется как максимальное число гарантированных исправленных ошибок на кодовое слово.Число ошибок, которое можетисправить код с dmin определяется формулой:
t=int((dmin-1)/2).
Циклические коды.
Подкласс линейных блочных кодов.
Линейный код называется циклическим, если его слова образуют подпространство N-картежей S, в котором циклический сдвиг картежа приводит к получению нового картежа принадлежащего пространству.
U
= ( U0,
U1,
...Un-
1
)
S
V = ( Un- 1, U0, U1, ...Un- 2) S
Компоненты можно рассматривать как коэффициенты полинома U(x). В полиномиальной форме цикличечкая природа кодов проявляется в следующем виде
Ui(x)=xiU(x) по модулю (xn+1).
Вместо матрицы генерации используется полином генератор, полином порядка (n-k) обозначается g(x). Он является единственным для циклического кода.
m(x)=m0+m1X+…+mkXk-1
Тогда полином каждого слова в подпространстве представляется как:
U(x)= m(x) g(x) со степенью n-1 или меньше.
U(x) действительное кодовое слово из подпространства S образованного g(x) тогда и только тогда когда U(x) делится на g(x) без остатка.
Если G(x) является полиномом степени (n-k) и при этом множителем (xn+1) , то g(x) однозначным образом генерирует циклический код (n;k).
В систематической форме символы сообщения используются как часть кодового слова, то есть биты сдвигаются вправо на k разрядов, а левые (n-k) заполняются битами четности. Для циклических кодов систематическое кодирование в алгебраической форме будет иметь вид
U(x)=P(x) + xn-k m(x).
P(x)= xn-k m(x) по модулю g(x).
Известные блочные коды.
Коды Хемминга
Простой подкласс блочных кодов, который имеет структуру:
(n,k)=(2m-1,2m-1-m) m=2,3,4,…
dmin=3
Способны исправлять однобитовые ошибки, обнаруживать двухбитовые ошибки.
Расширенный код Галлея (24;12).
Коды БЧХ.
Мощный подкласс циклических кодов обеспечивающих свободу вбора длины блока, степени кодирования, возможности исправлять ошибки.