11911

Алгоритмы речевого кодирования в стандарте GSM

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа по курсу Информационные технологии в телекоммуникационных системых Алгоритмы речевого кодирования в стандарте GSM Содержание [0.0.1] Лабораторная работа [0.0.1.1] Алгоритмы речевого кодирования [0.1] В...

Русский

2013-04-14

544.5 KB

19 чел.

Лабораторная работа

по курсу «Информационные технологии в телекоммуникационных системых»

Алгоритмы речевого кодирования

в стандарте GSM

Содержание

[0.0.1] Лабораторная работа

[0.0.1.1] Алгоритмы речевого кодирования

[0.1]
Введение

[0.2]
Теоретическая часть

[0.3] Последовательность выполнения

[0.4]
Определение числа испытаний.

  1.  
    Введение

В последние несколько лет широкое распространение получили системы цифровой сотовой связи стандарта GSM (Global System for Mobile communications). По сравнению с существовавшими ранее системами аналоговой связи, они обеспечивают:

  •  более высокое качество связи
  •  возможность поддержки портативного оборудования пользователя (в т.ч. поддержка роуминга - возможности использования абонентом своего мобильного телефона при перемещении в другую сеть GSM)
  •  поддержка ряда дополнительных услуг, таких, как SMS (Short Message Service – система, позволяющая передавать короткие сообщения - до 160 байт)
  •  совместимость с сетями ISDN
  •  возможность тестирования канала связи
  •  возможность шифрования сообщений пользователей

В настоящей лабораторной работе рассматриваются принципы обработки речевой информации, применяемые в системах стандарта GSM.

  1.  
    Теоретическая часть

  1.  Архитектура сетей GSM

Область, покрываемая сетью GSM, разбита на ячейки, называемые обычно сотами. Диаметр каждой ячейки может быть разным - от 400 м до 35 км. Система состоит из трех составных частей:

MS – мобильная станция;

BS – базовая станция. Обеспечивает связь между абонентами, находящимися в пределах соты;

MSC – центр коммутации. Он управляет подвижным абонентом: регистрирует, идентифицирует, обновляет информацию о местонахождении, маршрутизирует вызовы при роуминге абонентов, а также обеспечивает соединение с фиксированными телефонными сетями.

Рис. 2.1. Архитектура сети GSM

Здесь TE – узел фиксированной телефонной сети,

 IFW – межсетевой интерфейс.

Стандарт GSM разработан для создания сотовых систем подвижной связи в следующих полосах частот: 890-915 МГц (для передатчиков подвижных станций – MS), 935-960 МГц (для передатчиков базовых станций – BTS).

Для распределения доступной полосы сигнала между пользователями в стандарте GSM используется метод, являющийся комбинацией методов TDMA и FDMA (Time and Frequency Division Multiply Access). Ширина одного частотого канала составляет 200 Кгц, что позволяет организовать в сетях GSM 124 частотных канала. На одной частоте могут одновременно работать до 8 абонентов (с разделением по времени). Частоты, выделенные для передачи сообщений подвижной станцией на базовую и в обратном направлении, группируются парами, организуя дуплексный канал с разносом 45 МГц. Каждая станция характеризуется фиксированным присвоением определенного количества пар частот. На рис.2.2.2 показана модель использования частот, включающую 7 сот с круговой диаграммой направленности антенн базовых станций, с присвоением каждой соте группы частот.

Рис. 2.2.Модели использования частот:

Покрытие зоны обслуживания односекторными сотами

Покрытие зоны обслуживания трехсекторными сотами

Покрытие зоны обслуживания шестисекторными сотами

Сравнительные характеристики методов покрытия зоны обслуживания представлены в таблице:

Метод покрытия зоны обслуживания

Односекторные соты

Трехсекторные соты

Шестисекторные соты

(1,7)

(1,4)

(1,3)

(3,9)

(3,6)

(6,12)

(6,6)

Rпх/Rсоты

3,6

2,6

2

2,64

2,18

2,16

2,16

Отношение Rпх/Rсоты является исходным для оценки относительной мощности помехи от излучений станций ближайшей соты (сектора), работающих в тех же полосах частот, что и станция в рассматриваемой соте.

Как видно из рисунка 2.2, каждая базовая станция использует не все частотные каналы. Один частотный канал могут одновременно использовать до 8 абонентов (с разделением по времени).

Способы увеличения емкости сети:

  1.  Уменьшение размера соты
  2.  Использование направленных антенн
  3.  Использование динамического распределения частот между сотами.

  1.  Структура TDMA-кадра

Абоненты полосы разделены во времени. Каждому абоненту соответствует одно временнóе окно. Восемь окон объединяются в TDMA-кадр (фрейм). 26 фреймов образуют мультифрейм, который повторяется циклически. Длина мультифрейма - 120 миллисекунд. На один кадр приходится 1/200 мультифрейма, т.е. около 0.6 миллисекунды. В свою очередь, 51 мультифреймов объединяются в суперфрейм, 2048 суперфреймов – в гиперфрейм. Таким образом, гиперфрейм состоит из 2715648 TDMA-кадров.

  1.  Алгоритмы обработки информации


Рис.2.3. Последовательность обработки речевой информации

На рис. 2.3 приведена последовательность обработки информации в передатчике от микрофона до передачи в радиоканал. В приемнике реализована обратная последовательность.

