Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы систем мобильной связи. Учебно-методическое пособие
.pdf
41
0 0 0 1 0 0 1 1 0 1 0 1 1 1 1
1 0 0 0 1 0 0 1 1 0 1 0 1 1 1
--------------------------------------------
о с с о о с о с о о о о с с с
о – отличаются; с – совпадают.
Число совпадений: 7.
Число несовпадений: 8.
Следовательно,
.
Автокорреляция для любого сдвига будет равна -1/15, и лишь в момент
полного совпадения всех элементов будет наблюдаться пик корреляционной
функции
. На рисунке 4.2 показана автокорреляционная
функция псевдослучайной бинарной последовательности.
+1
R(τ)
τ
p=2
n
-1
Нормированная длительность
элементарного сигнала = 1
Рисунок 4.2 – Автокорреляционная функция псевдослучайной бинарной
последовательности в зависимости от величины задержки
Чем длиннее последовательность, тем выше пик ее автокорреляционной
функции и тем больше напоминает дельта-функцию. Такого типа автокорреляцией характеризуется и белый гауссовский шум, поэтому в англоязычной
литературе такие последовательности называют pseudo noise sequences.
Чем острее автокорреляционный пик (то есть чем длиннее
последовательность), тем удобней использовать данные последовательности
для решения проблем синхронизации в сетях мобильной связи. Действительно,
абонентский терминал при начальном включении должен засинхронизировать
начало своих временных слотов на временной оси приемника и передатчика.
Поэтому обычно базовые станции периодически отправляют специальные
синхронизирующие последовательности, в качестве которых часто используются именно m-последовательности, и терминал вычисляет автокорреляцию этой
заранее известной последовательности с полученным записанным сигналом, и в
тот момент, когда фиксируется автокорреляционный пик, абонент отмечает
начало слота на своей оси времени (а точнее, номер отсчета в буфере, начиная с
которого идет передаваемый базовой станцией слот с данными).
Стоит отметить, что даже в случае наличия ошибок в принятой
синхропоследовательности, возникших вследствие помех, присутствующих в

42
канале связи, приемник все равно достаточно легко обнаружит явный
корреляционный пик.
На рисунке 4.3 представлены варианты реализации схемы синхронизации
с помощью последовательного и параллельного поиска.
Разновидности псевдо-шумовых битовых последовательностей
M-последовательности – не единственные PN-последовательности,
используемые в системах мобильной связи. Существуют также коды Баркера,
коды Голда, коды Касами, коды Уолша-Адамара.
Коды Голда формируются путем суммирования по модулю 2 двух Mпоследовательностей одинаковой длины. Коды Касами также формируются из
М-последовательностей путем взятия периодических выборок из этих
последовательностей и суммированием их по модулю два. Данные коды
обладают очень хорошими взаимокорреляционными свойствами.
λT
c
0
Принятый
кодовый
сигнал
Компаратор
Порог
Контроль
поиска
Генератор
псевдослучайного
(псевдошумового)
кода
Тактовый генератор
Индикатор
захвата
Процесс последовательного поиска сигнала синхронизации
(Sliding correlator)
Процесс параллельного поиска сигнала синхронизации
Компаратор
Выход
λT
c
0
λT
c
0
λT
c
0
.
.
.
Принятый
кодовый
сигнал
Сгенерированная ПС-
последовательность
g(t)
g(t-Tc/2)
g(t-(2Nc-1)Tc)
Рисунок 4.3 – Синхронизация с помощью последовательного и параллельного
поиска

43
3. Задание для выполнения практической работы
В рамках данной работы студенты должны научиться формировать
псевдошумовые битовые последовательности (коды Голда), изучить их
автокорреляционные и взаимокорреляционные свойства.
Порядок выполнения работы:
1) Напишите программу на языке С/С++ для генерации
последовательности Голда, используя схему, изображенную на рисунке 4.4,
если ваша группа с четным номером и 4.5 – если с нечетным, и порождающие
полиномы x и y, при этом x – это ваш порядковый номер в журнале в двоичном
формате (5 бит), а y – это x+7 (5 бит). Например, ваш номер 22, значит:
x = 1 0 1 1 0, y = 1 1 1 0 1.
x1 x2 x3 x4
Выход
x5
y1 y2 y3 y4 y5
1 0 1
1
0
1
1 1
0
1
Рисунок 4.4 – Генерация последовательности Голда (вариант для четного
номера группы)

