Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

c++, Matlab

.pdf
Скачиваний:
98
Добавлен:
30.03.2015
Размер:
1 Mб
Скачать

Библиографический список

1.Архангельский А. Я. Программирование в C++ Builder 6 / А. Я. Архан-

гельский. – М. : Бином, 2003. – 1152 с.

2.Архангельский А. Я. C++ Builder 6 : справ. пособие. Книга 2. Классы

икомпоненты / А. Я. Архангельский. – М. : Бином-Пресс, 2002. – 528 с.

3.Большой энциклопедический словарь [Электронный ресурс]. – URL: http://slovari.299.ru/word.php?id=65987&sl=enc (дата обращения 16.06.2013).

4.Лафоре Р. Объектно-ориентированное программирование в C++ / Р. Ла-

форе. – СПб. : Питер, 2007. – 928 с.

5.Научно-технический энциклопедический словарь [Электронный ресурс]. – URL: http://enc-dic.com/fwords/Fajl-37896.html (дата обращения 16.06.2013).

6.Подбельский В. В. Язык С++ : учеб пособие / В. В. Подбельский. – 5-е изд. – М. : Финансы и статистика, 2003. – 562 с.

7.Страуструп Б. Язык программирования C++ / Б. Страуструп. – СПб. : Невский диалект, 2004. – 1104 с.

61

ЛАБОРАТОРНАЯ РАБОТА 7

РАБОТА СО ЗВУКОВЫМ УСТРОЙСТВОМ ПК В ПРОГРАММНОЙ СРЕДЕ MATLAB

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

Задание к работе

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

ицифровых сигналов.

2.Разработать ПО на языке Matlab, осуществляющее управление звуковым устройством ПК.

3.Произвести дискретизацию аналогового сигнала с помощью звукового устройства ПК.

4.Выполнить цифроаналоговое преобразование дискретных последовательностей с помощью звукового устройства ПК.

5.Сделать выводы по результатам работы.

Пояснения к работе

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

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

Для организации телефонной связи по IP-сетям используется специальное оборудование – шлюзы IP-телефонии [6]. Общий принцип действия телефонных шлюзов IP-телефонии таков: шлюз подключается к телефонным линиям и может соединиться с любым телефоном мира. С другой стороны шлюз подключен к IP-сети и может связаться с любым компьютером на земном шаре. Шлюз при-

62

нимает телефонный сигнал, оцифровывает его (если он исходно не цифровой), значительно сжимает, разбивает на пакеты и отправляет через IP-сеть по назначению с использованием протокола IP. Для пакетов, приходящих из IP-сети на шлюз и направляемых в телефонную линию, операция происходит в обратном порядке [6].

В настоящее время все большую популярность приобретают IP-АТС, которые, кроме функций шлюза IP-телефонии, выполняют также традиционные функции обычных офисных АТС [6].

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

Вся информация, передаваемая через IP (голос, текст, изображения и т. п.), разделяется на пакеты данных, имеющие в своем составе адреса точек назначения (приема и передачи) и порядковый номер. Узлы IP направляют эти пакеты по сети до окончания маршрута доставки. После прибытия пакетов к точке назначения для восстановления исходного объема упорядоченных данных используются порядковые номера пакетов. Для приложений, где не важен порядок и интервал прихода пакетов, таких как e-mail, время задержек между отдельными пакетами не имеет решающего значения. IP-телефония является одной из областей передачи данных, где важна динамика передачи сигнала, которая обеспечивается современными методами кодирования и передачи информации. Для обеспечения стабильной телефонной связи по IP-сетям введены специальные протоколы передачи данных, например H.323 и SIP [5].

Ход работы

1. Собрать схему, показанную на рис. 7.1, запустить программную среду

Matlab.

Рис. 7.1

63

2.Выполнить подготовку НЧ-генератора и осциллографа к работе в соответствии с требованиями их технических описаний.

3.Подать с НЧ-генератора гармонически изменяющееся напряжение амплитудой 100 мВ и частотой 1 кГц.

4.В командном окне создать объект [3, 4] для получения отсчетов оцифрованного сигнала из буферов компьютерного звукового устройства. Объект создается следующими командами [3]:

>>ai = analoginput('winsound');

>>addchannel(ai, 1); %Используется только 1 канал объекта

Созданный программный объект ai связан с «железным» объектом win-

sound, который представляет собой базовое звуковое устройство ПК [2] (стан-

дартAC’97).

5. Задать свойства объекта:

>>

set(ai, 'SampleRate', 8000);

% Установка значения

>>

% частоты дискретизации сигнала (8 кГц)

>>set(ai, 'SamplesPerTrigger', 8000); % Количество

>>% оцифрованных значений сигнала за один цикл (8000)

>>

set(ai, 'TriggerRepeat', 3);

%

Количество повторений

>>

 

%

циклов (3)

>> set(ai, 'TriggerType', 'immediate'); %

Начало

>>

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

>>

 

% запуска объекта

6.Произвести запуск объекта с помощью команды:

>>start(ai);

7.Загрузить отсчеты сигнала на микрофонном входе в рабочее пространство Matlab с помощью команды:

