Подготовил ст-т гр.0110 Бешук И.С.

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

На рисунке 1 рассмотрены этапы подготовки к передаче данных с терминала на точку доступа.

 

Рис.1.

На рисунке 2 представлена вниманию блок-схема модели системы сбора данных согласно разработанному ранее сценарию.

 
Рис.2.
Далее подробно рассмотрим модель системы сбора данных:

% ///////////////////////// ТОЧКА ДОСТУПА /////////////////////////////////

% /////////////////////////////////////////////////////////////////////////

% //////////// ПЕРЕДАЧА ШИРОКОВЕЩАТЕЛЬНОГО СООБЩЕНИЯ. НАЧАЛО \\\\\\\\\\\\\\

SNR = 10;

Type_channel = 1; % поле типа канала;

Number_cicle_tr = 1; % номер цикла передачи;

Profil_func = 1; % профиль настройки ФУ;

%%% Инизиализация параметров %%%

IG = 0;

P_adress = 56;

P_TD = 185;

FCCH = 0;

SCH = 0;

Zero_bits = 0;

Proof_of_Delivery = 1;

inquiry_add_serv = [0 0 0 0 0];

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

[IQ_signal, msg_Lev1, inquiry_add_serv] = tramsmitter( IG, P_adress, ...

    Type_channel, P_TD, Number_cicle_tr, Profil_func, FCCH, SCH, ...

    Zero_bits, Proof_of_Delivery, inquiry_add_serv );

% /////////////////////////////////////////////////////////////////////////

% //////////////////////////// НАЛОЖЕНИЕ AWGN /////////////////////////////

IQ_signal = awgn(IQ_signal, SNR);

figure(2); plot(IQ_signal,'.');title('СКС после канала связи');

% /////////// ПЕРЕДАЧА ШИРОКОВЕЩАТЕЛЬНОГО СООБЩЕНИЯ. ОКОНЧАНИЕ \\\\\\\\\\\\

% /////////////////////////////////////////////////////////////////////////

% ////////////////////////////// ТЕРМИНАЛ /////////////////////////////////

% /////////////////////////////////////////////////////////////////////////

% /////////// ПРИЕМ ТЕРМИНАЛОМ ШИРОКОВЕЩАТЕЛЬНОГО СООБЩЕНИЯ \\\\\\\\\\\\\\\

[ r_msg_L2, r_IG, r_P_adress, r_Type_channel, r_P_TD, r_Number_cicle_tr,...

    r_Profil_func, r_Proof_of_Delivery, r_inquiry_add_serv, r_data,...

    r_FCCH, r_SCH, r_CRC, r ] = receiver( Profil_func, IQ_signal );


if my_bi2de(r_P_TD,'left_msb') >= 155

    disp(['%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%']);

    disp(['В зоне обслуживания данной точки доступа разрешена передача']);

    disp(['%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%']);

end

% Осуществление радиоизмерений

Radio_determine = norm(IQ_signal)^2;

if Radio_determine > 100

    Profil_func = 0;

else

    Profil_func = 1;

end

% Подсчет количества ошибок:

error = biterr(msg_Lev1, r_msg_L2);

% -------------------------------------------------------------------------

% ---------------------------- ВЫВОД РЕЗУЛЬТАТОВ --------------------------

% -------------------------------------------------------------------------

if r == zeros(1,length(r_msg_L2));

else

    disp(['%%%%% данные полученные терминалом %%%%%']);

    disp(['Информационная часть принята ошибочно! Количество ошибок: ',int2str(error)]);

end

disp(['%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%']);

% ///////////////////////// ТОЧКА ДОСТУПА /////////////////////////////////

% /////////////////////////////////////////////////////////////////////////

% /// ПЕРЕДАЧА АДРЕСНОГО СООБЩЕНИЯ НА ТЕРМИНАЛ С ЗАПРОСОМ ДОП. УСЛУГИ \\\

Type_channel = 3; % поле типа канала;

Proof_of_Delivery = 0;

[IQ_signal, msg_Lev1, inquiry_add_serv] = tramsmitter( IG, P_adress, ...

    Type_channel, P_TD, Number_cicle_tr, Profil_func, FCCH, SCH, ...

    Zero_bits, Proof_of_Delivery, inquiry_add_serv );

% /////////////////////////////////////////////////////////////////////////

