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

Часть 4 (Доработанная)

(Лукашин И.В., РГРТУ, гр.9110)

 

 

            В данной части проекта предложено описание разработанной в среде Matlab модели системы,  демонстрирующей  пример  реализации сценария описанного в [1, п. 1.3, активный режим] (Рис. 1). После проведения процедуры регистрации ТД осуществляет передачу команд управления видеокамерой и передачу сообщений сигнализации (сообщение о смене профиля функционирования системы или сообщение  об изменении мощности передачи терминала) по каналу ССH. На канальном уровне сообщение этого


Рис.1. Процедура, соответствующая активному режиму.

 

канала состоит из полей:

- DATA, в этом поле содержится код выполняемой команды управления, размерностью 178 бит;

- TYPE, поле которое необходимо Т для того чтобы знать это новое сообщение или повторно передаваемое. Для этого поля достаточно 1 бита;

- CRC, размерность поля – 8 бит.

На физическом уровне это сообщение подвергается перемежению, канальному кодированию, модуляции и формирование OFDM символов [см. 2].

          Отметим, что для команд управления видеокамерой и для сообщений сигнализации требуется гарантированная доставка. Для этого в системе используется ARQ с остановками. ТД перед началом очередной передачи ожидает подтверждения об успешном приеме предыдущей. Если передаваемое сообщение принято с ошибкой, то Т передает отрицательное подтверждение приема; ТД повторяет передачу ошибочно принятого сообщения и только после этого передает следующий по очередности сообщение. Для передачи сообщений подтверждения о доставке в сообщении канала DTCH, о котором будет сказано ниже, необходимо предусмотреть специальный флаг, в котором будет отмечаться нужна повторная передача или нет.

            На канальном уровне сообщение  канала DTCH состоит из полей:

- DATA, в этом поле содержащее фрагмент видеопотока, размерностью 182 бит;

- FL_ARQ, в котором содержатся сведения о подтверждении/не подтверждении безошибочного приема. Для этого поля достаточно 1 бита;

- CRC, размерность поля – 4 бит.

          На физическом уровне это сообщение подвергается процедурам описанным выше. Отличительной особенностью является то, что сообщения этого канала передаются группой. Эта группа объединяет 5 сообщений канала DTCH.

          Рис. 2 представлена блок-схема передающей части ТД. Слева изображен порядок происходящих процессов, справа – вариации обрабатываемых программой структурных единиц (сообщений и полей) как результат соответствующих процессов. Размерность OFDM символа указана для QPSK модуляции, а в скобочках указана – для QAM-16.

  

 Рис. 2. Блок-схема передающей части ТД.

 

            Сперва рассмотрим функцию, устанавливающую параметры модели.

 

function set = initSettings()

 

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

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

set.mPos = 4;

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

%Для примера используется код БЧХ :

%Длина кодового слова

set.n=255;

%Размер кодируемого блока

set.k=187;

% Параметры CRC

%CRC-8

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

[set.x8 set.y8]=size(set.poly8); %размерность полинома

%размер сообщения каналького уровня без учета CRC

%CRC-8

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

%CRC-8

[set.x4 set.y4]=size(set.poly4);

%размер сообщения каналького уровня канала CСН  без учета CRC

set.lenght_info=179;

%размер сообщения каналького уровня канала DTCH  без учета CRC и FL_ARQ

set.lenght_video=182;

end

 

Рассмотрим функцию, отражающую функции выполняемые передатчиком ТД.

 

function [phy_frame] = transmitter_AP( TYPE, DATA_COM, i )

% TYPE - поле которое необходимо Т для того чтобы знать

% это новое сообщение или повторно передаваемое.

% DATA_COM - Поле DATA_COM содержит код запрашиваемой услуги

 

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

st=initSettings();

%global fil_zero

global Nc

global pilotIndexes

global ns;

 

% формирование поле тип сообщения

% и реализация повторной передачи (ARQ)

if TYPE == 0

           DATA=DATA_COM(i);

           tps='new_message';

elseif TYPE == 1

           DATA=DATA_COM(i-1);

           tps='repeat_message';