Этапы обработки, рассматриваемые в данной работе, выделены пунктирной линией. Полужирным шрифтом обозначены названия библиотек, в которых в данной работе реализован тот или иной этап обработки информации.

Речевой кодек

Принцип кодирования речи состоит в извлечении основных характеристик речи в форме коэффициентов, по которым речь может быть восстановлена. Уменьшение скорости до 13 кбит/с достигается тремя этапами:

 LPC (Linear Predicative Coding) - кодированием с предсказанием.

 LTP (Long Term Prediction) - долговременным предсказанием.

 RPE (Regular Pulse Excitation) - регулярным импульсным возбуждением.

Перед обработкой входной сигнал разделяется на сегменты 160 слов (выборок) по 13 разрядов, что соответствует длительности 20 мсек.

Затем 160 выборок анализируются чтобы получить коэффициенты для LPC - фильтра.

Фильтр линейного предсказания. Цель: сформировать из нескольких отсчетов речи линейную комбинацию, наиболее точно аппроксимирующую следующий отсчет. Для этого для каждого блока (160 выборок) вычисляют автокорреляционную функцию (АКФ). Оказывается, что такая АКФ содержит исчерпывающую информацию о формантном спектре речи на данном сегменте. На втором шаге находят решение системы линейных уравнений относительно коэффициентов предсказания - тех самых, что нужны для формирования синтезирующего фильтра. Фактически найденные коэффициенты задают спектральную модель голосового аппарата человека, и чем выше порядок, тем точнее модель.

Исходный сигнал пропускаем через полученный фильтр.

Пропуская исходный речевой сигнал через полученный фильтр, получаем так называемый сигнал возбуждения (физически, это сигнал, проходящий через голосовой аппарат человека). Вообще, цель данного речевого кодека – сформировать коэффициенты синтезирующего фильтра (спектральная модель голосового аппарата человека) и сигнал возбуждения. На приемной стороне сигнал возбуждения пропускается через синтезирующий фильтр и 'получается' человеческая речь. Дальнейшая часть речевого кодека используется для уменьшения избыточности (сжатия) сигнала возбуждения.

Полученный сигнал (сигнал возбуждения) разделяем на 4 подблока по 40 выборок.

На втором этапе происходит дальнейшее снижение динамического диапазона за счет долговременного предсказания, в процессе которого каждый сегмент выравнивается до следующих друг за другом сегментов речи.

Перед обработкой каждого следующего подблоков из 40 выборок задержка и коэффициент усиления LTP фильтра корректируются в блоке анализа LTP на основе текущего и трех предшествующих восстановленных подблоков.

Вычисление LTP - параметров:

1. Вычисление взаимной корреляции Rj текущего подблока остаточного сигнала d  и предыдущих отсчетов восстановленного остаточного сигнала d'.

Rj()=d(kj + i)* d'(kj + i - );

где kj = k0 + j*40,

= 40...120,

j = 0...3.

2. Находим позицию Nj максимума функции взаимной корреляции Rj() внутри этого интервала.

Rj(Nj) = max{Rj()}.

3. Оценка коэффициента усиления b.

bj = ,                   j = 0...3;

где Sj(Nj) - d'(kj + i - )                                  j = 0...3;

Последние 120 отсчетов восстановленного остаточного сигнала сохраняются для вычисления LTP - параметров на следующем шаге (для фильтрации следующего подблока).

LTP - фильтрация: Из текущего сигнала (40 выборок) вычитается некоторый предыдущий восстановленный сигнал ( 40 выборок), отстоящий от текущего на величину N выборок (задержка) и умноженный на коэффициент усиления b.

e(k+ k) = d(k+ k) – d"(k+ k)    ;    k = 0,...,39

отсчеты d"(k+ k) вычисляются из предварительно восстановленных краткосрочных остаточных отсчетов d’, скорректированными в соответствии с текущим подсегментом LTP задержки Nj и взвешенными с коэффициентом усиления LTP-подсегмента bj:

d"(k+ k) = b’ * d’(k+ k - N’) ;    k = 0,...,39

                                         k= k+ j*40

Вычисляем остаточный сигнал как разность выходов LPC и LTP фильтров.

Восемь коэффициентов r(i) LPC анализирующего фильтра и параметры фильтра LTP (задержка N и коэффициент усиления b) кодируются и передаются со скоростью 3,6 кбит/с.

Остаточный сигнал проходит через фильтр нижних частот с симметричными коэффициентами (вычисляется свертка). Выход - 40 центральных отсчетов стандартной операции свертки.

 x(k) = H(i)*e(k+5-i)      где k = 0,...,39            (3.20)

ЗАМЕЧАНИЕ: e(k+5-i) = 0 для k+5-i < 0 и k+5-i > 39,

где H(i) - коэффициенты фильтра.

Таблица 2.1.

I

5

4(6)

3(7)

2(8)

1(9)

0(10)

H(i)

8192

5741

2054

0

-374

-134

Выход фильтра (40 выборок) разбивается на чередующиеся подпоследовательности длиной 14, 13, 13 выборок.

Из них формируются 4 подпоследовательности xm по 13 выборок по формуле:

xm(i) = x(kj + m + 3*i);             i = 0...12;                m = 0...3.

Выбираем подпоследовательность с максимальной энергией:

Em = maxmxm2 ;                           m = 0...3

