1.5. Построение результирующих иерархических моделей терминала и выделенных узлов сети (в соответствии с концепцией OSI) с отражением путей доставки служебных, так и информационных сообщений.
Модель OSI описывает схему взаимодействия сетевых объектов, определяет перечень задач и правила передачи данных. Ее можно представить следующим образом (рисунок 15):
Рисунок 15 - Модель OSI
Подробно рассмотрим физический уровень модели OSI. Это нижний уровень модели, необходимый для непосредственной передачи потока данных. В разрабатываемой нами сети физический уровень предназначен для передачи потока данных от терминала-мастера к ведомому терминалу и наоборот.
Структура физического уровня нашей сети будет выглядеть следующим образом (рисунок 16):
Рисунок 16 - Структура физического уровня
Рассмотрим функции, выполняемые физическим уровнем:
- OFDM модулятор / демодулятор - предназначен для преобразования сигнала в OFDM-символы и обратно;
- Модуляция / демодуляция - требуется для переноса сигнала на несущую частоту для дальнейшей передачи по радиоканалу;
- Сборка / разборка пакетов - осуществляет формирование пакетов канального уровня и выделение полей принятого сообщения;
- Помехоустойчивое кодирование / декодирование - необходимо для обнаружения и исправления ошибок, возникающих при передаче, путем добавления избыточности в информационную последовательность;
- Синхронизация - предназначена подстройки терминалов к единым частотно-временным шкалам;
- Подсистема проведения радиоизмерений - на основании результатов данных этой подсистемы на уровне L3 принимается решение о смене профиля работы всей системы.
2.1 Разработка и описание блок-схемы алгоритма модели.
Блок-схему алгоритма модели представим следующим образом (рисунок 17):
Рисунок 17 - Блок-схема алгоритма модели
Приведенная блок-схема отражает передачу сообщения и последующий прием.
Сначала поток битов с L2 уровня подвергается помехоустойчивому кодированию. Далее происходит сборка пакетов: служебные данные соединяются с пользовательской информацией. Затем пакеты проходят через квадратурный модулятор, а после OFDM модулятор, где происходит формирование преамбулы и преобразование пакетов в OFDM-символы. Полученный радиосигнал проходит через канал связи. Далее происходят обратные преобразования - радиосигнал проходит через OFDM-демодулятор, на выходе которого получаем сигнал с квадратурной модуляцией; данные о демодулированном на следующем этапе сигнале передаются на подсистему радиоизмерений, а сам сигнал, уже без квадратурной модуляции, проходит дальше. Затем происходит разборка пакетов - выделение информационной части и ее передача на декодер. Декодер "избавляет" сигнал от избыточности и передает поток битов на канальный уровень.
2.2 Исследование процедуры тактовой (символьной) синхронизации физического уровня.
В данной части работы предложено описание разработанной в системе Matlab модели системы, демонстрирующей пример передачи сообщения между терминалами. Разрабатываемая нами программа будет реализовывать формирование сообщения терминалом-отправителем, его передачу по каналу с АБГШ, прием сообщения терминалом-адресатом и проверку полученной информации на предмет достоверности.
Текст программы формально разделим на две части: передающую и приемную. На рисунке 18 представлена блок-схема передающей части - слева обозначен порядок происходящих процессов, справа - обрабатываемые программой структурные единицы как результат этих процессов.
Рисунок 18 - Блок-схема передающей части
Далее приведен фрагмент программы, реализующий передающую часть.
Листинг 1.
% Формирование сервисного поляDl = my_de2bi(length(msg_Lev2),'left_msb',10);
Service = [PF Dl];
% Помехоустойчивое кодирование
trell = poly2trellis( 7, [ 171 133 ] );
code_word = convenc( trx, trell );
% Соединение закодированного L2-сообщения и служебного поля
code_word = [Service code_word];
% Разделение сообщения на 2 части для модуляции
s = length(code_word)/2;
for i = 1:s
code_word1(i) = code_word(i);
end
for j = 1:s
code_word2(j) = code_word(j+s);
end
% Модуляция
h = modem.qammod(st.mPos); % h - модем QAM с позиционностью mPos
% Параметры модуляции
h.inputtype = 'bit';
h.SymbolOrder = 'gray';
h.PhaseOffset = 0;
% Cобственно модуляция
IQ_signal1 = modulate(h, code_word1')';
IQ_signal2 = modulate(h, code_word2')';
IQ_signal = [IQ_signal1 IQ_signal2];
%% Подготовка к OFDM модуляции
% Размерность OFDM-символа
Nc=64;
% Номера пилотных и защитных поднесущих в OFDM-символе
NoDataSub = [1 2 3 4 5 11 25 32 39 53 59 60 61 62 63 64];
% Длина передаваемого сообщения
msg_length = length(IQ_signal);
% Количество поднесущих с данными
Ndata = Nc - length(NoDataSub);
% Количество битов, передаваемых в одном OFDM-символе
s_length = Ndata * log2(mPos);
ns = floor(msg_length/s_length)+1; % сколько потребуется OFDM-символов
% Формирование OFDM-символов
ofdmFrame = makeOfdmFrame(IQ_signal, ns);
% Формирование символов преамбулы
% Короткие символы - для подстройки частоты (синхронизация по частоте)
ShortTrainingSymbols = 0.03*[0 0 1+j 0 0 0 -1-j 0 0 0 1+j 0 0 0 -1-j 0 0 0 -1-j 0 0 0 1+j 0 0 0 0 0 0 -1-j 0 0 0 -1-j 0 0 0 ...
1+j 0 0 0 1+j 0 0 0 1+j 0 0 0 1+j 0 0];
short_symbols = ifft(ShortTrainingSymbols);
% Выделение первых 16 отсчетов
Strs = short_symbols(1:16);
% Формирование 10 кототких символов преамбулы на основе выбранного набора
short_trs=[Strs Strs Strs Strs Strs Strs Strs Strs Strs Strs];
% Длинные символы преамбулы
LongTrainingSymbols=[0 0 0 0 0 0 1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 ...
1 -1 -1 1 1 -1 1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 1 -1 1 -1 1 1 1 1 0 0 0 0 0 0];
long_symbol = ifft(LongTrainingSymbols);
long_trs = [long_symbol(64-2*16+1:64) long_symbol long_symbol];
% Пакет физического уровня (символы преамбулы и OFDM-символы)
phy_frame = [short_trs 5*long_trs 1.5*ofdmFrame];
plot(abs(phy_frame));
В ходе работы этой части кода, сообщение было закодировано, промодулировано, и преобразовано в OFDM-сигнал, готовый для передачи, также была получена временная диаграмма сформированного OFDM-сигнала.
Рисунок 19 - Временная диаграмма сообщения физического уровня
Рисунок 20 - Блок-схема приемной части
Листинг 2.
%% Канал связи% Наложение шума на сигнал
noise_sgn = awgn(phy_frame,SNR);
% Выделение преамбулы и данных
Preamb = noise_sgn( 1:320 );
ofdmFrame_rcv = noise_sgn(321:end );
% Выполняем выделение OFDM символов из общего потока
IQ_signal_rcv = [];
% Список поднесущих с информацией
infSub = [ 6:10 12:24 26:31 33:38 40:52 54:58 ];
pilotSub = [ 11 25 39 53 ];
% Выделение промодулированных данных из принятого OFDM сигнала
% Удаление циклического префикса из OFDM символов
OSr = [];
OSpr = [];
IQ_signalr = [];
for i = 0 : (length(ofdmFrame_rcv)/64)-1
% Убираем циклический префикс
IQ_sig = ofdmFrame_rcv((5:68)+ i*68);
OSr = [OSr; IQ_sig];
% Переход в частотную область
IQ_sign = fft(IQ_sig);
OSpr = [OSpr; IQ_sign];
% Убираем пилот сигналы и Формируем поток данных
IQ_signal_rcv = [IQ_signalr IQ_sign(infSub)];
end;
% Параметры демодуляции
h = modem.qamdemod(st.mPos);
h.SymbolOrder = 'gray';
h.PhaseOffset = 0;
h.OutputType = 'bit';
% Демодуляция
code_word = demodulate(h,IQ_signal_rcv);
%Выделение служебного и информационного поля
Service_rcv = code_word (1:12);
L2_msg_rcv = code_word (13:end);
% Декодирование по Витерби
trell = poly2trellis( 7, [ 171 133 ] );
L2_msg_rcv = vitdec( L2_msg_rcv, trell, 7, 'cont', 'hard' );
В ходе работы фрагмента, приведенного выше, было смоделировано прохождение сигнала через канал связи с ОСШ=11дБ. После это оно было принято, преобразовано в сигнал с квадратурной модуляцией, демодулировано, декодированно, из него было выделено и преобразовано информационное поле.
2.4. Исследование качества приема сообщений по различным каналам связи.
Для исследования прохождения сообщения по каналу связи в программном модуле используется имитация прохождения сигнала через канала с АБГШ.
Для наблюдения было выбрано прохождение сообщения трафика с модуляцией QAM-16 и расчитанным в пункте 1.4.7 работы.
В ходе моделирования было получено сигнально-кодовое созвездие передаваемого сообщения.
Рисунок 21 - СКС сформированного сигнала
Список используемой литературы:
- Бакке А.В. "Лекции по курсу: Системы и сети связи с подвижными объектами";
- КП "Локальная радиосеть" Часть 2;
- С.А.Милованов - Система сбора данных с подвижных станций (часть 4);
- Лукашин И.В. Радиосистема дистанционного видеоконтроля (Часть 4)