Смекни!
smekni.com

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

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);

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

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.Скорость передачи инфoрмации равна:');

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. Скорость передачи инфoрмации равна:

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.