Смекни!
smekni.com

Квантование сигналов по времени (стр. 2 из 2)

Сумма (9) в каждый k-ый момент времени определяется только одним k‑ым слагаемым, т.к. все остальные слагаемые в этот момент времени обращается в нуль. Внутри промежутка

восстанавливаемая функция определяется всеми слагаемыми (рисунок 21, а - непрерывная плавная линия).

3.3 Воспроизведение непрерывного сигнала

Известно, что функция вида

представляет собой реакцию идеального фильтра нижних частот с граничной частотой
на дельта-функцию. Следовательно, если в приемном устройстве поместить такой фильтр и пропустить через него квантованный сигнал, представляющий собой последовательность с частотой
весьма кратковременных импульсов, амплитуды которых пропорциональны отсчетам исходной непрерывной функции, то, суммируя выходные сигналы фильтра, можно воспроизвести с достаточно высокой степенью точности исходный непрерывный сигнал.

Однако нас интересует случай, когда сигнал x(t) ограничен во времени (Tc). В этом случае сумма (9) будет конечной

, (10)

где

.

Усечение бесконечной суммы, т.е. ограничение ее теми значениями Xk, которые оказываются в пределах Tc, уменьшает точность представления сигнала x(t).

Это первый фактор, определяющий точность представления.

Кроме того, сигнал конечной длительности имеет бесконечный спектр гармонических составляющих. Поэтому ограничение спектра сигнала некоторой частотой

является вторым фактором, снижающим точность представления непрерывного сигнала x(t) дискретными отсчетами.

Средний квадрат относительной погрешности в этом случае определяется выражением

,

где Е – полная энергия неограниченного спектра сигнала;

- энергия «хвоста» спектра, т.е. той его части, которая расположена за пределами fc .

Чтобы погрешность формулы (10) была мала, должно выполняться условие

. (11)

Дополнительная погрешность вносится при восстановлении сигнала x(t) за счет не идеальности фильтра нижних частот, т.к. идеальный фильтр НЧ физически нереализуем (предполагает наличие отклика на

-функцию при t<0, т.е. до начала подачи на вход).

Однако на практике никогда не требуется идеально точное воспроизведение передаваемого сигнала, поэтому ограничивают спектр сигнала диапазоном с верхней частотой

, в котором сосредоточена основная энергия сигнала.

Дисперсия приведенной погрешности, возникающей в результате усечения, будет

,

где

- средняя мощность отсекаемой части спектра;

Tc – длительность сигнала;

- идеальные значения x(t).

Возможно и следующее представление

,

где

- средняя мощность сигнала

- относительная площадь отсекаемого участка энергетического спектра x(t).

По заданной величине

и известных
,
,
можно определить
.

а) Используются и следующие критерии оценивания:

.

б) Максимальная абсолютная и относительная ошибки:

,

.

в) Эффективная относительная ошибка

.

г) Средняя относительная ошибка

.

д) Среднеквадратическая ошибка

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с.: ил.