>>[d, t]=getdata(ai);

8.Отобразить значения отсчетов сигнала на графике:

>>plot(t, d);

9.Убедиться в том, что оцифрованный сигнал является гармоническим и на один период сигнала приходится 8 отсчетов.

10.В командном окне создать объект для цифроаналогового преобразования сигналов:

>>ao = analogoutput('winsound');

>>addchannel(ao, 1); %Используется только 1 канал объекта

64

11. Задать свойства объекта:

>>

set(ao, 'SampleRate', 8000);

% Установка значения

>>

% частоты дискретизации сигнала (8 кГц)

>>

set(ao, 'TriggerType', 'immediate');

%Начало

>>

% цифроаналогового преобразования немедленно

>>

% после ввода команды запуска объекта

>>

set(ao, 'RepeatOutput', 0);

% Последовательность

>>

% отсчетов преобразуется в аналоговую форму

>>

% однократно (повторений нет)

12.Сформировать сигнал, который впоследствии будет преобразован в аналоговую форму:

>>t1=0:(1/8000):1;

>>y=sin(2*pi*500*t1);

>>y=y';

13.Записать сигнал в выходной буфер звукового устройства:

>>putdata(ao, y);

14.Произвести запуск объекта с помощью команды:

>>start(ao);

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

16.Изменяя частоту сигнала НЧ-генератора в диапазоне от 50 Гц до 4 кГц (не менее 5 значений), повторно выполнить пп. 6–8. Полученные графики занести в отчет.

Контрольные вопросы

1.Приведите формулировку теоремы Котельникова, изложите ее сущность.

2.Поясните сущность дискретизации, квантования и интерполяции сигналов, приведите и охарактеризуйте источники погрешностей квантования.

3.Приведите примеры современных интерфейсов аудиоустройств и дайте им характеристики.

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

65

5.Можно ли преобразовать в аналоговую форму переменные в рабочей области программной среды Matlab с помощью компьютерного звукового устройства?

6.Какие команды программной среды Matlab предназначены для проигрывания звуковых файлов с помощью компьютерного звукового устройства?

7.Какие компоненты программной среды C++ Builder могут быть использованы для обращения к аппаратной части компьютерного звукового устройства?

8.Что такое IP-телефония? Как производится передача речевого сигнала

вIP-телефонии?

9.Какие протоколы передачи данных используются в IP-телефонии?

10.С какими интерфейсами ПК может взаимодействовать программная сре-

да Matlab 6.5?

Библиографический список

1.Вешкурцев Ю. М. Основы телекоммуникационных технологий : учеб. пособие / Ю. М. Вешкурцев, Е. Д. Бычков, Д. А. Титов. – Омск : Изд-во ОмГТУ, 2009. –172 с.

2.Гук М. Аппаратные интерфейсы ПК / М. Гук. – СПб. : Питер, 2002. – 528 с.

3.Дьяконов В. П. Matlab 6.5 SP1/7 + Simulink 5/6. Основы применения /

В. П. Дьяконов. – М. : СОЛОН-Пресс, 2005. – 800 с.

4.Лазарев Ю. Ф. MatLAB 5.x / Ю. Ф. Лазарев. – Киев : BHV, 2000. – 384 с.

5.Масленников И. Протоколы IP-телефонии / И. Масленников // BYTE.

