Міністерство освіти та науки України
Національний університет
“Львівська політехніка”
Кафедра програмного забезпечення
Курсова робота
з курсу
“Методи та засоби комп’ютерних
інформаційних технологій”
Львів 2002
Зміст
Формулювання завдання №1. 3
1.1 Ентропія.Властивості ентропії 3
1.2 Розв’язок задачі. 5
1.3 Висновок. 5
2. Формулювання завдання №2. 6
2.1 Основні положення і відношення для розрахунку схеми. 6
2.2 Текст програми. 9
2.3 Графіки залежностей. 11
2.4 Висновок. 12
3. Формулювання завдання №3. 12
Побудова коду Хемінга.Виправлення помилки. 12
3.2 Текст програми. 15
3.3 Висновок
Варіант №6
1.Формулювання завдання № 1.
В результаті статичних випробувань встановлено, що при передачі 100 повідомлень символ К зустрічається 50 раз, символ Т –30 раз, разом з симолом К символ Т зустрічається 10 раз. Визначити умовні ентропії Н(К/Т) і Н(Т/К).
1.1Ентропія.Властивості ентропії.
Довільне повідомлення, з яким ми маємо справу в теорії інформації, являє собою сукупність даних про деяку фізічну систему. Повідомлення має зміст лише тоді, коли стан системи був до нього невідомий (випадковий). Повідомлення, яке отримав приймач, буде тим цінніше, чим більше невідомої інформаціїї для приймача воно в собі містить. В якості міри невизначеності системи в теорії і нформації застосовується спеціальна величина, яка носить назву ентропія. Ентропія стану системи – це питома кількість інформації, яка припадає на один символ повідомлення.
Ентропія ансамбля
Ентропією дискретного ансамбля повідомлень називається математичне очікування власної кількості інформації ансамбля:
Логарифм може мати довільну основу (вібір основи – це вибір одиниці виміру ентропії), але доцільно використовувати основу 2 для зручності роботи з ентропією на обчислювальній техніці.
Розглянем деякі властивості ентропії:
, причому тоді і тільки тоді, коли існує деяке , таке, що і для ,.
Дійсно, так як кількість власної інформації в кожному повідомленні невід’ємна, то невід’ємна і середня кількість інформації. Далі, якщо , то . Звичайно вважають при , оскільки .
В усіх інших випадках .
Якщо ансамбль містить повідомлень, то
,
рівність має місце в тому і тільки тому випадку, коли для всіх , тобто, коли розподіл на множинірівномірний.
Основні властивості ентропії:
Ентропія є неперервною і додатньою величиною.
Ентропія приймає мінімальне значення в двох випадках:
а) Повідомлення складається з однієї ознаки, ймовірність появи якої – 1
б) Якщо ймовірність j-ї ознаки=0 або близька до 0.
Ентропія досягає максимуму, коли всі можливі випадки досліду є рівноможливими.
Ентропія повідомлення, яке складається з деякого числа окремих повідомлень дорівнює сумі ентропій кожного повідомлення зокрема.
Ентропію складної системи можна представити у вигляді: H(X,Y)=H(X)+H(Y/X), де H(X,Y) – це повна умовна ентропія.
1.2 Розв’язок задачі.
Загальна кількість переданих символів
N=100*5=500
Ймовірність появи символа К
Р(к)=50/500=0.1
Ймовірність появи символа Т
Р(т)=30/500=0.06
Ймовірність спільної появи К і Т
Р(кт)=10/500=0.02
Так як Р(кт)=Р(т)Р(к/т)=Р(к)Р(т/к), то умовна ймовірність появи символа К відносно Т:
Р(к/т)=Р(кт)/Р(т)=0.02/0.06=0.33
Умовна ймовірність появи символа Т відносно символа К
Р(т/к)=Р(кт)/Р(к)=0.02/0.1=0.2
Умовна ентропія К відносно Т
Н(к/т)=-
Умовна ентропія появи символа Т відносно К
Н(т/к)=-(0.2log0.2+0.8log0.8)=0.7219 біт/символ
1.3 Висновок.
Якщо відомо, що дана подія гарантовано може відбутися або не відбутися, то її ентропія мінімальна і дорівнює нулю.
Якщо подія може відбутися або не відбутися з рівною ймовірністю, то ентропія є максимальною.
Ентропія N – взаємодіючих систем дорівнює сумі ентропій цих систем.
Ентропія – величина дійсна і додатня.
2. Формулювання завдання №2.
Для приведеної схеми визначити струм в нерозгалуженій частині схеми, якщо задано:
R1=5 Ом;
R2=60 Ом;
R3=20 Ом;
R4=20 Ом;
R5=R6=10 Oм;
U=100 В.
Рис.1. Схема до 2-го завдання курсової роботи.
Дослідити залежність чутливості Uab від R1, , R3, R5.
Побудувати залежності Uab від R1, , R3, R5.
2.1 Основні положення і відношення для розрахунку схеми.
Послідовний лінійний елемент – резистор, який має електричний опір R, струм I та напруга U електричного опору зв’язані законом Ома: U=RI;
Величина обернена, до опору - це електрична провідність : G=1/R;
І R U
Рис.2. Елементарна схема підключення опору до джерела живлення.
Методи розрахунку складних ланцюгів постійного струму.
Закон Ома можна застосовувати для гілки або одноконтурного замкнутого ланцюга (який не має розгалужень).
Ланцюг складається з гілок, має вузлів і джерел струму. Є різноманітні методи розрахунку складних ланцюгів: закон Кірхгофа, метод контурних струмів, вузлових потенціалів, еквівалентного джерела, принцип накладання та еквівалентне перетворення схем.
Еквівалентне перетворення схем:
Суть методу полягає в тому, що шляхом заміщення опору складну схему перетворюють в більш простішу для обрахунку. В усіх випадках перетворення заміна схем іншими, їм еквівалентними, не повинна привести до зміни струмів чи напруг на ділянках ланцюга, які не змінювались.
Найпоширенішими і нійпростішими типами з’єднання провідників є послідовне і паралельне з’єднання.
Послідовне з’єднання провідників. При такому з’єднанні електричне коло не має розгалужень. Опори з’єднані послідовно, якщо вони обтікаються одним і тим же струмом. Усі провідники ввімкнено в коло по черзі, один за одним.
I
R1 R2
U1 U2
Рис.3. Схема послідовного під’єднання двох опорів.
Сила струму в обох провідниках однакова: І1=І2=І, оскільки в провідниках під час проходження постійного струму електричний заряд не нагромаджується і через будь-який переріз провідника за певний інтервал часу проходить один і той самий заряд.
Напруга на кінцях такої ділянки кола складається з напруг на першому і другому провідниках: U=U1+U2.
В загальному випадку: , де n – кількість резисторів у колі.
Застосовуючи закон Ома можна довести, що повний опір при послідовному з'єднанні дорівнює: R=R1+R2.
В загальному випадку:
Напруга на провідниках і їх опори в разі послідовного з’єднання розподіляються прямопропорційно: U1/U2=R1/R2
В загальному випадку:U1:U2:…:Un=R1:R2:…Rn.
Паралельне з’єднання провідників. Опори з’єднані паралельно, якщо всі вони під’єднані до одної пари вузлів.
І1
R1
І а u b
R2 І2
Рис.4. Схема паралельного під’єднання двох опорів.
У цьому випадку електричний струм І у вузлі а розгалужується на вді частини – електричний заряд не нагромоджується, заряд, що надходить за одиницю часу у вузол, дорівнює заряду,що виходить з вузла за той самий час. Отже, І=І1+І2.
В загальному випадку
Напруга U на провідниках, з’єднаних паралельно, однакова: U1=U2=…=Un
Застосовуючи закон Ома можна довести, що повна провідність при паролельному з'єднанні дорівнює: 1/R=1/R1+1/R2.
Звідси повний опір R=R1R2/(R1+R2)
В загальному випадку: , або
Сили струму в провідниках і їх опори в разі паралельного з’єднання пов’язані співвідношенням: I1/I2=R2/R1.
При паралельному з’єднанні n опорів струми в них розподіляються оберненопропорційно їх опорам або прямопропорційно їх провідностям:
I1:I2:…:In=1/R1:1/R2:…:1/Rn=G1:G2:…:Gn.
Заміна змішаного з’єднання опорів одним еквівалентним.
Змішаний опір – це поднання послідовного і паралельного з’єднаня опорів.
R1
Rекв=R1+R2R3/(R2+R3).
I1
U R2 I2 R3 I3
Рис.5. Схема змішаного під’єднання опорів.
2.2 Текст програми
******* 06/15/102 ******* Evaluation PSpice (January 1990) ******* 12:05:50 *******
kursakP
**** CIRCUIT DESCRIPTION
****************************************************************************
R1 1 2 5
R2 2 0 60
R3 2 3 20
R4 3 0 20
R5 3 4 10
R6 4 0 10
V1 1 0 100
.print dc i(R2)
.END
******* 06/15/102 ******* Evaluation PSpice (January 1990) ******* 12:05:50 *******
kursakP
**** SMALL SIGNAL BIAS SOLUTION TEMPERATURE = 27.000 DEG C
****************************************************************************
NODE VOLTAGE NODE VOLTAGE NODE VOLTAGE NODE VOLTAGE
( 1) 100.0000 ( 2) 80.0000 ( 3) 26.6670 ( 4) 13.3330
VOLTAGE SOURCE CURRENTS
NAME CURRENT
V1 -4.000E+00
TOTAL POWER DISSIPATION 4.00E+02 WATTS
JOB CONCLUDED
TOTAL JOB TIME .06
Залежність Uab від R1, , R3, R5. і Uab від R1, , R3, R5.
R1
U
R3
U
R5
U
4
-1
84
4
15
-5
77,92208
-2,07792
9
-1
79,90815
-0,09185
4,1
-0,9
83,6
3,6
15,5
-4,5
78,16092
-1,83908
9,1
-0,9
79,91761
-0,08239
4,2
-0,8
83,2
3,2
16
-4
78,39196
-1,60804
9,2
-0,8
79,92701
-0,07299
4,3
-0,7
82,8
2,8
16,5
-3,5
78,61557
-1,38443
9,3
-0,7
79,93634
-0,06366
4,4
-0,6
82,4
2,4
17
-3
78,83212
-1,16788
9,4
-0,6
79,94562
-0,05438
4,5
-0,5
82
2
17,5
-2,5
79,04192
-0,95808
9,5
-0,5
79,95483
-0,04517
4,6
-0,4
81,6
1,6
18
-2
79,24528
-0,75472
9,6
-0,4
79,96398
-0,03602
4,7
-0,3
81,2
1,2
18,5
-1,5
79,44251
-0,55749
9,7
-0,3
79,97307
-0,02693
4,8
-0,2
80,8
0,8
19
-1
79,63387
-0,36613
9,8
-0,2
79,98211
-0,01789
4,9
-0,1
80,4
0,4
19,5
-0,5
79,81962
-0,18038
9,9
-0,1
79,99108
-0,00892
5
0
80
0
20
0
80
0
10
0
80
0
5,1
0,1
79,6
-0,4
20,5
0,5
80,17525
0,175246
10,1
0,1
80,00886
0,00886
5,2
0,2
79,2
-0,8
21
1
80,34557
0,345572
10,2
0,2
80,01766
0,017664
5,3
0,3
78,8
-1,2
21,5
1,5
80,51118
0,511182
10,3
0,3
80,02641
0,026411
5,4
0,4
78,4
-1,6
22
2
80,67227
0,672269
10,4
0,4
80,0351
0,035103
5,5
0,5
78
-2
22,5
2,5
80,82902
0,829016
10,5
0,5
80,04374
0,04374
5,6
0,6
77,6
-2,4
23
3
80,9816
0,981595
10,6
0,6
80,05232
0,052322
5,7
0,7
77,2
-2,8
23,5
3,5
81,13017
1,130172
10,7
0,7
80,06085
0,06085
5,8
0,8
76,8
-3,2
24
4
81,2749
1,2749
10,8
0,8
80,06932
0,069324
5,9
0,9
76,4
-3,6
24,5
4,5
81,41593
1,415929
10,9
0,9
80,07775
0,077745
6
1
76
-4
25
5
81,5534
1,553398
11
1
80,08611
0,086114
2.3 Графіки залежностей
2.4 Висновок.
В даному завданні курсової роботи я отримав практичні навички обчислення напруги в не розгалуженій частині даної схеми та еквівалентного опору схеми (Рис. 1).
3.Формулювання завдання № 3.
Написати програму, яка формує перевірочні позиції коду Лемінга для довільного числа коректуючи позицій. Вивести на друк перевірочні позиції для перших п’яти перевірок.
3.1 Побудова коду Хемінга.Виправлення помилки.
Систематичні коди являють собою такі коди, в яких інформаційні та коректуючі розряди розміщені по строго визначеній системі і завжди займають строго визначені місця в кодових комбінаціях. Систематичні коди є рівномірними, тобто всі комбінації коду із задиними коректуючими можливостями мають одинакову довжину. Групові коди також являються систематичними, але не всі систематичні коди можуть бути віднесені до групових.
Тривіальні систематичні коди можуть будуватися як і групові, на основі похідні матриці. Зазвичай похідна матриця будуються за допомогою матриць одиничної, ранг якої вихначається числом інформаційних розрядів, і додаткової, число стовбців якої визначаються кількістю контрольних розрядів коду. Кожний рядок додаткової матриці повинен містити не менше одиниць, а сума по модулю - два будь-яких рядків не менше одиниць ( де - мінімальна кодова відстань). Похідна матриця дозволяє знаходити всі інші кодові комбінації сумуванням по модулю два рядків похідної матриці в усіх можливих комбінаціях.
Код Хемінга представляє собою типовий приклад систематичного коду. Однак при його побудові матриці не використовують. Для обчислення основних параметрів коду задається або кількість інформаційних символів, або кількість інформаційних комбінацій . За допомогою і обчислюються значення і . Відношення між , і для коду Хемінга представлені в таблиці 1. Знаючи основні параметри, коректуючого коду, визначають, котрі позиції сигналів будуть робочими, а котрі контрольними. Як показала практика номери контрольних символів зручно вибирати по закону , де і рівне 0,1,2 і т.д. – натуральний ряд чисел. Номери контрольних символів в цьому випадку і відповідно будуть: 1,2,4,8,16,32 і т.д.
Потім визначають значення контрольних коефіцієнтів (0 або 1), керуючись наступним правилом: сума одиниць на контрольних позиціях повинна бути парною. Якщо ця сума парна, то значення контрольного коефіцієнта – 0, в протилежному випадку – 1.
Перевірочні позиції вибираються наступним чином: будується таблиця для ряду натуральних чисел у двійковому коді.
Число рядків таблиці .
Першому рядочку відповідає перевірочний коефіцієнт , другому і т.д., як показано в таблиці 2. Потім виявляють перевірочні позиції, виписуючи коефіцієнти за наступним принципом: в першу перевірку входять коефіцієнти, які містять в молодшому розряді 1, тобто ; в другу – коефіцієнти, які містять одиницю в другому розряді, тобто ; в третю перевірку – коефіцієнти, які містять одиницю в третьому розряді і т.д. Номери перевірочних коефіцієнтів відповідають номерам перевірочних позицій, що дозволяє скласти загальну таблицю перевірок. Старшинство розрядів рахується зліва направо, а при перевірці зверху вниз. Порядок перевірок також показує порядок слідування розрядів в отриманому двійковому коді.
Якщо в прийнятому коді є помилка, то результати перевірок за контрольними позиціями утворюють двійкове число, яке вказує номер помилкової позиції. Помилку виправляють, змінюючи символ помилкової позиції на протилежний.
Для виправлення одиночної і виявлення подвійної помилки, крім перевірок за контрольними позиціями, необхідно провести ще одну перевірку на парність для кожного коду. Для того щоб здійснити таку перевірку необхідно до кожногого коду в кінці кодової комбінації додати контрольний символ таким чином, щоб сума одиниць в отриманій комбінації завжди була парною. Тоді у випадку однієї помилки перевірки за позиціями вкажуть номер помилкової позиції, а перевірка на парність вкаже на наявність помилки. Якщо перевірки позиції вкажуть на наявність помилки, а перевірка на парність не фіксує помилку, це означає, що в коді є дві помилки.
Таблиця1.Відношення між кількістю інформаційних та контрольних символів у коді Хемінга
n
n
n
n
n
1
0
1
4
1
3
7
4
3
10
6
4
13
9
4
2
0
2
5
2
3
8
4
4
11
7
4
14
10
4
3
1
2
6
3
3
9
5
4
12
8
4
15
11
4
Таблиця 2.Номери перевірочних позицій коду Хемінга
Номер
перевірки
Перевірочні позиції (П)
Номер контрольного
символа
1
1,3,5,7,9,11,…
1
2
2,3,6,7,10,11,14,15,18,19,22,24,…
2
3
4,5,6,7,12,13,14,15,20,21,22,23,…
4
4
8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,31,
40,41,42,…
8
Текст програми.
unit Code5Unit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Menus, Buttons, Grids;
var mas:array[0..31]of string[5];
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
MainMenu1: TMainMenu;
StringGrid3: TStringGrid;
procedure FormActivate(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure AboutClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
StringGrid3: TStringGrid;
StringGrid4: TStringGrid;
Memo1: TMemo;
implementation
uses About;
{$R *.DFM}
procedure TForm1.FormActivate(Sender: TObject);
var i,j:integer;
begin
stringgrid1.Cells[0,0]:=' №';
stringgrid1.Cells[1,0]:=' Код';
stringgrid2.Cells[0,0]:=' №';
stringgrid2.Cells[1,0]:=' Код';
stringgrid3.Cells[0,0]:='№ перевірки';
stringgrid3.Cells[1,0]:=' Перевірочні позиції';
mas[0]:='00000'; mas[6]:= '00110'; mas[11]:='01011';
mas[1]:='00001'; mas[7]:= '00111'; mas[12]:='01100';
mas[2]:='00010'; mas[8]:= '01000'; mas[13]:='01101';
mas[3]:='00011'; mas[9]:= '01001'; mas[14]:='01110';
mas[4]:='00100'; mas[10]:='01010'; mas[15]:='01111';
mas[5]:='00101';
mas[16]:='10000'; mas[22]:='10110'; mas[27]:='11011';
mas[17]:='10001'; mas[23]:='10111'; mas[28]:='11100';
mas[18]:='10010'; mas[24]:='11000'; mas[29]:='11101';
mas[19]:='10011'; mas[25]:='11001'; mas[30]:='11110';
mas[20]:='10100'; mas[26]:='11010'; mas[31]:='11111';
mas[21]:='10101';
for i:=0 to 15 do begin
stringgrid1.Cells[0,i+1]:=inttostr(i);
stringgrid1.Cells[1,i+1]:=mas[i];
end;
for i:=16 to 31 do begin
stringgrid2.Cells[0,i-15]:=inttostr(i);
stringgrid2.Cells[1,i-15]:=mas[i];
end;
for i:=1 to 5 do
for j:=1 to 31 do
if mas[j,i]='1' then begin
stringgrid3.cells[0,i]:=' '+inttostr(i);
stringgrid3.cells[1,6-i]:=stringgrid3.cells[1,6-i]+inttostr(j)+' ';
end;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
form1.Close;
end;
procedure TForm1.AboutClick(Sender: TObject);
begin
aboutbox.showmodal;
end;
end.
Висновок
В даному завданні я навчився визначати перевірочні позиції коду Хемінга