Преобразование и кодирование информации. Код Хемминга
ЛАБОРАТОРНАЯ
РАБОТА №2
Преобразование
и кодирование информации. Код Хемминга
Цель работы: изучить метод преобразования и
кодирования информации «код Хемминга», используемый для передачи данных по
физическим каналам вычислительных сетей и телекоммуникаций.
Задание: разработать и реализовать диалоговую
программу, формирующую сообщение в виде классического кода Хемминга (7,4).
Смоделировать ситуацию возникновения ошибки в коде при передачи,
проанализировать полученный код при приеме.
Ход работы:
. На рис.1 изображено окно рабочей программы.
Программа моделирует работу передатчика сообщения -> модулятора ->
демодулятора -> приемника сообщения. При передаче сообщения может произойти
ошибка, в случае которой, по результатом сравнения синдрома кода, выводится
сообщение о неверной передаче сообщения.
Рисунок 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";return "0";
}bool ToBool(int a)
{(a == 1) return true;return false;
}bool ToBool(string a)
}string Invert(string a)
{(a == "1") return
"0";return "1";
}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"
&& textBox17.Text == "0" && textBox13.Text ==
"0") label1.Text = "Сообщение
передано
верно";
else label1.Text = "Ошибка при
передаче!!!";
}
}
}
Вывод
В ходе проделанной работы мы изучили метод
преобразования и кодирования информации «код Хемминга», используемый для
передачи данных по физическим каналам вычислительных сетей и телекоммуникаций.