1.4. Построение итоговой иерархической модели узлов сети (в соответствии с концепцией OSI). В модели должны быть обязательно учтены задачи доставки как служебных, так и информационных сообщений.

Рис.1. Логические уровни интерфейса.

2. Экспериментальная часть. Разработка и экспериментальное исследование программной модели канала передачи данных.
2.1. Разработка и описание блок-схемы алгоритма модели.

Рис.2. Блок-схема алгоритма модели.
2.2. Разработка программных модулей передачи и приема сообщений канального уровня.
При разработки программных модулей необходимо передать файл, состоящий из символов ASCII. Рассмотрим реализацию процесса передачи сообщений от терминала Т1 к точке доступа. Для этого необходимо:
  1. Считать сообщение из файла.
  2. Разбить его на пакеты определенной длинны.
  3. Передать на ТД.
Пакеты, подготовленные к передаче, имеют иерархическую структуру, состоящую из физического, канального уровней и уровня управления. Структура передаваемого пакета выглядит следующим образом(Рис.3)

Рис.3. Структура передаваемого пакета.
Процесс передачи сообщения:
Для начала передачи сообщения нужно данное сообщение преобразовать в символы ASCII. И сохранить их в нужном формате для передачи например *.txt.
Программа начинает работу с того, что находит заданный файл
Выбор файла для передачи:

set.FileName = 'ascii.txt';

Считывает из него 14 символов

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

set.Str_size = 14;

Добавление CRC-кода
Параметры CRC 

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

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

noise_sgn = awgn(IQ_signal,PwSignal);

Формирование пакета дополняющие нулевыми битами для обеспечения четности, необходимой нам при типа модуляции 8-PSK.

code_word = [code_word]';

Модуляция 8-PSK и передача битовой последовательности в канал с заданным отношением сигнал-шум.

    Модуляция


   h = modem.pskmod(st.mPos);

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

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

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

   h.inputtype = 'bit';

   h.SymbolOrder = 'gray';

   h.PhaseOffset = pi/4;

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

   IQ_signal = modulate(h, code_word);

На приемной стороне выполняется следующая последовательность действий:

Демодуляция сообщения:

h = modem.pskdemod(st.mPos);

h.SymbolOrder = 'gray';

h.PhaseOffset = pi/4;

h.OutputType = 'bit';

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

 s = demodulate(h,noise_sgn);

Декодирование:

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

received_mes_L1 = decode(s(4:st.n+1),st.n,st.k,'bch/binary');

декодирование L2-сообщения

 

Проверка подлинности CRC:


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

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

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

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

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

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

   else

        errs = errs + 1;

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

   end;


Принятое сообщение:


Собственно принятое сообщение

received_mes_L2 = received_mes_L1(4:st.length_msg_Lev2);

Вывод файла на экран:

fprintf('%s', ascii);


Для примера передачи сообщения возьмём стихотворение А.С.Пушкина "Буря":

Ты видел деву на скале
В одежде белой над волнами
Когда, бушуя в бурной мгле,
Играло море с берегами,
Когда луч молний озарял
Ее всечасно блеском алым
И ветер бился и летал
С ее летучим покрывалом?
Прекрасно море в бурной мгле
И небо в блесках без лазури;
Но верь мне: дева на скале
Прекрасней волн, небес и бури.
 
По условию нужно передать файл, состоящий и символов ASCII. Для это переведём данное стихотворение через таблицу ASCII символов, данное сообщение будет выглядеть следующим образом:
11010010111110110010000011100010111010001110010011100101111010110010000011100100111001011110001011110
01100100000111011011110000000100000111100011110101011100000111010111110010100001101000010101100001000
10000011101110111001001110010111100110111001001110010100100000111000011110010111101011111011101110100
10010000011101101111000001110010000100000111000101110111011101011111011011110000011101100111010000000
11010000101011001010111011101110001111100100111000000010110000100000111000011111001111111000111100111
11111110010000011100010001000001110000111110011111100001110110111101110111010010010000011101100111000
11111010111110010100101100000011010000101011001000111000111111000011100000111010111110111000100000111
01100111011101111000011100101001000001111000100100000111000011110010111110000111001011110001111100000
11101100111010000010110000001101000010101100101011101110111000111110010011100000001000001110101111110
01111110111001000001110110011101110111010111110110111101000111010010010000011101110111001111110000011
11000011111111111010110000110100001010110001011110010100100000111000101111000111100101111101111110000
01111000111101101111011100010000011100001111010111110010111110001111010101110111011101100001000001110
00001110101111111011111011000000110100001010110010000010000011100010111001011111001011100101111100000
01000001110000111101000111010111111000111111111001000001110100000100000111010111110010111110010111000
00111010110000110100001010110100010010000011100101111001010010000011101011111001011111001011110011111
10111111010001110110000100000111011111110111011101010111100001111101111100010111000001110101111101110
11101100001111110000110100001010110011111111000011100101111010101111000011100000111100011110110111101
11000100000111011001110111011110000111001010010000011100010001000001110000111110011111100001110110111
10111011101001001000001110110011100011111010111110010100001101000010101100100000100000111011011110010
11110000111101110001000001110001000100000111000011110101111100101111100011110101011100000111101010010
00001110000111100101111001110010000011101011111000001110011111110011111100001110100000111011000011010
00010101100110111101110001000001110001011100101111100001111110000100000111011001110110111100101001110
10001000001110010011100101111000101110000000100000111011011110000000100000111100011110101011100000111
01011111001010000110100001010110011111111000011100101111010101111000011100000111100011110110111100101
11101001001000001110001011101110111010111110110100101100001000001110110111100101111000011110010111110
0010010000011101000001000001110000111110011111100001110100000101110

