Розрахунок інформаційних характеристик каналу зв"язку - Курсовая работа

бесплатно 0
4.5 101
Програма розрахунку інформаційних характеристик каналу зв"язку. Побудова коду для передачі повідомлень. Процедури кодування, декодування та оцінка ефективності кодів. Програма на алгоритмічній мові Паскаль. Канальна матриця, що визначає втрати інформації.


Аннотация к работе
5 Визначити втрати інформації в каналі звязку при передачі 1500 символів алфавіту. Ентропія джерела повідомлень розраховується по формулі:-(0,31·log20,31 0,11·log20,11 2·0,02·log20,02 2·0,01·log20,01 3·0,03log20,03 2·0,05·log20,05 0,09·log20,09 2·0,07·log20,07 0,06·log20,06 0,04·log20,04)= 3,399 біт/симв. Ентропія приймача повідомлень розраховується по формулі: = 0,3051·log2(0,3051) 0,1102·log2(0,1102) Загальна умовна ентропія розраховується по формулі: =[0,31·(0,98·log2(0,98) 2·0,01·log2(0,01)) Визначимо довжину кодової комбінації по заданій довжині інформаційного слова (k = 4), використовуючи співвідношення: m = [log2 {(k 1) [log2(k 1)]}]=[log2 {(4 1) [log2(4 1)]}]=3, при цьому n = k m = 7, тобто одержали (7, 4)-код.В наслідок виконання завдання розраховані основні інформаційні характеристики каналу звязку для чого розроблена відповідна програма на алгоритмічній мові Паскаль, яка наведена в додатку.

План
Зміст

Вступ

Завдання

Розрахунок інформаційних характеристик каналу звязку

Побудова коду для передачі повідомлень

Висновок

Додання

Програма розрахунку інформаційних характеристик каналу звязку

Підсумок роботи програми

Література

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

Побудовано код за методом Хемінга для передачі повідомлень з виявленням і виправленням однократних помилок. Порядок побудови коду, процес кодування, декодування, виявлення та виправлення помилок розглянуто на прикладі інформаційного слова 0101.

Додання

Програма розрахунку інформаційних характеристик каналу звязку

{Расчетное задание по курсу ТИК}

Program Work20;

Uses CRT;

Const n=16;

arr_px:array[1..n] of real =

(0.31, 0.11, 0.02, 0.01, 0.03, 0.02, 0.05, 0.09, 0.07, 0.06, 0.07, 0.05, 0.03, 0.04, 0.01, 0.03);

arr_x:array[1..n,1..n] of real =

(( 0.98,0.01,0.01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), ( 0.01,0.97,0.02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), ( 0,0.01,0.98,0.01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), ( 0,0.01,0.02,0.94,0.02,0.01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), ( 0, 0, 0,0.01,0.98,0.01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), ( 0, 0, 0,0.01,0.01,0.96,0.01,0.01, 0, 0, 0, 0, 0, 0, 0, 0), ( 0, 0, 0, 0,0.01,0.02,0.94,0.02,0.01, 0, 0, 0, 0, 0, 0, 0), ( 0, 0, 0, 0, 0, 0,0.02,0.96,0.02, 0, 0, 0, 0, 0, 0, 0), ( 0, 0, 0, 0, 0, 0, 0,0.01,0.98,0.01, 0, 0, 0, 0, 0, 0), ( 0, 0, 0, 0, 0, 0, 0,0.01,0.01,0.96,0.01,0.01, 0, 0, 0, 0), ( 0, 0, 0, 0, 0, 0, 0, 0,0.01,0.01,0.96,0.01,0.01, 0, 0, 0), ( 0, 0, 0, 0, 0, 0, 0, 0, 0,0.01,0.01,0.95,0.02,0.01, 0, 0), ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0.02,0.96,0.02, 0, 0), ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0.01,0.02,0.94,0.02,0.01), ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0.01,0.02,0.95,0.02), ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0.01,0.01,0.98));

Type vec=array[1..n] of real;

Var f :text;

arr_S,arr_py :vec;

s,ds,H,HX,HY,HYX,Ik,Ck,V,T,Ic,Cn :real;

i,j :byte;

k :integer;

BEGIN

Assign(f,"d:\work20.txt");

Rewrite(f);

CLRSCR;

T:=0.25E-3;

V:=1/T;

K:=1500;

Writeln(f,"Решение:");

Writeln(f);

{============ Определим энтропию источника информации ===============}

Textcolor(5);

Writeln("1.Энтропия источника информации равна:");

Writeln(f,"Энтропия источника информации равна:");