Позиция сетки (номер выбранной подпоследовательности) кодируется двумя разрядами.

Из выбранной подпоследовательности (13 разрядов) выбираем максимальный отсчет Xmax  и кодируем его шестью разрядами по логарифмической шкале.

Каждую из 13 выборок делим на Xmax :

x(i)' = x(i) / Xmax,                           i = 0...12.

Кодируем каждое значение x(i)' тремя разрядами.

Периодическая последовательность фрагментов передается со скоростью 9,4 кбит/с. Общая скорость передачи составляет 3,6 + 9,4 = 13 кбит/с.

Теоретически время задержки речевого сигнала в кодеке равно длительности сегмента и составляет 20 мсек. Реальное время задержки, с учетом операций канального кодирования и перемежения, а также физического выполнения рассматриваемых операций, составляет 70-80 мсек.

Структурная схема речевого кодека, используемого в стандарте GSM-900.

Выходные параметры речевого кодека в порядке следования и битового распределения.

Параметр

Номер параметра

Имя параметра

Имя переменной

Число разрядов

№№ разрядов

1

LAR1

6

b1-b6

2

LAR2

6

b7-b12

3

коэффи-

LAR3

5

b13-b17

параметры

4

циенты

LAR4

5

b18-b22

фильтра

5

1-8

LAR5

4

b23-b26

6

LAR6

4

b27-b30

7

LAR7

3

b31-b33

8

LAR8

3

b34-b36

Подкадр №1

LTP

9

LTP задержка

N1

7

b37-b43

параметры

10

LTP усиление

b1

2

b44-b45

11

RPE позиция сетки

M1

2

b46-b47

RPE

12

Амплитуда блока

Xmax1

6

b48-b53

параметры

13

RPE-импульс №1

x1(0)

3

b54-b56

14

RPE-импульс №2

x1(1)

3

b57-b59

..

...

...

25

RPE-импульс №13

x1(12)

3

b90-b92

Подкадр №2

LTP

26

LTP задержка

N2

7

b93-b99

параметры

27

LTP усиление

b2

2

b100-b101

28

RPE позиция сетки

M2

2

b102-b103

RPE

29

Амплитуда блока

Xmax2

6

b104-b109

параметры

30

RPE-импульс №1

x2(0)

3

b110-b112

31

RPE-импульс №2

x2(1)

3

b113-b115

..

...

...

42

RPE-импульс №13

x2(12)

3

b146-b148

Подкадр №3

LTP

43

LTP задержка

N3

7

b149-b155

параметры

44

LTP усиление

b3

2

b156-b157

45

RPE позиция сетки

M3

2

b158-b159

RPE

46

Амплитуда блока

Xmax3

6

b160-b165

параметры

47

RPE-импульс №1

x3(0)

3

b166-b168

48

RPE-импульс №2

x3(1)

3

b169-b171

..

...

...

59

RPE-импульс №13

x3(12)

3

b202-b204

Подкадр №4

LTP

60

LTP задержка

N3

7

b205-b211

параметры

61

LTP усиление

b3

2

b212-b213

62

RPE позиция сетки

M3

2

b214-b215

RPE

63

Амплитуда блока

Xmax3

6

b216-b221

параметры

64

RPE-импульс №1

x3(0)

3

b222-b224

65

RPE-импульс №2

x3(1)

3

b225-b227

..

...

...

76

RPE-импульс №13

x3(12)

3

b258-b260

Циклическое кодирование и переупорядочение

На выходе схемы речевого кодирования имеем последовательность кадров размером 260 бит и длительностью 20 мкс. В схеме циклического кодирования кадр разбивается следующим образом:

Далее биты класса 1а дополняются тремя битами проверки на четность P0, P1 и P2, которые формируются по следующей схеме:

На вход схемы поступают биты класса 1а (D0..D49). С выхода снимаются значения ячеек памяти P0..P2, которые сформируются после прохождения всех 50 битов класса 1а.


Обозначим:

Т1 – очередной бит класса 1а, поступающий на вход схемы,

Т2 – содержимое ячейки P2  до прихода этого бита.

Тогда процессы, происходящие в схеме, можно описать уравнениями:

T1 = Di

T2 = P2

P2 = P1

P1 = P0 T1 T2

P0 = T1  T2

Здесь - исключающее ИЛИ (сложение по модулю 2; xor).

В начальный момент времени P0 = P1 = P2 = 0.

Одна из теорем теории кодирования утверждает, что любой циклический (n,k)-код может обнаруживать любой пакет ошибок длины n-k или меньше. Доля пакетов ошибок длины b > n-k, которые не могут быть обнаружены циклическим (n,k)-кодом, равна q-(n-k-1)/(q-1), если b = n-k+1, и равна q-(n-k), если b>n-k+1.

Таким образом, используемый (53,50) циклический код может обнаруживать любой пакет ошибок длины 3 или меньше, доля пакетов ошибок длины b=4, которые не могут быть обнаружены, равна 2-(53-50-1)/(2-1) = 0,25, доля пакетов ошибок длины b>4, которые не могут быть обнаружены, равна 2-(53-50) = 0,125. То есть вероятность обнаружения пакетов ошибок длиной b=4 составляет 75%, а вероятность обнаружения пакетов ошибок длиной b>4 составляет 87,5%.

