1.5. Построение
результирующих иерархических моделей терминала и выделенных узлов сети (в
соответствии с концепцией OSI) с отражением путей доставки служебных, так и
информационных сообщений
В разрабатываемой сети
используются три нижних уровня взаимодействия модели OSI: физический, канальный и сетевой. Задачи, выполняемые на разных
уровнях, имеют существенные различия. Стоит сказать, что сетевой уровень служит для образования единой транспортной системы, объединяющей
несколько сетей, а канальный уровень занимается
такими задачами, как, например, обеспечение
множественного доступа к среде и реализация адресной передачи сообщений. Более
детальный анализ задач, выполняемых на этих уровнях можно прочитать в статье Компактная сеть радиодоступа-ч.3-канальный уровень.
Подробнее остановимся
на физическом уровне иерархической модели сети (Рисунок 1).
К основным задачам, возлагаемым на физический
уровень нашей системы, относятся безошибочная передача битов по радиоканалу
и проведение радиоизмерений. Для выполнения первой задачи применяются меры:
·
синхронизация;
·
помехоустойчивое
кодирование;
·
модуляция;
·
применение
технологии OFDM;
·
эквалайзинг.
Рисунок 1 –
Иерархическая модель сети
На Рисунке 1 физический уровень системы
представлен в виде взаимосвязанных служб L1уровня. Каждой службе отводится
выполнение определенного рода задач. L2
сообщение, предназначенное для передачи в радиоканал, сначала попадает в буфер,
где подвергается фрагментации на пакеты L1 уровня. После чего эти пакеты
попадают в канальный кодер (БЧХ 63,57), на следующем этапе происходит модуляция
(8-PSK), а затем OFDM модуляция. На последнем шаге передачи
добавляется преамбула (только к первому пакету в составе L2 сообщения) – блок синхронизация - и
передается в радиоканал. При приёме
первого пакета, в первую очередь, осуществляется временная синхронизация, после
чего происходит эквалайзинг (для него используются пилот сигналы в составе OFDM символа). После выравнивания происходит демодуляция OFDM и 8-PSK. Демодулированный сигнал декодируется
и записывается в буфер, где происходит
сборка пакета L2
уровня.
Стоит уточнить, что в нашей системе
радиоизмерения производятся параллельно модуляции, либо в процессе сканирования
сети. Данные радиоизмерений непосредственно передаются на уровень принятия
решений.
В нашей сети имеем два типа сообщений:
служебное и трафик.
К служебным сообщениям относятся
широковещательное сообщение, сообщение опроса и сообщение запроса на
регистрацию. К сообщениям трафика – данные для опроса
терминалов и видео-поток.
Для всех сообщений, кроме видеопотока, разделение на служебные
сообщения и сообщения трафика происходят на канальном уровне. Для физического
уровня этого разделения не существует, принятые сообщения будут подвергаться
одинаковым преобразованиям.
Видеопоток будет обрабатываться в пределах физического уровня, а
затем передаваться в радиоканал. Поступая с видеокамеры, он сразу
фрагментируется на пакеты L1 уровня, а дальнейшая обработка осуществляется
по вышеописанной схеме. При приёме видеопотока на точке доступа пакеты
физического уровня, которые его содержат, поступают сразу на сетевой уровень,
откуда при использовании сети Internet – к пользователю.
2. Экспериментальная часть. Разработка и экспериментальное исследование программной модели канала передачи данных
2.1. Разработка и описание блок-схемы
алгоритма модели
В данном пункте курсовой работы
требовалось написать программу на языке Matlab, которая моделирует приемо-передачу
сообщений на физическом уровне в данной сети.
На рисунке 2 представлена блок-схема
алгоритма модели.
Рисунок 2 – Блок-схема алгоритма модели
На первом этапе работы программы
формируется L2
сообщение, которое необходимо передать, после чего это сообщение
фрагментируется и передается отдельными пакетами, проходящими через весь приемо-передающий
тракт.
Если
пакет в составе L2
сообщения является первым пакетом, то на этом этапе для него будет сформирован
флаг fl=1, который будет
означать добавление преамбулы к данному пакету при дальнейшей обработке. В
противном случае fl=0.
Далее происходит канальное кодирование,
8-PSK модуляция,
формирование IQ
массива для OFDM
модуляции (под IQ
массивом понимаем 22 информационных поднесущих, с добавлением 5
пилот-сигналов и 5 защитных интервалов).
Следующим шагом происходит OFDM модуляция, сюда же относится
добавление циклического префикса и преамбулы.
После чего сформированный OFDM сигнал передаётся по радиоканалу.
Затем осуществляется демодуляция OFDM, к ней также относится эквалайзинг. Далее −8-PSK демодуляция и канальное декодирование.
Заключительным этапом в пределах цикла будет сборка пакета L2 уровня. Итоговым шагом программы
является сравнение на предмет ошибок передаваемого L2 сообщения и сформированного при приеме
сообщения.
На рисунке представлено дерево
скриптов, использованных при написании программы.
Рисунок 3 –Дерево скриптов
fuuulll.m –
основная программа, из которой осуществляется вызов всех функций. В ней
осуществляется большая часть выполняемых операций.
form_ofdm.m –
функция, отвечающая за формирование OFDM
символа, циклического префикса и преамбулы.
channelOFDMdemod.m – функция, реализующая
моделирование канала связи. Также в этой функции производится эквалайзинг и OFDM
демодуляция.
2.2 Исследование процедуры тактовой (символьной)
синхронизации физического уровня
Для временной
синхронизации используется два OFDM
–символа стандартной длины.
Тактовая
синхронизация после осуществления
временной синхронизации выполняется благодаря взаимной корреляции между
циклическим префиксом и OFDM
символом (Рисунок 4).
Рисунок 4 – Временная
диаграмма сообщения физического уровня
Функция
form_ofdm.m формирует преамбулу, состоящую из 2 OFDM символов, а также добавляет
циклический префикс, равный последней четверти OFDM символа во временной области.
На
листинге 1 представлена работа передающей части вплоть до формирования OFDM.
Листинг 1
for cikl=1:14 L2=randint(1,456,[0 1]);%L2-сообщение L2_trx=L2;%копируем
для получения количества ошибок после приема ber=0;%счетчик
ошибок rx_L2=[];%массив
накопитель L2 сообщения(после приема) for
i=1:(length(L2_trx)/57)% L1 пакетов для передачи L2 cообщения if length(L2)==length(L2_trx)%условие
для формирования флага для добавления преамбулы fl=1;%добавляем преамбулу else fl=0;%не добавляем end L1data=L2(1:57); %выделение
пакета L1 уровня L2=L2(58:end);%соответственно
L2 сообщение уменьшается %% блочное кодирование n=63;%параметры для блочного k=57;%кодирования enc=fec.bchenc(63,57); codebch = encode(enc,L1data')';%непосредственно
кодирование x=[0 0 0 codebch];%добавление
нулевых битов %% 8-PSK модуляция h =
modem.pskmod(8); %
(st.mPos)
h.inputtype = 'bit';
h.SymbolOrder = 'gray';
h.PhaseOffset = 0;
psksim=modulate(h, x')';
rsim=fft(psksim); %% OFDM модуляция PilotGi = [ 0 0 0 1 1 1 1 1 0 0 ];%символы
для пилотов и защитных интервалов indexPilotGi=[1 2 3 7 12 17 22 27 31 32];%номера
поднесущих, на которых они расположены x=1; ofdmSim=[]; %формирование IQ массива
для OFDM модуляции for j=1:32
if j==indexPilotGi(x)
ofdmSim(j)=PilotGi(x);%добавление неинформационных
поднесущих x=x+1; else ofdmSim(j)=psksim(j-x+1);%информационные
поднесущие end
end
ofdmr=form_ofdm(ofdmSim,fl);%формирование OFDM сигнала |
Листинг
2 отображает формирование OFDM
сигнала
и синхропоследовательности.
Листинг 2
%%
функция отвечает за формирование OFDM символов и преамбулы function ofdm1=form_ofdm(ofdmSim,fl) %% Инициализация переменных s=sqrt(-1); preamb=[-1,-0.707+0.707*s,-s,0.707-0.707*s,s,1,0.707+0.707*s,-0.707-0.707*s]; for n=1:3
preamb=[preamb -preamb]; %инициализация преамбулы end ofdm1=[]; x=0; f1=27500; T=1/f1; ft=128; dt=T/ft; %%
Формирование преамбулы, состоящей из 2-х OFDM-символов for i=1:64
if i<33
for j=1:128
preamb1(i,j)=preamb(i)*sin(2*pi*f1*i*(j)*dt);
end
else
for j=1:128
preamb2(i-32,j)=preamb(i)*sin(2*pi*f1*(i-32)*(j)*dt);
end
end end for i=1:32 preambfull=[preamb1 preamb2]; end %% Формирование самого OFDM символа for i=1:32
for j=1:ft
ofdm_mas(i,j)=ofdmSim(i)*sin(2*pi*f1*i*(j)*dt);
end end for
i=1:32%формирование циклического префикса(ЦП) for
j=97:ft CiklPref(i,j-96)= ofdm_mas(i,j);
end
end
ofdm_mas=[CiklPref ofdm_mas];%добавление ЦП
ofdm_mas=[preambfull ofdm_mas];%добавление преамбулы
ofdm1=ofdm_mas; end |
Листинг 3 описывает работу модели
канала связи, эквалайзера и демодулятора OFDM.
Листинг 3
%% Моделирование прохождения сигнала через канал связи и
OFDM демодуляция
function trx_ch = channelOFDMdemod(trx)
%% Инициализация переменных
snr=10.45;
snr1=10^(snr/10);
s=sqrt(-1);
x=0;
f1=27500;
T=1/f1;
dt=T/128;
ft=128;
r=1;
%% формирование ЧХ канала связи
AChH=[];
AChH1=(randint(1,4,[-13 13]))/(25*snr+1);
AChH2=s*(randint(1,8,[-13
13]))/(25*snr+1);
for i=1:4
ach(i)=AChH1(i)+AChH2(i);
for o=1:8
z(o)=0.5+randint(1,1,[-3 3])/(45*snr+1);
ze(o)=z(o)+ach(i);
end
AChH=[AChH ze];
end
for i=1:32
AChH(i)=AChH(i)+randint(1,1,[-1 1])/70;
end
%% прохождение OFDM сигнала через канал связи и демодулция
OFDM
pl=[];
for i=1:32
pl=[pl i];
for z=289:416
trx_Ofdm(i,z-288)=(trx(i,z))*AChH(i);%прохождение через канал
rx_Ofdm(i,z-288)=trx_Ofdm(i,z-288)/sin(2*pi*f1*i*(z-288)*dt);%OFDM демодуляция
end
end
max=0;
rx_Ofdm=awgn(rx_Ofdm,snr);%добавление аддитивного шума
for i=1:31
rx=0;
for j=1:128
rx=rx+rx_Ofdm(i,j) ;
end
pski=rx/128;
opsk(r)=pski;%получение IQ символов
r=r+1;
if
and(mod(i-2,5)==0,i>4)
if opsk(i)>max %нахождение максимального значения
пилот-сигнала для эквалайзинга
max=opsk(i);
end
end
end
%% Эквалайзинг
for i=1:31
if i==7
r=max/opsk(i);
opsk(7)=max;
opsk(4)=opsk(4)*r;
opsk(5)=opsk(5)*r;
opsk(6)=opsk(6)*r;
opsk(8)=opsk(8)*r;
opsk(9)=opsk(9)*r;
elseif and((mod(i-2,5)==0), i>5)
r=max/opsk(i);
opsk(i)=max;
opsk(i-1)=opsk(i-1)*r;
opsk(i-2)=opsk(i-2)*r;
opsk(i+1)=opsk(i+1)*r;
opsk(i+2)=opsk(i+2)*r;
end
end
%% выделение 8-PSK сигнала
t=1;
for i=4:30
if
mod(i-2,5)==0
else
oopsk(t)=opsk(i);
t=t+1;
end
end
trx_ch=oopsk;
%% построение АЧХ
figure(2);
plot(pl,AChH(pl));
grid on
title('АЧХ канала связи');
xlabel('значения частоты в номерах поднесущих');
ylabel('Значение ослабления в канале');
end
Алгоритм работы приемного устройства
представлен на Листинге 4.
Листинг 4
%%
8-PSK демодуляция q = modem.pskdemod(8); %
параметры демодуляции q.SymbolOrder = 'gray';
q.PhaseOffset = 0;
q.OutputType = 'bit';
bit=[];
bit=demodulate(q, ofdm_ch')';%демодуляция %%
канальное декодирование rx_bit=bit(4:end);%выделение
63 бит для канального декодера code=fec.bchenc(63,57);%параметры
для декодирования dec=fec.bchdec(code);
rx_L1 = decode(dec,rx_bit')';
%% сборка сообщения L2 rx_L2=[rx_L2 rx_L1]; end %%
проверка на количество ошибок for
i=1:456 if L2_trx(i)==rx_L2(i)
else
ber=ber+1;
end end if ber==0 else
disp('обнаружены ошибки ');disp(ber); end |
2.3 Исследование
качества приема сообщений по различным каналам связи
На данном этапе работы было
смоделировано прохождение сигнала через канал связи с различными параметрами
(АБГШ и ЧХ канала связи). АЧХ канала связи представлена на рисунке 5.
Рисунок 5 – АЧХ канала связи
Учет частотной характеристики канала
связи связан с использованием технологии OFDM и возможностью применения
эквалайзинга. Смоделированный способ выравнивания спектра справляется с
изменениями частотной характеристики канала.
На рисунках 6,7,8 изображены СКС
принятого сигнала с разным ОСШ.
Рисунок 6−СКС принятого сигнала с ОСШ=0
дБ
Рисунок 7 – СКС принятого сигнала с
ОСШ=10,84 дБ (результат расчета)
Рисунок 8 − СКС принятого сигнала с
ОСШ=20 дБ
Ниже приведена зависимость
вероятности битовой ошибки от ОСШ (рисунок 9)
Рисунок 9 − Зависимость вероятности
битовой ошибки от ОСШ
Полученная в результате
моделирования зависимость соответствует зависимости, полученной в результате расчета, приведенного в пункте
1.4.7 статьи "Компактная сеть радиодоступа-ч.2-физический уровень"
Список используемой литературы:
1."Компактная сеть радиодоступа-ч.2-физический уровень".
2."Компактная сеть радиодоступа-ч.3-канальный уровень".
4.КР "Высокоскоростной радиомост"
5.Часть 3. Локальная радиосеть
6.Методические указания к ЛР "Исследование принципов организации канала передачи данных".