end;

 

disp('===============================================');

disp('сообщение передаваемое ТД');

disp('сообщение типа:'); disp(tps);

disp('передаваемая команда:'); disp(DATA);

DATA= my_de2bi(DATA,'left_msb',178);

disp('===============================================');

% ================== Канальный уровень ================================

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

msg_Lev2 = [TYPE DATA];  

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

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

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

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

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

%расчет CRC

CRC = r(length(msg_Lev2) + 1:end);

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

msg_Lev1 = [msg_Lev2 CRC];

% ================== Физический уровень ================================

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

% Кодирование сообщения кодом БЧХ (255, 187)

code = encode(msg_Lev1,st.n,st.k,'bch/binary');

%добавление дополнительныхо бита для приведения размера сообщения к числу

%кратному 2 или 4 (следует из определения позиционности QPSK и QAM-16 модуляции

code_word = [0 code];

%Блочное перемежение

alternation_bits = matintrlv(code_word, 32, 8);

% номера пилотных поднесущих в OFDM-символе

pilotIndexes = [9 26 0];

% количество неиспользуемых поднесущих и приходящихся на защитные интервалы

Ngr = 0;

% Размерность OFDM-символа

Nc=34;

% количество поднесущих с данными

Ndata = Nc - (length(pilotIndexes)-1);

% количество битов, передаваемых в одном OFDM-символе

s_length = Ndata * log2(st.mPos);

% Количество OFDM-символов

ns = floor(length(alternation_bits)/s_length);

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

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

h = modem.qammod(st.mPos);

h.inputtype = 'bit';

IQ_signal = modulate(h, alternation_bits');

figure;

plot(IQ_signal,'xr');

ylim([-3.1 3.1]);

xlim([-3.1 3.1]);

title('Сигнально-кодовое созвездие, полученное в передатчике точки доступа')

 

            Передача одного OFDM символа будет осуществляться с использованием 48 поднесущих: 32 поднесущие для передачи данных, 2 – для пилот сигнала, 6 и 7 – для использования защитных интервалов и 1 нулевая поднесущая для идентификации нулевой частоты OFDM сигнала. Структура поднесущих изображена на Рис. 3.

  

Рис. 3. Структура поднесущих (OFDM символов).

  

%формирование OFDM-символов

ofdmFrame = makeOfdmFrame(IQ_signal, ns);

 

          В начало каждого сформированного символа OFDM необходимо добавить циклический префикс. Размер циклического префикса составит ¼ часть  длины символа. Таким образом один OFDM символ будет передаваться с использованием 32 поднесущих.

 

function ofdmFrame = makeOfdmFrame(dataMod, Nofdm)

 

global pilotIndexes;

global Nc;

global len_cp;

global len_ofdmSymbol;

 

%символы пилотных поднесущих промодулированы псевдослучайным кодом (для

%примера, код Баркера), как результат - BPSK

seqBarker = [-1 -1 -1 1 1 1 -1 1 1 -1 1]*4/3;

ofdmSymbol = [];

ofdmFrame = [];

indexOfPilot = 1;

indexOfData = 1;

for i=1:Nofdm

    for j=1:Nc % собираются IQ-символы будущего OFDM-символа

        if (j==pilotIndexes(indexOfPilot))

            ofdmSymbol(j)=seqBarker(indexOfPilot);

            indexOfPilot=indexOfPilot+1;

        else

            ofdmSymbol(j) = dataMod(indexOfData);

            indexOfData=indexOfData+1;

        end

    end

    indexOfPilot=1;

    ofdmSymbol = ifft(ofdmSymbol);

    %формирование циклического префикса, как часть OFDM-символа,

    %используется 1/4 часть символа

    cp = ofdmSymbol(Nc-Nc/4+1:Nc);

    %длина циклического префикса

    len_cp=length(cp);

    % добавление ЦП в начало OFDM-символа (64 IQ-символа)

    ofdmSymbol=[cp ofdmSymbol];

    %длина OFDM-символа

    len_ofdmSymbol=length(ofdmSymbol);

    % Сборка информационных OFDM-символов пакета физического уровня

    ofdmFrame=[ofdmFrame ofdmSymbol];

    ofdmSymbol=[];

end

end

 

Далее, происходит формирование преамбулы.

 

%Формирование символов преамбулы

%Короткие символы - для подстройки частоты (синхронизация по частоте)

ShortTrainingSymbols = 3*[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(17:37);

% Формирование 10 кототких символов преамбулы на основе выбранного набора

short_trs= [Strs Strs];

%длинный символ преамбулы

LongTrainingSymbols=2*[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(7:48);

% Пакет физического уровня (символы преамбулы и OFDM-символы)

phy_frame = [short_trs long_trs ofdmFrame];

figure;

plot(abs(phy_frame));

end

 

            Переданное ТД сообщение канала управления ССH должно быть принято и обработано Т. Вначале происходит выделение из принятого  сигнала символов OFDM, содержащих непосредственно передаваемые данные. На Рис. 4 представлена блок-схема приёмной части Т. Как и в случае с блок-схемой передающей части, слева изображен порядок происходящих процессов, справа – вариации обрабатываемых программой структурных единиц (сообщений и полей) как результат соответствующих процессов.

После извлечения полей DATA, в этом поле содержится код выполняемой команды управления, и TYPE поле которое необходимо Т для того чтобы знать это новое сообщение или повторно передаваемое. Приемник Т формирует подтверждение правильного приема или запрос на повторную передачу, и это подтверждение (FL_ARQ) направляется передатчику ТД.

  

 

Рис. 4. Блок-схема приемной части Т.

   

             Передатчик Т формирует группу сообщений канала DCTH, которые также содержат направленное с приемника Т  подтверждение правильного приема или запрос на повторную передачу (FL_ARQ). Отметим, что во всех сообщениях группы ставится одинаковое значение поля  флаг FL_ARQ.

            На Рис. 5 представлена блок-схема передающей части Т. Слева изображен порядок происходящих процессов, справа – вариации обрабатываемых программой структурных единиц (сообщений и полей) как результат соответствующих процессов.

  

Рис. 5. Блок-схема передающей части Т.

 

 

            Рассмотрим функцию, отражающую функции выполняемые передатчиком Т.

           

function [phy_frame, Video_data] = transmitter_T( FL_ARQ )

 

% FL_ARQ - поле которое необходимо ТД для того чтобы знать

% Т принял это сообщение с ошибками или безошибочно

% FL_ARQ=0 - если ошибки не обнаружены

% FL_ARQ=1 - запрос на повторную передачу

% Video_data - передаваемое сообщение видеотрафика

% phy_frame - сформированные OFDM-символы

 

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

st=initSettings();

%global fil_zero

global Nc

global pilotIndexes

global ns;

global ofdmFrame;

% "видеопоток"

Video_data='video traffic video traffic video traffic video traffic!';

[binVector, N]= strtobin(Video_data);

fill=zeros(1,5*(st.lenght_video)-N);

disp('===============================================');

disp('сообщение передаваемое Т');

if FL_ARQ == 1

       disp('запрос на повторную передачу');

     

else

       disp('потверждение верного приема');

      

end

 

disp('передаваемое сообщение'); disp(Video_data);

disp('===============================================');

DATA=[binVector' fill] ;

figure;

hold on

ofdmFrame_1=[];

 

%формирование пяти сообщений канала DTCH

for i=1:5

 

data_video=DATA(1+(i-1)*st.lenght_video:st.lenght_video*i);

% ================== Канальный уровень ================================

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

msg_Lev2 = [FL_ARQ data_video];  

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

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

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

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

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

%расчет CRC

CRC = r(length(msg_Lev2) + 1:end);

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

msg_Lev1 = [msg_Lev2 CRC];

% ================== Физический уровень ================================

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

% Кодирование сообщения кодом БЧХ (255, 187)

code = encode(msg_Lev1,st.n,st.k,'bch/binary');

%добавление дополнительныхо бита для приведения размера сообщения к числу

%кратному 2 или 4 (следует из определения позиционности QPSK и QAM-16 модуляции

code_word = [0 code];

%Блочное перемежение

alternation_bits = matintrlv(code_word, 32, 8);

% номера пилотных поднесущих в OFDM-символе

pilotIndexes = [9 26 0];

% количество неиспользуемых поднесущих и приходящихся на защитные интервалы

Ngr = 0;

% Размерность OFDM-символа

Nc=34;

% количество поднесущих с данными

Ndata = Nc - (length(pilotIndexes)-1);

% количество битов, передаваемых в одном OFDM-символе

s_length = Ndata * log2(st.mPos);

% Количество OFDM-символов

ns = floor(length(alternation_bits)/s_length);

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

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

h = modem.qammod(st.mPos);

h.inputtype = 'bit';

IQ_signal = modulate(h, alternation_bits');

plot(IQ_signal,'xr');

ylim([-3.1 3.1]);

xlim([-3.1 3.1]);

title('Сигнально-кодовое созвездие, полученное в передатчике терминала')

%формирование OFDM-символов

ofdmFrame = makeOfdmFrame(IQ_signal, ns);

ofdmFrame_1=[ofdmFrame_1 ofdmFrame];

end

hold off

 

%Формирование символов преамбулы

%Короткие символы - для подстройки частоты (синхронизация по частоте)

ShortTrainingSymbols = 3*[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(17:37);

% Формирование 10 кототких символов преамбулы на основе выбранного набора

short_trs= [Strs Strs];

%длинный символ преамбулы

LongTrainingSymbols=2*[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(7:48);

% Пакет физического уровня (символы преамбулы и OFDM-символы)

phy_frame = [short_trs long_trs ofdmFrame_1];

figure;

plot(abs(phy_frame));

end

 

      Переданное Т сообщение канала DTCH должно быть принято и обработано ТД. На Рис. 6 представлена блок-схема приёмной части ТД. Как и в случае с блок-схемой передающей части, слева изображен порядок происходящих процессов, справа – вариации обрабатываемых программой структурных единиц (сообщений и полей) как результат соответствующих процессов. 

 

 

Рис. 6. Блок-схема приемной части ТД.

 

 

            После извлечения полей DATA, в этом поле содержится фрагмент видеопотока, и поле  FL_ARQ, в котором содержатся сведения о подтверждении/не подтверждении безошибочного приема ранее переданного сообщения канала ССН. Если от Т пришло подтверждении о безошибочном приеме, то приемник ТД направляет передатчику

команду на передачу нового сообщения канала ССН. Если на ТД пришел запрос на повторную передачу, то приемник ТД направляет передатчику команду на повторную передачу. Как было отмечено выше, что передается группа из 5 сообщений канала DTCH, и каждое такое сообщение содержит поле  FL_ARQ. Определение значения поля  FL_ARQ осуществляется путем усреднения значений поля  FL_ARQ каждого сообщения. если усредненное значение больше 0.5, то в этом поле содержится запрос на повторную передачу, если меньше, то подтверждение без ошибочного приема.

      Рассмотрим функцию, отражающую функции выполняемые приемником ТД.

 

function [ TYPE, Video_data_r] = Receiver_AP ( msgIQ )

 

%Поле DATA_R содержит код принятой команды управления

%Поле TYPE необходимо для реализации процедуры ARQ

% это поле необходимо Т для того чтобы знать

% это новое сообщение или повторно передаваемое

global pilotIndexes

global Nc

global ns;

global len_cp;

global len_ofdmSymbol;

global ofdmFrame;

 

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

st=initSettings();

Video_data=[];

FL_ARQ=[];

result_det=[];

% ================== Физический уровень ================================

% Выделение преамбулы, и поля данных 

ofdmFrame_Rec = msgIQ(85:length(msgIQ));

ofdmFrame_Rec =  ofdmFrame_Rec(1:end);

figure;

hold on

for i=1:5

 

ofdmFrame_R=ofdmFrame_Rec(1+(i-1)*length(ofdmFrame):length(ofdmFrame)*i);

%Выделение промодулированных данных из принятого

% OFDM сигнала

% Удаление циклического префикса из OFDM символов

 

n=1;

 for i=1:Nc:ns*Nc-Nc+1

    ofdmSymbol(i:i+Nc-1) = ofdmFrame_R(n+len_cp:n+len_ofdmSymbol-1);

    n=n+len_ofdmSymbol;

 end

 

 %БПФ,перевод сигнала в частотную область

 

 for i=1:Nc:ns*Nc-Nc+1

     ofdmSymbol_ifft = ofdmSymbol(i:i+Nc-1);

     ofdmSymbol(i:i+Nc-1) = fft(ofdmSymbol_ifft);

  end

 

% Удаление пилот сигналов

indexOfPilot=1;

k=0;

for i=1:Nc:ns*Nc-Nc+1

    IQ_signal = ofdmSymbol(i:i+Nc-1);

    for j = 1:Nc

        if j == (pilotIndexes(indexOfPilot));

            indexOfPilot = indexOfPilot+1;                  

        else

        IQ_signal_2 =  IQ_signal(j);

            k=k+1;

        IQ_signal_3(k) = IQ_signal_2;

        end

    end

          indexOfPilot=1;

end

 

IQ_signalr = IQ_signal_3;

 

 

 

plot(IQ_signalr,'x');

title('Сигнально-кодовое созвездие, полученное в приемнике точки доступа');

 

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

   h = modem.qamdemod(st.mPos);

   h.OutputType = 'bit';

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

  data_r = demodulate(h,IQ_signalr);

  

  deintrlved_bits = reshape(data_r,256,1);

  % Блочное деперемежение

  deintrlved_bits = matdeintrlv(deintrlved_bits,32,8);

  %Устранение лишнего нулевого бита

  received_L1=deintrlved_bits(2:end);

 

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

%Декодирование сообщения кодом БЧХ (255,187)

decode_word=decode(received_L1,st.n,st.k,'bch/binary');

received_mes_L1 = decode_word';

%%

% ================== Канальный  уровень ================================

% Подготовка к проверке CRC

[q r]=deconv(received_mes_L1,st.poly4);

%проверка остатка

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

   Video_data_r=received_mes_L1(2:(st.lenght_video+1));

   FL_ARQ_r=received_mes_L1(1);

   if r == zeros(1,length(received_mes_L1))

        detect=0;% ошибок нет

   else

        detect=1;% обнаружены ошибки

   end

Video_data=[Video_data Video_data_r];

FL_ARQ=[FL_ARQ FL_ARQ_r];

result_det=[result_det detect];

 

end

hold off

 

% Усреднение значения, содержащегося в полях FL_ARQ и result_det

   

    disp('===============================================');

    disp('сообщение принятое ТД содержит:');

    FL_ARQ=mean(FL_ARQ');

   

    if FL_ARQ >=0.5

       inf= 'запрос на повторную передачу';

       disp(inf);

       FL_ARQ=1;

       TYPE=1;

    else

        inf= 'потверждение верного приема';

        disp(inf);

        FL_ARQ=0;

        TYPE=0;

    end

   

    disp('Наличие ошибок:')

    result_det=mean(result_det);

    if result_det >=0.5

       result_det=1;

       disp('в принятом пакете есть ошибки');

    else

       result_det=0;

       disp('в принятом пакете нет ошибок');

    end

   

    Video_data=Video_data(1:length(Video_data)-14)';

    Video_data_r = bintostr(Video_data);

  

  

    disp('принято сообщение:'); disp(Video_data_r);

    disp('===============================================');

 

 

end

 

            Программа реализующий алгоритм, описанный выше (см. Рис. 1) выглядит следующим образом. Передача сообщений осуществлялась по каналу с АБГШ, причем значение ОСШ которое использовалось в ходе выполнения программы было случайным. это позволяет приблизиться к более реальным условиям приема данных.

 

clear;%очистка рабочей области

clc; %очистка командного окна

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

st=initSettings();

%% Формирование сообщения канала управления

 

%параметр необходимый для инициализации приемника ТД

start=0;% отключение приемника ТД

TYPE=0;

 

%в роли источника команд управления видеокамерой и сообщений сигнализации

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

 

%генератор команд

command= randi(1000000000,10,1)';

 

%организация циклов приема-передачи

 

for i=1:10

%% инициализация приемника ТД

if start==0

% передатчик ТД   

phy_frame_1 = transmitter_AP( TYPE, command, i );

else

%приемник ТД

[TYPE, Video_data_r ] = Receiver_AP ( phy_frame_R_2 );

% передатчик ТД 

phy_frame_1 = transmitter_AP( TYPE, command, i );   

end

 

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

% В роли ОСШ выступает случайная величина

SNR=randi(16);

phy_frame_R_1=awgn(phy_frame_1,SNR,'measured');

 

%% приемник Т

[ DATA_R, FL_ARQ ] = receiver_T ( phy_frame_R_1 );

% передатчик Т

[phy_frame_2, Video_data_tr]= transmitter_T(FL_ARQ) ;

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

SNR=randi(16);

phy_frame_R_2=awgn(phy_frame_2,SNR,'measured');

%%

 

start=1;% включение приемника ТД

 

end

 

            Проведем некоторый анализ модели. Для проведения анализа модели процесса приема-передачи сообщений канала ССН и DTCH необходимо в модуле prog.m поставить точки остановки в строках 26, 29, 37,39. После запуска программы выполнение прекратиться на 37 строчке.  В командном окне появится сообщение, которое передает ТД терминалу (Рис. 7), а также появятся сигнально-кодовое созвездие (СКС) сформированное ТД (Рис.8) и OFDM символы во временной области, соответствующие передачи сообщения канала ССН (Рис.9).

 

 

 

Рис.7. Информация, содержащаяся в сообщении передаваемом точкой доступа.

 

Рис. 8. СКС, сформированное ТД.

  


Рис. 9. OFDM символы во временной области, соответствующие передачи сообщения канала ССН.

 

       Далее, сформированное сообщение проходит через канал с АБГШ и поступает на приемник Т. СКС после демодуляции OFDM символов показано на Рис.10. В результате демодуляции полученных IQ символов и дальнейших функции, выполняемых приемником Т, Т была получено сообщение, и результатом обработки этого сообщения является запрос на повторную передачу ( Рис. 11).

 

 

Рис. 10. СКС после демодуляции OFDM символов (ОСШ 3дБ).

 

 

Рис. 11. Сообщение принятое терминалом.

     

После этого формируется передатчиком Т сообщения канала DCTH, также в этих сообщения будет содержаться запрос на повторную передачу (Рис. 12). OFDM символы передаваемой группы сообщений канала DTCH во временной области имеют вид показанный на Рис. 13.

 

  

Рис. 12. Сообщение передаваемое терминалом.

 

Рис. 13. OFDM символы во временной области, соответствующие передачи сообщений канала DTCH.

 
 

Далее, сформированное сообщение проходит через канал с АБГШ и поступает на приемник ТД. СКС после демодуляции OFDM символов показано на Рис.14. В результате демодуляции полученных IQ символов и дальнейших функции, выполняемых приемником ТД, ТД была получено сообщение, и результатом обработки этого сообщения является повторная передача ранее передаваемого сообщения канала ССН (Рис. 15).

 

 

Рис. 14. СКС после демодуляции OFDM символов (ОСШ 6дБ).

 

 

Рис. 15. Сообщение принятое ТД.

 

И далее, процесс формирования сообщения канала ССН и его обработка, передача сообщения канала DTCH и его обработка повторяются столько раз сколько организованно циклов приема-передачи. Сообщения формируемые в следующем цикле приема-передачи показаны на Рис. 16.

 

 

Рис. 16. Сообщения формируемые в следующем цикле приема передачи.

 

 

Поставленные задачи, которые должны быть выполнены в ходе программной реализации процедуры, соответствующей активному режиму, полностью выполнены.

 

 

 

 

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

1. Лукашин И.В. Радиосистема дистанционного видеоконтроля (Часть 2. Доработанная) 

http://omoled.ru/publications/view/459

2. Лукашин И.В. Радиосистема дистанционного видеоконтроля (Часть 3) 

http://omoled.ru/publications/view/447