На следующем этапе биты класса 1 с четными индексами собираются в порядке возрастания индекса в первой части кадра. За ними следуют три бита проверки на четность. Затем биты класса 1 с нечетными индексами запоминаются в буферной памяти и переставляются в порядке убывания индекса. Далее следует четыре нулевых бита, которые необходимы для работы кодера, формирующего код, исправляющий случайные ошибки в канале. Кадр завершает концевая комбинация битов класса 2, не претерпевшая изменений.   

В приемнике осуществляется обратная последовательность действий:

удаляются четыре нулевых бита,

восстанавливается последовательность битов класса 1,

на основании первых 50 битов класса 1 формируются три бита проверки на четность и сравниваются с принятыми.

Сверточное кодирование

После выполнения операций циклического кодирования и переупорядочения , 189 бит класса 1 кодируются сверточным кодом (2,1,5) со скоростью r=1/2, в результате чего генерируются 378  закодированных бит, которые дополняются концевой комбинацией до кадра размером 456 бит.

Сверточное кодирование производится с целью повышения помехоустойчивости и происходит по следующей схеме:

Таким образом, при поступлении на вход одного бита на выходе формируются два.

Процесс можно описать следующими уравнениями:

        D4 = D3

        D3 = D2

        D2 = D1

        D1 = D 

  D = xi

  Gi*2 = D  D2 D3 D4

        Gi*2+1 = D D1 D4

для i = 0 .. 188.

В начальный момент времени D = D1 = D2 = D3 = D4 = 0.

Работу  кодирующего   устройства сверточного кода удобно пояснить с помощью кодового дерева (рис.1).

Рис.1.

Кодовое дерево, соответствующее сверточному кодирующему устройству.

Кодовое дерево строится следующим образом: если входной информационный символ, поступающий в сдвиговый регистр, равен 1, то ему приписывается линия (ветвь дерева), идущая вниз, а, если информационный символ равен 0 – то вверх. Символы сверточного кода, получаемые на выходе сумматоров по модулю 2, записывается над соответствующей ветвью дерева. Точки, из которых исходят ветви дерева, называются узлами. Определенная последовательность информационных символов на выходе кодирующего устройства порождает один из путей по кодовому дереву. Например, входная последовательность информационных символов 11111…, поступающая на кодирующее устройство (рис.1), порождает выходную последовательность 111000101001…

Таким образом, процесс кодирования для сверточного кода можно представить как последовательный выбор одного из путей по кодовому дереву. Выбор этого пути задается входной последовательностью информационных символов. В данном кодирующем устройстве сверточного кода выходные символы вычисляются посредством линейных операций (суммирование по модулю 2) над входными .Поэтому полученные сверточные коды являются линейными.

Для декодирования сверточных кодов разработан ряд эффективных методов декодирования, в частности, последовательное декодирование. Принцип последовательного декодирования в двоичном дискретном канале состоит в следующем: n регенерированных  символов  сверточного кода, соответствующих одной из ветвей кодового дерева, на приемной стороне записывается в регистр сдвига.

Декодирующее устройство, аналогичное кодирующему устройству данного сверточного кода, генерирует n символов сверточного кода, соответствующих каждой из ветвей кодового дерева, исходящей из данного узла. Каждая из двух последовательностей n символов, генерируемых в декодирующем устройстве, поразрядно суммируется по модулю 2  с принятой последовательностью, записанной в регистре. В результате этих операций вычисляется расстояние Хэмминга dx между этими последовательностями и принятой последовательностью. Затем выбирается путь с наименьшим dx между этими последовательностями и принятой последовательностью. Затем выбирается пути  с наименьшим dx и выносится предварительное решение, что путь по данной ветви кодового дерева и является истинным. Расстояние dx для этого пути запоминается, и декодирующее устройство переходит к следующему узлу кодового дерева, к которому приводит выбранный путь. Из этого нового узла вновь исследуются два возможных пути  и т.д.

Если  вероятность искажения одного символа шумами при передаче равна р, то математическое ожидание числа ошибок, а, следовательно,  и расстояние Хэмминга dx между принятыми символами сверточного кода  и  n символами, соответствующими правильному пути по данной ветви кодового дерева, будет равно np.

Если же по данной ветви выбран неправильный путь, то математическое ожидание расстояния dx для него будет приблизительно равно n/2. Следовательно, через l последовательных шагов декодирования математическое ожидание dx(l) для правильного пути будет равно lnp, а для неправильного пути- ln/2. Действительные значения dx(l) для правильного и неправильного пути будут случайными величинами с указанными математическими ожиданиями. Это показано на рис.2.

Рис.2.

Зависимость кодового расстояния для правильного и неправильного путей.

В последовательном декодирующем устройстве сравнивается текущее значение dx(l) с некоторым порогом z(l). Если на текущем шаге декодирования порог не превышен, то декодирующее устройство переходит к анализу путей, ведущих из следующего узла. Если порог превышен, то декодирующее устройство возвращается в прошлый узел, для которого не было превышения порога, и исследует другие возможные пути по кодовому дереву. Таким образом, декодирующее устройство обследует все доступные узлы до тех пор, пока не найдется пути, при котором текущий порог z(l) не превышается. Если же такого пути не находится, то порог повышается и указанная операция повторяется.

