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

Содержание

 TOC o«1-3» h z u Введение. PAGEREF _Toc91245893h 4

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

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

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

3.1 Определение дискретизации сигналов по времени. PAGEREF _Toc91245897 h 6

3.2 Выбор шага квантования по времени. PAGEREF _Toc91245898 h 7

3.3 Воспроизведение непрерывного сигнала. PAGEREF _Toc91245899 h 10

4. Руководствопользователя. PAGEREF _Toc91245900h 13

4.1 Интерфейс пользователя. PAGEREF _Toc91245901 h 13

Листингпрограммы… PAGEREF _Toc91245902h 16

Заключение. PAGEREF _Toc91245903h 23

Списокиспользуемых источников. PAGEREF _Toc91245904h 24

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-font-kerning:16.0pt;mso-ansi-language: RU;mso-fareast-language:EN-US;mso-bidi-language:AR-SA">
<span Times New Roman",«serif»">Введение<span Times New Roman",«serif»">

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

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

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-font-kerning:16.0pt;mso-ansi-language: RU;mso-fareast-language:EN-US;mso-bidi-language:AR-SA">
<span Times New Roman",«serif»">1. Классификациявидов модуляции<span Times New Roman",«serif»">

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

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

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

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

·<span Times New Roman"">       модуляциюсинусоидальных (гармонических) сигналов;

·<span Times New Roman"">       модуляциюимпульсных сигналов.

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

·<span Times New Roman"">       амплитуднуюмодуляцию;

·<span Times New Roman"">       частотнуюмодуляцию;

·<span Times New Roman"">       фазовуюмодуляцию;

·<span Times New Roman"">       кодовую модуляциюи др.

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

<span Times New Roman",«serif»">2. Модуляцияимпульсных переносчиков<span Times New Roman",«serif»">

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

·<span Times New Roman"">       амплитудно-импульснаямодуляция АИМ;

·<span Times New Roman"">       широтно-импульснаямодуляция ШИМ;

·<span Times New Roman"">       время-импульснаямодуляция ВИМ;

·<span Times New Roman"">       позиционно-импульснаямодуляция (фазо-импульсная) ПИМ (ФИМ);

·<span Times New Roman"">       частотно-импульснаямодуляция ЧИМ;

·<span Times New Roman"">       кодо-импульснаямодуляция КИМ.

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

·<span Times New Roman"">       дискретизациисигналов по времени;

·<span Times New Roman"">       дискретизациисигналов по уровню;

·<span Times New Roman"">       кодирования.

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

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

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

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

<span Times New Roman",«serif»">3. Квантованиесигналов по времени<span Times New Roman",«serif»">3.1 Определение дискретизации сигналов по времени

При квантовании по времени непрерывнаяпо аргументу функция x(t) преобразуется в функцию <img src="/cache/referats/20783/image002.gif" v:shapes="_x0000_i1025"><img src="/cache/referats/20783/image004.gif" v:shapes="_x0000_i1026">

Временной интервал <img src="/cache/referats/20783/image006.gif" v:shapes="_x0000_i1027"> между двумя соседними фиксированными моментамивремени, в которых задается дискретная функция, называется интерваломвременного квантования. Величина, обратная интервалу временного квантования<img src="/cache/referats/20783/image008.gif" v:shapes="_x0000_i1028">

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

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

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

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

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

Теорема В.А. Котельникова: еслинепрерывная функция x(t) удовлетворяет условиям Дирихле (ограничена,кусочно-непрерывная и имеет конечное число экстремумов) и ее спектр ограниченнекоторой частотой fc, то она полностью определяется отсчетами, находящимися нарасстоянии <img src="/cache/referats/20783/image010.gif" v:shapes="_x0000_i1029">  друг от друга.

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

<img src="/cache/referats/20783/image012.gif" v:shapes="_x0000_i1030">                                                                              (1)

<img src="/cache/referats/20783/image014.gif" v:shapes="_x0000_i1031">                                                                       (2)

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