44
x1 x2 x3 x4
Выход
x5
y1 y2 y3 y4 y5
1 0 1
1
0
1
1 1
0
1
Рисунок 4.5 – Генерация последовательности Голда (вариант для нечетного
номера группы)
1. Выведите получившуюся последовательность на экран.
2. Сделайте поэлементный циклический сдвиг последовательности и
посчитайте автокорреляцию исходной последовательности и
сдвинутой. Сформируйте таблицу с битовыми значениями
последовательностей, в последнем столбце которой будет
вычисленное значение автокорреляции, как показано в примере ниже.
Сдвиг | бит 1 | бит 2 | бит 3 | Автокорреляция
0 | 1 | 1 | 0 | 1
1 | 0 | 1 | 1 | -1/3
2 | 0 | 1 | 1 | -1/3
3 | 1 | 1 | 0 | 1
3. Сформируйте еще одну последовательность Голда, используя свою
схему (рис. 4.4 или 4.5), такую что x=x+1, а y= у-5.
4. Вычислите значение взаимной корреляции исходной и новой
последовательностей и выведите в терминал.
5. Проделайте шаги 1–5 в Matlab. Используйте функции xcorr() и
autocorr() для вычисления соответствующих корреляций. Сравните
результаты, полученные в Matlab и C/C++.
6. Выведите на график в Matlab функцию автокорреляции в зависимости
от величины задержки (lag).
7. Составьте отчет. Отчет должен содержать титульный лист,
содержание, цель и задачи работы, теоретические сведения, исходные
данные, этапы выполнения работы, сопровождаемые скриншотами и
графиками, демонстрирующими успешность выполнения, и

промежуточными выводами, результирующими таблицами, ответы на
контрольные вопросы, заключение и ссылку в виде QR-кода на
репозиторий с кодом (git).
4. Контрольные вопросы
1. Для чего в мобильных сетях могут использоваться псевдослучайные
последовательности?
2. Что значит положительная корреляция сигналов?
3. Что такое корреляционный прием сигналов?
4. Как вычисление корреляционных функций помогает
синхронизироваться приемникам и передатчика в сетях мобильной связи?
5. Какими свойствами обладают псевдослучайные битовые
последовательности?
6. Какие разновидности PN-последовательностей вам известны?
45

46
Занятие №5. Циклический избыточный код. CRC
1. Цель работы
Получить представление о том, как осуществляется проверка на наличие
ошибок в пакетах с данными в современных системах связи (Error detection)
посредством использования циклического избыточного кода CRC (Cyclic
Redundancy Check).
2. Краткие теоретические сведения
Псевдослучайные двоичные последовательности
CRC – циклический избыточный код, иногда называемый также
контрольным кодом или контрольной суммой. CRC – это добавочная порция
избыточных бит, вычисляемых по заранее известному алгоритму на основе
исходного передаваемого пакета данных (информационной битовой
последовательности), которое передаётся вместе с самим пакетом по каналам
связи (добавляется после информационных битов) и служит для контроля его
безошибочной передачи.
Простыми словами, CRC – это остаток от двоичного деления
оригинального пакета с данными на какое-то двоичное n-разрядное число
(порождающий полином), и его длина будет равна n-1 бит. Рассмотрим пример,
где имеется 6 бит данных: 100100 и 4-битный порождающий полином 1101.
Требуется определить CRC. Для того чтобы выполнить деление этих битовых
последовательностей, нужно в конце последовательности с данными добавить
n-1 нулей, как показано ниже, где n=4, для нашего случая.
Делитель - 1 1 0 1 | 1 0 0 1 0 0 0 0 0 - Делимое (данные+n-1 нулей).
Основной операцией, используемой при делении бинарных чисел,
является исключающее ИЛИ (XOR). Ниже показана таблица истинности для
данной операции.