Поскольку связи между символами на выходе сверточного кодирующего устройства, имеющего к-разрядный регистр сдвига, распространяются на к ветвей кодового дерева, то, найдя один из путей по к ветвям дерева, удовлетворяющий установленному порогу, декодирующее устройство выносит окончательное решение о декодировании первой ветви, соответствующей этому пути. Далее так же декодируется вторая ветвь дерева, и т.д.

В таком процессе ошибка при декодировании произойдет, если неправильный путь по кодовому дереву не будет обнаружен на протяжении к последовательных ветвей.

Достоинством последовательного декодирования является то, что при исключении какого-либо пути по кодовому дереву отбрасываются все другие  пути, исходящие из узлов исключенного. За счет этого экономится число операций, производимых при декодировании. Чем выше порог z(l), тем большее количество операций требуется, так как  неправильный путь, начавшийся из некоторого узла, обнаруживается позднее. Поэтому сначала декодирование ведут при низком (жестком)  пороге. Если же путей, удовлетворяющих этому порогу не находится, порог повышают.

Перемежение

В каналах с замираниями необходимо использование операции перемежения для эффективного преобразования пакетов ошибок в одиночные (случайные) ошибки.

После сверточного кодирования общая длина кадра составляет 456 бит. После этого при передаче кадр в блоке перемежителя делится сначала на восемь 57 битовых подблоков В0,В1...В7, которые подвергаются блочно-диагональному перемежению. Результатом блочно-диагонального перемежения являются пакеты по 114 бит, в каждый из которых входит пара  57 битовых подблоков. Биты В0 и В4 подблоков попарно перемежаются, образуя процесс внутрикадрового битового перемежения. В результирующий пакет включены два опережающих флага h0 и h1, которые используются для классификации различных пакетов передачи. В данной лабораторной работе эти флаги не используются.

На приеме происходят операции перемежения обратные тем, что были описаны для передачи.

Шифрование

Шифрование используется для защиты информации от несанкционированного доступа злоумышленника. С этой целью в передатчике информация из открытой (незашифрованной) преобразуется в закрытую (зашифрованную) по определенному алгоритму шифрования с применением секретного ключа, причем чем больше размер секретного ключа в битах, тем труднее будет злоумышленнику взломать шифрованную посылку (расшифровать данные), перехваченную из канала передачи. Размер секретного ключа определяется алгоритмом шифрования, степенью защищенности и трудоемкостью процедуры шифрования. При условии, что на приеме известен алгоритм шифрования и секретный ключ, информация из закрытой преобразуется в открытую (дешифрируется).  

Схема шифрования А5

В стандарте GSM 900 для реализации шифрования применяется схема шифрования А5, построенная на трех сдвиговых регистрах LFSR 1, LFSR 2 и LFSR 3 длиной по 19, 22 и 23 бита соответственно. Секретный ключ для схемы шифрования А5 составляет 64 бита.

Процесс шифрования происходит следующим образом:

  1.  Секретный ключ помещается в три сдвиговых регистра LFSR 1, LFSR 2 и  LFSR 3 таким образом, что его старшие биты с 64 по 46 оказываются в регистре LFSR 1, биты с 45 по 24 - в регистре LFSR 2 и биты с 23 по 1-  в регистре LFSR 3 соответственно.

  1.  По приходу синхроимпульса CLK от тактового генератора происходит  следующее:

  •  Вычисляется выход  логической схемы   
    •  (сумма по модулю 2 битов 19, 22 и 23 сдвиговых регистра LFSR 1,  LFSR 2 и  LFSR 3 соответственно);
    •  Из сдвиговых регистров считываются биты:-10-ый бит регистра LFSR1,  - 11-ый бит регистра LFSR 2 и  -12-ый бит регистра LFSR 3.
    •  Если = = , то производится сдвиг во всех трех регистрах, причем первым элементом регистра становится сумма по mod2 последнего бита регистра и считанного из середины  бита.
    •  Если из трех  битов , и  равны только два (), то
    •  сдвиг  происходит только в этих двух регистрах LFSR j  и LFSR i        
    •  соответственно.
    •  Возвращение к началу пункта 2) , пока все его действия не будут повторены 192  раза. Если все действия пункта 2) выполнены  192 раза- переход к пункту 3).

  1.  Из полученных на выходе логической схемы 192 бит берутся 92 последних  бита. Они дополняются 22 битами открытого ключа, в которые записывается  двоичный номер кадра. Сумма 92 и 22 бит образует специфическую ключевую  комбинацию.

  1.  Осуществляется перевод 144 битового кадра стандарта GSM 900 с открытой информацией в 144 битовый кадр с закрытой информацией. С этой целью над 144 битами информации (одним кадром) и 144 битами специфической ключевой комбинации выполняется логическая операция XOR. Результатом применения булевой операции является  зашифрованный  (закрытый) информационный кадр.

 

Процесс дешифрации абсолютно аналогичен процессу шифрации с той лишь разницей, что логическая операция XOR выполняется над зашифрованным (закрытым) информационным кадром и полученной все тем же образом , но уже в приемнике, специфической кодовой комбинации, состоящей из 92 битов секретной кодовой комбинации и 22 битов открытого ключа с номером кадра.

Формирование TDMA-кадра