<img src="/cache/referats/20783/image016.gif" v:shapes="_x0000_i1032">                                                                        (3)

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

<img src="/cache/referats/20783/image018.jpg" v:shapes="_x0000_i1033">

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

<img src="/cache/referats/20783/image020.gif" v:shapes="_x0000_i1034">                                                                   (4)

<img src="/cache/referats/20783/image022.gif" v:shapes="_x0000_i1035">                                                        (5)

Сравнивая выражения (3) и (5) замечаем,что они совпадают с точностью до постоянного множителя <img src="/cache/referats/20783/image024.gif" v:shapes="_x0000_i1036"><img src="/cache/referats/20783/image026.gif" v:shapes="_x0000_i1037">

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

<img src="/cache/referats/20783/image028.gif" v:shapes="_x0000_i1038">                                                         

Подставив найденное выражение для <img src="/cache/referats/20783/image030.gif" v:shapes="_x0000_i1039"> в (4), получим

<img src="/cache/referats/20783/image032.gif" v:shapes="_x0000_i1040"> .                                                       (6)

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

<img src="/cache/referats/20783/image034.gif" v:shapes="_x0000_i1041"> .                                              (7)

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

<img src="/cache/referats/20783/image036.gif" v:shapes="_x0000_i1042">                 (8)

т.к. <img src="/cache/referats/20783/image038.gif" v:shapes="_x0000_i1043">

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

<img src="/cache/referats/20783/image040.gif" v:shapes="_x0000_i1044">                                                           (9)

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

Из (9) видно, что непрерывная функцияX(t) (рисунок 2, а), обладающая ограниченным спектром, может быть представленаразложением в ряд, каждый член которого выражается одинаковой функцией видаsin(x)/x (функция отсчета), но с различными коэффициентами <img src="/cache/referats/20783/image042.gif" v:shapes="_x0000_i1045"> (рисунок 2, б).

                                            

<img src="/cache/referats/20783/image044.jpg" v:shapes="_x0000_i1046">

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

<img src="/cache/referats/20783/image046.jpg" v:shapes="_x0000_i1047">

Рисунок 2, б — Функция отсчета, но с различнымикоэффициентами <img src="/cache/referats/20783/image042.gif" v:shapes="_x0000_i1048">

Ряд (9) представляет собой разложениеслучайного процесса с координатными функциями (детерминированными функциямивремени) и весовыми коэффициентами <img src="/cache/referats/20783/image048.gif" v:shapes="_x0000_i1049"><img src="/cache/referats/20783/image050.gif" v:shapes="_x0000_i1050">

Функция отсчетов в момент времени <img src="/cache/referats/20783/image052.gif" v:shapes="_x0000_i1051"> достигает максимума и равна единице. В моментывремени <img src="/cache/referats/20783/image054.gif" v:shapes="_x0000_i1052">  внуль при t=∞.

Сумма (9) в каждый k-ый момент времениопределяется только одним k‑ым слагаемым, т.к. все остальные слагаемые вэтот момент времени обращается в нуль. Внутри промежутка <img src="/cache/referats/20783/image056.gif" v:shapes="_x0000_i1053"> восстанавливаемая функция определяется всемислагаемыми (рисунок 21, а — непрерывная плавная линия).

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

Известно, что функция вида <img src="/cache/referats/20783/image058.gif" v:shapes="_x0000_i1054"> представляет собой реакцию идеального фильтра нижнихчастот с граничной частотой <img src="/cache/referats/20783/image060.gif" v:shapes="_x0000_i1055"> на дельта-функцию. Следовательно, если вприемном устройстве поместить такой фильтр и пропустить через него квантованныйсигнал, представляющий собой последовательность с частотой <img src="/cache/referats/20783/image062.gif" v:shapes="_x0000_i1056"> весьма кратковременных импульсов, амплитудыкоторых пропорциональны отсчетам исходной непрерывной функции, то, суммируявыходные сигналы фильтра, можно воспроизвести с достаточно высокой степеньюточности исходный непрерывный сигнал.

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

