4. Руководство пользователя
4.1 Интерфейс пользователя
На рисунке 3 показан внешний вид программы при запуске.
Рисунок 3. Внешний вид рабочего окна программы
Рабочее окно программы, как видно из рисунка, состоит из нескольких полей. В нижней части окна пользователю предоставляется возможность изменить входные данные, которые установлены по умолчанию. Там же расположена кнопка «Сгенерировать сообщение» при нажатии на эту кнопку программа генерирует случайный сигнал (рисунок 4).
Рисунок 4 – Вывод на экран случайной функции
После этого мы можем выбрать необходимый шаг квантования и нажать на кнопку «Дискретизировать по времени» и получим отображение отчетов (рисунок 5).
Рисунок 5 – Отображение отчетов, соответственно шагу квантования.
В результате, после нажатии на кнопку «Восстановить непрерывную функцию» получаем восстановленный сигнал (рисунок 6).
Рисунок 6 – Отображение восстановленного сигнала по отчетам.
Листинг программы
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Series, StdCtrls, Spin, TeEngine, ExtCtrls, TeeProcs, Chart,
ComCtrls, Menus, Buttons;
type
TForm1 = class(TForm)
CSpinEdit2: TSpinEdit;
CSpinEdit1: TSpinEdit;
Chart1: TChart;
Series1: TFastLineSeries;
Series2: TFastLineSeries;
Series3: TBarSeries;
Label2: TLabel;
Label1: TLabel;
MainMenu1: TMainMenu;
Fgfg1: TMenuItem;
dfd1: TMenuItem;
sf1: TMenuItem;
sdf1: TMenuItem;
dsf1: TMenuItem;
N1: TMenuItem;
sdf2: TMenuItem;
sd1: TMenuItem;
sdf3: TMenuItem;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure sdf2Click(Sender: TObject);
procedure sf1Click(Sender: TObject);
procedure dsf1Click(Sender: TObject);
procedure sd1Click(Sender: TObject);
procedure sdf1Click(Sender: TObject);
procedure sdf3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
massiv:array[1..50] of real;
j:integer;
implementation
{$R *.dfm}
{ TFormLR6 }
var
count: Integer = 0;
count2: Integer = 0;
maxi: double = 0.0;
maxy: double = -200.0;
miny: double = 200.0;
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
i: double;
begin
Series1.Clear();
Series2.Clear();
Series3.Clear();
SpeedButton3.Enabled:=false;
Sd1.Enabled:=false;
SpeedButton3.Flat:=true;
SpeedButton2.Enabled:=true;
dsf1.Enabled:=true;
count:=0;
i:=0;
while (i<=CSpinEdit1.Value) do
begin
Series1.AddXY(i,(random(5)+1)*0.05*cos(i+random(5)*0.01),'',clTeeColor);
i:=i+0.5 ;
Inc(count);
end;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
var
x,k: Integer;
z: double;
begin
Series3.Clear();
SpeedButton3.Enabled:=true;
sd1.Enabled:=true;
SpeedButton3.Flat:=false;
x:=0;
for k:=0 to count-1 do
begin
if (Series1.XValues.Value[k]=x) then
begin
z:=Series1.YValues.Value[k];
massiv[k]:=z;
Series3.AddXY(x,z,'',clTeeColor);
if (abs(Series1.YValues.Value[k]) > maxi) then
maxi:=abs(Series1.YValues.Value[k]);
x:=x+CSpinEdit2.Value;
end;
end
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
var
k,x: Integer;
z: double;
begin
chart1.Series[1].Clear;
x:=0;
for k:=0 to count-1 do
begin
if (Series1.XValues.Value[k]=x) then
begin
z:=Series1.YValues.Value[k];
massiv[k]:=z;
Series2.AddXY(x,z,'',clTeeColor);
if (abs(Series1.YValues.Value[k]) > maxi) then
maxi:=abs(Series1.YValues.Value[k]);
x:=x+CSpinEdit2.Value;
end;
end
end;
function fmod(x,y: Real): Real;
begin
Result := x - (x / y) * y;
end;
procedure TForm1.sdf2Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.sf1Click(Sender: TObject);
begin
SpeedButton1.Click;
end;
procedure TForm1.dsf1Click(Sender: TObject);
begin
SpeedButton2.Click;
end;
procedure TForm1.sd1Click(Sender: TObject);
begin
SpeedButton3.Click;
end;
procedure TForm1.sdf1Click(Sender: TObject);
begin
Application.MessageBox('Тема: Квантование сигналов по времени','О программе',0);
end;
procedure TForm1.sdf3Click(Sender: TObject);
begin
Application.MessageBox('Выполнила студентка 3 курса группы 03-КТ-11, А. Л.','Об авторе',0);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
dsf1.Enabled:=false;
Sd1.Enabled:=false;
SpeedButton2.Enabled:=false;
SpeedButton3.Enabled:=false;
end;
initialization
Randomize();
end.
ЗаключениеВ данной работе был реализован алгоритм квантования сигала по времени. Из проделанной работы можно сделать вывод, что при реальной передачи сигналов восстановленный сигнал, при большом (редком) шаге квантованья, сильно отличается от исходного. Следовательно, для того, чтобы сигнал передать как можно более точно необходимо часто передавать отчеты. Т.е чем меньше шаг квантования, тем больше соответствие восстановленного сигнала с исходным
Разработанная программа реализует восстановление исходного сигнала по отчетам, а также предоставляет гибкий характер работы пользователя с программным приложением по изменению параметров.
Разработанное приложение может быть незаменимой частью более сложных программных пакетов для передачи данных.
Список литературыА.В.Власенко, В.И.Ключко - Теория информации и сигналов. Учебное пособие / Краснодар: Изд-во КубГТУ, 2003.- 97 с.
Теория передачи сигналов: Учебник для вузов / А.Г.Зюко, Д.Д.Кловский,
Цифровая обработка сигналов: Учебник для вузов / А.Б. Сергиенко – СПб.: Питер, 2003. – 604 с.: ил.
Delphi 6.0. Практика программирования. Учебное пособие / Фаронов В.В. Издание 7-е, переработанное. – М.: «Нолидж», 2001. – 672с.:
... функций в виде зависимости их значений от определенных аргументов Δвремени, линейной или пространственной координаты и т.п.) при анализе и обработке данных широко используется математическое описание сигналов по аргументам, обратным аргументам динамического представления. Так, например, для времени обратным аргументом является частота. Возможность такого описания определяется тем, что любой ...
... ИКМ сигнала на приемной станции; ПК пр – преобразователь кода – преобразует биполярный сигнал в однополярный; Пр СС – приемник синхросигналов – правильное декодирование и распределение сигналов по своим телефонным каналам и каналам передачи СУВ; УР – устройство разделения – разделяет кодовые группы ТЛФ каналов и СУВ; Пр СУВ – приемник групповых сигналов управления и взаимодействия – ...
... соответствует нулевому значению цветоразностного сигнала. При воспроизведении пурпурного цвета E'B-Y = 0.59, т. е.: CB=126·E'B-Y+128=202=11001010 При воспроизведении голубого цвета E'B-Y =0.3, т. е.: CB=126·E'B-Y+128=165.8=10100101 3. Графики изменения сигналов яркости и цветности во времени в строчном периоде для текстового изображения «градационный клин» Рисунок 5. Графики ...
... нельзя проводить отбор отдельных компонентов ИС по допуска, как это имело место в схемах дискретных электорадиоэлементах в ЭВМ третьего поколения. Разработка генератора на цифровых микросхемах. Для проверки и настройки цифровых интегральных микросхемах транзисторно-транзисторной логики (ТТЛ) требуются генераторы прямоугольных импульсов. Ниже описывается генератор импульсов, выполненный всего на ...
0 комментариев