Как отмечалось выше, в стандарте GSM принят многостационный доступ с временным разделением каналов (TDMA). Для передачи информации по каналам связи и управления используется информационный TDMA - кадр, который делится на восемь временных интервалов (временных окон)  (см. рис. 2.2). Надо отметить, что каждый из восьми временных интервалов отвечает за свой логический канал. Это означает, что в пределах одного информационного TDMA - кадра информацию могут передавать до восьми абонентов сотовой связи в полноскоростном режиме передачи или   до 16 - в полускоростном.   

Для передачи информации по каналам связи используется 5 видов временных интервалов (окон):

NB – нормальный временной интервал

FB – временной интервал подстройки частоты

SB – интервал временной синхронизации

DB – установочный интервал

AB – интервал доступа

Рис. 2.2. Структура TDMA – кадра

Каждый из восьми нормальных временных интервалов (NB) состоит из 114 бит зашифрованного сообщения и включает в себя  защитный интервал (GP) в 8,25 бит.

Так как в  каждом временном интервале передается 114 бит зашифрованных информационных данных, то один информационный TDMA- кадр несет в себе 114 х 8=912 бит зашифрованной посылки.

Информационный блок разбит на два самостоятельных блока по 57 бит, разделенные между собой обучающей последовательностью в 26 бит, которая используется для установки эквалайзера в приемнике в соответствии с характеристиками канала связи в данный момент времени.

В состав NB  также включены два контрольных бита, которые служат признаком того, содержит ли передаваемая группа речевую информацию или информацию сигнализации.

При приеме из каждого из восьми окон TDMA-кадра извлекаются 114 бит зашифрованной информации.


  1.  Последовательность выполнения 

Для выполнения лабораторной работы необходимы следующие файлы:

1) GSM900.exe

2) codec.dll -модель речевого кодека(преобразование оцифрованного звукового сигнала (8кГц, 16 бит) в поток символов со скоростью 13 кбит/сек.) Т.е. осуществляет сжатие данных: каждые 160 16-ти разрядных слов преобразует в 260 разрядов.

3) cw3230.dll -библиотека Borland C++ 5.0

4) cycle.dll - Циклическое кодирование разрядов класса '1а' с формирующим полиномом вида g=1+d+d^3 и переупорядочение

5) svertka.dll -Сверточное кодирование разрядов класса '1' c формирующими полиномами вида: g1=1+d^2+d^3+d^4

 g2=1+d+d^4

6) reform.dll -Переупорядочение,разбиение на пакеты и перемежение пакетов

7) crypt.dll -Шифрование данных по алгоритму А5

8) crtframe.dll -Формирование кадра нормального временного интервал (NB)

9) любые файлы *.WAV, созданные с помощью программы Фонограф Microsoft Windows 95 в формате PCM 8000 Гц; 16 бит; Моно

!!!! Библиотеки функций (4)-(8) предлагаются для самостоятельной разработки!!!!


Заголовки функций, экспортируемых библиотеками:

CYCLE.dll

procedure CycleCode(var x:mas267;var u:mas267); stdcall; export;

//Цикл.код битов класса '1а'и переупорядочение.

//х:входной массив,содержит инф.в разрядах 0..259,

//u:выходной массив,содержит инф.в разрядах 0..266.

procedure CycleCode_1(var u:mas267;var x:mas267;var IsError:boolean); stdcall; export;

//Распаковка цикл.кода и восстановление порядка

//следования разрядов.

//u:входной массив,содержит инф.в разрядах 0..266,

//х:выходной массив,содержит инф.в разрядах 0..259.

//IsError = True если обнаружены ошибки.

SVERTKA.dll

procedure Svertka(var x: mas267;var c: mas456); stdcall; export;

//Сверт.код разрядов класса '1'

//х:входной массив содержит инф.в разрядах 0..266.

//с:выходной массив содержит инф.в разрядах 0..455

//(4 кадра по 114 разрядов).

procedure Svertka_1(var с:mas456;var x:mas267); stdcall; export;

//Распаковка сверт.кода при приеме.

//с:входной массив содержит инф.в разрядах 0..455.

//(4 кадра по 114 разрядов).

//х:выходной массив содержит инф.в разрядах 0..266.

REFORM.dll

procedure Reform(var x: mas456;var b: mas456); stdcall; export;

//Разбиение на пакеты и перемежение пакетов.

//х:входной массив содержит инф.в разрядах 0..455.

//b:выходной массив содержит инф.в разрядах 0..455

//(4 кадра по 114 разрядов).

procedure Reform_1(var b:mas456;var x:mas456); stdcall; export;

//Деперемежитель

//х:входной массив содержит инф.в разрядах 0..455.

//b:выходной массив содержит инф.в разрядах 0..455

//(4 кадра по 114 разрядов).

CRYPT.dll

procedure CryptA5(var bin, bout: mas456;var A5:TA5;

var NFrame: TFrame); stdcall; export;

//Шифрование данных по алгор.А5

//bin:входной массив(открытые данные)

//(4 кадра по 114 разрядов).

//bout:выходной массив(закрытые данные)

//(4 кадра по 114 разрядов).

//A5:объект для работы с закрытым ключем

//(описан в файле A5.pas)

//NFrame:текущий номер кадра(открытый ключ)

//(описан в файле Frame.pas)

// При первом вызове процедуры NFrame.GetKeyN=0

// Последующие изменения параметра NFrame должны

// осуществляться в теле процедуры.

//Необходимо получить секретную и несекретную