<img src="/cache/referats/20783/image064.gif" v:shapes="_x0000_i1057">                                                           (10)

где <img src="/cache/referats/20783/image066.gif" v:shapes="_x0000_i1058">

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

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

Кроме того, сигнал конечнойдлительности имеет бесконечный спектр гармонических составляющих. Поэтомуограничение спектра сигнала некоторой частотой <img src="/cache/referats/20783/image060.gif" v:shapes="_x0000_i1059"> является вторым фактором, снижающим точностьпредставления непрерывного сигнала x(t) дискретными отсчетами.

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

<img src="/cache/referats/20783/image068.gif" v:shapes="_x0000_i1060">

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

<img src="/cache/referats/20783/image070.gif" v:shapes="_x0000_i1061">  — энергия «хвоста» спектра, т.е. той егочасти, которая расположена за пределами fc .

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

<img src="/cache/referats/20783/image072.gif" v:shapes="_x0000_i1062"> .                                                                                 (11)

Дополнительная погрешность вносится привосстановлении сигнала x(t) за счет не идеальности фильтра нижних частот, т.к.идеальный фильтр НЧ физически нереализуем (предполагает наличие отклика на <img src="/cache/referats/20783/image074.gif" v:shapes="_x0000_i1063">

Однако на практике никогда не требуетсяидеально точное воспроизведение передаваемого сигнала, поэтому ограничиваютспектр сигнала диапазоном с верхней частотой <img src="/cache/referats/20783/image060.gif" v:shapes="_x0000_i1064">

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

<img src="/cache/referats/20783/image076.gif" v:shapes="_x0000_i1065">

где <img src="/cache/referats/20783/image078.gif" v:shapes="_x0000_i1066">  — средняя мощность отсекаемой части спектра;

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

<img src="/cache/referats/20783/image080.gif" v:shapes="_x0000_i1067">  — идеальные значения x(t).

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

<img src="/cache/referats/20783/image082.gif" v:shapes="_x0000_i1068">

где <img src="/cache/referats/20783/image084.gif" v:shapes="_x0000_i1069">  — средняя мощность сигнала

<img src="/cache/referats/20783/image086.gif" v:shapes="_x0000_i1070">  — относительная площадь отсекаемого участкаэнергетического спектра x(t).

По заданной величине <img src="/cache/referats/20783/image088.gif" v:shapes="_x0000_i1071"> и известных <img src="/cache/referats/20783/image090.gif" v:shapes="_x0000_i1072"><img src="/cache/referats/20783/image080.gif" v:shapes="_x0000_i1073"><img src="/cache/referats/20783/image092.gif" v:shapes="_x0000_i1074"> можно определить <img src="/cache/referats/20783/image060.gif" v:shapes="_x0000_i1075">

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

<img src="/cache/referats/20783/image094.gif" v:shapes="_x0000_i1076">

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

<img src="/cache/referats/20783/image096.gif" v:shapes="_x0000_i1077">

<img src="/cache/referats/20783/image098.gif" v:shapes="_x0000_i1078">

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

<img src="/cache/referats/20783/image100.gif" v:shapes="_x0000_i1079">

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

<img src="/cache/referats/20783/image102.gif" v:shapes="_x0000_i1080">

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

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-font-kerning:16.0pt;mso-ansi-language: RU;mso-fareast-language:EN-US;mso-bidi-language:AR-SA">
<span Times New Roman",«serif»">4. Руководствопользователя<span Times New Roman",«serif»">4.1 Интерфейс пользователя

На рисунке 3 показан внешний вид программы призапуске.

<img src="/cache/referats/20783/image104.jpg" v:shapes="_x0000_i1081">

Рисунок 3. Внешний вид рабочего окна программы

Рабочее окно программы, как видно из рисунка, состоитиз нескольких полей. В нижней части окна пользователю предоставляется возможностьизменить входные данные, которые установлены по умолчанию. Там же расположенакнопка «Сгенерировать сообщение» при нажатии на эту кнопку программа генерируетслучайный сигнал (рисунок 4).

<img src="/cache/referats/20783/image106.jpg" v:shapes="_x0000_i1082">

Рисунок 4 – Вывод на экран случайной функции

После этого мы можем выбрать необходимый шагквантования и нажать на кнопку «Дискретизировать по времени» и получимотображение отчетов (рисунок 5).

<img src="/cache/referats/20783/image108.jpg" v:shapes="_x0000_i1083">

Рисунок 5 – Отображение отчетов, соответственно шагуквантования.

В результате, после нажатии на кнопку «Восстановитьнепрерывную функцию» получаем восстановленный сигнал (рисунок 6).

<img src="/cache/referats/20783/image110.jpg" v:shapes="_x0000_i1084">

Рисунок 6 – Отображение восстановленного сигнала по отчетам.

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-font-kerning:16.0pt;mso-ansi-language: RU;mso-fareast-language:EN-US;mso-bidi-language:AR-SA">
<span Times New Roman",«serif»">Листинг<span Times New Roman",«serif»;mso-ansi-language:EN-US"> <span Times New Roman",«serif»">программы<span Times New Roman",«serif»;mso-ansi-language:EN-US"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">unit main;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">interface<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">uses<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  Windows, Messages, SysUtils, Variants,Classes, Graphics, Controls, Forms,<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  Dialogs, Series, StdCtrls, Spin, TeEngine,ExtCtrls, TeeProcs, Chart,<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  ComCtrls, Menus, Buttons;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">type<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  TForm1 = class(TForm)<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    CSpinEdit2: TSpinEdit;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    CSpinEdit1: TSpinEdit;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    Chart1: TChart;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    Series1: TFastLineSeries;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    Series2: TFastLineSeries;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    Series3: TBarSeries;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    Label2: TLabel;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    Label1: TLabel;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    MainMenu1: TMainMenu;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    Fgfg1: TMenuItem;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    dfd1: TMenuItem;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    sf1: TMenuItem;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    sdf1: TMenuItem;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    dsf1: TMenuItem;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    N1: TMenuItem;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    sdf2: TMenuItem;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    sd1: TMenuItem;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    sdf3: TMenuItem;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    SpeedButton1: TSpeedButton;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    SpeedButton2: TSpeedButton;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    SpeedButton3: TSpeedButton;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    procedure SpeedButton1Click(Sender:TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    procedure SpeedButton2Click(Sender:TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    procedure SpeedButton3Click(Sender:TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    procedure sdf2Click(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    procedure sf1Click(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    procedure dsf1Click(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    procedure sd1Click(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    procedure sdf1Click(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    procedure sdf3Click(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    procedure FormCreate(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  end;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">var<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  Form1: TForm1;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  massiv:array[1..50] of real;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  j:integer;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">implementation<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">{$R *.dfm}<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">{ TFormLR6 }<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">var<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  count: Integer = 0;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  count2: Integer = 0;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  maxi: double = 0.0;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  maxy: double = -200.0;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  miny: double = 200.0;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">procedureTForm1.SpeedButton1Click(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">var<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  i: double;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">begin<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  Series1.Clear();<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  Series2.Clear();<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  Series3.Clear();<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  SpeedButton3.Enabled:=false;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  Sd1.Enabled:=false;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  SpeedButton3.Flat:=true;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  SpeedButton2.Enabled:=true;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  dsf1.Enabled:=true;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  count:=0;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  i:=0;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  while (i<=CSpinEdit1.Value) do<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  begin<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">   Series1.AddXY(i,(random(5)+1)*0.05*cos(i+random(5)*0.01),'',clTeeColor);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    i:=i+0.5 ;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    Inc(count);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  end;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">end;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">procedureTForm1.SpeedButton2Click(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">var<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  x,k: Integer;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  z: double;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">begin<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  Series3.Clear();<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  SpeedButton3.Enabled:=true;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  sd1.Enabled:=true;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  SpeedButton3.Flat:=false;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  x:=0;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  for k:=0 to count-1 do<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  begin<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    if (Series1.XValues.Value[k]=x) then<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    begin<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">      z:=Series1.YValues.Value[k];<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">      massiv[k]:=z;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">      Series3.AddXY(x,z,'',clTeeColor);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">      if (abs(Series1.YValues.Value[k]) >maxi) then<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">        maxi:=abs(Series1.YValues.Value[k]);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">      x:=x+CSpinEdit2.Value;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    end;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  end<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">end;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">procedureTForm1.SpeedButton3Click(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">var<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  k,x: Integer;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  z: double;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">begin<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">chart1.Series[1].Clear;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"> x:=0;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  for k:=0 to count-1 do<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  begin<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    if (Series1.XValues.Value[k]=x) then<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    begin<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">      z:=Series1.YValues.Value[k];<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">      massiv[k]:=z;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">      Series2.AddXY(x,z,'',clTeeColor);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">      if (abs(Series1.YValues.Value[k]) >maxi) then<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">        maxi:=abs(Series1.YValues.Value[k]);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">      x:=x+CSpinEdit2.Value;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">    end;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  end<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">end;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">functionfmod(x,y: Real): Real;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">begin<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  Result := x — (x / y) * y;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">end;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">procedureTForm1.sdf2Click(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">begin<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">Close;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">end;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">procedureTForm1.sf1Click(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">begin<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  SpeedButton1.Click;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">end;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">procedureTForm1.dsf1Click(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">begin<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">SpeedButton2.Click;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">end;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">procedureTForm1.sd1Click(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">begin<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">SpeedButton3.Click;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">end;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">procedureTForm1.sdf1Click(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">begin<span Times New Roman",«serif»;mso-font-kerning: 0pt;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">Application<span Times New Roman",«serif»;mso-font-kerning: 0pt;font-weight:normal">.<span Times New Roman",«serif»;mso-font-kerning:0pt;mso-ansi-language: EN-US;font-weight:normal">MessageBox<span Times New Roman",«serif»;mso-font-kerning:0pt;font-weight:normal">('Тема:Квантование сигналов по времени','О программе',0);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">end;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">procedureTForm1.sdf3Click(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">begin<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">Application<span Times New Roman",«serif»;mso-font-kerning: 0pt;font-weight:normal">.<span Times New Roman",«serif»;mso-font-kerning:0pt;mso-ansi-language: EN-US;font-weight:normal">MessageBox<span Times New Roman",«serif»;mso-font-kerning:0pt;font-weight:normal">('Выполниластудентка 3 курса группы 03-КТ-11, А. Л.','Об авторе',0);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">end;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">procedureTForm1.FormCreate(Sender: TObject);<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">begin<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">dsf1.Enabled:=false;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">Sd1.Enabled:=false;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">SpeedButton2.Enabled:=false;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">SpeedButton3.Enabled:=false;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">end;<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal"><span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">initialization<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">  Randomize();<span Times New Roman",«serif»; mso-font-kerning:0pt;mso-ansi-language:EN-US;font-weight:normal">end.
<span Times New Roman",«serif»">Заключение<span Times New Roman",«serif»">

В данной работе был реализован алгоритмквантования сигала по времени. Из проделанной работы можно сделать вывод, чтопри реальной передачи сигналов восстановленный сигнал, при большом (редком)шаге квантованья, сильно отличается от исходного. Следовательно, для того,чтобы сигнал передать как можно более точно необходимо часто передавать отчеты.Т.е чем меньше шаг квантования, тем больше соответствие восстановленногосигнала с исходным

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

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

<span Arial",«sans-serif»;mso-fareast-font-family: «Times New Roman»;mso-font-kerning:16.0pt;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA">
<a name="_Toc91245904
еще рефераты
Еще работы по компьютерам. программированию