Автор: Пользователь скрыл имя, 24 Марта 2011 в 13:40, курсовая работа
Объект исследования: кодирование информации.
Предмет исследования: основные алгоритмы экономичного и помехоустойчивого кодирования.
Целью нашего исследования является изучение теоретических основ и процесса кодирования информации, формирования экономичных и помехоустойчивых кодов на примере алгоритмов Хемминга, Хаффмана и Шеннона – Фано.
Введение…………………………………….....2
Кодирование информации…………………3
Задача кодирования……………………...3
Экономичное кодирование……………...8
Помехоустойчивое кодирование………16
Практическая реализация кодирования….22
Реализация программы кодирования
по методу Хаффмана………………………...22
Реализация программы – эмулятора
терминала азбуки Морзе…………………….28
Заключение…………………………………...32
Список литературы…………………………..33
Реализовано данное приложение средствами среды программирования Borland Delphi 7.
Условно,
всё приложение можно разделить на 3 части:
«терминал», «кодер», «декодер». «Терминал»
является непосредственной эмуляцией
терминала азбуки Морзе. Путём обработки
событий нажатия и отпускания клавиши
мыши на вкладке «терминал» главной
формы, программа не только воспроизводит
звук терминала (_morze.wav) в зависимости от
продолжительности нажатия, но и переводит
сообщение в строку кода Морзе, а затем
и в текстовую с помощью массива morseArray,
заполненного кодами букв в азбуке Морзе.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
t:=t+1;
end;
procedure
TForm1.TabSheet1MouseDown(
Shift: TShiftState; X, Y: Integer);
var i:byte;
begin
timer1.Enabled := false;
if t>20 then
begin
For i:=1 to 26 do
if ch = morseArray[i] then edit4.Text:=edit4.Text+chr(lg+
ch:='';
edit3.text:=edit3.Text+' ';
end;
t:=0;
timer1.Enabled := true;
PlaySound('E:/TEMP/_morze.wav'
end;
procedure
TForm1.TabSheet1MouseUp(
Shift: TShiftState; X, Y: Integer);
begin
timer1.Enabled := false;
if (t<=10) then
begin
edit3.Text:=edit3.Text+'.';
PlaySound(0, 0, snd_sync or snd_async);
ch:=ch+'.';
end;;
if (t>10) then
begin
edit3.Text:=edit3.Text+'_';
ch:=ch+'_';
end;
t:=0;
timer1.Enabled := true;
end;
Вкладка «кодер» представляет собой простое устройство для кодирование введённой строки в азбуку Морзе. Анализ и перевод строки осуществляется с помощью массива morseArray.
procedure TForm1.Button2Click(Sender: TObject);
var chIn:char;
i:integer;
begin
Edit2.Text:='';
i:=1;
While i<=(length(Edit1.Text)) do
begin
chIn:=Edit1.text[i];
edit2.Text:=edit2.Text+
i:=i+1;
end;
end;
Вкладка «декодер» осуществляет обратную задачу: переводит закодированную строку в текст, в соответствии с данным массива morseArray.
procedure TForm1.Button3Click(Sender: TObject);
var chIn:string;
i,j:integer;
begin
Edit6.Text:='';
i:=1;
While Edit5.Text[i]<>'' do
begin
chIn:=chIn+Edit5.Text[i];
if (Edit5.Text[i+1] = ' ') or (Edit5.Text[i+1] = '') then
begin
for j:=1 to 26 do
if chIn = MorseArray[j] then begin Edit6.text:=Edit6.text+chr(lg+
chIn:='';
I:=I+1;
end;
i:=i+1;
end;
end;
ЗАКЛЮЧЕНИЕ
В ходе курсовой работы была рассмотрена задача кодирования, которая включает в себя:
1.Обеспечение
экономичности передачи
2. Обеспечение надежности (помехоустойчивости) передачи информации.
Задача кодирования является одним из главных понятий информатики, так как кодирование предшествует передаче и хранению информации, и, соответственно, является основой их успешного осуществления.
При передаче сообщений по каналам связи могут возникать помехи, способные привести к искажению принимаемых знаков. Эта проблема решается с помощью помехоустойчивого кодирования. Помехоустойчивое кодирование передаваемой информации позволяет в приемной части системы обнаруживать и исправлять ошибки. Коды, применяемые при помехоустойчивом кодировании, называются корректирующими кодами. Впервые, исследование эффективного кодирования произвел Клод Шеннон. Для теории связи важнейшее значение имеют две теоремы, доказанные Шенноном.
В работе были рассмотрены эти теоремы, и можно прийти к выводу, что первая – затрагивает ситуацию с кодированием при передаче сообщения по линии связи, в которой отсутствуют помехи, искажающие информацию, т.е. эта теорема является эталоном, какими должны быть помехоустойчивые коды. Вторая теорема относится к реальным линиям связи с помехами.
В
ходе курсовой работы были рассмотрены
основные алгоритмы и составлены примеры
кодирования, на основе первой теоремы
Шеннона. Это кодирование является достаточно
эффективным, так как получаемый код практически
не имеет избыточности, но, к сожалению,
в реальных линиях связи множество помех,
и такой результат недостижим.
СПИСОК ЛИТЕРАТУРЫ