//последовательности и наложить их (xor) на исходный

//информационный кадр(bin).

//Результат работы ф-ции - массив bout.

procedure CryptA5_1(var bin, bout: mas456;

                 var A5:TA5;

                 var NFrame: TFrame); stdcall; export;

//Дешифрование данных по алгор.А5

//bin-входной массив(зашифрован)

//bout-выходной массив

//A5:объект для работы с закрытым ключем

//(описан в файле A5.pas)

//NFrame:текущий номер кадра(открытый ключ)

//(описан в файле Frame.pas)

// При первом вызове процедуры NFrame.GetKeyN=0

// Последующие изменения параметра NFrame должны

// осуществляться в теле процедуры.

CRTFRAME.dll

procedure CreateFrame(var b :mas456; var pack :mas592); stdcall; export;

//Формирование NB-кадра (нормальный временной

//интервал)

procedure CreateFrame_1(var pack :mas592; var b:mas456); stdcall; export;

//Распаковка NB-кадра.

P.S.

  1.В каждую библиотеку необходимо включить файл Types.pas - описание всех типов, используемых в программе.

  2.В библиотеку crypt.dll также необходимо включить файлы A5.pas и      Frame.pas - описания классов для работы с закрытым и открытым ключами соответственно.

  1.  
    Определение числа испытаний.

Определим необходимый объем эксперимента для измерения вероятности ошибки рош.

В рассматриваемой задаче можно считать, что итогом каждого i-го испытания будет случайная величина ai, являющаяся результатом сравнения переданного информационного символа с принятым. При их несовпадении (ошибка), а при совпадении ai = 0 (нет ошибки), то есть случайная величина ai может принимать только два значения : ai1 = 1 с вероятностью рош и ai2 = 0 с вероятностью (1-рош)

Выбор числа испытаний зависит от того, какие требования определяются к определению рош.Точность оценки рош зададим шириной доверительного интервала р, который определим следующим образом:

Определение необходимого числа испытаний Nисп для получения оценки вероятности ошибки с необходимой точностью р и доверительной вероятностью рр можно произвести с помощью выражения:

,

где Ф[x] =  – функция Крампа

По величине рр необходимо найти аргумент функции . Пусть его значение равно tp. Тогда можно записать: , откуда:

Математическое ожидание величины ai:

М(ai) = ai1pош + ai2(1 – pош) = pош

Дисперсия:

D[ai] = [ai1 – М(ai)]2pош + [ai2 – М(ai)]2(1 – pош) = pош(1 – pош)

Получаем:

,

где  - относительная погрешность определения pош.

Определим необходимый объем эксперимента для моделирования заданной вероятности ошибки в канале связи.

Примем относительную погрешность определения вероятности ошибки  (10%) и доверительную вероятность pp = 0,9. Определяем по таблице tp= 1,65. Получаем: (разрядов)

Результаты вычисления для различных вероятностей ошибки приведены на графике:

Так как, по условиям экспериментов, из каждых 160-ти выборок исходного звукового файла формируется последовательность из 458 разрядов (если не используется шифрование и формирование  TDMA-кадра), определим необходимый размер исходного звукового файла (сек) для измерения рош.


Последовательность выполнения лабораторной работы:

  1.  Сделать резервные копии файлов cycle.dll, svertka.dll, reform.dll, crypt.dll и crtframe.dll

  1.  Ознакомиться с программой GSM900

  1.  Последовательно заменять прилагаемые библиотеки вашими, контролируя правильность работы программы на каждом этапе.
  2.  Определить эффективность использования сверточного кода и перемежения в канале связи. Для этого экспериментально определить зависимости:

"Вероятность ошибки на приеме" от "Вероятности ошибки в канале".

Вероятность ошибки в канале устанавливать от 0% до 1%. В канале использовать пакеты ошибок фиксированной длины (1,2,3 и 4).

Определить необходимый объем экспериментов для измерения вероятности ошибки от 0,1% до 1% с относительной погрешностью * = 0.09(9%) и доверительной вероятностью pp = 0.95

Установить следующие параметры модели:

Эксперимент1.

Кодирование: Использовать

Глубина просмотра циклического кода: 0

Сверточный код: Использовать

Перемежение: Использовать

Шифрование: Не использовать

Эксперимент2.

Кодирование: Использовать

Глубина просмотра циклического кода: 0

Сверточный код: Использовать

Перемежение: Не использовать

5. По результатам проведенных экспериментов определить аналитические зависимости вероятности ошибки на приеме от вероятности ошибки в канале связи.

6. Оценить точность полученных аналитичесих зависимостей.

В качестве результатов лабораторной работы представить:

  1.  Созданную библиотеку.
  2.  Исходный текст библиотеки.
  3.  Результаты экспериментов в графическом и табличном виде.
  4.  Полученные зависимости в графическом и аналитическом виде.
  5.  Сделать выводы об эффективности сверточного кода и перемежения.

Графики представить в осях:


ПРИМЕЧАНИЕ 1.

Пример создания библиотеки "crypt.dll" приведен в каталоге "Example Dll".

