Выполнил ст.гр 218
Курмаев Р.А.
1.5.
Построение результирующих иерархических моделей терминала и выделенных узлов
сети (в соответствии с концепцией OSI) с отражением путей доставки служебных,
так и информационных сообщений.
Базовая модель OSI включает
в себя семь уровней:
·
физический (Physical);
·
канальный (Data-Link);
·
сетевой (Network);
·
транспортный (Transport);
·
сеансовый (Session);
·
представления данных (Presentation);
·
прикладной (Application).
Основной акцент в данной статье сделан
на физический уровень. Так же стоит выделить один из верхних уровней модели OSI. Назовем его уровень
принятия решений, конкретное положение этого уровня в модели OSI зависит от особенностей оборудования, на котором будет
реализоваться данная система.
В данной работе мы рассматриваем три
уровня:
·
физический (L1);
·
канальный (L2);
·
уровень принятия решений(L3).
s
Рис. 1 – Иерархическая модель системы .
Физический
уровень. Этот уровень
отвечает за передачу потока битов по радиоканалу . К этому уровню имеют
отношение характеристики физических сред передачи данных. В разрабатываемой
системе на физическом уровне выполняются такие задачи, как модуляция, синхронизация, помехоустойчивое кодирование и
передача сообщений по радиоканалу.
Канальный уровень. Среди задач канального уровня можно выделить
обеспечение множественного доступа к среде с использованием определенных
сценариев, обнаружение и исправление ошибок, реализация адресной доставки сообщений.
Уровень
принятия решений(L3).
Задачей этого уровня является изменение
параметров работы нижних уровней , на основе данных поступающих с этих уровней.
К примеру,
при получении сообщения c флагом Ptype=1 от L1 уровня происходит изменение адреса терминала.
Все
сообщения в сети можно разделить на 3 типа (рис.2):
BCCH;
Сообщение
трафика;
Сообщение
установки адреса (Ptype=1).
Рис.2 Классификация
сообщений передаваемых в сети.
В зависимости от типа сообщения оно пройдет различный путь в
модели OSI.
BCCH передается уровнем L1 непосредственно на уровень L3.
Сообщение трафика передается уровнем L1 на уровень L2.
Сообщение установки адреса передается уровнем L1 на уровень L2, после на L3.
2. Экспериментальная
часть. Разработка и экспериментальное исследование программной модели канала
передачи данных.
В разрабатываемой нами системе все типы сообщений L2 уровня имеют длину 27 бит.
Исходя из этого, алгоритм работы L1 уровня не зависит от типа сообщения L2 уровня. Использовалась следующая схема
алгоритма(рис.3).
Рис.3 – Блок-схема алгоритма
Описание
функций используемых в программе:
Runme.m
- главная функция;
Transmitter.m – функция моделирующая работу L1 уровня в режиме передачи;
L2msgGen.m - функция генерации сообщения L2 уровня;
convenc.m - функция моделирующая
работу кодера;
modulate.m - функция моделирующая
работу модулятора;
channel.m - функция моделирующая
прохождение сигнала по каналу связи;
receiver.m - функция моделирующая работу L1 уровня в режиме приема;
demodulate.m - функция моделирующая работу демодулятора;
vitdec.m - функция моделирующая работу декодера;
L2decod.m – функция декодирования сообщения L2 уровня;
EBN.m – функция оценки вероятности битовой ошибки.
Разработанную программу удобно
представить в виде дерева скриптов(рис.4).
Пунктирными линиями показаны пути, выбираемые в зависимости
от входных параметров функции. Красным цветом выделены имена подфункций.
2.2. Разработка программных модулей передачи и приема сообщений канального уровня. Т.к. основной целью данной статьи является разработка L1 уровня, ниже приведен только листинг программы генерации сообщений L2 уровня
Листинг программы генерации сообщений L2 уровня:
function L2msg= L2msgGen(type,ID)
if type == 1
%% BCCH generate
if ID<1&&ID>128
disp('Неверный номер сети. Номер сети 1:128');
return
end
NetIDdec=ID;
NetIDbin = my_de2bi(ID,'left_msb',7);%генерация id сети
usersDec = randint(1,1,[0,50]);%
cлучайное количество устройств в сети.
usersBin = my_de2bi(usersDec,'left_msb',6);
Nodata = zeros(1,14) % тут пока не придумали
пусть будут нули чтобы сообщения были одинаковые
L2msg= [NetIDbin,usersBin,Nodata];
end
if type == 2
%%msg generate
addrDec = randint(1,1,[0,127]);
addrBin = my_de2bi(addrDec,'left_msb',7);
Ptype = randint(1,1,[0,1]);
if Ptype == 1
groupAdresDec
=randint(1,1,[51,127]);
groupAdresBin =
my_de2bi(groupAdresDec,'left_msb',7);
dataP =
[groupAdresBin,zeros(1,4),randint(1,8,[0,1])];
end
if Ptype == 0
dataP=randint(1,19,[0,1]);
end
L2msg= [addrBin,Ptype ,dataP];
end
Программу декодирования сообщений L2 уровня можно найти в приложенном к сообщению
файле.
2.3.
Исследование процедуры тактовой (символьной) синхронизации физического уровня.
В качестве
преамбулы (синхросимволов) использовалась последовательность символов сгенерированных
периодической автокорреляционной функцией с нулевой зоной автокорреляции(CAZAC последовательность) длинной 16 символов.
Листинг
функции генерации последовательности:
function
bb=cazac_seq(L,u)
% формирователь комплексной
CAZAC-последовательности длиной L и номером u
b=zeros(L,1);
i=sqrt(-1);
for n=1:L
b(n)=exp((pi*u*i*n*(n+1))/L);
end
bb = b.';%
транспонирование без комплексного сопряжения
Листинг поиска синхропоследовательности:
seq_blk =
cazac_seq(sync_L,sync_L-1);
sync = seq_blk; %Генерация
приамбулы
% поиск преамбулы -
корреляция sync с принятым сигналом
for i_syn=1:length(trx_ch)-16+1
rr1=trx_ch(i_syn:16+i_syn-1);
flag_timing(i_syn) =
rr1*conj(sync.')/(rr1*rr1');
end
Построим метрику временной синхронизации (рис.5).
Рис.5 Метрика временной синхронизации.
2.4. Исследование
качества приема сообщений по различным каналам связи.
Для
исследования прохождения сообщения по каналу связи в программном модуле присутствует
возможность моделирования AWGN-канала. Дополнительно присутствует
возможность моделирования многолучевого канала связи.
Было получено сигнально-кодовое
созвездие при ОСШ = 10 дБ (Рис.6), вероятность битовой ошибки при этом 0.
Рис.6 Сигнально-кодовое созвездие при ОСШ = 10 дБ.
Было получено сигнально-кодовое
созвездие при ОСШ = 6 дБ (Рис.7), вероятность битовой ошибки при этом 16e-4.
Рис.7 Сигнально-кодовое созвездие при ОСШ = 6 дБ.
Полученные в
результате моделирования результаты имеют небольшие отклонения от теоритических.
Для запуска программного модуля запустить runme.m
Параметр 1 - прием/передача сообщения
Параметр 2 - статистическая оценка битовой ошибки.
Используемая литература:
1 . Бакке А.В. "Лекции по курсу: Системы и сети связи с подвижными объектами";
2. Скляр Б. "Цифровая связь";
3. Tom Richardson «Modern Coding Theory» Cambridge 2012г.