47
Пошаговое вычисление CRC (на стороне передатчика):
1) 1 1 0 1 | 1 0 0 1 0 0 0 0 0
1 1 0 1 (операция XOR)
--------------
1 0 0 0
2) 1 1 0 1 | 1 0 0 1 0 0 0 0 0
1 1 0 1
-------------
1 0 0 0
1 1 0 1
-------------
1 0 1 0
3) 1 1 0 1 | 1 0 0 1 0 0 0 0 0
1 1 0 1
-------------
1 0 0 0
1 1 0 1
-------------
1 0 1 0
1 1 0 1
------------
1 1 1 0
4) 1 1 0 1 | 1 0 0 1 0 0 0 0 0
1 1 0 1
-------------
1 0 0 0
1 1 0 1
-------------
1 0 1 0
1 1 0 1
------------
1 1 1 0
1 1 0 1
--------------
0 1 1 0
При появлении 0 на следующем шаге делим на 0000.

48
5) 1 1 0 1 | 1 0 0 1 0 0 0 0 0
1 1 0 1
-------------
1 0 0 0
1 1 0 1
-------------
1 0 1 0
1 1 0 1
------------
1 1 1 0
1 1 0 1
--------------
0 1 1 0
0 0 0 0
-------------
1 1 0 0
6) 1 1 0 1 | 1 0 0 1 0 0 0 0 0
1 1 0 1
-------------
1 0 0 0
1 1 0 1
-------------
1 0 1 0
1 1 0 1
------------
1 1 1 0
1 1 0 1
--------------
0 1 1 0
0 0 0 0
-------------
1 1 0 0
1 1 0 1
---------------
0 0 1 – это и есть CRC, остаток от деления.
Делитель принято записывать в виде полинома. Если считать, что каждый
разряд делителя – это коэффициент полинома, то этот полином будет иметь
вид:
x
n-1+xn-2
+…+x2+x1+x0
Таким образом, делитель из примера выше можно записать в виде
полинома как: 1*x3+1*x2+0*x1+1*х0, или сокращенно как: x3+x2+1 = 1101.

49
Полученный остаток от деления CRC добавляется на передающей
стороне к исходным данным, и уже эта битовая последовательность,
преобразованная в радиосигнал, передается в канал связи: 1 0 0 1 0 0 0 0 1.
На приемной стороне для обнаружения ошибки (или ее отсутствия) с
полученным пакетом осуществляется ровно такая же процедура – деление на
порождающий CRC полином. Если полученный в результате данного деления
остаток будет ненулевым, то фиксируется факт наличия ошибки.
Пошаговое вычисление CRC (на стороне приемника):
1) 1 1 0 1 | 1 0 0 1 0 0 0 0 1
1 1 0 1 (операция XOR)
--------------
1 0 0 0
2) 1 1 0 1 | 1 0 0 1 0 0 0 0 1
1 1 0 1
-------------
1 0 0 0
1 1 0 1
------------ 1 0 1 0
3) 1 1 0 1 | 1 0 0 1 0 0 0 0 1
1 1 0 1
-------------
1 0 0 0
1 1 0 1
-------------
1 0 1 0
1 1 0 1
------------
1 1 1 0
4) 1 1 0 1 | 1 0 0 1 0 0 0 0 1
1 1 0 1
-------------
1 0 0 0
1 1 0 1
-------------
1 0 1 0
1 1 0 1
------------
1 1 1 0
1 1 0 1
--------------
0 1 1 0
При появлении 0 на следующем шаге делим на 0000.

50
5) 1 1 0 1 | 1 0 0 1 0 0 0 0 1
1 1 0 1
-------------
1 0 0 0
1 1 0 1
-------------
1 0 1 0
1 1 0 1
------------
1 1 1 0
1 1 0 1
--------------
0 1 1 0
0 0 0 0
-------------
0 1 0 1
6) 1 1 0 1 | 1 0 0 1 0 0 0 0 1
1 1 0 1
-------------
1 0 0 0
1 1 0 1
-------------
1 0 1 0
1 1 0 1
------------
1 1 1 0
1 1 0 1
--------------
0 1 1 0
0 0 0 0
-------------
1 1 0 1
1 1 0 1
---------------
0 0 0 – то есть пакет передан без ошибок.
3. Задание для выполнения практической работы
В рамках данной работы студенты должны научиться вычислять CRC-
последовательности, а также на их основании детектировать ошибки.
Порядок выполнения работы:
1. Напишите программу на языке С/С++ для вычисления CRC для пакета
данных длиной N бит (N= 20 + порядковый номер в журнале) и
определения факта наличия ошибки при передаче пакета по каналу связи.
2. Порождающий полином G для делителя выберите в соответствии с
вариантом. Номер варианта – порядковый номер в журнале группы.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