% //////////////////////////// НАЛОЖЕНИЕ AWGN /////////////////////////////

IQ_signal = awgn(IQ_signal, SNR);

figure(2); plot(IQ_signal,'.');title('СКС после канала связи');

% /////////////////////////////////////////////////////////////////////////

% ////////////////////////////// ТЕРМИНАЛ /////////////////////////////////

% /////////////////////////////////////////////////////////////////////////

% ////// ПРИЕМ ТЕРМИНАЛОМ АДРЕСНОГО СООБЩЕНИЯ ОТ ТОЧКИ ДОСТУПА \\\\\\\\\\\\

[ r_msg_L2, r_IG, r_P_adress, r_Type_channel, r_P_TD, r_Number_cicle_tr,...

    r_Profil_func, r_Proof_of_Delivery, r_inquiry_add_serv, r_data,...

    r_FCCH, r_SCH, r_CRC, r ] = receiver( Profil_func, IQ_signal );

Осуществление радиоизмерений

Radio_determine = norm(IQ_signal)^2;

if Radio_determine > 100

    Profil_func = 0;

else

    Profil_func = 1;

end

Подсчет количества ошибок:

error = biterr(msg_Lev1, r_msg_L2);

% -------------------------------------------------------------------------

% ---------------------------- ВЫВОД РЕЗУЛЬТАТОВ --------------------------

% -------------------------------------------------------------------------

if r == zeros(1,length(r_msg_L2));

else

    disp(['%%%%% данные полученные терминалом %%%%%']);

    disp(['Информационная часть принята ошибочно! Количество ошибок: ',int2str(error)]);

end

disp(['%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%']);

% ////////////////////////////// ТЕРМИНАЛ /////////////////////////////////

% /////////////////////////////////////////////////////////////////////////

% //// ОТПРАВКА НА ТОЧКУ ДОСТУПА ПОДГОТОВЛЕННОГО ТЕКУЩЕГО СООБЩЕНИЯ \\\\\\\

Type_channel = 2; % поле типа канала;

[IQ_signal, msg_Lev1, inquiry_add_serv] = tramsmitter( IG, P_adress, ...

    Type_channel, P_TD, Number_cicle_tr, Profil_func, FCCH, SCH, ...

    Zero_bits, Proof_of_Delivery, r_inquiry_add_serv );

% /////////////////////////////////////////////////////////////////////////

% //////////////////////////// НАЛОЖЕНИЕ AWGN /////////////////////////////

IQ_signal = awgn(IQ_signal, SNR);

figure(2); plot(IQ_signal,'.');title('СКС после канала связи');

% /////////////////////////////////////////////////////////////////////////

% ///////////////////////// ТОЧКА ДОСТУПА /////////////////////////////////

% /////////////////////////////////////////////////////////////////////////

% ////// ПРИЕМ ТОЧКОЙ ДОСТУПА ТЕКУЩЕЙ ИНФОРМАЦИИ ОТ ТЕРМИНАЛА \\\\\\\\\\\\\

[ r_msg_L2, r_IG, r_P_adress, r_Type_channel, r_P_TD, r_Number_cicle_tr,...

    r_Profil_func, r_Proof_of_Delivery, r_inquiry_add_serv, r_data, ...

    r_FCCH, r_SCH, r_CRC, r ] = receiver( Profil_func, IQ_signal );

Осуществление радиоизмерений

Radio_determine = norm(IQ_signal)^2;

if Radio_determine > 100

    Profil_func = 0;

else

    Profil_func = 1;

end

Подсчет количества ошибок:

error = biterr(msg_Lev1, r_msg_L2);

% -------------------------------------------------------------------------

% ---------------------------- ВЫВОД РЕЗУЛЬТАТОВ --------------------------

% -------------------------------------------------------------------------

if r == zeros(1,length(r_msg_L2));

else

    disp(['%%%%% данные полученные точкой доступа %%%%%']);

    disp(['Информационная часть принята ошибочно! Количество ошибок: ',int2str(error)]);

end

disp(['%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%']);

% ///////////////////////// ТОЧКА ДОСТУПА /////////////////////////////////

% /////////////////////////////////////////////////////////////////////////

% /////////// ОТПРАВЛЕНИЕ НА ТЕРМИНАЛ ПАКЕТА ПОДТВЕРЖДЕНИЯ \\\\\\\\\\\\\\\\

