Сумма (9) в каждый k-ый момент времени определяется только одним k‑ым слагаемым, т.к. все остальные слагаемые в этот момент времени обращается в нуль. Внутри промежутка
3.3 Воспроизведение непрерывного сигнала
Известно, что функция вида
Однако нас интересует случай, когда сигнал x(t) ограничен во времени (Tc). В этом случае сумма (9) будет конечной
где
Усечение бесконечной суммы, т.е. ограничение ее теми значениями Xk, которые оказываются в пределах Tc, уменьшает точность представления сигнала x(t).
Это первый фактор, определяющий точность представления.
Кроме того, сигнал конечной длительности имеет бесконечный спектр гармонических составляющих. Поэтому ограничение спектра сигнала некоторой частотой
Средний квадрат относительной погрешности в этом случае определяется выражением
где Е – полная энергия неограниченного спектра сигнала;
Чтобы погрешность формулы (10) была мала, должно выполняться условие
Дополнительная погрешность вносится при восстановлении сигнала x(t) за счет не идеальности фильтра нижних частот, т.к. идеальный фильтр НЧ физически нереализуем (предполагает наличие отклика на
Однако на практике никогда не требуется идеально точное воспроизведение передаваемого сигнала, поэтому ограничивают спектр сигнала диапазоном с верхней частотой
Дисперсия приведенной погрешности, возникающей в результате усечения, будет
где
Tc – длительность сигнала;
Возможно и следующее представление
где
По заданной величине
а) Используются и следующие критерии оценивания:
б) Максимальная абсолютная и относительная ошибки:
в) Эффективная относительная ошибка
г) Средняя относительная ошибка
д) Среднеквадратическая ошибка
На рисунке 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();
Заключение
В данной работе был реализован алгоритм квантования сигала по времени. Из проделанной работы можно сделать вывод, что при реальной передачи сигналов восстановленный сигнал, при большом (редком) шаге квантованья, сильно отличается от исходного. Следовательно, для того, чтобы сигнал передать как можно более точно необходимо часто передавать отчеты. Т.е чем меньше шаг квантования, тем больше соответствие восстановленного сигнала с исходным
Разработанная программа реализует восстановление исходного сигнала по отчетам, а также предоставляет гибкий характер работы пользователя с программным приложением по изменению параметров.
Разработанное приложение может быть незаменимой частью более сложных программных пакетов для передачи данных.
А.В.Власенко, В.И.Ключко - Теория информации и сигналов. Учебное пособие / Краснодар: Изд-во КубГТУ, 2003.- 97 с.
Теория передачи сигналов: Учебник для вузов / А.Г.Зюко, Д.Д.Кловский,
Цифровая обработка сигналов: Учебник для вузов / А.Б. Сергиенко – СПб.: Питер, 2003. – 604 с.: ил.
Delphi 6.0. Практика программирования. Учебное пособие / Фаронов В.В. Издание 7-е, переработанное. – М.: «Нолидж», 2001. – 672с.: ил.