ЛАБОРАТОРНА РОБОТА №2
Перетворення і кодування інформації. Код Хеммінга
Мета роботи: вивчити метод перетворення і кодування інформації «код Хеммінга», використовуваний для передачі даних по фізичних каналах обчислювальних мереж і телекомунікацій.
Завдання: розробити і реалізувати діалогову програму, формуючу повідомлення у вигляді класичного коду Хеммінга (7,4). Змоделювати ситуацію виникнення помилки в коді при передачі, проаналізувати отриманий код при прийомі.
Хід роботи:
. На рис.1 зображено вікно робочої програми. Програма моделює роботу передавача повідомлення - gt; модулятора - gt; демодулятора - gt; приймача повідомлення. При передачі повідомлення може статися помилка, у разі якої, за результатом порівняння синдрому коду, виводиться повідомлення про невірну передачі повідомлення.
Малюнок 1
код Хеммінг кодування інформація
2. Лістинг програми
using System;
using System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;SETI_LABA1
{partial class Form1: Form
{bool AddMod2 (bool a, bool b)
{(a!=b) return true; return false;
} string ToStr (bool a)
{(a == true) return 1 raquo ;; return 0 raquo ;;
} bool ToBool (int a)
{(a == 1) return true; return false;
} bool ToBool (string a)
{(a == 1 ) return true; return false;
} string Invert (string a)
{(a == 1 ) return 0 raquo ;; return 1 raquo ;;
} Form1 ()
{();
} void button1_Click (object sender, EventArgs e)
{
} void button1_Click_1 (object sender, EventArgs e)
{. Text=textBox1.Text; .Text=textBox2.Text; .Text=textBox3.Text; .Text=textBox4.Text; .Text=ToStr (AddMod2 (AddMod2 (ToBool (textBox1. Text), ToBool (textBox2.Text)), ToBool (textBox3.Text))) ;. Text=ToStr (AddMod2 (AddMod2 (ToBool (textBox2.Text), ToBool (textBox3.Text)), ToBool (textBox4.Text) )) ;. Text=ToStr (AddMod2 (AddMod2 (ToBool (textBox1.Text), ToBool (textBox2.Text)), ToBool (textBox4.Text))) ;. Text=textBox12.Text; .Text=textBox11.Text;.Text=textBox10.Text; .Text=textBox9.Text; r=new Random (); (r.Next (2) == 0)
{rand=r.Next (5); (rand == 0) textBox22.Text=Invert (textBox22.Text); if (rand == 1) textBox21.Text=Invert (textBox21. Text); if (rand == 2) textBox20.Text=Invert (textBox20.Text); if (rand == 3) textBox19.Text=Invert (textBox19.Text);
}. Text=ToStr (AddMod2 (AddMod2 (AddMod2 (ToBool (textBox22.Text), ToBool (textBox21.Text)), ToBool (textBox20.Text)), ToBool (textBox16.Text)) ) ;. Text=ToStr (AddMod2 (AddMod2 (AddMod2 (ToBool (textBox21.Text), ToBool (textBox20.Text)), ToBool (textBox19.Text)), ToBool (textBox15.Text))) ;. Text=ToStr ( AddMod2 (AddMod2 (AddMod2 (ToBool (textBox22.Text), ToBool (textBox21.Text)), ToBool (textBox19.Text)), ToBool (textBox14.Text))) ;. Text=textBox22.Text; .Text=textBox21. Text; .Text=textBox20.Text; .Text=textBox19.Text; (textBox18.Text == 0 amp; amp; textBox17.Text == 0 amp; amp; textBox13.Text == 0 ) label1.Text= Повідомлення передано вірно raquo ;;
else label1.Text= Помилка при передачі !!! raquo ;;
}
}
}
Висновок
У ході проробленої роботи ми вивчили метод перетворення і кодування інформації «код Хеммінга», використовуваний для передачі даних по фізичних каналах обчислювальних мереж і телекомунікацій.