Цель работы:
Разработка
и экспериментальное исследование модели. Продемонстрировать процесс выполнения одного
или нескольких этапов сценария поиска и идентификации сети.
Исходные данные
Вид
модуляции - QPSK
Тип
помехоустойчивого кодирования - произвольный блоковый код
Тип
CRC
- CRC-16
Решение:
Рис.1 Иерархическая структура передачи широковещательной несущей BCCH
Рис.2 Иерархическая структура передачи сообщения заявки на регистрацию.
Формирование
широковещательной несущей
Сообщения L3-уровня состоит из ID cети и
Наименование сети:
ID_networt=181;
network_name = 'VIKTORnet'
Происходит
формирование сообщения L3-уровня:
msg_L3=[ID_networt_bin
msg];
Далее
сообщение передается по каналу:
trxIQ=TR(0, 0, 'BCCH', msg_L3);
Функция trxIQ формирует сообщение L2-уровня (рис.1):
msg_Lev2 = [addr_rec_bin addr_tr_bin tps msgL3];
Далее
осуществляется процедура получения СRC кода:
%
получение CRC кода
m = [msg_Lev2
zeros(1,st.y-1)]; %вставка нулей в поле CRC
[q r] =
deconv(m,st.poly); % поиск частного и остатка от
деления
%информационной
части на порождающий полином CRC кода
r = mod(abs(r),2);
CRC = r(st.length_msg_Lev2 + 1:end);%расчет CRC
% сборка
сообщения
msg_Lev1 =
[msg_Lev2 CRC];
Формирование сообщения L1-уровня:
msg_Lev1 =
[msg_Lev2 CRC];
Далее
вся полученная последовательность кодируется избыточным блочным кодом БЧХ
(255,215):
code = encode(msg_Lev1,st.n,st.k,'bch/binary');
Так же сформированный пакет дополняется нулевым битом для обеспечения
четности, необходимой нам при типа модуляции QPSK:
%добавление
дополнительныхо бита для приведения размера сообщения к числу
%кратному
2 (следует из определения позиционности
QPSK модуляции
code_word = [0
code];
После
кодирования происходит QPSK модуляция:
% h -
модем QPSK с позиционностью mPos
h = modem.pskmod(st.mPos);
h.inputtype = 'bit';
IQ_signal = modulate(h, code_word');
Передача
сообщения в канал с заданным отношением сигнал-шум:
%
Наложение шума на блок символов
SNR=randi(20);
disp('%%%%%%%%%%%%%%')
disp('ОСШ
в КС:');
disp(SNR);
noise_sgn = awgn(trxIQ,SNR,'measured');
figure(2)
plot(noise_sgn,'*')
title('СКС
на выходе КС 1')
Пройденное через
канала сообщение принимает терминал T1. Это осуществляется с помощью функции:
function
[Addr_rec, Addr_tr, TypeMSG, DataL2_rec, detect] = RX (rxIQ)
Далее
осуществляется демодуляция сообщения:
%
Параметры демодуляции
h =
modem.pskdemod(st.mPos);
h.OutputType = 'bit';
%
собственно демодуляция
rec_code_word =
demodulate(h,rxIQ);
Над полученным информационным сообщением
осуществляется помехоустойчивое декодирование (преобразование полученного
закодированного сообщения в двоичное информационное сообщение):
%
Помехоустойчивое декодирование
%Декодирование сообщения кодом БЧХ
decode_word=decode(rec_code_word(2:end),st.n,st.k,'bch/binary');
decode_word=decode_word';
На L2-уровне осуществляется проверка достоверности полученного
сообщения – процедура CRC:
% Подготовка к проверке CRC
[q
r]=deconv(decode_word,st.poly);
%проверка остатка
r=mod(abs(r),2);
if r ==
zeros(1,length(decode_word))
detect=0;% ошибок нет
else
errs = errs + 1;
detect=1;%
обнаружены ошибки
end;
Errs- параметр, указывающий на наличие или отсутствие ошибок.
Принятое
сообщение:
%
Собственно принятое сообщение
received_mes_L2
= decode_word(1:st.length_msg_Lev2);
Преобразование сообщения в текстовый формат и извлечение типа
сообщения:
%
Преобразование в текстовый формат
% адрес
получателя сообщения
Addr_rec =
my_bi2de(received_mes_L2(1:4),'left_msb');
% адрес отправителя сообщения
Addr_tr =
my_bi2de(received_mes_L2(5:8),'left_msb');
% тип сообщения
TypeMSG =
my_bi2de(received_mes_L2(9:10),'left_msb');
%
Извлечение принимаемого сообщения (в двоичном виде)
DataL2_rec =
received_mes_L2(11:11+st.length_msg_Lev3-1);
Проверка на правильность обнаружения несущей BCCH:
%% Прием широковещательного сообщения терминалом
[Addr_rec, Addr_tr, TypeMSG, DataL2_rec, errs] = RX
(noise_sgn);
% Выделение поля "ID-сети"
ID_networt_r = my_bi2de(DataL2_rec(1:8),'left_msb');
%
Выделение поля "Наименование сети"
%
Заполнение 0 для кратности 16, требования ASCII
network_name_r=bintostr([zeros(1,11)
DataL2_rec(9:189)]);
% проверка на правильность обнаружения BCCH
if
((Addr_rec+ Addr_tr+TypeMSG+errs)==0)&(ID_networt_r==st.ID)
%
BCCH обнаружена, сеть идентифицирована
aa=0;
disp('%%%%%%%%%%%%%%')
disp('ID-сети:')
disp(ID_networt_r);
disp('Наименованте сети:')
disp(
network_name_r);
else
% продолжается поиск BCCH
aa=1;
disp('BCCH не обнаружена');
end
На основании описанной выше программы продемонстрируем сценарий осуществляемый на L1-уровне при получении BCCH несущей:
Рис.3 сценарий осуществляемый на L1-уровне при получении BCCH несущей
Формирование заявки Т1
на регистрацию:
Заявка на регистрацию осуществляется формированием сообщения L3-уровня, включающее в себя Аутентификатор и Код услуги (рис.2):
% формат
L3-сообщения:
% поле
"Аутентификации" 14 бит
authentication=st.aut;
% поле "код услуги" - 175 бит
com
= 'registrat ';
Далее происходит преобразование
в двоичный формат:
[com_bin N]= strtobin(com); %N - длина информационного сообщения поля
"com"
Таким образом формируется
сообщения L3-уровня:
%сборка L3-сообщения
msg_L3_1=[msg authentication_bin];
Далее сообщение
передается по радиоканалу:
% передачи
сообщения по радиоканалу
trxIQ_1=TR(0,
15, 'page', msg_L3_1);
figure(3)
plot(trxIQ_1,'*r')
title('СКС
на выходе передатчика 2')
SNR=randi(20);
disp('%%%%%%%%%%%%%%')
disp('ОСШ в КС:');
disp(SNR);
Полученное сообщения проходит через канал связи, где
происходит наложение шума на блок символов:
noise_sgn = awgn(trxIQ_1,SNR,'measured');
Далее происходит прием сообщения заявки на регистрацию точкой
доступа:
% Прием заявки на
регистрацию ТД
[Addr_rec_1, Addr_tr_1,
TypeMSG_1, DataL2_rec_1, errs] = RX (noise_sgn);
% Выделение поля "код
услуги"
% Заполнение 0 для
кратности 16, требования ASCII
com_r=bintostr([0 DataL2_rec_1(1:175)]);
% Выделение поля "Аутентификации"
authentication_r = my_bi2de(DataL2_rec_1(176:189),'left_msb');
% определение
принадлежности пакета по типу, адресу получателя
disp('%%%%%%%%%%%%%%')
if (my_bi2de(TypeMSG_1,'left_msb')==1)&(sum(Addr_rec_1)==0)&(errs==0)
disp('код услуги')
disp(com_r);
disp('Аутентификация')
disp( authentication_r);
% извлечение адреса отправителя
addr_tr = my_bi2de(Addr_rec,'left_msb');
% формирование сообщения
подтверждения ТД
msg_L3_1=zeros(1,175);
trxIQ_1=TR(addr_tr, 0, 'resp', msg_L3_1);
else
disp('заявка на регистрацию не получена')
end
На основании описанной выше программы продемонстрируем сценарий
осуществляемый на L1-уровне
при заявки на регистрацию:
Рис.4 сценарий осуществляемый на L1-уровне при получении BCCH несущей
Проведем
исследования модели при различных условиях:
1) BCCH – обнаружена/не
обнаружена
%%%%%%%%%%%%%%
ОСШ в КС:
3
BCCH не обнаружена
%%%%%%%%%%%%%%
ОСШ в КС:
17
%%%%%%%%%%%%%%
ID-сети:
250
Наименованте сети:
VIKTORnet
2)
Заявка
на регистрацию получена/не получена
%%%%%%%%%%%%%%
ОСШ в КС:
5
%%%%%%%%%%%%%%
заявка на регистрацию не получена
%%%%%%%%%%%%%%
ОСШ в КС:
10
%%%%%%%%%%%%%%
код услуги
registrat
Аутентификация
100
Исследуем влияние шума
на передаваемые сообщения
1)
SNR=5 дб
Рис.5
Сигнальное созвездие на выходе AP без шума
Рис.6
Сигнальное созвездие на выходе канала связи при ОСШ=5 дб
Рис.7
Сигнальное созвездие на выходе Т1 без шума
Рис.8
Сигнальное созвездие на выходе канала связи при ОСШ=5 дб
Результат моделирования при ОСШ=5 дб:
%%%%%%%%%%%%%%
ОСШ
в КС:
5
BCCH не обнаружена
%%%%%%%%%%%%%%
%%%%%%%%%%%%%%
заявка
на регистрацию не получена
2)
SNR=20 дб
Рис.9
Сигнальное созвездие на выходе AP без шума
Рис.10
Сигнальное созвездие на выходе канала связи при ОСШ=20 дб
Рис.11
Сигнальное созвездие на выходе Т1 без шума
Рис.8
Сигнальное созвездие на выходе канала связи при ОСШ=20 дб
Результат моделирования при ОСШ=5 дб:
%%%%%%%%%%%%%%
ОСШ
в КС:
20
%%%%%%%%%%%%%%
ID-сети:
250
Наименованте
сети:
VIKTORnet
%%%%%%%%%%%%%%
ОСШ
в КС:
20
%%%%%%%%%%%%%%
код
услуги
registrat
Аутентификация
100
Вывод: в ходе моделирования радиосети: обнаружение и
идентификация сети удалось полностью удовлетворить требованиям
указанным в предыдущих сообщениях и требования предъявляемых по заданию.
1. http://omoled.ru/publications/view/510
2.http://omoled.ru/publications/view/512
3.Бакке А.В О построении программной модели радиосети
http://www.radiolay.ru/download/file.php?id=397
4.http://www.radiolay.ru/download/file.php?id=418