2.  Техническая часть.

2.1Постановка задачи на данном этапе проектирования компактной радиотелефонной системы.

Целью данного этапа курсового проектирования является разработка функциональной схемы передающего тракта радиотелефонной системы для передачи одного из сообщений канала управления, передаваемое по выделенному каналу управления – SDCCH (сообщение, передаваемое с мобильной станции на базовую станцию). Подробнее сценарий SDCCH рассмотрен в разделе 1.5 курсового проектирования.

 Структура полностью сформированного на физическом уровне сообщения, приведена на рис. 1.


Рис.1. Структура сообщения на выходе ФУ.

2.2. Построение блок-схемы передатчика МС (transmitter).


                   



Рис.2.  блок-схемы передатчика МС.

3.   Экспериментальная часть.

Задача на данном этапе проектирования- разработка модели системы в среде Matlab, демонстрирующей пример передачи сообщения между объектами верхнего уровня.

3.1. Инициализация основных параметров модели.


% Выбор файла для сохранения сформированного сигнала

set.SignalFileName = 'signal.bin';

 

% Кодировка символа текста: 2 байта на символ

set.sym_size = 2;

% Длина однократно считываемого текстового сообщения

set.Str_size = 14;

% Смещение указателя чтения символа из файла на заданную величину

set.byte_off = 0;

 

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

% позиционность модуляции - QPSK

set.mPos = 4;

 

% Параметры помехоустойчивого кодека кодека

% Для примера используется линейный блоковый код Хэмминга:

% Длина кодового слова n = 2^m-1 = 255 при m = 8

% Размер кодируемого блока k = n-m = 247

 

set.m = 8;

set.n = 2^set.m-1; % Codeword length = 255

set.k = 247; % Message length = 247

 

% размер блока символов, формируемых в модуляторе из одного пакета

% 256 - количество битов в пакете,log2(mPos) - количество битов,

% приходящихся на символ

set.mod_size = 276/log2(set.mPos);

 

% Параметры CRC

set.poly=[1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0];

[set.x set.y]=size(set.poly); %размерность полинома

 

% переменная, равная длине передаваемого сообщения 2 уровня

set.length_msg_Lev2 = 134;% сообщение состоит из 134 битов


2.2 Программный модуль передатчика МС (transmitter).


% установка параметров модели

st=initSettings();

 

% Открытие файла на запись и получение его идентификатора

% В этот файл будет записываться сигнал с выхода канала связи

[fidw, message] = fopen(st.SignalFileName, 'wb');

 

 

   %формирование msg

    msg=randi(2,1,128)-1;


 

 После этапа формирования сообщения msg, должно быть сформировано сообщение длиной 128 бит, состоящий из бинарных символов: «0» и «1». Демонстрация сформированного сообщения на рис.3.



Рис.3.  Сформированное сообщение msg.




%% Подготовка к передаче сообщения

   % сообщение переводится в двоичный вид

    str_bin = msg;


   % получение адреса терминала в двоичном 3-х разрядном виде (Address=5)

   % получение кода услуги в двоичном 3-х разрядном виде

   addr_bin = my_de2bi(5,'left_msb',3);

   cod_bin = my_de2bi(1,'left_msb',3);


   % сборка части L2-сообщения

   msg_Lev2 = [ cod_bin addr_bin str_bin];



На этапе сборки сообщения L2 к переведенному в двоичный вид сообщению msg добавляются следующие поля.

 

1.  Поле кода запрашиваемой услуги( в рассматриваемом случае терминал запрашивает услугу передачи sms сообщения, что соответствует 1). Демонстрация сформированного кода приведена на рис.4.


                              Рис.4. Демонстрация сформированного кода.

2.  Поле адреса терминала. Демонстрация сформированного адреса приведена на рис.5.


                               Рис.5. Демонстрация сформированного адреса.

Результат сборки L2-сообщения приведен на рис.6.


Рис.6. Демонстрация сформированного L2-сообщения.


% получение CRC кода

   m=[msg_Lev2 zeros(1,st.y-1)]; %вставка нулей в поле CRC

   [q r] = deconv(m,st.poly); % поиск частного и остатка от деления

   %информационной части на порождающий полином CRC кода

   r = mod(abs(r),2);

   CRC = r(134 + 1:end);%расчет CRC


   % сборка сообщения L1

   msg_Lev1 = [msg_Lev2 CRC];


    %формирование trx

   trx = [msg_Lev1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ………0];

 



После этапа сборки, сообщение L1 состоит из 16 бит CRC и сообщения msg_Lev2. Демонстрация собранного сообщения представлена на рис.7.



Рис.7. Демонстрация сформированного L1-сообщения.


Для того, чтобы на физическом уровне сработал помехоустойчивый кодер, необходимо уровнять длины  trx и set.k. так как размер set.k  247 битов, то к сообщению L1 прибавляются дополнительные 97 битов. Сформированное сообщение trx представлено на рис.8.



Рис.8. Демонстрация сформированного trx  сообщения.


%% Помехоустойчивое кодирование

   code_word = encode(trx,st.n,st.k,'hamming/binary');

 

   %После помехоустойчивого кодирования должна выполнятся функция перемежения

   code_word = code_word;

  

   % добавление дополнительного бита с целью приведения итогового блока к

   % величине, кратной степени 2

   code_word = [0 code_word];

 

   %формирование эквалайзера

   eqlz=[randi(2,1,10)-1];

 

   %формирование флагов начала и конца сообщения

   fls = [ 1 1 1 1 1 ];

 

   %сборка code_word

   code_word = [fls code_word eqlz fls]';


 

Сформированное сообщение code_word представлено на рис.9. 



Рис.9. Демонстрация сформированного сообщения code_word.


%% Модуляция

   h = modem.pskmod(st.mPos);

   % h - модем PSK с позиционностью mPos

   % Требуется настроить остальные его параметры:

   % Параметры модуляции

   h.inputtype = 'bit';

   h.SymbolOrder = 'gray';

   h.PhaseOffset = pi/4; 

   % собственно модуляция

   IQ_signal = modulate(h, code_word); 


Сформированный IQ_signal представлен на рис.10.


Рис.10. Сформированный IQ_signal.


% Наложение шума на сигнал

   noise_sgn = awgn(IQ_signal,40);

 

   % здесь сигнал noise_sgn должен быть записан в файл

   fwrite(fidw,[real(noise_sgn) imag(noise_sgn)],'double');

    

  

   % отображение сигнально-кодового созвездия

   figure(10);

   plot(noise_sgn,'.');


 

Сформированное сигнально-кодового созвездие представлено на рис.11.


Рис.11. Сигнально-кодового созвездие.


 % закрытие файла

 fclose (fidw);

Результатом выполнения программы является переданное сообщение, представленное на рис.12. Количество переданных битов - 128, как и было заявлено в сообщении msg.


Рис.12.Переданное сообщение msg.

Список литературы:

1. Компактная система радиотелефонной связи. 1 этап., http://omoled.ru/publications/view/290;

2.  Компактная система радиотелефонной связи. 2 этап., http://omoled.ru/publications/view/315;

3. Компактная система радиотелефонной связи. 2 этап., http://omoled.ru/publications/view/331;

4. Версия примера PSK-модема, http://radiolay.ru/viewtopic.php?f=37&t=185&start=10.