Россия. – 2003. – № 10. – С. 2–7 (электронный ресурс http://www.bytemag.ru/ articles/detail.php?ID=6653).

6.Росляков А. В. IP-телефония / А. В. Росляков, М. Ю. Самсонов, И. В. Шибаева. – М. : Эко-Трендз, 2003. – 252 с.

66

ЛАБОРАТОРНАЯ РАБОТА 8

ПЕРЕДАЧА ДАННЫХ

НА ОСНОВЕ ПРОТОКОЛА TCP/IP

Цель работы – изучение основ передачи дискретной информации в компьютерных сетях, а также разработка простейшего ПО для ПК, выполняющего обмен данными в сетях на основе протокола TCP/IP.

Задание к работе

1.Изучить принципы организации компьютерных сетей на основе прото-

кола TCP/IP.

2.В программной среде C++ Builder 6 разработать ПО, осуществляющее обмен данными по протоколу TCP.

3.Произвести передачу и прием данных (файлов различного формата) с помощью разработанного ПО.

4.Сделать выводы по результатам работы.

Пояснения к работе

В настоящее время очень часто возникает задача разработки ПО, осуществляющего управление некоторыми удаленными (т. е. находящимися на значительном расстоянии от ПК) устройствами. В связи с развитием и распространением сетей передачи данных наиболее удобным является использование технологий локальных и глобальных сетей, и в частности технологии Ethernet [5, 3]. Для организации межсетевого взаимодействия, как правило, используется протокол (набор протоколов) TCP/IP.

Протокол TCP/IP представляет собой совокупность правил, на базе которых строится связь (обмен информацией) между компьютерами в сети Интернет. Аббревиатура TCP/IP расшифровывается как «Протокол управления передачей/

межсетевой протокол» (transmission control protocol/internet protocol) [5]. Этот протокол организует взаимодействие программ, работающих на разных компьютерах, на разных платформах и языках. При этом организуемый обмен данными между компьютерами, входящими в сеть, является надежным и имеет высокую достоверность.

ПК в составе сети обмениваются информацией. Точнее, обмен информацией производит ПО, установленное на компьютерах. Как правило, взаимодейст-

67

вие между программами на ПК в составе сети осуществляется по схеме «клиент – сервер» [1, 5]. Клиент запрашивает какую-либо информацию (страницу сайта, файл и т. д.) у сервера, а сервер принимает запрос, обрабатывает его и отправляет результат клиенту [5].

Протокол TCP/IP включает в себя несколько протоколов различного уровня. При этом уровни протоколов соответствуют уровням модели взаимодействия открытых систем OSI [5]. Двумя основными протоколами транспортного уровня являются надежный протокол управления передачей данных TCP (Transmission Control Protocol) и быстрый протокол UDP (User Datagram Protocol). TCP реали-

зует сетевое взаимодействие с установлением логического (виртуального) соединения, а UDP не требует поддерживания соединения с удаленным компьютером [5]. При использовании протокола UDP получателю не гарантируется доставка пакета передаваемых данных.

Протокол транспортного уровня (например, TCP) взаимодействует с пользовательским ПО, а также с протоколом, обеспечивающим «низкоуровневые» функции (маршрутизацию, адресацию пакетов данных и т. д.). В качестве «низкоуровневого» протокола, как правило, используется протокол IP [5].

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

Суть работы пользовательского ПО с TCP, в общих чертах, состоит в следующем. Для передачи данных пользовательскому ПО необходимо вызвать соответствующую функцию TCP, с указанием буфера передаваемых данных. TCP упаковывает эти данные в сегменты [5], т. е. разбивает их на байтовые посылки определенной длины, добавляет к посылкам заголовок и т. д. После формирования сегментов TCP вызывает функцию передачи протокола более низкого уровня, например протокола IP. На приемном конце TCP группирует поступившие от протокола низкого уровня данные в буфер, проверяет целостность данных, передает данные пользовательскому ПО и уведомляет отправителя об их получении.

Для идентификации компьютеров в сети технология TCP/IP имеет систему глобальной адресации [5]. Каждый компьютер (или другое устройство) в рамках сети Интернет имеет уникальный адрес, который называется IP-адресом (Internet Pointer), например 192.168.0.55. IP-адрес состоит из четырех однобайтовых чисел, разделенных точкой. На каждом компьютере может быть разме-

68

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

Особый смысл имеет IP-адрес, первый байт которого равен 127. Он используется для тестирования программ и взаимодействия процессов в пределах одной машины. Когда программа посылает данные по IP-адресу 127.x.x.x, эти данные не передаются по сети, а возвращаются как только что принятые. Поэтому в IP-сети компьютерам запрещается присваивать IP-адреса, начинающиеся со 127.

Сервер имеет фиксированный IP-адрес и фиксированный номер порта. Номера портов клиента не фиксированы. Они назначаются операционной системой динамически. Фиксированные серверные порты, как правило, имеют номера до 1024, а клиентские начинаются после 1024.

Ход работы

Для выполнения лабораторной работы используются два ПК с операционной системой Windows XP/7, подключенных к Интернету (локальной сети). Студентами разрабатывается ПО, состоящее из двух оконных приложений. Первое приложение выполняет функции сервера (размещается на первом ПК), второе – функции клиента (устанавливается на втором ПК). Таким образом, в ходе лабораторной работы ставится задача разработать простейшие приложения клиент/сервер, передающие друг другу текстовые сообщения, а также осуществляющие файловый обмен между ПК.

Разрабатываемые приложения должны использовать простой протокол файлового обмена. В простейшем случае протокол файлового обмена должен предусматривать различение байтов текстовой информации и байтов файла. Чтобы различать текстовые и файловые посылки, начало файловой посылки может сопровождаться передачей текстовой строки вида [4]

file#filename#filesize#,

где file – маркер начала файла, filename – имя файла (например, Transmit_ file.txt), filesize – размер файла в байтах. Байты, передаваемые после рассмотренной строки – это байты файла (количество байтов файла равно зна-

чению filesize).

1. Собрать рабочее место для выполнения лабораторной работы согласно рис. 8.1 (на ПК1 будет размещено приложение, выполняющее функции сервера, на ПК2 – приложение, играющее роль клиента).

69

Рис. 8.1

Указания пп. 2–4 выполнить на каждом из ПК, входящих в состав рабочего места.

2.Запустить программную среду C++ Builder 6, создать новый проект (тип проекта – Application) [1].

3.Cохранить проект на жестком диске ПК, используя пункт Save All меню

File (рис. 8.2).

Рис. 8.2

4. Разместить на форме один компонент Memo, три компонента Button, один компонент OpenDialog, один компонент SaveDialog, три компонента Edit [2]. Далее будем использовать следующие имена компонентов: Memo1,

Button1, Button2, Button3, OpenDialog1, SaveDialog1, Edit1, Edit2,

Edit3 (примерный вид окна после размещения указанных компонентов показан на рис. 8.3).

70

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]