Writeln("Промежуточные суммы:"); Writeln(f,"Промежуточные суммы:");

Readkey;

TEXTCOLOR(15);

s:=0;

For i:=1 to n do

Begin ds:=arr_px[i]*ln(arr_px[i])/ln(2); s:=s ds;

Write(ds:7:3);

Write(f,ds:7:3);

if i mod 8 =0 then begin writeln;

writeln(f);

end;

End;

Writeln;

Writeln("Результат:");

Writeln(f,"Результат:");

HX:=-s;

Writeln(f);

TEXTCOLOR(15);

Writeln("H(X)=",HX:6:3," бит/симв.");

Writeln(f," H(X)= ",HX:6:3," бит/симв.");

Writeln(f);

{== Определим вероятности появления символов на входе приемника информации ==}

For j:=1 to n do

Begin s:=0;

For i:=1 to n do s:=s arr_px[i]*arr_x[j,i];

arr_py[j]:=s;

End;

Textcolor(5);

Writeln("2.Вероятности появления символов на входе приемника информации равны:");

Writeln(f,"Вероятности появления символов на входе приемника информации равны:");

Readkey;

For i:=1 to n do

Begin

Textcolor(15);

Write(arr_py[i]:7:4," ":2);

Write(f,arr_py[i]:7:4," ":2);

if i mod 8 =0 then begin writeln;

writeln(f);

end;

End;

For j:=1 to n do

Begin write(f,"p(y",j,")=");

s:=0;

For i:=1 to n do begin s:=s arr_px[i]*arr_x[j,i];

if arr_x[j,i]0 then begin write(" ",arr_px[i]:2:2,"·",arr_x[j,i]:2:2);

write(f," ",arr_px[i]:2:2,"·",arr_x[j,i]:2:2);

end;

end;

arr_py[j]:=s;

Writeln("=",s:5:4);

Writeln(f,"=",s:5:4);

End;

{=== Проверка ===} s:=0;

Writeln(f);

Writeln(f," Проверка:"," ":8);

Write(f,"S=");

Writeln;

Write(" Проверка:"," ":8);

For i:=1 to n do begin write(f," ",arr_py[i]:2:4);

s:=s arr_py[i];

end;

Writeln("s=",s:6:2);Writeln(f,"=",s:6:2,";");

Writeln(f);

{=============== Определим энтропию приемника информации ==============}

TEXTCOLOR(5);

Writeln("Энтропия приемника информации равна:");

Writeln(f,"Энтропия приемника информации равна:");

Writeln("Промежуточные суммы:");

Writeln(f,"Промежуточные суммы:");

Readkey;

Textcolor(15);

write(f,"Entrop=");

for i:=1 to n do write(f," ",arr_py[i]:2:4,"·","log2(",arr_py[i]:2:4,")");

write(f,"= -(");

s:=0;

For i:=1 to n do

Begin ds:=arr_py[i]*ln(arr_py[i])/ln(2);

Write(ds:7:3);Write(f,ds:7:3);

if i mod 8 =0 then writeln;

s:=s ds;

End;

HY:=-s;

write(f,")=",HY:2:3);

Writeln;

Writeln(f);

Writeln("Результат:");

Writeln(f,"Результат:");

TEXTCOLOR(15);

Writeln("H(Y)=",HY:6:3," бит/симв.");

Writeln(f," H(Y)=",HY:6:3," бит/симв.");

Writeln(f);

{================ Определим общую условную энтропию ==================}

TEXTCOLOR(5);

Writeln("3.Общая условная энтропия равна:");

Writeln(f,"Общая условная энтропия равна:");

Writeln("Промежуточные суммы:");

Writeln(f,"Промежуточные суммы:");

Readkey;

Textcolor(15);

H:=0;

write(f,"H(Y/X)=[");

For i:=1 to n do

Begin s:=0;

write(f," ",arr_px[i]:1:2,"·(");

For j:=1 to n do

IF arr_x[i,j]0 then

Begin ds:=arr_px[i]*arr_x[i,j]*ln(arr_x[i,j])/ln(2);

Write(ds:7:3);Write(f," ",arr_x[i,j]:1:2,"·log2(",arr_x[i,j]:1:2,")");

s:=s ds;

End;

write(f,")");

Writeln;

H:=H s;

End;

HYX:=-H;

write(f,"]=",HYX:2:3);

Writeln;

Writeln(f);

Writeln("Результат:");

Writeln(f,"Результат:");

TEXTCOLOR(15);

Writeln(" H(Y/X)=",HYX:6:3," бит/симв.");

Writeln(f," H(Y/X)=",HYX:6:3," бит/симв.");

Writeln;

