Кодирование информации
Курсовая работа, 24 Марта 2011, автор: пользователь скрыл имя
Описание работы
Объект исследования: кодирование информации.
Предмет исследования: основные алгоритмы экономичного и помехоустойчивого кодирования.
Целью нашего исследования является изучение теоретических основ и процесса кодирования информации, формирования экономичных и помехоустойчивых кодов на примере алгоритмов Хемминга, Хаффмана и Шеннона – Фано.
Содержание
Введение…………………………………….....2
Кодирование информации…………………3
Задача кодирования……………………...3
Экономичное кодирование……………...8
Помехоустойчивое кодирование………16
Практическая реализация кодирования….22
Реализация программы кодирования
по методу Хаффмана………………………...22
Реализация программы – эмулятора
терминала азбуки Морзе…………………….28
Заключение…………………………………...32
Список литературы…………………………..33
Работа содержит 1 файл
курсяк 1п3.doc
— 315.50 Кб (Скачать)Реализовано данное приложение средствами среды программирования 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. Обеспечение надежности (помехоустойчивости) передачи информации.
Задача кодирования является одним из главных понятий информатики, так как кодирование предшествует передаче и хранению информации, и, соответственно, является основой их успешного осуществления.
При передаче сообщений по каналам связи могут возникать помехи, способные привести к искажению принимаемых знаков. Эта проблема решается с помощью помехоустойчивого кодирования. Помехоустойчивое кодирование передаваемой информации позволяет в приемной части системы обнаруживать и исправлять ошибки. Коды, применяемые при помехоустойчивом кодировании, называются корректирующими кодами. Впервые, исследование эффективного кодирования произвел Клод Шеннон. Для теории связи важнейшее значение имеют две теоремы, доказанные Шенноном.
В работе были рассмотрены эти теоремы, и можно прийти к выводу, что первая – затрагивает ситуацию с кодированием при передаче сообщения по линии связи, в которой отсутствуют помехи, искажающие информацию, т.е. эта теорема является эталоном, какими должны быть помехоустойчивые коды. Вторая теорема относится к реальным линиям связи с помехами.
В
ходе курсовой работы были рассмотрены
основные алгоритмы и составлены примеры
кодирования, на основе первой теоремы
Шеннона. Это кодирование является достаточно
эффективным, так как получаемый код практически
не имеет избыточности, но, к сожалению,
в реальных линиях связи множество помех,
и такой результат недостижим.
СПИСОК ЛИТЕРАТУРЫ
- Аветисян Р.Д., Аветисян Д.О. Теоретические основы информатики. М.: РГГУ, 1997. – 169 с.
- Акритас А. Основы компьютерной алгебры с приложениями: Пер. с англ. – М., Мир, 1994 – 554 с.
- Лидовский В.И. Теория информации. - М., «Высшая школа», 2002г. – 120с.
- Матрос Д.Ш. Элементы абстрактной и компьютерной алгебры: Учеб. Пособие для студ. Пед. Вузов/Д.Ш. Матрос, Г.Б. Поднебесова – М.: Издательский центр «Академия», 2004.– 240 с.
- Потапов В.Н. Теория информации. Кодирование дискретных вероятностных источников, уч. пособие, НГУ, Новосибирск, 1999, 71 с.
- Скляр Б. Цифровая связь. Теоретические основы и практическое применение. Изд. 2-е, испр.: Пер. с англ. – М.: Издательский дом «Вильямс», 2003 г. – 1104 с.
- http://ru.wikipedia.org/