Для создания других библиотек необходимо:

  1.  Изменить имя файла (например с "crypt.dpr" на "reform.dpr").
  2.  Изменить заголовок библиотеки (например с "library Crypt " на "library Reform").
  3.  Для всех библиотек, кроме crypt.dpr исключить модули A5 и Frame из списка используемых модулей.
  4.  Изменить заголовки функций (например с

procedure CryptA5(var bin, bout: mas456;var A5:TA5;

                  var NFrame: TFrame); stdcall; export;.

на 

procedure Reform(var x: mas456;var b: mas456); stdcall; export;

5. Изменить имена экспортируемых функций (например с CryptA5 на Reform)

6. Написать тело функций.

ПРИМЕЧАНИЕ 2.

При использовании программы GSM900.exe данные в файлах *.wav  соответствуют данным в точке "1" (см.рис. "Этапы преобразования данных в полноскоростном речевом канале стандарта GSM900".

Данные в файлах *.frm  соответствуют данным в точке "2" если используются все процедуры кодирования, либо в точке "4", если кодирование не используется.

Данные в файлах *.wv2  соответствуют данным в точке "3".

Вероятность ошибки в канале связи соответствует точке "5".

Вероятность ошибки на приеме соответствует точке "3".

таким образом, при формировании из*.wav –файла *.frm – файла происходит кодирование, перемежение, шифрование данных и формирование TDMA-кадра, а при формировании из *.frm – файла *.wv2 –файла происходит передача кадров по каналу связи с наложением помех и обратное преобразование данных (то есть дешифрование, деперемежение и декодирование


EMBED Word.Picture.8  

EMBED AutoCAD.Drawing.14  

P0

P1

P2

T1

T2

D0..D49

Первые 50 разрядов

Последние 3 разряда

проверки на четность

EMBED Word.Picture.8  

0

1

Z(l)- порог

d(l) вдоль правильного  пути

d(l) вдоль неправильного пути

EMBED Equation.3  

l

d

0

1

7

6

ТМ=4,615мс

1 TDMA- кадр=8 временным позициям (окнам)

ТВ

3 бита

Зашифрованные

биты   57

1      

Обучающая последовательность       26

1      

Зашифрованные

биты   57

ТВ

3 бита

GP

8,25

Контрольные биты

NB

Рош на приеме

Рош в канале

0

EMBED PBrush  


 

А также другие работы, которые могут Вас заинтересовать

54729. СЕРДЕЧНО - СОСУДИСТЫЕ ЗАБОЛЕВАНИЯ - КЛИНИКА И ПРОГНОЗ 101 KB
  Толстого: Все мысли о смерти нужны для жизни а тема урока заболевания сердечнососудистой системы оказание первой помощи. На уроке мы рассмотрим с вами следующие вопросы: Причины сердечнососудистых заболеваний. Профилактика сердечнососудистых заболеваний. Часто причиной смерти являются болезни сердечнососудистой системы.
54730. Обработка накладного кармана 463.5 KB
  Задачи урока: познакомить с историческими сведениями о кармане, его роли в современной одежде, тренировать глазомер, приобщать к работе в коллективе, учить аккуратному выполнению швов. Тип урока: урок усвоения нового материала. Формы работы: фронтальная. групповая.
54732. Класс Земноводные. Особенности внешнего строения в связи со средой обитания 55.5 KB
  Цель урока: Выявить во внешнем строении лягушки черты приспособленности к обитанию в двух средах наземно-воздушной и водной и водной лягушки Да действительно сегодня на уроке мы с вами будем изучать представителей класса Земноводных или Амфибий. К классу Земноводных относятся не только лягушки. Бесхвостые лягушки жабы квакши живут в водоемах и вблизи от них.
54733. Лоскутный коллаж 61.5 KB
  1 слайд Я готова подарить вам мир модных и стильных вещей на основе лоскута. слайд 2 С чего же все началось слайд 2 Лоскутное шитье исходно возникло в среде бедняков как необходимость малыми средствами создать красивые вещи. слайд 3 В настоящее время лоскутное шитье сохраняет этот смысл однако современный его статус значительно выше. слайд 4 Лоскутная техника шитья популярна у многих народов.
54735. Тригонометриялық функциялардың қасиеттері мен графиктері 556.5 KB
  Сабақтың типі: Бекіту жүйелеу сабағы.Сабақтың түрі: Дәстүрлі Сабақтың көрнекілігі: слайдттар плакаттар интерактивті тақта. Пәнаралық байланыс: физика гармониялық тербеліс Сабақтың барысы 1.
54736. Музыкальность стихов А. Блока 109 KB
  Цели: Показать своеобразие лирики Блока и особенности поэтики. Блока удивительно музыкальны. В стихах Блока есть таинственный смысл как в музыке. Чем достигается музыкальность Блоковской лирики Для Блока приемом музыкальной организации стиха является Ассонанс и много других литературных приёмов.
54737. Суд над Р.Раскольниковым по роману Ф.М.Достоевского «Преступление и наказание» 57 KB
  Достоевского Преступление и наказание Действующие лица деловой игры: Судья Присяжные 3 человека Родион Раскольников Следователь Порфирий Петрович Адвокат Прокурор Разумихин Соня Мармеладова Доктор Зосимов Хозяйка квартиры Раскольникова Ход урока. Спустя 5 месяцев после совершенного Раскольниковым преступления состоялся суд над главным героем. Сегодняшний урок будет проходить в форме деловой игры в форме суда над Раскольниковым. Заседание посвящено расследованию причин убийства Алены Ивановны и ее сестры Лизаветы господином Раскольниковым.