Type_channel = 3; % поле типа канала;

Proof_of_Delivery = 1;

[IQ_signal, msg_Lev1, inquiry_add_serv] = tramsmitter( IG, P_adress, ...

    Type_channel, P_TD, Number_cicle_tr, Profil_func, FCCH, SCH, ...

    Zero_bits, Proof_of_Delivery, r_inquiry_add_serv );

% /////////////////////////////////////////////////////////////////////////

% //////////////////////////// НАЛОЖЕНИЕ AWGN /////////////////////////////

IQ_signal = awgn(IQ_signal, SNR);

figure(2); plot(IQ_signal,'.');title('СКС после канала связи');

% /////////////////////////////////////////////////////////////////////////

% ////////////////////////////// ТЕРМИНАЛ /////////////////////////////////

% /////////////////////////////////////////////////////////////////////////

% ////// ПРИЕМ ТЕРМИНАЛОМ СООБЩЕНИЯ ПОДТВЕРЖДЕНИЯ ОТ ТОЧКИ ДОСТУПА \\\\\\\\

[ r_msg_L2, r_IG, r_P_adress, r_Type_channel, r_P_TD, r_Number_cicle_tr,...

    r_Profil_func, r_Proof_of_Delivery, r_inquiry_add_serv, r_data,...

    r_FCCH, r_SCH, r_CRC, r ] = receiver( Profil_func, IQ_signal );

Осуществление радиоизмерений

Radio_determine = norm(IQ_signal)^2;

if Radio_determine > 100

    Profil_func = 0;

else

    Profil_func = 1;

end

Подсчет количества ошибок:

error = biterr(msg_Lev1, r_msg_L2);

% -------------------------------------------------------------------------

% ---------------------------- ВЫВОД РЕЗУЛЬТАТОВ --------------------------

% -------------------------------------------------------------------------

if r == zeros(1,length(r_msg_L2));

else

    disp(['%%%%% данные полученные терминалом %%%%%']);

    disp(['Информационная часть принята ошибочно! Количество ошибок: ',int2str(error)]);

end

disp(['%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%']);

disp(['Терминал передал сообщение успешно, переход в режим "СОН"']);


Для оценки влияния шума на передаваемый сигнал, были построены сигнально-кодовые созвездия (СКС). На рисунке 3 показаны СКС модулированного QPSK сигнала на выходе модулятора и СКС того же сигнала под влиянием АБГШ при ОСШ 10 дБ.

 

Рис.3.

С передающим и приёмным устройствами предлагаю ознакомиться непосредственно в самой модели, которая будет прикреплена ниже.


В программе используется функция additional_service, основное назначение которой состоит в имитации запросов дополнительных услуг от ЦСИ.

В результате запуска данной модели разрабатываемой системы на экран выводится информация:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%% данные передаваемые точкой доступа %%%%%

Тип канала - № 0  1

Идентификатор точки доступа - № 1  0  1  1  1  0  0  1

Номер цикла передачи - 0  0  0  0  0  0  1

Профиль функционирования - 1

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Warning: This is an obsolete function and may be removed

in the future.

         Please use BCHENC instead.

         To disable this warning, type

         warning('off','comm:obsolete:bchenco'). 

Warning: This is an obsolete function and may be removed

in the future.

         Please use BCHGENPOLY instead.

         To disable this warning, type

         warning('off','comm:obsolete:bchpoly'). 

Warning: This is an obsolete function and may be removed

in the future.

         Please use BCHDEC instead.

         To disable this warning, type

         warning('off','comm:obsolete:bchdeco'). 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%% данные полученные терминалом %%%%%

Тип передаваемого сообщения - широковещательное

Поле адреса - 1  1  1  1  1  1  1  1

Тип канала - № 1

Идентификатор точки доступа - № 185

Номер цикла передачи - 1

Профиль функционирования - № 1

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

В зоне обслуживания данной точки доступа разрешена передача

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%% данные передаваемые точкой доступа %%%%%

Тип канала - № 1  1

Идентификатор точки доступа - № 185

Идентификатор терминала - № 56

Используется дополнительная услуга: информация о температуре тела участника

Используется дополнительная услуга: информация о температуре окружающей среды

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Warning: This is an obsolete function and may be removed

