Квантование сигналов по времени

Квантование сигналов по времени

Курсовой проект по дисциплине «Теория информации и сигналов»

Выполнила студентка группы 03-КТ-11 курса 3 факультета  КТАС

Кубанский Государственный технологический университет

Кафедра ВТ и АСУ

Краснодар, 2005

Введение

В настоящее время информация стала фактором, определяющим эффективность любой сферы деятельности. Увеличились информационные потоки и повысились требования к скорости передачи данных, одним из факторов повышения скорости передачи данных служит метод дискретизации сигналов по времени, т.е. при передачи сигнала, можно передавать не весь сигнал, а только его отчеты, и восстанавливать сигнал по отчетам. В этом случае передаются только импульсы (щелчки), а на приемнике, по этим щелчкам восстанавливается сигнал 

В работе реализуется алгоритм квантования сигналов по времени.

1. Классификация видов модуляции

Сообщение, представленное электрическим сигналом, должно быть передано на определенное расстояние (в том числе на достаточно большое). Для этой цели используются сигналы - переносчики. Энергия переносчиков должна быть достаточной для передачи на заданное расстояние.

Таким образом, преобразование сигналов при передаче состоит в воздействии на переносчик, изменяющем тот или иной его параметр. Это воздействие называется модуляцией.

Различные виды модуляции характеризуются различными видами переносчиков, а так же рядом параметров, подвергаемых изменению.

По виду переносчиков различают:

модуляцию синусоидальных (гармонических) сигналов;

модуляцию импульсных сигналов.

По изменяемым параметрам различают:

амплитудную модуляцию;

частотную модуляцию;

фазовую модуляцию;

кодовую модуляцию и др.

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

2. Модуляция импульсных переносчиков

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

амплитудно-импульсная модуляция АИМ;

широтно-импульсная модуляция ШИМ;

время-импульсная модуляция ВИМ;

позиционно-импульсная модуляция (фазо-импульсная) ПИМ (ФИМ);

частотно-импульсная модуляция ЧИМ;

кодо-импульсная модуляция КИМ.

При передаче непрерывных сообщений в информационных системах весьма широкое применение получила кодоимпульсная модуляция (КИМ) сигналов. КИМ складывается из трех операций:

дискретизации сигналов по времени;

дискретизации сигналов по уровню;

кодирования.

Дискретизация по времени заключается в замене непрерывного по времени сигнала X(t) дискретным сигналом, значения которого для дискретных моментов времени t совпадают соответственно с мгновенными значениями непрерывного сигнала. Такая операция называется также квантованием сигнала по времени.

Дискретизация по уровню (квантование по уровню) заключается в замене непрерывного множества значений сигнала X(t) множеством дискретных значений. При этом шкала возможных значений сигнала разбивается на определенное количество интервалов и непрерывное значение сигнала заменяется ближайшим дискретным. Полученные дискретные значения затем кодируются (обычно двоичным кодом).

КИМ (кодо-импульсная модуляция) обеспечивает существенное повышение помехоустойчивости передачи сообщений. Кроме того, дискретизация по времени позволяет использовать одни и те же устройства (каналы связи, устройства обработки информации и пр.) для большого числа различных сигналов.

При КИМ весьма важным является правильный выбор способа квантования сигнала по времени и уровню. В связи с этим рассмотрим некоторые вопросы теории квантования непрерывных функций по времени и уровню.

3. Квантование сигналов по времени

3.1 Определение дискретизации сигналов по времени

При квантовании по времени непрерывная по аргументу функция x(t) преобразуется в функцию дискретного аргумента. Такое преобразование может быть выполнено путем взятия отсчетов функции x(t) в определенные дискретные моменты времени . В результате функция x(t) заменяется совокупностью мгновенных значений x(ti) [i=0,1,2,…,n].

Временной интервал  между двумя соседними фиксированными моментами времени, в которых задается дискретная функция, называется интервалом временного квантования. Величина, обратная интервалу временного квантованияназывается частотой квантования.

Частота квантования должна выбираться таким образом, чтобы по отсчетным значениям x(ti) можно было бы с заданной точностью получить исходную функцию.

3.2 Выбор шага квантования по времени

Известно несколько критериев выбора частоты квантования по времени. К таким критериям относится, в частности, частотный критерий В.А. Котельникова. Данный критерий, который получил название теоремы В.А. Котельникова, основывается на следующей модели сигналов:

сигнал представляет собой стационарный случайный процесс;

спектр сигнала сплошной и ограничен некоторой частотой, за пределами которой он тождественно равен нулю.

Теорема В.А. Котельникова: если непрерывная функция x(t) удовлетворяет условиям Дирихле (ограничена, кусочно-непрерывная и имеет конечное число экстремумов) и ее спектр ограничен некоторой частотой fc, то она полностью определяется отсчетами, находящимися на расстоянии  друг от друга.

Для доказательства теоремы рассмотрим выражения прямого и обратного преобразования Фурье непрерывной функции x(t).

   (1)

.  (2)

В рассматриваемом частном случае функции с ограниченным спектром можно записать

.  (3)

Дополним функцию до периодической с периодом, равным 2fc (рисунок 1) и разложим ее в ряд Фурье



Рисунок 1 - функция с периодом, равным 2fc.

,  (4)

.  (5)

Сравнивая выражения (3) и (5) замечаем, что они совпадают с точностью до постоянного множителя , если принять . 

Следовательно,

. 

Подставив найденное выражение для  в (4), получим

 .  (6)

После подставки (6) в (3), замены знака при k (т.к. суммирование производится по всем положительным и отрицательным значениям k) и перестановки операций суммирования и интегрирования получим

 .  (7)

Вычислим интеграл

  (8)

т.к. .

После подстановки (8) в (7) окончательно получим

.  (9)

Полученное выражение представляет аналитически теорему  Котельникова.

Из (9) видно, что непрерывная функция X(t) (рисунок 2, а), обладающая ограниченным спектром, может быть представлена разложением в ряд, каждый член которого выражается одинаковой функцией вида sin(x)/x (функция отсчета), но с различными коэффициентами  (рисунок 2, б).



Рисунок 2, а - Функция отсчета



Рисунок 2, б - Функция отсчета, но с различными коэффициентами 

Ряд (9) представляет собой разложение случайного процесса с координатными функциями (детерминированными функциями времени) и весовыми коэффициентами , являющимися случайными величинами, равными мгновенным значениям сигнала в точках .

Функция отсчетов в момент времени  достигает максимума и равна единице. В моменты времени , где i=1,2,3… функция отсчетов убывает, обращаясь в нуль при t=∞.

Сумма (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с.: ил.