Writeln(f);

{============== Определим скорость передачи информации ==============}

TEXTCOLOR(5);

Writeln("4.Скорость передачи информации равна:");

Writeln(f,"Скорость передачи информации равна:");

Writeln(f);

Readkey;

Ck:=V*(HY-HYX);

TEXTCOLOR(15);

Writeln(" Ck=V[H(Y)-H(Y/X)]=V[H(X)-H(X/Y)]=",Ck:10," бит/с");

Writeln(f," Ck=V[H(Y)-H(Y/X)]=V[H(X)-H(X/Y)]=",Ck:10," бит/с");

Writeln(f);

{== Определим потери в канале связи при передаче 500 символов алфавита ==}

TEXTCOLOR(5);

Writeln("Потери в канале связи при передаче ",k," символов алфавита равны:");

Writeln(f,"Потери в канале связи при передаче ",k," символов алфавита равны:");

Writeln(f);

Readkey;

Ik:=k*HYX;

TEXTCOLOR(15);

Writeln(" Ik=k*H(Y/X)=",Ik:10," бит");

Writeln(f," Ik=k*H(Y/X)=",Ik:10," бит");

Writeln(f);

{========== Определим среднее количество принятой информации ==========}

TEXTCOLOR(5);

Writeln("Среднее количество принятой информации равно:");

Writeln(f,"Среднее количество принятой информации равно:");

Writeln(f);

Readkey;

Ic:=k*(HY-HYX);

TEXTCOLOR(15);

Writeln(" Ic=k*[H(Y)-H(Y/X)]=k*[H(X)-H(X/Y)]=",Ic:10," бит");

Writeln(f," Ic=k*[H(Y)-H(Y/X)]=k*[H(X)-H(X/Y)]=",Ic:10," бит");

Writeln(f);

Readkey;

Close(f);

END.

Підсумок роботи програми

1.Энтропия источника информации равна: Промежуточные суммы: -0.524 -0.350 -0.113 -0.066 -0.152 -0.113 -0.216 -0.313

-0.269 -0.244 -0.269 -0.216 -0.152 -0.186 -0.066 -0.152

Список литературы
H(X)= 3.399 бит/симв.

2.Вероятности появления символов на входе приемника информации равны: 0.3051 0.1102 0.0208 0.0117 0.0297 0.0210 0.0502 0.0888

0.0701 0.0604 0.0693 0.0498 0.0306 0.0392 0.0112 0.0299

Проверка: s= 1.00

Энтропия приемника информации равна: Промежуточные суммы: -0.523 -0.351 -0.116 -0.075 -0.151 -0.117 -0.217 -0.310

-0.269 -0.245 -0.267 -0.216 -0.154 -0.183 -0.073 -0.151

Результат: H(Y)= 3.416 бит/симв.

3.Общая условная энтропия равна: Промежуточные суммы: -0.009 -0.021 -0.021

-0.007 -0.005 -0.012

-0.001 -0.001 -0.001

-0.001 -0.001 -0.001 -0.001 -0.001

-0.002 -0.001 -0.002

-0.001 -0.001 -0.001 -0.001 -0.001

-0.003 -0.006 -0.004 -0.006 -0.003

-0.010 -0.005 -0.010

-0.005 -0.002 -0.005

-0.004 -0.004 -0.003 -0.004 -0.004

-0.005 -0.005 -0.004 -0.005 -0.005

-0.003 -0.003 -0.004 -0.006 -0.003

-0.003 -0.002 -0.003

-0.003 -0.005 -0.003 -0.005 -0.003

-0.001 -0.001 -0.001 -0.001

-0.002 -0.002 -0.001Результат: H(Y/X)= 0.248 бит/симв.

4. Скорость передачи информации равна: Ck=V[H(Y)-H(Y/X)]=V[H(X)-H(X/Y)]= 1.267E 04 бит/с

5.Потери в канале связи при передаче 1500 символов алфавита равны: Ik=k*H(Y/X)= 3.718E 02 бит

6.Среднее количество принятой информации равно: Ic=k*[H(Y)-H(Y/X)]=k*[H(X)-H(X/Y)]= 4.752E 03 бит

Література

1 Гойфман Э.Ш., Лосев Ю.И. Передача информации в АСУ. - М.: Связь, 1976.

2 Колесник В.Д., Полтырев Г.Ш. Курс теории информации. -М.: Наука, 1982.

3 Цымбал В.П. Теория информации и кодирование. -М.: Высш. шк., 1986.

4 Гринченко А.Г. Теория информации и кодирование: Учебн. пособие. - Харьков: ХПУ, 2000.
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?