in the future.

         Please use BCHENC instead.

         To disable this warning, type

         warning('off','comm:obsolete:bchenco'). 

Warning: This is an obsolete function and may be removed

in the future.

         Please use BCHGENPOLY instead.

         To disable this warning, type

         warning('off','comm:obsolete:bchpoly'). 

Warning: This is an obsolete function and may be removed

in the future.

         Please use BCHDEC instead.

         To disable this warning, type

         warning('off','comm:obsolete:bchdeco'). 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%% данные полученные терминалом %%%%%

Тип передаваемого сообщения - адресное

Поле адреса - 0  0  1  1  1  0  0  0

Тип канала - № 3

Идентификатор точки доступа - № 185

Номер цикла передачи - 

Профиль функционирования - № 1

Используется дополнительная услуга: информация о температуре тела участника

Используется дополнительная услуга: информация о температуре окружающей среды

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%% данные передаваемые терминалом %%%%%

Тип канала - № 1  0

Идентификатор точки доступа - № 185

Идентификатор терминала - № 56

Скорость движения группы(терминала) [км/ч] - 5

Общий анализ крови [норма] 

Пульс участника [уд/сек] - 0

Температура тела участника [C] - 39

Температура окружающей среды [C] - 52

Давление [мм рт ст] - 0

Влажность [%] - 0

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Warning: This is an obsolete function and may be removed

in the future.

         Please use BCHENC instead.

         To disable this warning, type

         warning('off','comm:obsolete:bchenco'). 

Warning: This is an obsolete function and may be removed

in the future.

         Please use BCHGENPOLY instead.

         To disable this warning, type

         warning('off','comm:obsolete:bchpoly'). 

Warning: This is an obsolete function and may be removed

in the future.

         Please use BCHDEC instead.

         To disable this warning, type

         warning('off','comm:obsolete:bchdeco'). 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%% данные полученные точкой доступа %%%%%

Тип передаваемого сообщения - адресное

Тип канала - № 1  0

Идентификатор точки доступа - № 185

Идентификатор терминала - № 56

Скорость движения группы(терминала) [км/ч] - 5

Общий анализ крови [норма] 

Пульс участника [уд/сек] - 0

Температура тела участника [C] - 39

Температура окружающей среды [C] - 52

Давление [мм рт ст] - 0

Влажность [%] - 0

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%% данные передаваемые точкой доступа %%%%%

Тип канала - № 1  1

Идентификатор точки доступа - № 185

Идентификатор терминала - № 56

Сообщение от терминала № 56 передано

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Warning: This is an obsolete function and may be removed

in the future.

         Please use BCHENC instead.

         To disable this warning, type

         warning('off','comm:obsolete:bchenco'). 

Warning: This is an obsolete function and may be removed

in the future.

         Please use BCHGENPOLY instead.

         To disable this warning, type

         warning('off','comm:obsolete:bchpoly'). 

Warning: This is an obsolete function and may be removed

in the future.

         Please use BCHDEC instead.

         To disable this warning, type

         warning('off','comm:obsolete:bchdeco'). 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%% данные полученные терминалом %%%%%

Тип передаваемого сообщения - адресное

Поле адреса - 0  0  1  1  1  0  0  0

Тип канала - № 3

Идентификатор точки доступа - № 185

Номер цикла передачи - 

Профиль функционирования - № 1

Сообщение от терминала № 56 принято успешно

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Терминал передал сообщение успешно, переход в режим "СОН"

>> 

Список используемой литературы:

1. С.А. Милованов – Система сбора данных с подвижных станций (часть 4).http://omoled.ru/publications/view/348

2. Система сбора данных с подвижных станций. Часть 4. http://omoled.ru/publications/view/347

3. КП на тему "Локальная радиосеть" п. 2 – п.3 (часть № 4). http://omoled.ru/publications/view/340

4. КП "Система сбора данных с подвижных станций". Часть 4. Никишкин П.Б. http://omoled.ru/publications/view/451

5. КП "Система сбора данных". Часть 1. Бешук И.С. http://omoled.ru/publications/view/600

6. КП "Система сбора данных с подвижных объектов". Часть 2. Бешук И.С.http://omoled.ru/publications/view/618


7. КП "Система сбора данных с подвижных объектов". Часть 3. Бешук И.С.http://omoled.ru/publications/view/620