Рассмотрим полученные сообщения и сигнальные созвездия при различных ОСШ:

ОСШ=30

 


Принятое сообщение:
11010010111110110010000011100010111010001110010011100101111010110010000011100100111001011110001011110
01100100000111011011110000000100000111100011110101011100000111010111110010100001101000010101100001000
10000011101110111001001110010111100110111001001110010100100000111000011110010111101011111011101110100
10010000011101101111000001110010000100000111000101110111011101011111011011110000011101100111010000000
11010000101011001010111011101110001111100100111000000010110000100000111000011111001111111000111100111
11111110010000011100010001000001110000111110011111100001110110111101110111010010010000011101100111000
11111010111110010100101100000011010000101011001000111000111111000011100000111010111110111000100000111
01100111011101111000011100101001000001111000100100000111000011110010111110000111001011110001111100000
11101100111010000010110000001101000010101100101011101110111000111110010011100000001000001110101111110
01111110111001000001110110011101110111010111110110111101000111010010010000011101110111001111110000011
11000011111111111010110000110100001010110001011110010100100000111000101111000111100101111101111110000
01111000111101101111011100010000011100001111010111110010111110001111010101110111011101100001000001110
00001110101111111011111011000000110100001010110010000010000011100010111001011111001011100101111100000
01000001110000111101000111010111111000111111111001000001110100000100000111010111110010111110010111000
00111010110000110100001010110100010010000011100101111001010010000011101011111001011111001011110011111
10111111010001110110000100000111011111110111011101010111100001111101111100010111000001110101111101110
11101100001111110000110100001010110011111111000011100101111010101111000011100000111100011110110111101
11000100000111011001110111011110000111001010010000011100010001000001110000111110011111100001110110111
10111011101001001000001110110011100011111010111110010100001101000010101100100000100000111011011110010
11110000111101110001000001110001000100000111000011110101111100101111100011110101011100000111101010010
00001110000111100101111001110010000011101011111000001110011111110011111100001110100000111011000011010
00010101100110111101110001000001110001011100101111100001111110000100000111011001110110111100101001110
10001000001110010011100101111000101110000000100000111011011110000000100000111100011110101011100000111
01011111001010000110100001010110011111111000011100101111010101111000011100000111100011110110111100101
11101001001000001110001011101110111010111110110100101100001000001110110111100101111000011110010111110
0010010000011101000001000001110000111110011111100001110100000101110            


Переведём из ASCII в текстовый формат:

Ты видел деву на скале
В одежде белой над волнами
Когда, бушуя в бурной мгле,
Играло море с берегами,
Когда луч молний озарял
Ее всечасно блеском алым
И ветер бился и летал
С ее летучим покрывалом?
Прекрасно море в бурной мгле
И небо в блесках без лазури;
Но верь мне: дева на скале
Прекрасней волн, небес и бури.

При декодирование получили, что данное сообщение  восстановлено без ошибок. Уменьшим ОСШ и повторим анализ.

ОСШ=10 



Принятое сообщение:
 10!001011!0110180801100‰11010010010!б900110101q0100000q01021910 10±13100!1pг
°100300100000111а11‰!1300000‰б00Р19б0а0111а30910‰00q11011Б53001100‰1230009‰1б0
 10010000011111!0504qp011104100110Р1011810°1010810490000б1102!11001010а1111111110110100111011010000101
°000900001100010q111112311
 10111011019000000111°q00!!10100а01а011010001а01001011±10111000б17180109112t00801
 003а0001б000111б00113111100±11101!11311010а0а910001001±00010±0001±11111104а1q011011110410101
 01pа0±013003! 01011810111212С81101100100410101001010122 0±00°111101p111000281!0й111300
 а0001110110211101!q510‰9100010200а1113 00000000180001101 1119000 1us01011110011б1001)
 1130000p101000p0130001101±0°0011110110001б100100б110000110001103p!1q11
 1311101110000б3101101111091010011301135101011%100010000110110!1101‡1111004‰08110001!q1б1111б009000б0
4010111‰‰1211000101001380141310001q± 0qp1111011!010 001q1341г11‰11111011011008 ±11 001111 
1‰110010311000q111011!0!!‰11q091 0410000011 
010011001111141131‰1100020011†100481401300000004100p01qp010910а11101411!0‰1011311а010000111000
 1110‰00110!1б113100111!1±11000311010080410001101011111010111101!000°110000110100001010110100 1001000
 11008110012 ! 08019101q±000s1!110090111101111009!110000 11130°00100p11113111†111!11011й101°0111111000
Q°1!00400±110111111p10104110б50 01010000
 1°10а111111100q11‰10115010905000111000t111003c10110121110010000pб3 !104111011011310001101010004!q1410
 010001100011q101111а0С0111013131101110100004108001301‰1100111101111!01010000!11000301100001001008011
3101110001 11010110000021001100000101100 °1111010111710310001q100113p005110101
 10000011100q110101q10011Р#0000131411111100а118013!11a100111120pиq0!4020010‰31 00
 11800111q00192111111100001000131101 9110000±1110а00000130110
 11!1!1190101д01С15001а000б1001001110011q110аp11150400000
 11111110000801а111а00!93511p1211001110301±11!0б012000000°q°1’б00110110001q0б0 111p141011б04010401190001
 110s1110 1019!101 1000001!°3p11!
б110101q1101a01P110000000111110511100#0110001110010111!0001а!0†009111и00140000130001100111100#1:10001
11!0  Р(    † 


Данное сообщения принято с множеством ошибок, из чего следует вывод что сообщения восстановлению не подлежит.


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

1. http://omoled.ru/publications/view/406
2. Л/Р. Исследование принципов организации канала передачи данных
3. Баке А.В. "Лекции по курсу ССПО"